Slide 1

Slide 1 text

DevOps in The Weather Company An IBM Business

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

CAMS • Culture • Automation • Measurement • Sharing

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

The Weather Company, an IBM business IBM Cloud Garage Method

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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