: TWC DevOps 엔지니어 `08 ~`16 : 삼성SDS JAVA 개발자 / 소프트웨어 아키텍트 • 프로젝트 : - 삼성그룹 인트라넷 시스템 차세대 - IBK 기업은행 Post 차세대 - NEIS (교육행정정보시스템) 차세대 - 한국증권금융 차세대 • E-mail : [email protected][email protected] The Weather Company, an IBM business
business • Most accurate Forecast in The World • Most hyper-local Forecast in The World • # 1 Weather App – iOS, Android • # 1 Weather Site – weather.com • # 1 Provider of Weather API’s • # 1 Weather Related Content • Best Weather related Industry Solutions
내의 과거 기록 • 레이더 데이터 • 위성 데이터 • 공공 데이터 • 3rd Party 데이터 소스 • Private Weather Station • … 파트너사: Apple, Samsung etc. Weather.com 웹페이지 모바일 앱 (iOS, Android …) B2B 서비스 예보 데이터 - ~ xxx TB Data Daily - From xxx+ Sources
a software development methodology that combines software development (Dev) with information technology operations (Ops). The goal of DevOps is to shorten the systems development life cycle while also delivering features, fixes, and updates frequently in close alignment with business objectives. The DevOps approach is to include automation and event monitoring at all steps of the software build. • Wikipedia에서…
소개 • SI 프로젝트에서의 경험과 일부 비교 • 아래와 같이 생각한다면 오해입니다. J - 해당 사례가 best practice이다. - 해당 사례가 데브옵스의 방향을 완전하게 구현하고 있다. - TWC는 완전한 데브옵스 조직이다. • TWC의 데브옵스 엔지니어로써 일을 하면서 느끼고 경험한 것들을 공유하고자 함
개발 수행 - 스프린트, 스크럼, 코드 리뷰, … • 일반적으로 2주 +- 단위로 릴리즈 수행 • 신규 API와 같은 경우는 개발 기간이 길어질 수 있기 때문에 충분한 품질 점검 과정을 거쳐 릴리즈 수행 • 개발팀 단위로 업무 시간 내에 다운타임 없이 릴리즈 수행 • 오토스케이링 그룹 또는 스크립트 사용
엔지니어 § 데브옵스 엔지니어 : 현재 수행하고 있는 역할의 이름 (직무) § 데브옵스 엔지니어라는 역할에 대한 정의는 회사마다 차이가 있을 것으로 생각됨 § 현재 수행 중인 업무 내용은 Ops쪽에 가까움 § 클라우드 상에서 인프라 및 CI/CD와 관련된 업무를 수행하면서 파이프라인을 관리하고 자동화 하는 역할을 보통 데브옵스 엔지니어로 정의 하는 것 같음 § 데브옵스 엔지니어(또는 SRE 등)와 같은 직무를 데브옵스와 동일하게 보기는 어렵다고 생각함
개발/QA/데브옵스 엔지니어의 한일/해야할 일/이슈에 대해 공유함 • 비즈니스 목표 선상에서 티켓을 생성하고 우선순위를 조정 • 각 티켓의 요구사항이 운영환경에 반영되기까지 모든 팀원이 기여함 • 이슈에 대해 모두 공유하고 함께 고민함 • 많은 부분의 커뮤니케이션이 슬랙을 통해 이루어지고 많은 경우 조직 전체에게 오픈되어 있음 • Private Channel의 경우에도 이슈 해결에 필요시 참여하여 협업함
/ 비교 • Ex) 어떤 SI 프로젝트 할 당시의 개발 및 인프라 팀 구성 Ops Manager Dev Manager Dev Team Members Developers Lead Developer Ops Team Members Ops Engineers Lead Ops Engineer QA Manager QA Team Members Testers Lead Tester Work items Work items Work items Work items Work items Work items Work items
될 가능성이 높음 • 리더십 레벨에서 공동의 비즈니스 목표를 위해 각 팀에서 해야 할 일을 협의 하겠지만 이해관계에 차이가 있을 가능성이 높음 • 업무 분장이 된 이후에는 각 팀 내에서만 업무가 진행되고 1주에 한번 정도 리더십 미팅에서 진행 현황이 공유 되는 정도의 커뮤니케이션이 될 가능성이 높음 • 이슈 발생시 문제가 충분히 커진 후에야 협업이 가능한 경우가 많음
Product Owner Team Leader Development Team A Development Team B Development Team C Dev QA DevOps Dev QA DevOps Dev QA DevOps § 메시지 § 이미지 § 문서 § 화상회의 § 모든 이전의 대화 기록 § Public 채널 § Private 채널 § Shared in Org 채널
많은 릴리즈 § 개선사항을 정의하고 있는 티켓의 변경 영향도는 대체로 아주 작은편 § 작은 변경 사항은 문제가 발생하더라도 대처 하기가 용이함 § 적은 부담으로 릴리즈를 수행할 수 있음 § 릴리즈의 주기를 짧게 할 수 있음 § 필요한 변경사항을 빠르게 릴리즈 할 수 있음
필요성 § 신규 API를 위해 마이크로 서비스를 하나 추가하는 경우 필요한 리소스 - 어플리케이션이 실행될 인스턴스 (최소 2개) - 로드 밸런서 - 인스턴스 이미지 - 오토스케일링 그룹 - 캐쉬 레이어 인스턴스 - 로드 밸런서 - … § 필요한 리소스들을 그 때마다 웹 콘솔이나 스크립트를 작성하여 관리하기에는 리소스가 너무나 많음
PaaS, IaaS 에서 제공하는 API 호출을 template 형태로 제공 § 예를들어, 클라우드 서비스에서 제공하는 VM 인스턴스를 하나 생성하고자 할 때 - 웹 콘솔과 같은 UI를 통해 생성하는 방법 - API를 CLI에서 호출하여 생성하는 방법 이 있다면, Terraform은 API호출을 위한 파라미터들을 template 형태로 정의하여 API 호출이 가능하게 도와줌
Env. (1 or 2 Regions) Prod. Env. (multiple Regions) LB LB VM Instance ASG VM Instances VM Instances Configurations User Group Dir iptable … System Config App. Config Internal Svc External Svc artifac otry … App Ver. Configurations User Group Dir iptable … Internal Svc External Svc artifac otry … App Ver. Configurations User Group Dir iptable … Internal Svc External Svc artifac otry … App Ver. dev.api.com/… app-1.0.9-SNAPSHOT qa.api.com/… app-1.0.8-RC3 api.com/… app-1.0.7-RELEASE Managed by Chef Managed by Terraform Terraform과 Chef의 역할