$30 off During Our Annual Pro Sale. View Details »

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

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

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

MICROSOFTWARE

December 17, 2018
Tweet

More Decks by MICROSOFTWARE

Other Decks in Programming

Transcript

  1. DevOps in
    The Weather Company
    An IBM Business

    View Slide

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

    View Slide

  3. The Weather Company, an IBM business
    더 웨더 컴퍼니 소개

    View Slide

  4. 더 웨더 컴퍼니 (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

    View Slide

  5. 더 웨더 컴퍼니 서비스 종류
    The Weather Company, an IBM business
    • On-Demand 기상 예보
    § 시간별 예보
    § 10일 예보
    § 월별 예보

    View Slide

  6. 더 웨더 컴퍼니 서비스 종류
    • 다양한 이미지 레이어

    View Slide

  7. 더 웨더 컴퍼니 서비스 종류
    • 그 밖의 예보

    View Slide

  8. 더 웨더 컴퍼니 서비스 종류
    • 경보(alerts)

    View Slide

  9. 더 웨더 컴퍼니 모바일 서비스
    삼성 갤럭시 S8, S8+ 위젯 (한국, 일본, 중국 제외) 애플 날씨 앱 www.weather.com
    The Weather Company, an IBM business

    View Slide

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

    View Slide

  11. 더 웨더 컴퍼니 시스템의 규모
    • 대량의 데이터와 분석을 위한 시스템
    • 다양한 서비스를 제공하는 B2C, B2B API 시스템
    • 다양한 3rd Party 연계
    • 150억~250억 Requests/Day (12만~27만 RPS)

    View Slide

  12. The Weather Company, an IBM business
    데브옵스 인트로: CAMS

    View Slide

  13. 데브옵스란?
    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에서…

    View Slide

  14. 데브옵스의 목표
    • 서비스 개발 라이프 사이클의 단축
    • 새로운 기능 개발, 버그 픽스, 업데이트를 빈번하게 수행
    • 비즈니스 목표와 연관(alignment) 되어야 함

    View Slide

  15. CAMS
    • Culture
    • Automation
    • Measurement
    • Sharing

    View Slide

  16. 문화(Culture)
    • Silo의 해체
    • 리더십의 지원
    • 비즈니스 목표가 공통된 목표
    • 조직의 구조

    View Slide

  17. 자동화(Automation)
    • Automate Everything (인프라 ~ 서비스)
    • 라이프 사이클 각 단계를 파이프라인화
    • 실수를 최소화
    • 다양한 도구의 활용이 필요
    • 가장 가시적인 부분
    • 자동화가 데브옵스의 전부가 아님

    View Slide

  18. 측정(Measurement)
    • 시스템 모니터링
    • 시스템 로그
    • 사용자의 피드백
    • 라이프 사이클 주기

    View Slide

  19. 공유(Sharing)
    • 지식과 경험의 공유
    • 자유로운 접근
    • Silo 탈피
    • 리더십의 지원

    View Slide

  20. 데브옵스는 왜 모호하게 느껴질까?
    • 데브옵스 ≠ 자동화 툴의 도입
    • 행동의 변화
    • 리더십의 변화
    • (어쩌면) 조직 구조의 변화
    • …
    • 위와 같은 변화를 각 조직의 상황과 특성 그리고 비즈니스에 맞춰서
    무엇이 최선일지 고민해야 할 문제

    View Slide

  21. The Weather Company, an IBM business
    더 웨더 컴퍼니의 데브옵스

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. 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 . . .

    View Slide

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

    View Slide

  27. 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

    View Slide

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

    View Slide

  29. 더 웨더 컴퍼니의 데브옵스 – 문화(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 채널

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  35. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation)
    • Terraform
    https://softlayer.github.io/reference/services/
    SoftLayer_Virtual_Guest/createObject/

    View Slide

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

    View Slide

  37. 더 웨더 컴퍼니의 데브옵스 – 자동화(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의 역할

    View Slide

  38. 더 웨더 컴퍼니의 데브옵스 – 자동화(Automation)
    • 도커와 쿠버네티스
    § 도커와 쿠버네티스로 옮겨 갈 경우 관리 체계의 많은 부분이 변경 되어야함
    § 기존의 Terraform과 Configuration Management Tool의 역할이 많은 부분에서 감소하게 될

    § Docker Image 기반의 새로운 파이프 라인 정의와 도구들 필요

    View Slide

  39. 더 웨더 컴퍼니의 데브옵스 – 측정(Measurement)
    • 릴리즈 소요 시간
    • 시스템 퍼포먼스
    - 리소스 사용율, 응답시간, RPS 등
    • 에러율
    - 4xx, 5xx
    • 알람

    View Slide

  40. 더 웨더 컴퍼니의 데브옵스 – 측정(Measurement)
    • 모니터링 • 알람

    View Slide

  41. 더 웨더 컴퍼니의 데브옵스 – 공유(Sharing)
    • 커뮤니케이션 & 공유의 중심 – 슬랙
    § 메신저
    § 화상 회의
    § 자료 공유
    § 히스토리
    § 주제별 채널
    § DataDog, PagerDuty 등의 서비스 연계

    View Slide

  42. The Weather Company, an IBM business
    IBM Cloud Garage Method

    View Slide

  43. IBM Cloud Garage Method
    https://www.ibm.com/cloud/garage/
    • Enterprise Design Thinking
    • Lean Startup
    • Agile Development
    • Continuous Delivery

    View Slide

  44. IBM Cloud Garage Method
    https://www.ibm.com/cloud/garage/category/practices
    • Culture
    • Discover
    • Envision
    • Build
    • Run
    • Manage
    • Learn

    View Slide

  45. The Weather Company, an IBM business
    감사합니다.

    View Slide