Http://tunelinux.pe.kr 문태준 DevOps – 코드로 인프라 관리하기 ver 2016.07.07 http://tunelinux.pe.kr 문태준.

Slides:



Advertisements
Similar presentations
★질문 1: Pai 가 원하는 것은 할아 버지의 ( ) 과 ( ) 이 다. ★질문 2: Maori 족 선조의 이름과 직업은 ?? ( ), ( ) Attention 관심 Love 사랑 이름 Paikea 직업 the whale rider.
Advertisements

박재언 류호성 구창모 김승엽. Why Cloud Computing 클라우드 컴퓨팅 등장 배경 3 천문학적으로 늘어나는 컴퓨터 와 네트워크 장비의 증가 매일 쏟아지는 방대한 데이터 및 다 양한 사용자 환경지원 요구 확대 복잡한 IT 기술의 진화 및 관리의 어려움 지속적으로.
Lakeside SysTrack 소개 기 명종 Login VSI 한국 대표 Lakeside Software SysTrack 국내 공급 Tel:
Ch.12 공급망관리 Supply Chain Management Ch.5 S&OP, MPS 생산 ∙ 운영관리 1.
[ 싱가포르항공 ] ▶싱가포르 항공 승무원 채용 자격조건 나이 : 나이제한 없음 학력 : 4 년제 이상 졸업한자 신장 : 158CM 이상 시력 : 교정시력 1.0 이상 어학 : 영어 ( 상 ) 영어회화 및 영어작문 가능한자 복지 : 사원복지, 주택제공, 항공권할인 (1.
Cloud Computing Prof. Sang Ho Lee Soongsil University 1.
“ PPT WORLD PowerPoint template, you can become an expert. Your wishes for the successful presentation. Our company wishes to own a successful presentation.
SDU 재학생 및 신. 편입 학생을 대상으로 “ 클라우드 컴퓨팅 ” 에 대해서 알아보는 특강을 준비하였습니다. 본 특강은 컴퓨팅 산업에서 가장 큰 화두로 성장하고 있는 “ 클라우드컴퓨팅 (Cloud Computing) 에 대한 기초 적 이해와 클라우드 컴퓨팅에서 사용되는.
English at your school Korean - English. English at your school 수고했다 Well done. I was very impressed!
Classroom English How do you say _________ in Korean? _________ 는 한국어로 뭐예요 ?
마이크로 서비스 아키텍처로 개발하기 안재우 Platform Architecture 팀 SK Planet.
Global B2B 활성화방안 (e-Collaboration 을 중심으로 ) Ecplaza 박 인 규 대표 (
Open Cloud Engine 유엔진 장진영 대표이사
마이크로소프트 프리미어 지원 라이선스 (소개자료).
Crystal Reports .NET ASTech System.
의문사 + to 부정사 주어 To study hard is important.
사업관리 제안범위 End User Computing 재무관리 범위관리 계약관리 품질관리 의사소통관리 자원관리 위험관리 일정관리
A: Could you tell me how to make a call from this phone
접수번호 : 글로벌 운영기반 지원사업 사업계획서 - 프로젝트명 (플랫폼서비스) 명: 업 체 명 :
Mobile Cloud Messaging Package
IT집중교육1 (Mobile Multimedia Service & System Design)
인재채용의 경쟁우위확보를 위한 역량기반의 구조적 면접 컨설팅 추진방안
어떤 과정으로 쓰면 될까.
자동화된 인프라스트럭쳐 구축 sysadmin 미니 세미나 발표 : 문태준
MRP (Material Requirement Planning)
A n d r o i d Android 2010 년 5월 19일 작성자 : 백 선 재.
4. ITIL 개요 * ICT : Information & Communication Technology
Application and Server Management
제주지역대학 제주 새별오름 들불축제 지역 식생(植生) 변화 조사 연구
Software development #5: Version Control System
Operating Systems Overview
Introduction to Web Service Computing
웹 서비스 (Web Services).
SQL Server 2005 데이터베이스 가용성 강화 측면에서 본 데이터베이스 미러링과 스냅샷, 복제
Cloud & Openstack suckzoo.
7장 : 캐시와 메모리.
Web Servers (IIS & Apache)
Azure WebApp on Linux와 .NET Core
[멀티미디어 문서구조화특론 ] Workflow
InstallShield Professional Services ( Services Pack / Education / Consulting ) ㈜소프트뱅크 커머스.
NTAS 소개 (Network Transaction Application Server)
Linked Data 4 Principles
XEN & CLOUD SPARCS14 ONION.
1.Redhat 자격증 고급 자격증 RHCA 중급 자격증 RHCE 초급 자격증 RHCVA RHCSA RHCJA
BPMS의 이해 (Business Process Management System)
고성능 컴퓨터 관리를 위한 클러스터 플랫폼 개발
SMS 소개 기술사업부 한국마이크로소프트.
가상플랫폼을 사용한 임베디드SW 개발 (CoWare CoWare Virtual Platform Designer 사용)
- Make Processes Manageable -
Web상에서의 Network Management
1.Redhat 자격증 고급 자격증 RHCA 중급 자격증 RHCE 초급 자격증 RHCVA RHCSA RHCJA
웹 서비스 (Web Services).
Xen and the Art of Virtualization
KMS 구현 및 활용사례 경쟁력 강화를 위한 2002년 5월 28일(화) 김 연 홍 상무 / 기술사
Student A Say “I’m going to ask you some questions about The Internet and Technology.” Are you ready?
Talk and talk Could you…? 영어 7-b
Hudson 의 프로젝트 적용 방안 삼성SDS 자바커뮤니티 세미나 2009년 5월.
[ ] Cloud Computing Ubiquitous Computing & Practice 김상구 정성혁.
ITIL 정리.
: 부정(negative)의 의미를 나타내는 접두사
소프트웨어 형상관리: 목차 변경 및 형상관리의 기초 개념 형상항목 확인 및 버전관리 변경관리 감사 및 감사보고 99_11
Operating System Multiple Access Chatting Program using Multithread
성공적인 웹사이트 구축 (2) 변화 발전하는 Site의 미래를 예측 반영해야 함.
( Personnel Decision Support System )
The World of English by George E.K. Whitehead.
회계학 공부, 어떻게 해야 하는가? 육지훈 (경영학박사 - 회계학전공).
7/25/2019 경계선 방어 기술 공급원 May
Dynamic Graph Query Primitives for SDN-based Cloud Network Management Ramya Raghavendra, Jorge Lobo, Kang-Won Lee 2012 HotSDN 정보통신공학과.
Peer-to-Peer SIP Network Using Distributed Hash Table
K PaaS-TA 앱 개발.
Presentation transcript:

http://tunelinux.pe.kr 문태준 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,saltstack 추가 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.

인프라 자동화 단계 These are the steps to go from the napkin to actual deployment. OS Install - Get an operating system up and on a network DNS - Give your new system a name Server Inventory - Have a place where you keep track of each system, and what it does Identity Management - Grant your users access and privileges to your new servers Version Control - Keep track of the changes to your application code, and ideally, your infrastructure too Configuration Management - Keep track of how each system is configured, and update it when you make changes Monitoring - Watch your new systems for signs of trouble Trending - Make graphs and charts of important metrics, so that you can tell if the infrastructure is behaving well, and predict future capacity Application Deployment - Actually put your application on the infrastructure, and update 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), 회귀 테스트(Regressoin Test) CI 도구 : Jenkins, Travis CI

배포 자동화(지속적 전달) 출처 : “성공으로 이끄는 팀 개발 실천 기술"

배포 자동화(지속적 전달) 배포 자동화의 이점 배포 자동화하기 작은 단위로 나누어 자주 배포하면 위험을 제어할 수 있음 피드백을 빨리 받을 수 있다 조직을 안정화 한다 배포 자동화하기 배포 자동화 기반 기술을 선택할 때는 개발자와 운영자 모두 공통으로 이용할 수 있는 것으로 해야 함 개발부터 상용 환경에 배포하기까지 일관된 처리를 필요로 함 배포 자동화시 공통으로 인식해야 할 것 모든 것을 버전 관리한다 모든 환경을 같은 방법으로 구축한다 배포 작업을 자동화하고 사전 검증을 한다 반복 테스트한다. 배포 파이프라인 : 애플리케이션 빌드/배포/테스트/배포라는 일련의 프로세스를 자동화 하는 것 자동화를 통해서 배포 속도를 가속화 : 속도와 정확도 누구든지 배포할 수 있도록 하는 것 이 중요

프로비저닝 툴체인 출처 : “성공으로 이끄는 팀 개발 실천 기술" 출처 : Web Ops 2.0: Achieving Fully Automated Provisioning

Automated Provisioning + Automated Lifecycle 출처 : http://dtosolutions.com/fully-automated-infrastructure/fully-automated-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 Pull Declarative Chef Imperative Otter Inedo Puppet SaltStack 출처 : 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 Foreman is a complete lifecycle management tool for physical and virtual servers.  Provisioning / Configuration / Monitoring Support Puppet/Ansible/Saltstack and etc 출처 : http://theforeman.org/

프로비저닝 툴체인 – 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 A : 노드c에 대한 정보 요청 B : 전체노드에 브로드캐스트 D : 해당 머신(c)만 응답 보냄 출처 : https://docs.puppetlabs.com/mcollective/reference/basic/messageflow.html

오케스트레이션 – Saltstack 출처 : http://cy.cyworld.com/home/37141209/post/549F9EADB215773CBD468401

오케스트레이션 – Jenkins 와 Fabic 조합 Fabic 실행을 Jenkins 슬레이브에서 실행함으로써 Fabic 실행 결과를 Jenkins 콘솔 로그로 남길 수 있음 Fabric 은 원격 호스트 추가가 쉽고 코드로 관리할 수 있어서 버전 관리를 통한 본인 환경 검증 등 다양한 환경에서 동작시킬 수 있음 출처 : “성공으로 이끄는 팀 개발 실천 기술"

오케스트레이션 – workflow Rundeck 활용 워크플로우 기능 Workflow 정의, 빌드, 실행 관리 가능 Job 정의 -> 해당 팀에 job 넘겨줌 사용용도 표준 운영 프로시져 공유 잡 스케쥴러 빌드 후 자동화된 배포 테스트 환경을 셀프서비스로 제공 데이터 프로세싱 출처 : http://rundeck.org/

CMDB 자동화된 인프라를 구축하기 위해서는 CMDB 관리가 중요함 인프라의 각 구성 요소별로 API 로 통신을 하거나 자동으로 처리할 수 있는 방법이 있어야 함 정보 흐름 통합 HW – OS –서비스 등 전체 과정에서의 정보를 통합적으로 관리 OS install – OS 설정 – 서비스 투입 – 반출 – 모니터링 등 각 단계별로 모든 정보를 중앙에서 관리 이 부분은 각 회사, 조직별로 사용하는 프로그램, 프로세스가 다를 것임

AWS 인프라 구성 관리 솔루션 AWS 인프라 구성 관리 솔루션 자료 AWS Resource Management 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/FullyAutomatedProvisioning_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

질의 응답