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

Post on 15-Apr-2017

1483 Views

Category:

Technology

19 Downloads

Preview:

Click to see full reader

Transcript

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

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

목차

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

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

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

Cloud_Microservices_

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

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

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

윌리엄 깁슨

MicroservicesD

evO

ps

DevOps란 무엇일까요?

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

developers customers

releasetestbuild

plan monitor

배포 파이프라인

피드백 메카니즘

소프트웨어 l발 사이클

Origin of DevOps?

아마존닷컴의 사례

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

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

모놀로식 개발 사이클

developers

releasetestbuild

delivery pipelineapp

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

A Conversation with Werner Vogels , 2006

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

ArRVRtRvNsDRWPUN-YurYosN2A: :WtNrOJLNM

9RPQUa MNLouYUNMeMRLrosNrvRLNsf

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

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

primitives

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

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

© Adrian Crockford, DockerCon 2014

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

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

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

h진 서비스 팀“DevOps”

피자 두판의 팀이란?

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

developers delivery pipelineservices

???

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

DevOps 도구의 특징

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

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

developers delivery pipelinesservices

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

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

DevOps에 대한 고객의 소리

DevOps LifeCycle

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

2HD6UJstRL

3NJWstJUT

2HD@YsHorTs

2HD 4UouMHJtLQ

2HD4UouMForVJtRoW

AWS CodePipeline

AWS CodeCommit

AWS CodeDeploy

AWS DevOps Tools

AWS Code 서비스로 배포하기

Testing Staging Production

deploy

deploy

deploy

Source Build

release

AWS CodeDeploy

AWS CodePipeline

AWSCodeCommit

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

2HD 4oMN5NYUoa

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

TestCodeDeployv1, v2, v3

Production

Dev

applicationrevisions

deployment groups

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

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

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

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

Future of DevOps?ChatOpsVoiceOps

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

Why ChatOps?l발자의 행복!

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

Why ChatOps?운영자의 행복!

봇에o 시키면 됨

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

빠른 소통 및 해결

Hubot By GitHub Written in Coffeescript + Nodejs

LitaWritten in Ruby

ErrWritten in Python

ChatOps 플랫폼

Slack의 WebHook 기능 활용

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

AWS Lambda와 Slack을 이용한 Chat 구현

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

What’s AWS Lambda?

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

서버 필요 없이코드만 배포

함수 실행 시100ms 단위 과금

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

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 이벤트 소스에 대한자원 정책

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

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

HTML IN S3

JAVASCRIPT

COGNITO

API GATEWAY DYNAMODB

SEARCH

RECOMMEND

CREATE/UPDATE

SERVERLESS WEB APPLICATIONS

LAM BD A

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

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

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

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

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

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

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

@AWSKorea

AmazonWebServices

AWSKorea

AWSKorea

top related