Top Banner
윤석찬 아마존웹서비스 테크 에반젤리스트 1LQJWWauW 데브옵스5Nv@Ys의 현재와 미래 2VJboW 사례를 중심으로
52

데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Apr 15, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

윤석찬 아마존웹서비스 테크 에반젤리스트1LQJWWauW

데브옵스5Nv@Ys의 현재와 미래2VJboW 사례를 중심으로

Page 2: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

목차

• 아마존의 5Nv@Ys 이야기• 5Nv@Ys를 위한 2HD 코드 서비스

ü 4oMN 4oVVRtü 4oMN ARYNURWNü 4oMN 5NYUoa

• 미래의 5Nv@Ysü 4QJt@Ysü GoRLN @Ys

Page 3: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Cloud_Microservices_

DevOps_요즘 이런용어들이 유행입니다!

Page 4: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

"미래는 이미 와 있다. 단지 널리퍼져있지 않을 뿐이다.”

"The future is alrea'y here — it"s just .ot very eve.ly 'istribute'.”

윌리엄 깁슨

Page 5: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

MicroservicesD

evO

ps

Page 6: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

DevOps란 무엇일까요?

5Nv@Ys / 소프트웨어 l발 사이클 속도를 높이는 n

developers customers

releasetestbuild

plan monitor

배포 파이프라인

피드백 메카니즘

소프트웨어 l발 사이클

Page 7: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Origin of DevOps?

아마존닷컴의 사례

Page 8: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

e아마존닷컴은 10년전 (1--5년 웹 서버와 데이터베이스 백엔드를h지는 모놀리식(Monolithic) 애플리케이션이었습니다.f

A Conversation with Werner Vogels , 2006 http://queue.acm.org/detail.cfm?id=1142065

Page 9: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

모놀로식 개발 사이클

developers

releasetestbuild

delivery pipelineapp

Page 10: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

e5년전(2001년 아마존은 주요한 아키텍쳐 변화h 있었는데2 티어(tRNr 기반에서 서로 다른 애플리케이션 기능을제u하는 분산 서비스 플랫폼으로 변화하였습니다g 여러분이 지금 2VJboW.LoV의 첫화면에 들어온다면! 그페이지를 생성하기 위해 100여개가 넘는 서비스를호출하여 만들t 있습니다.f

A Conversation with Werner Vogels , 2006

Page 11: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Amazon.com - 서비스 지향 아키텍쳐 (SOA)

ArRVRtRvNsDRWPUN-YurYosN2A: :WtNrOJLNM

9RPQUa MNLouYUNMeMRLrosNrvRLNsf

Page 12: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

애플리케이션을 완성하기 위한 원료 혹은재료로서 이를 빌딩블록으로 조립하여, 원하는 서비스를만들 수 있는구성요소를 말한다. 마치 레고블럭을 조립하여 우리가 원하는

모양의 레고를 만들 수있는것과 같은 원리

primitives

Page 13: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

2HD 역시 다양한 재료 서비스를 조합원하는 클라우드 아키텍쳐 구성

Page 14: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

e넷플릭스는 수백l의 마이크로서비스를 2HD 클라우드 기반으로운영하t 있는 n으로 유명하다. 또한! 인터널 2A:를 기반으로h벼운 C6DE 프로토콜을 활용하여 서비스 통신을 하t 있으며! Netflix Internal Web Service Framework(NIWS) 그리t 이러한다양한 서비스를 발p하기 위한 목록 w리를 위한 6urNTJ! 서비스j 유연한 소통을 위한 CRKKoW 등 클라우드 내 서비스운영을 위한 수십l의 오픈 소스 프로젝트를QttY.//WNtOURx.PRtQuK.Ro/ 에 ul하t 있다.f

http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html

Page 15: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

© Adrian Crockford, DockerCon 2014

마이크로 서비스 구조의 전형적 특징 – Death Star 아키텍쳐

Page 16: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

How to DevTeam?e제품 l발팀을 작o 유지하라 이렇o 하면프로젝트를 실제로 실행h능하t 측정h능한 단위로쪼l야만 하o 된다. 아마존의 대부분의 새로운기능들v 서비스는 두 판의 라지 사이즈 피자로 먹일수 있는 팀에 의하여 l발되었다.f 제프베조스의 2006년 11월 3usRWNss HNNT 인터뷰

Page 17: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

i 팀이 분산된민첩하면서! 독립적인!신뢰하t! 오너쉽을

h진 서비스 팀“DevOps”

피자 두판의 팀이란?

Page 18: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

작은 팀과 서비스에게 필요한 개발 도구?

developers delivery pipelineservices

???

Page 19: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

• 셀프 서비스 지향• 기술 독립적• 베스트 프랙티스 장려• 단일 목적의 서비스

DevOps 도구의 특징

Page 20: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Amazon 내부 시스템

아폴로- 배포 서비스

파이프라인 c 출시 자동화

• Deployment service• No downtime deployments• Health tracking• Versioned artifacts and rollbacks

• Continuous delivery• Automated release process• Faster and more reliable releases• >90% of teams

Page 21: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

마이크로서비스 개발 사이클

developers delivery pipelinesservices

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

Page 22: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Amazon 내부 시스템

e수천명의 아마존 l발자들은 매일 2YoUUo를사용하여! JJvJ! AatQoW! CuKa 앱을 웹서비스로 네이티브 코드 서비스로 배포하t있습니다. 지난 12l월 동안 2YoUUo는5천만번이 넘는 개발, 테스트 및 정식서버로 배포가 진행되었습니다. 이는 초당한번 평균 한번 이상의 배포횟수입니다. eHNrWNr GoPNUs! EQN Dtora oO 2YoUUo - 2VJboWds 5NYUoaVNWt 6WPRWN! 201)QttY.//www.JUUtQRWPsMRstrRKutNM.LoV/201)/11/JYoUUo-JVJboW-MNYUoaVNWt-NWPRWN.QtVU

Page 23: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

DevOps에 대한 고객의 소리

Page 24: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

DevOps LifeCycle

모니터링구축배포테스트빌드코딩

2HD6UJstRL

3NJWstJUT

2HD@YsHorTs

2HD 4UouMHJtLQ

2HD4UouMForVJtRoW

AWS CodePipeline

AWS CodeCommit

AWS CodeDeploy

AWS DevOps Tools

Page 25: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS Code 서비스로 배포하기

Testing Staging Production

deploy

deploy

deploy

Source Build

release

AWS CodeDeploy

AWS CodePipeline

AWSCodeCommit

Page 26: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS 코드 서비스 + 기타 도구와 연계 가능

Page 27: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

2HD 4oMN5NYUoa

손쉽t 믿을 수 있는 배포 방법다양한 배포 옵션 제u2HD 외부 서버 배포도 h능

TestCodeDeployv1, v2, v3

Production

Dev

applicationrevisions

deployment groups

Page 28: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS CodePipeline

i자의 배포 단s에 맞o 파이프라인 x성 h능제품 테스트 및 출시 속도 k소지속적인 배포 상태 확인 h능

Build1) Build2) Unit test

