SlideShare una empresa de Scribd logo
1 de 31
DevOps – 코드로 인프라 관리하기
ver 2016.07.07
http://tunelinux.pe.kr 문태준
변경내용
• 2016.7.7 http://wiki.tunelinux.pe.kr/x/-YEd DEVOPS 발표자료에서 “자동
화 도구" 부분만 별도로 빼서 문서 업데이트함
•CM TOOL 비교 추가
•AWS, Docker 추가
• 2015.10.27 : DevOps Tools 의 orchestration 일부 업데이트 및 ansible,saltst
ack 추가
• 2014.11.18 : 문서 작성 (원문서 이름 : DevOps 소개)
•Infrastructure as Code
• 이상적인 프로젝트
• 버전관리/티켓관리/CI/CD
• 프로비저닝 툴체인 : OS설치
• 프로비저닝 툴체인 : 설정관리
• 프로비저닝 툴체인 : 오케스트레이션
• AWS
•Docker Ecosystems
• 참고자료
목 차
Infrastructure as Code
•https://en.m.wikipedia.org/wiki/Infrastructure_as_Code
•Infrastructure as Code (IaC) is the process of managing and
provisioning computing infrastructure (processes, bare-metal
servers, virtual servers, etc.) and their configuration through machine-
processable definition files, rather than physical hardware configuration
or the use of interactive configuration tools.
•The definition files may be in a version control system. This has been
achieved previously through either scripts or declarative definitions,
rather than manual processes, but developments as specifically titled
'IaC' are now focused on the declarative approaches.
•Infrastructure as Code approaches have become increasingly
widespread with the adoption of cloud computing andInfrastructure as a
Service (IaaS). IaC supports IaaS, but should not be confused with it.
인프라 자동화 단계
이상적인 프로젝트란?
출처 : “성공으로 이끄는 팀 개발 실천 기술"
•티켓 관리 시스템에 이슈 등이 집약되어 있다
•버전 관리 시스템을 이용
•반복 검증 가능한 CI 시스템을 도입
•환경의 영향을 최소화하고 항상 배포 가능 상태로 둔다
•모두 기록해서 추적 가능하게 한다
•개발조직 뿐만 아니라 운영조직에도 필요함
버전 관리
•버전 관리 시스템이란?
•버전 관리 시스템의 역사와 분산 버전 관리 시스템의 도입
•관리해야 할 것
•소스 코드
•요건 정의서, 설계서 등의 문서
•데이터베이스 스키마 및 데이터
•미들웨어 등의 설정 파일
•라이브러리 등의 의존 관계 정의
•시스템 설정 및 인프라
•브랜치, 태그 등을 사용한 효율적인 개발
티켓 관리
•티켓 관리 시스템이란?
•티켓 관리 시스템과 버전 관리 시스템의 연계
출처 : Jira와 subversion 연동하여 이슈 처리
지속적 통합(Continous Integration)
•CI란?
•통합이란 빌드, 테스트를 실시하는 프로세스를 말하며 이러한 통합 프로세스를 상시로 실시하는
것을 CI(Continuous Integration)이라고 함
•통합을 지속적으로 수행하는 것이 CI
•원래 CI는 애자일 개발 방법의 하나로, 익스트림 프래그래밍 방법론으로 고안되었음.
•가치 있는 소프트웨어를 고품질로 신속하게 전달하는 것을 목표로 하는 것
•애자일 개발 중에서도 가장 기본이자 핵심 방법론임.
•통합 작업을 미루지 말고 개발 중에라도 실시해서 소프트웨어 개발의 복잡성을 제거하자는 것
•왜 CI 같은 방법론이 요구되는 걸까?
•비용 면에서의 이점
•시장 변화 속도
•속도와 품질 둘 다 확보
지속적 통합(Continous Integration)
•CI 에 필요한 것
•버전 관리 시스템 : subversion, Git
•빌드 도구 : make, Scons, Ant, Maven, Gradle, Rake,
•테스트 도구 : 테스트 주도 개발 프레임워크, 행동 주도 개발 프레임워크.
•단위 테스트(Unit Test), 통합 테스트(Integration Test), 사용자 테스트(User Acceptance Test), 회귀 테스트(Regre
ssoin Test)
•CI 도구 : Jenkins, Travis CI
배포 자동화(지속적 전달)
출처 : “성공으로 이끄는 팀 개발 실천 기술"
배포 자동화(지속적 전달)
•배포 자동화의 이점
•작은 단위로 나누어 자주 배포하면 위험을 제어할 수 있음
•피드백을 빨리 받을 수 있다
•조직을 안정화 한다
•배포 자동화하기
•배포 자동화 기반 기술을 선택할 때는 개발자와 운영자 모두 공통으로 이용할 수 있는 것으로 해야
함
•개발부터 상용 환경에 배포하기까지 일관된 처리를 필요로 함
•배포 자동화시 공통으로 인식해야 할 것
•모든 것을 버전 관리한다
•모든 환경을 같은 방법으로 구축한다
•배포 작업을 자동화하고 사전 검증을 한다
•반복 테스트한다.
•배포 파이프라인 : 애플리케이션 빌드/배포/테스트/배포라는 일련의 프로세스를 자동화 하는 것
•자동화를 통해서 배포 속도를 가속화 : 속도와 정확도
•누구든지 배포할 수 있도록 하는 것 이 중요
프로비저닝 툴체인
출처 : “성공으로 이끄는 팀 개발 실
천 기술"
출처 : Web Ops 2.0: Achieving Fully Automat
ed Provisioning
Automated Provisioning + Automated Lifecycle
출처 : http://dtosolutions.com/fully-automated-infrastructure/fully-automate
d-provisioning/
프로비저닝 툴체인 - Bootstrapping
•Kickstart
•Vagrant – 테스팅 환경에서 유용함!!
•Docker
•Cloud 서비스
프로비저닝 툴체인 - Configuration
•Puppet vs Chef vs Ansible vs Salt vs Etc
Tool Name Released by Method Approach
Ansible Tower Ansible Push
Declarative &
Imperative
CFEngine CFEngine Pull Declarative
Chef Chef Pull Imperative
Otter Inedo Push
Declarative &
Imperative
Puppet Puppet Pull Declarative
SaltStack SaltStack Push
Declarative &
Imperative
출처 : https://en.m.wikipedia.org/wiki/Infrastructure_as_Code
프로비저닝 툴체인 - Configuration
• 동일한 바퀴를 재발명하지 말자!
•https://forge.puppet.com/
•https://github.com/chef-cookbooks
•https://github.com/saltstack-formulas
•https://galaxy.ansible.com
• BEST PRACTICES!
•https://docs.puppet.com/guides/module_guides/bgtm.html
•https://docs.saltstack.com/en/latest/topics/best_practices.html
•http://docs.ansible.com/ansible/playbooks_best_practices.html
프로비저닝 툴체인 – Configuration - Puppet
https://forge.puppetlabs.com/
프로비저닝 툴체인 – Configuration - Foreman
출처 : http://theforeman.org/
•Foreman is a complete lifecycle management tool for
physical and virtual servers.
•Provisioning / Configuration / Monitoring
•Support Puppet/Ansible/Saltstack and etc
프로비저닝 툴체인 – Configuration - 활용
출처 : “성공으로 이끄는 팀 개발 실천 기술"
프로비저닝 툴체인 – Orchestration
•Capistrano : 병렬처리
•Fabric : 직렬/병렬처리
•순서가 필요한 경우 직렬 처리가 유용
•기타 : Func(Python) / Rex(Perl)
•Jenkins : CI 도구이지만 배포 보조 도구로 활용 가능
•Mcollective
•Ssh 대신 Publish Subscribe Middleware 기술 사용 (비
동기 메시징. MQ)
•확장성이 용이하며 대규모 환경에서 사용 가능함.
•Rundeck : workflow 기능
•Ansible/SaltStack : configuration + Orchestration
•SaltStack 은 zeromq의 분산메시징 기술을 이용하여 성
능 및 확장성을 높임.
•수작업으로 해야 한다면? ClusterSSH, Pssh, Dist, etc
오케스트레이션 – Mcollective
출처 : https://docs.puppetlabs.com/mcollective/reference/basic/messageflow.html
A : 노드c에 대한 정
보 요청
B : 전체노드에 브
로드캐스트
C : 모든 노드에서
메시지 받음
D : 해당 머신(c)만
응답 보냄
오케스트레이션 – Saltstack
출처 : http://cy.cyworld.com/home/37141209/post/549F9EADB215773CBD468401
오케스트레이션 – Jenkins 와 Fabic 조합
출처 : “성공으로 이끄는 팀 개발 실천 기술"
•Fabic 실행을 Jenkins 슬레이브에서 실행함으로써 Fabic 실행 결과를 Jenki
ns 콘솔 로그로 남길 수 있음
•Fabric 은 원격 호스트 추가가 쉽고 코드로 관리할 수 있어서 버전 관리를
통한 본인 환경 검증 등 다양한 환경에서 동작시킬 수 있음
오케스트레이션 – workflow Rundeck 활용
•워크플로우 기능
•Workflow 정의, 빌드, 실행 관리 가능
•Job 정의 -> 해당 팀에 job 넘겨줌
•사용용도
•표준 운영 프로시져 공유
•잡 스케쥴러
•빌드 후 자동화된 배포
•테스트 환경을 셀프서비스로 제공
•데이터 프로세싱
출처 : http://rundeck.org/
CMDB
• 자동화된 인프라를 구축하기 위해서는 CMDB 관리가 중요함
• 인프라의 각 구성 요소별로 API 로 통신을 하거나 자동으로 처리할 수 있는
방법이 있어야 함
• 정보 흐름 통합
• HW – OS –서비스 등 전체 과정에서의 정보를 통합적으로 관리
• OS install – OS 설정 – 서비스 투입 – 반출 – 모니터링 등 각 단계별로 모든
정보를 중앙에서 관리
• 이 부분은 각 회사, 조직별로 사용하는 프로그램, 프로세스가 다를 것임
AWS 인프라 구성 관리 솔루션
•AWS 인프라 구성 관리 솔루션 자료
•http://d0.awsstatic.com/aws-
answers/AWS_Infrastructure_Configuration_Management.pdf 자료를 요약
하였음
•AWS Resource Management
•Inventory and Configuration Tracking
•AWS Config and Config Rules
•AWS Config Partners
•Change Orchestration
•AWS CloudFormation and AWS Service Catalog
•HashCorp Terraform (https://www.terraform.io/)
•AWS Elastic Beanstalk and AWS OpsWorks
•OS and Application Stack Management
•AWS Managed Services : AWS Elastic Beanstalk and AWS OpsWorks
•Third-Party Tools : Chef/Puppet/Ansible/Salt
• AMI 이미지 만들기
•HashCorp Packer (https://www.packer.io)
Docker Ecosystem
•Docker and Containerization
•Docker / Rtk
•Service Discovery and Global Configuration Stores
•Etc / consul / zookeeper / etc
•Networking Tools
•Flannel / weave / pipework
•Scheduling, Cluster Management, and Orchestration
•Fleet / Marathon / Docker Swarm / Mesos / Kubernetes / Rancher
•Docker compose
참고자료
•지속적인 전달(Continuous Delivery)
• 신뢰할 수 있는 소프트웨어 출시
• 성공으로 이끄는 팀 개발 실천기술 : 개발, 버전관리, 티켓관리, 지속적 통
합, 배포 자동화(지속적 전달), 회귀 테스트 / kickstart, puppet 류의 설정관
리, capistrano 등의 오케스트레이션 을 골고루 다루고 있음
•인프라를 코드로 관리하기
• https://en.wikipedia.org/wiki/Infrastructure_as_Code
• Infrastructure as Code
•http://shop.oreilly.com/product/0636920039297.do
• DevOps 소개 자료 : http://www.slideshare.net/ssuser2f0173/devops-
41731364
참고자료
• 자동화된 인프라 구축
자동화된 인프라 : http://www.slideshare.net/ssuser2f0173/2009-49436077
Building an Automated Infrastructure (O’REILY Velocity 2008) :
http://en.oreilly.com/velocity2008/public/schedule/detail/2238
Reliable, Repeatable, Reproducible Infrastructure
http://sysadmin.miniconf.org/presentations08.html#02
Web Ops 2.0: Achieving Fully Automated Provisioning
http://www.puppetlabs.com/wp-content/uploads/2010/03/FullyAutomat
edProvisioning_Whitepaper7.pdf
Scalable System Operations (O’REILY Velocity 2012)
http://velocityconf.com/velocity2012/public/schedule/detail/23605
Using Open Source to Provide Infrastructure Services
http://blog.mague.com/?p=552
질의 응답

Más contenido relacionado

La actualidad más candente

백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
NAVER D2
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
OpenStack Korea Community
 

La actualidad más candente (20)

Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
 
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCIJenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCI
 
Ndc17 DevOps? DevOps개발자? 북미에서의 6년
Ndc17 DevOps? DevOps개발자? 북미에서의 6년Ndc17 DevOps? DevOps개발자? 북미에서의 6년
Ndc17 DevOps? DevOps개발자? 북미에서의 6년
 
자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 

Destacado

Destacado (12)

자동화된 인프라구축 - 2009년 자료
자동화된 인프라구축 - 2009년 자료자동화된 인프라구축 - 2009년 자료
자동화된 인프라구축 - 2009년 자료
 
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용
 
Ksug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaKsug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpa
 
DevOps with Docker
DevOps with DockerDevOps with Docker
DevOps with Docker
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
 
Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
 
DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??
 

Similar a 코드로 인프라 관리하기 - 자동화 툴 소개

효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
uEngine Solutions
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture
준일 엄
 

Similar a 코드로 인프라 관리하기 - 자동화 툴 소개 (20)

DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
 
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
 
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 
DevOps Study
DevOps StudyDevOps Study
DevOps Study
 
Spring Project와 최신 Pivotal Cloud Foundry 업데이트
Spring Project와 최신 Pivotal Cloud Foundry 업데이트 Spring Project와 최신 Pivotal Cloud Foundry 업데이트
Spring Project와 최신 Pivotal Cloud Foundry 업데이트
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포
 
05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크
 
Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리
 
야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
 
Aws serverless services
Aws serverless servicesAws serverless services
Aws serverless services
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
 
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
 

Último

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Último (7)

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

코드로 인프라 관리하기 - 자동화 툴 소개

  • 1. DevOps – 코드로 인프라 관리하기 ver 2016.07.07 http://tunelinux.pe.kr 문태준
  • 2. 변경내용 • 2016.7.7 http://wiki.tunelinux.pe.kr/x/-YEd DEVOPS 발표자료에서 “자동 화 도구" 부분만 별도로 빼서 문서 업데이트함 •CM TOOL 비교 추가 •AWS, Docker 추가 • 2015.10.27 : DevOps Tools 의 orchestration 일부 업데이트 및 ansible,saltst ack 추가 • 2014.11.18 : 문서 작성 (원문서 이름 : DevOps 소개)
  • 3. •Infrastructure as Code • 이상적인 프로젝트 • 버전관리/티켓관리/CI/CD • 프로비저닝 툴체인 : OS설치 • 프로비저닝 툴체인 : 설정관리 • 프로비저닝 툴체인 : 오케스트레이션 • AWS •Docker Ecosystems • 참고자료 목 차
  • 4. Infrastructure as Code •https://en.m.wikipedia.org/wiki/Infrastructure_as_Code •Infrastructure as Code (IaC) is the process of managing and provisioning computing infrastructure (processes, bare-metal servers, virtual servers, etc.) and their configuration through machine- processable definition files, rather than physical hardware configuration or the use of interactive configuration tools. •The definition files may be in a version control system. This has been achieved previously through either scripts or declarative definitions, rather than manual processes, but developments as specifically titled 'IaC' are now focused on the declarative approaches. •Infrastructure as Code approaches have become increasingly widespread with the adoption of cloud computing andInfrastructure as a Service (IaaS). IaC supports IaaS, but should not be confused with it.
  • 6. 이상적인 프로젝트란? 출처 : “성공으로 이끄는 팀 개발 실천 기술" •티켓 관리 시스템에 이슈 등이 집약되어 있다 •버전 관리 시스템을 이용 •반복 검증 가능한 CI 시스템을 도입 •환경의 영향을 최소화하고 항상 배포 가능 상태로 둔다 •모두 기록해서 추적 가능하게 한다 •개발조직 뿐만 아니라 운영조직에도 필요함
  • 7. 버전 관리 •버전 관리 시스템이란? •버전 관리 시스템의 역사와 분산 버전 관리 시스템의 도입 •관리해야 할 것 •소스 코드 •요건 정의서, 설계서 등의 문서 •데이터베이스 스키마 및 데이터 •미들웨어 등의 설정 파일 •라이브러리 등의 의존 관계 정의 •시스템 설정 및 인프라 •브랜치, 태그 등을 사용한 효율적인 개발
  • 8. 티켓 관리 •티켓 관리 시스템이란? •티켓 관리 시스템과 버전 관리 시스템의 연계 출처 : Jira와 subversion 연동하여 이슈 처리
  • 9. 지속적 통합(Continous Integration) •CI란? •통합이란 빌드, 테스트를 실시하는 프로세스를 말하며 이러한 통합 프로세스를 상시로 실시하는 것을 CI(Continuous Integration)이라고 함 •통합을 지속적으로 수행하는 것이 CI •원래 CI는 애자일 개발 방법의 하나로, 익스트림 프래그래밍 방법론으로 고안되었음. •가치 있는 소프트웨어를 고품질로 신속하게 전달하는 것을 목표로 하는 것 •애자일 개발 중에서도 가장 기본이자 핵심 방법론임. •통합 작업을 미루지 말고 개발 중에라도 실시해서 소프트웨어 개발의 복잡성을 제거하자는 것 •왜 CI 같은 방법론이 요구되는 걸까? •비용 면에서의 이점 •시장 변화 속도 •속도와 품질 둘 다 확보
  • 10. 지속적 통합(Continous Integration) •CI 에 필요한 것 •버전 관리 시스템 : subversion, Git •빌드 도구 : make, Scons, Ant, Maven, Gradle, Rake, •테스트 도구 : 테스트 주도 개발 프레임워크, 행동 주도 개발 프레임워크. •단위 테스트(Unit Test), 통합 테스트(Integration Test), 사용자 테스트(User Acceptance Test), 회귀 테스트(Regre ssoin Test) •CI 도구 : Jenkins, Travis CI
  • 11. 배포 자동화(지속적 전달) 출처 : “성공으로 이끄는 팀 개발 실천 기술"
  • 12. 배포 자동화(지속적 전달) •배포 자동화의 이점 •작은 단위로 나누어 자주 배포하면 위험을 제어할 수 있음 •피드백을 빨리 받을 수 있다 •조직을 안정화 한다 •배포 자동화하기 •배포 자동화 기반 기술을 선택할 때는 개발자와 운영자 모두 공통으로 이용할 수 있는 것으로 해야 함 •개발부터 상용 환경에 배포하기까지 일관된 처리를 필요로 함 •배포 자동화시 공통으로 인식해야 할 것 •모든 것을 버전 관리한다 •모든 환경을 같은 방법으로 구축한다 •배포 작업을 자동화하고 사전 검증을 한다 •반복 테스트한다. •배포 파이프라인 : 애플리케이션 빌드/배포/테스트/배포라는 일련의 프로세스를 자동화 하는 것 •자동화를 통해서 배포 속도를 가속화 : 속도와 정확도 •누구든지 배포할 수 있도록 하는 것 이 중요
  • 13. 프로비저닝 툴체인 출처 : “성공으로 이끄는 팀 개발 실 천 기술" 출처 : Web Ops 2.0: Achieving Fully Automat ed Provisioning
  • 14. Automated Provisioning + Automated Lifecycle 출처 : http://dtosolutions.com/fully-automated-infrastructure/fully-automate d-provisioning/
  • 15. 프로비저닝 툴체인 - Bootstrapping •Kickstart •Vagrant – 테스팅 환경에서 유용함!! •Docker •Cloud 서비스
  • 16. 프로비저닝 툴체인 - Configuration •Puppet vs Chef vs Ansible vs Salt vs Etc Tool Name Released by Method Approach Ansible Tower Ansible Push Declarative & Imperative CFEngine CFEngine Pull Declarative Chef Chef Pull Imperative Otter Inedo Push Declarative & Imperative Puppet Puppet Pull Declarative SaltStack SaltStack Push Declarative & Imperative 출처 : https://en.m.wikipedia.org/wiki/Infrastructure_as_Code
  • 17. 프로비저닝 툴체인 - Configuration • 동일한 바퀴를 재발명하지 말자! •https://forge.puppet.com/ •https://github.com/chef-cookbooks •https://github.com/saltstack-formulas •https://galaxy.ansible.com • BEST PRACTICES! •https://docs.puppet.com/guides/module_guides/bgtm.html •https://docs.saltstack.com/en/latest/topics/best_practices.html •http://docs.ansible.com/ansible/playbooks_best_practices.html
  • 18. 프로비저닝 툴체인 – Configuration - Puppet https://forge.puppetlabs.com/
  • 19. 프로비저닝 툴체인 – Configuration - Foreman 출처 : http://theforeman.org/ •Foreman is a complete lifecycle management tool for physical and virtual servers. •Provisioning / Configuration / Monitoring •Support Puppet/Ansible/Saltstack and etc
  • 20. 프로비저닝 툴체인 – Configuration - 활용 출처 : “성공으로 이끄는 팀 개발 실천 기술"
  • 21. 프로비저닝 툴체인 – Orchestration •Capistrano : 병렬처리 •Fabric : 직렬/병렬처리 •순서가 필요한 경우 직렬 처리가 유용 •기타 : Func(Python) / Rex(Perl) •Jenkins : CI 도구이지만 배포 보조 도구로 활용 가능 •Mcollective •Ssh 대신 Publish Subscribe Middleware 기술 사용 (비 동기 메시징. MQ) •확장성이 용이하며 대규모 환경에서 사용 가능함. •Rundeck : workflow 기능 •Ansible/SaltStack : configuration + Orchestration •SaltStack 은 zeromq의 분산메시징 기술을 이용하여 성 능 및 확장성을 높임. •수작업으로 해야 한다면? ClusterSSH, Pssh, Dist, etc
  • 22. 오케스트레이션 – Mcollective 출처 : https://docs.puppetlabs.com/mcollective/reference/basic/messageflow.html A : 노드c에 대한 정 보 요청 B : 전체노드에 브 로드캐스트 C : 모든 노드에서 메시지 받음 D : 해당 머신(c)만 응답 보냄
  • 23. 오케스트레이션 – Saltstack 출처 : http://cy.cyworld.com/home/37141209/post/549F9EADB215773CBD468401
  • 24. 오케스트레이션 – Jenkins 와 Fabic 조합 출처 : “성공으로 이끄는 팀 개발 실천 기술" •Fabic 실행을 Jenkins 슬레이브에서 실행함으로써 Fabic 실행 결과를 Jenki ns 콘솔 로그로 남길 수 있음 •Fabric 은 원격 호스트 추가가 쉽고 코드로 관리할 수 있어서 버전 관리를 통한 본인 환경 검증 등 다양한 환경에서 동작시킬 수 있음
  • 25. 오케스트레이션 – workflow Rundeck 활용 •워크플로우 기능 •Workflow 정의, 빌드, 실행 관리 가능 •Job 정의 -> 해당 팀에 job 넘겨줌 •사용용도 •표준 운영 프로시져 공유 •잡 스케쥴러 •빌드 후 자동화된 배포 •테스트 환경을 셀프서비스로 제공 •데이터 프로세싱 출처 : http://rundeck.org/
  • 26. CMDB • 자동화된 인프라를 구축하기 위해서는 CMDB 관리가 중요함 • 인프라의 각 구성 요소별로 API 로 통신을 하거나 자동으로 처리할 수 있는 방법이 있어야 함 • 정보 흐름 통합 • HW – OS –서비스 등 전체 과정에서의 정보를 통합적으로 관리 • OS install – OS 설정 – 서비스 투입 – 반출 – 모니터링 등 각 단계별로 모든 정보를 중앙에서 관리 • 이 부분은 각 회사, 조직별로 사용하는 프로그램, 프로세스가 다를 것임
  • 27. AWS 인프라 구성 관리 솔루션 •AWS 인프라 구성 관리 솔루션 자료 •http://d0.awsstatic.com/aws- answers/AWS_Infrastructure_Configuration_Management.pdf 자료를 요약 하였음 •AWS Resource Management •Inventory and Configuration Tracking •AWS Config and Config Rules •AWS Config Partners •Change Orchestration •AWS CloudFormation and AWS Service Catalog •HashCorp Terraform (https://www.terraform.io/) •AWS Elastic Beanstalk and AWS OpsWorks •OS and Application Stack Management •AWS Managed Services : AWS Elastic Beanstalk and AWS OpsWorks •Third-Party Tools : Chef/Puppet/Ansible/Salt • AMI 이미지 만들기 •HashCorp Packer (https://www.packer.io)
  • 28. Docker Ecosystem •Docker and Containerization •Docker / Rtk •Service Discovery and Global Configuration Stores •Etc / consul / zookeeper / etc •Networking Tools •Flannel / weave / pipework •Scheduling, Cluster Management, and Orchestration •Fleet / Marathon / Docker Swarm / Mesos / Kubernetes / Rancher •Docker compose
  • 29. 참고자료 •지속적인 전달(Continuous Delivery) • 신뢰할 수 있는 소프트웨어 출시 • 성공으로 이끄는 팀 개발 실천기술 : 개발, 버전관리, 티켓관리, 지속적 통 합, 배포 자동화(지속적 전달), 회귀 테스트 / kickstart, puppet 류의 설정관 리, capistrano 등의 오케스트레이션 을 골고루 다루고 있음 •인프라를 코드로 관리하기 • https://en.wikipedia.org/wiki/Infrastructure_as_Code • Infrastructure as Code •http://shop.oreilly.com/product/0636920039297.do • DevOps 소개 자료 : http://www.slideshare.net/ssuser2f0173/devops- 41731364
  • 30. 참고자료 • 자동화된 인프라 구축 자동화된 인프라 : http://www.slideshare.net/ssuser2f0173/2009-49436077 Building an Automated Infrastructure (O’REILY Velocity 2008) : http://en.oreilly.com/velocity2008/public/schedule/detail/2238 Reliable, Repeatable, Reproducible Infrastructure http://sysadmin.miniconf.org/presentations08.html#02 Web Ops 2.0: Achieving Fully Automated Provisioning http://www.puppetlabs.com/wp-content/uploads/2010/03/FullyAutomat edProvisioning_Whitepaper7.pdf Scalable System Operations (O’REILY Velocity 2012) http://velocityconf.com/velocity2012/public/schedule/detail/23605 Using Open Source to Provide Infrastructure Services http://blog.mague.com/?p=552