Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[마소콘2018] 더 웨더 컴퍼니의 데브옵스 - 조지훈

[마소콘2018] 더 웨더 컴퍼니의 데브옵스 - 조지훈

2018년 12월 15일 마이크로소프트웨어 콘퍼런스, 마소콘 2018
더 웨더 컴퍼니의 데브옵스 - 조지훈

MICROSOFTWARE

December 17, 2018
Tweet

More Decks by MICROSOFTWARE

Other Decks in Programming

Transcript

  1. • 이름 : 조지훈 • 경험 : `17 ~ 현재

    : TWC DevOps 엔지니어 `08 ~`16 : 삼성SDS JAVA 개발자 / 소프트웨어 아키텍트 • 프로젝트 : - 삼성그룹 인트라넷 시스템 차세대 - IBK 기업은행 Post 차세대 - NEIS (교육행정정보시스템) 차세대 - 한국증권금융 차세대 • E-mail : [email protected] [email protected] The Weather Company, an IBM business
  2. 더 웨더 컴퍼니 (TWC) ?? The Weather Company, an IBM

    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
  3. 더 웨더 컴퍼니 서비스 종류 The Weather Company, an IBM

    business • On-Demand 기상 예보 § 시간별 예보 § 10일 예보 § 월별 예보
  4. 더 웨더 컴퍼니 모바일 서비스 삼성 갤럭시 S8, S8+ 위젯

    (한국, 일본, 중국 제외) 애플 날씨 앱 www.weather.com The Weather Company, an IBM business
  5. 더 웨더 컴퍼니 서비스 데이터 소스 • 더 웨더 컴퍼니

    내의 과거 기록 • 레이더 데이터 • 위성 데이터 • 공공 데이터 • 3rd Party 데이터 소스 • Private Weather Station • … 파트너사: Apple, Samsung etc. Weather.com 웹페이지 모바일 앱 (iOS, Android …) B2B 서비스 예보 데이터 - ~ xxx TB Data Daily - From xxx+ Sources
  6. 더 웨더 컴퍼니 시스템의 규모 • 대량의 데이터와 분석을 위한

    시스템 • 다양한 서비스를 제공하는 B2C, B2B API 시스템 • 다양한 3rd Party 연계 • 150억~250억 Requests/Day (12만~27만 RPS)
  7. 데브옵스란? DevOps (a clipped compound of "development" and "operations") is

    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에서…
  8. 데브옵스의 목표 • 서비스 개발 라이프 사이클의 단축 • 새로운

    기능 개발, 버그 픽스, 업데이트를 빈번하게 수행 • 비즈니스 목표와 연관(alignment) 되어야 함
  9. 자동화(Automation) • Automate Everything (인프라 ~ 서비스) • 라이프 사이클

    각 단계를 파이프라인화 • 실수를 최소화 • 다양한 도구의 활용이 필요 • 가장 가시적인 부분 • 자동화가 데브옵스의 전부가 아님
  10. 데브옵스는 왜 모호하게 느껴질까? • 데브옵스 ≠ 자동화 툴의 도입

    • 행동의 변화 • 리더십의 변화 • (어쩌면) 조직 구조의 변화 • … • 위와 같은 변화를 각 조직의 상황과 특성 그리고 비즈니스에 맞춰서 무엇이 최선일지 고민해야 할 문제
  11. 더 웨더 컴퍼니의 데브옵스 • 한 사례로서 TWC의 데브옵스에 대해

    소개 • SI 프로젝트에서의 경험과 일부 비교 • 아래와 같이 생각한다면 오해입니다. J - 해당 사례가 best practice이다. - 해당 사례가 데브옵스의 방향을 완전하게 구현하고 있다. - TWC는 완전한 데브옵스 조직이다. • TWC의 데브옵스 엔지니어로써 일을 하면서 느끼고 경험한 것들을 공유하고자 함
  12. 더 웨더 컴퍼니의 데브옵스 – 릴리즈 주기 • 애자일 방식으로

    개발 수행 - 스프린트, 스크럼, 코드 리뷰, … • 일반적으로 2주 +- 단위로 릴리즈 수행 • 신규 API와 같은 경우는 개발 기간이 길어질 수 있기 때문에 충분한 품질 점검 과정을 거쳐 릴리즈 수행 • 개발팀 단위로 업무 시간 내에 다운타임 없이 릴리즈 수행 • 오토스케이링 그룹 또는 스크립트 사용
  13. 더 웨더 컴퍼니의 데브옵스 – 문화(Culture) • 데브옵스 vs. 데브옵스

    엔지니어 § 데브옵스 엔지니어 : 현재 수행하고 있는 역할의 이름 (직무) § 데브옵스 엔지니어라는 역할에 대한 정의는 회사마다 차이가 있을 것으로 생각됨 § 현재 수행 중인 업무 내용은 Ops쪽에 가까움 § 클라우드 상에서 인프라 및 CI/CD와 관련된 업무를 수행하면서 파이프라인을 관리하고 자동화 하는 역할을 보통 데브옵스 엔지니어로 정의 하는 것 같음 § 데브옵스 엔지니어(또는 SRE 등)와 같은 직무를 데브옵스와 동일하게 보기는 어렵다고 생각함
  14. Backlogs Development Team Development Team 더 웨더 컴퍼니의 데브옵스 –

    문화(Culture) • 팀 구성 Sales Engineering Product Owner Team Leader Development Team (Agile Sprint Team) (6~8) Developer (3~4) QA (1~2) DevOps Engineer (1) Lead Developer (1) ticket ticket ticket . . . Sprint tickets ticket ticket ticket . . .
  15. 더 웨더 컴퍼니의 데브옵스 – 문화(Culture) • 매일 스크럼을 통해

    개발/QA/데브옵스 엔지니어의 한일/해야할 일/이슈에 대해 공유함 • 비즈니스 목표 선상에서 티켓을 생성하고 우선순위를 조정 • 각 티켓의 요구사항이 운영환경에 반영되기까지 모든 팀원이 기여함 • 이슈에 대해 모두 공유하고 함께 고민함 • 많은 부분의 커뮤니케이션이 슬랙을 통해 이루어지고 많은 경우 조직 전체에게 오픈되어 있음 • Private Channel의 경우에도 이슈 해결에 필요시 참여하여 협업함
  16. Work items Work items 더 웨더 컴퍼니의 데브옵스 – 문화(Culture)

    / 비교 • 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
  17. 더 웨더 컴퍼니의 데브옵스 – 문화(Culture) • 개발팀/운영팀/테스트팀이 각각의 Silo화

    될 가능성이 높음 • 리더십 레벨에서 공동의 비즈니스 목표를 위해 각 팀에서 해야 할 일을 협의 하겠지만 이해관계에 차이가 있을 가능성이 높음 • 업무 분장이 된 이후에는 각 팀 내에서만 업무가 진행되고 1주에 한번 정도 리더십 미팅에서 진행 현황이 공유 되는 정도의 커뮤니케이션이 될 가능성이 높음 • 이슈 발생시 문제가 충분히 커진 후에야 협업이 가능한 경우가 많음
  18. 더 웨더 컴퍼니의 데브옵스 – 문화(Culture) • 커뮤니케이션 Sales Engineering

    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 채널
  19. 더 웨더 컴퍼니의 데브옵스 – 문화(Culture) • 리더십 § Silo간의

    벽을 허무는데 있어 중요한 역할자 § 개발팀간 또는 다른 조직 간의 협업을 지원 § 팀으로서 문제를 해결하는 것에 대해 지속적으로 강조함 § 이슈에 대해 발생 원인에 대해 비난하기보다 문제 해결을 강조함
  20. 더 웨더 컴퍼니의 데브옵스 – 문화(Culture) • 작은 변화 &

    많은 릴리즈 § 개선사항을 정의하고 있는 티켓의 변경 영향도는 대체로 아주 작은편 § 작은 변경 사항은 문제가 발생하더라도 대처 하기가 용이함 § 적은 부담으로 릴리즈를 수행할 수 있음 § 릴리즈의 주기를 짧게 할 수 있음 § 필요한 변경사항을 빠르게 릴리즈 할 수 있음
  21. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation) • 자동화의 범위 §

    Automate Everything § Infrastructure as Code - Terraform - Chef(Configuration Management Tool) § CI/CD - Jenkins - shell scripts, python
  22. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation) • 인프라 관리 자동화의

    필요성 § 신규 API를 위해 마이크로 서비스를 하나 추가하는 경우 필요한 리소스 - 어플리케이션이 실행될 인스턴스 (최소 2개) - 로드 밸런서 - 인스턴스 이미지 - 오토스케일링 그룹 - 캐쉬 레이어 인스턴스 - 로드 밸런서 - … § 필요한 리소스들을 그 때마다 웹 콘솔이나 스크립트를 작성하여 관리하기에는 리소스가 너무나 많음
  23. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation) • Terraform § SaaS,

    PaaS, IaaS 에서 제공하는 API 호출을 template 형태로 제공 § 예를들어, 클라우드 서비스에서 제공하는 VM 인스턴스를 하나 생성하고자 할 때 - 웹 콘솔과 같은 UI를 통해 생성하는 방법 - API를 CLI에서 호출하여 생성하는 방법 이 있다면, Terraform은 API호출을 위한 파라미터들을 template 형태로 정의하여 API 호출이 가능하게 도와줌
  24. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation) • Chef § Configuration

    Management Tool § Terraform이 VM, 로드밸런서, 오토스케일링 그룹 등의 인프라 리소스를 관리한다면 CM Tool은 VM 인스턴스의 OS 환경 설정이나 어플리케이션의 배포 등을 자동화하기 위한 도구임
  25. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation) Dev. Env. (1Region) QA

    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의 역할
  26. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation) • 도커와 쿠버네티스 §

    도커와 쿠버네티스로 옮겨 갈 경우 관리 체계의 많은 부분이 변경 되어야함 § 기존의 Terraform과 Configuration Management Tool의 역할이 많은 부분에서 감소하게 될 것 § Docker Image 기반의 새로운 파이프 라인 정의와 도구들 필요
  27. 더 웨더 컴퍼니의 데브옵스 – 측정(Measurement) • 릴리즈 소요 시간

    • 시스템 퍼포먼스 - 리소스 사용율, 응답시간, RPS 등 • 에러율 - 4xx, 5xx • 알람
  28. 더 웨더 컴퍼니의 데브옵스 – 공유(Sharing) • 커뮤니케이션 & 공유의

    중심 – 슬랙 § 메신저 § 화상 회의 § 자료 공유 § 히스토리 § 주제별 채널 § DataDog, PagerDuty 등의 서비스 연계