1) Deploy2) UI test

Source Beta Production1) Deploy2) Perf test

Gamma1) Deploy canary2) Deploy region 13) Deploy region 2

1) Pull

Page 29: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS CodeCommit

8Rt 코드 저장소 제u2VJboW D(의 확장성! h용성 및 내x성 제utm의 요x에 맞는 암호화 기능 제u

git pull/push CodeCommit

Git objects inAmazon S3

Git index inAmazon DynamoDB

Encryption keyin AWS KMS

SSH or HTTPS

Page 30: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS 코드 서비스 기반 DevOps 프로세스

1. 8RtQuK에서 642 인스턴스로 코드 배포하기2. 4oMN4oVVRt에서 6UJstRL3NJWstJUT으로 코드 배포하기(. 서드 파티 ENst 단s 추h 및 파이프라인 변r하기QttYs.//aoutu.KN/v-o(FJO=1QF

Page 31: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Future of DevOps?ChatOpsVoiceOps

Page 32: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

ChatOps란?

• “0HGGing GCClF righG in Ghe Aiddle C: Ghe cCnverFaGiCnN • -eFFe .eJland, GiG,H6 • 2CHrce: hGGDF://FDeakerdeck cCA/jneJland/chaGCDF-aG-giGhH6

• “ChaG/DF iF a cClla6CraGiCn ACdel GhaG cCnnecGF DeCDle, GCClF, DrCceFF, and aHGCAaGiCn inGC a GranFDarenG JCrk:lCJ N

• 2ean 1egan, AGlaFFian• 2CHrce: hGGD://6lCgF aGlaFFian cCA/2016/01/JhaG-iF-chaGCDF-adCDGiCn-gHide/

• “TC ACve :aFG and AainGain FGa6iliGy iG’F iADCrGanG GC have a cHlGHre C: aHGCAaGiCn, AeaFHreAenG and Fharing N • -aFCn ,and, VicGCrCDF AHGhCr C: ChaG/DF FCr DHAAieF • 2CHrce: hGGD://JJJ FlideFhare neG/VicGCr/DF/chaGCDF

Page 33: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Why ChatOps?l발자의 행복!

서버에 접속할 필요h 없음.

Page 34: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Why ChatOps?운영자의 행복!

봇에o 시키면 됨

Page 35: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Why ChatOps?서로의 행복!채팅을 통한

빠른 소통 및 해결

Page 36: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Hubot By GitHub Written in Coffeescript + Nodejs

LitaWritten in Ruby

ErrWritten in Python

ChatOps 플랫폼

Page 37: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Slack의 WebHook 기능 활용

Page 38: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS CodeDeploy와 Hubot & Slack 연동QttYs.//www.aoutuKN.LoV/wJtLQ0v/,M3-UAKBK-s

Page 39: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS Lambda와 Slack을 이용한 Chat 구현

https://aws.amazon.com/ko/blogs/korea/slack-devops-with-aws-lambda-and-eb/

Page 40: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

What’s AWS Lambda?

높은 확장성 및빠른 서비스 연동

서버 필요 없이코드만 배포

함수 실행 시100ms 단위 과금

서버 없는! 이벤트 처리 방식의 컴퓨팅 서비스2HD =JVKMJ / 클라우드 함수 기반 마이크로서비스

Page 41: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS Lambda : 동작 원리Bring your own code• ?oMN.Ss! JJvJ! AatQoW• JJvJ / DLJUJ 4UoSurN 등의

어떠한 JGM기반 언어.• 3rRWP aour owW URKrJrRNs

유연한 호출 경로• 6vNWt 기반 호출 옵션 (여러

2HD 서비스들v 통합 • C6DE 2A: 호출 h능 (2VJboW

2A: 8JtNwJa와 연동

단순한 자원 모델• 12,M3부터 1.583까지 6)M3

단위로 메모리 설정• 할당된 메모리에 비례하여

4AF 및 네트웍 자원 할당• 실제 사용량 내역 보t

효과적인 권한 통제• 2HD :2M (:MNWtRta JWM

2LLNss MJWJPNVNWt CoUN을사용한 실행 z한 설정• 2HD 이벤트 소스에 대한자원 정책

Page 42: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

AWS Lambda 예제: 이미지 썸네일 만들기

Page 43: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

MOBILE CHAT APP

AD DATA ANALYTICS AND ROUTING

MOBILE APP ANALYTICS

IMAGE CONTENT FILTERING

REAL-TIME VIDEO AD BIDDING

NEWS CONTENT PROCESSING

GENE SEQUENCE SEARCH

CLOUD TELEPHONY

DATA PROCESSING

WEB APPLICATIONS

WEB APPLICATIONSTHREAT INTELLIGENCE AND ANALYTICS

NEWS CONTENT PROCESSING

GAME METRICS ANALYTICS

EXAMPLES OF AWS LAMBDA

Page 44: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

HTML IN S3

JAVASCRIPT

COGNITO

API GATEWAY DYNAMODB

SEARCH

RECOMMEND

CREATE/UPDATE

SERVERLESS WEB APPLICATIONS

LAM BD A

Page 45: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

NODE.JS WEB APP

SERVER-SENT EVENT STREAMING RESPONSE

QUERY

S3

LAMBDACASCADE N

LAMBDACASCADE 0

LAMBDA COUNTING FUNCTION 0

USER

LAMBDA COUNTING FUNCTION 0

LAMBDA COUNTING FUNCTION 0

LAMBDA COUNTING FUNCTION 0

SERVERLESS DATA PROCESSING

WEB UI CASCADE PROCESS

Page 46: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

S3D YN AM OD B

M OBILE AN ALYT IC S

SN S

AM AZON C OGN ITO

API GATEW AY

LAM BD A

LAM BD A

LAM BD A NOTIFICATIONS

MOBILE DEVICE

MOBILE BACKEND

R D S

DATA AND CONTENT

ANALYTICS

SERVERLESS MOBILE APPLICATION

Page 47: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
Page 48: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
Page 49: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
Page 50: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

5oLT3Rt 서비스를 이용한 Slack 연동ChatOps driven Continuous Delivery in 3 minutesQttYs.//vRVNo.LoV/1(-(2(1)1

Page 51: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

2UNxJ DTRUU KRtv 2HD =JVKMJ를 이용한VoiceOps

QttYs.//aoutu.KN/JbKIN):HEx2

Page 52: 데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)

Q&A - 여러분의 피드백을 기다립니다!

• 2HD한y 사용자 모임. QttY.//JwsTr.orP• 2HD u식 블로그. QttY.//Jws.JVJboW.LoV/To/KUoPs/TorNJ• 2HD u식 소셜 미디어

@AWSKorea

AmazonWebServices

AWSKorea

AWSKorea