aws code 서비스 특집 - 아마존 devops와 codedeploy, codepipeline (윤석찬)
TRANSCRIPT
![Page 1: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/1.jpg)
아마존의 데브 옵스 개발 배포 경험을 기반한
AWS 코드 서비스 활용하기
윤석찬
@channyun
AWS Korea 테크에반젤리스트
![Page 2: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/2.jpg)
목차
• 아마존닷컴의 DevOps 이야기• DevOps를 위한 AWS 코드 서비스
ü Code Commitü Code Pipelineü Code Deploy
• 미래의 DevOpsü ChatOpsü Voice Ops
![Page 3: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/3.jpg)
Cloud_Microservices_
DevOps_요즘 이런용어들이 유행입니다!
![Page 4: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/4.jpg)
"미래는 이미 와 있다. 단지 널리퍼져있지 않을 뿐이다.”
"The future is already here — it's just not very evenly distributed.”
윌리엄 깁슨
![Page 5: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/5.jpg)
MicroservicesD
evO
ps
![Page 6: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/6.jpg)
DevOps란 무엇일까요?
DevOps = 소프트웨어 개발 사이클 속도를 높이는 것
developers customers
releasetestbuild
plan monitor
배포 파이프라인
피드백 메카니즘
소프트웨어 개발 사이클
![Page 7: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/7.jpg)
Origin of DevOps?
아마존닷컴의 사례
![Page 8: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/8.jpg)
“아마존닷컴은 10년전 (1995년) 웹 서버와 데이터베이스 백엔드를가지는 모놀리식(Monolithic) 애플리케이션이었습니다.”
A Conversation with Werner Vogels , 2006 http://queue.acm.org/detail.cfm?id=1142065
![Page 9: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/9.jpg)
모놀로식 개발 사이클
developers
releasetestbuild
delivery pipelineapp
![Page 10: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/10.jpg)
“5년전(2001년) 아마존은 주요한 아키텍쳐 변화가 있었는데2 티어(tier)기반에서 서로 다른 애플리케이션 기능을제공하는 분산 서비스 플랫폼으로 변화하였습니다… 여러분이 지금 Amazon.com의 첫화면에 들어온다면, 그페이지를 생성하기 위해 100여개가 넘는 서비스를호출하여 만들고 있습니다.”
A Conversation with Werner Vogels , 2006
![Page 11: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/11.jpg)
Amazon.com - 서비스 지향 아키텍쳐 (SOA)
PrimitivesSingle-purposeAPI Interfaced
Highly decoupled“Microservices”
![Page 12: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/12.jpg)
애플리케이션을 완성하기 위한 원료 혹은재료로서 이를 빌딩블록으로 조립하여, 원하는 서비스를만들 수 있는구성요소를 말한다. 마치 레고블럭을 조립하여 우리가 원하는
모양의 레고를 만들 수있는것과 같은 원리
primitives
![Page 13: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/13.jpg)
AWS 역시 다양한 재료 서비스를 조합원하는 클라우드 아키텍쳐 구성
![Page 14: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/14.jpg)
“넷플릭스는 수백개의 마이크로서비스를 AWS 클라우드 기반으로운영하고 있는 것으로 유명하다. 또한, 인터널 API를 기반으로가벼운 REST 프로토콜을 활용하여 서비스 통신을 하고 있으며, Netflix Internal Web Service Framework(NIWS) 그리고 이러한다양한 서비스를 발견하기 위한 목록 관리를 위한 Eureka, 서비스간 유연한 소통을 위한 Ribbon 등 클라우드 내 서비스운영을 위한 수십개의 오픈 소스 프로젝트를http://netflix.github.io/ 에 공개하고 있다.”
http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html
![Page 15: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/15.jpg)
© Adrian Crockford, DockerCon 2014
마이크로 서비스 구조의 전형적 특징 – Death Star 아키텍쳐
![Page 16: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/16.jpg)
How to DevTeam?“제품 개발팀을 작게 유지하라 이렇게 하면프로젝트를 실제로 실행가능하고 측정가능한 단위로쪼개야만 하게 된다. 아마존의 대부분의 새로운기능들과 서비스는 두 판의 라지 사이즈 피자로 먹일수 있는 팀에 의하여 개발되었다.” 제프베조스의 2006년 11월 Business Week 인터뷰
![Page 17: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/17.jpg)
각 팀이 분산된민첩하면서, 독립적인,신뢰하고, 오너쉽을
가진 서비스 팀“DevOps”
피자 두판의 팀이란?
![Page 18: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/18.jpg)
작은 팀과 서비스에게 필요한 개발 도구?
developers delivery pipelineservices
???
![Page 19: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/19.jpg)
• 셀프 서비스 지향• 기술 독립적• 베스트 프랙티스 장려• 단일 목적의 서비스
DevOps 도구의 특징
![Page 20: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/20.jpg)
Amazon 내부 시스템
아폴로- 배포 서비스
파이프라인 – 출시 자동화
• 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: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/21.jpg)
단지 기다리고있음
WaitWrite Code WaitBuild
Code WaitDeploy to Test
Deploy to
Prod
![Page 22: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/22.jpg)
단지 기다리고있음
WaitWrite Code WaitBuild
Code WaitDeploy to Test
Deploy to
Prod
Mins Days Mins Days Mins Days Mins
![Page 23: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/23.jpg)
단지 기다리고있음
WaitWrite Code WaitBuild
Code WaitDeploy to Test
Deploy to
Prod
Weeks
Mins Days Mins Days Mins Days Mins
![Page 24: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/24.jpg)
단지 기다리고있음
WaitWrite Code WaitBuild
Code WaitDeploy to Test
Deploy to
Prod
Weeks
Mins Days Mins Days Mins Days Mins
![Page 25: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/25.jpg)
마이크로서비스 개발 사이클
developers delivery pipelinesservices
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
![Page 26: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/26.jpg)
Amazon 내부 시스템
“수천명의 아마존 개발자들은 매일 Apollo를사용하여, Java, Python, Ruby 앱을 웹서비스로 네이티브 코드 서비스로 배포하고있습니다. 지난 12개월 동안 Apollo는5천만번이 넘는 개발, 테스트 및 정식서버로 배포가 진행되었습니다. 이는 초당한번 평균 한번 이상의 배포횟수입니다. “Werner Vogels, The Story of Apollo - Amazon’s Deployment Engine, 2014http://www.allthingsdistributed.com/2014/11/apollo-amazon-deployment-engine.html
![Page 27: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/27.jpg)
DevOps에 대한 고객의 소리
![Page 28: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/28.jpg)
DevOps LifeCycle
모니터링구축배포테스트빌드코딩
AWSElastic
Beanstalk
AWSOpsWorks
AWS CloudWatch
AWSCloudFormation
AWS CodePipeline
AWS CodeCommit
AWS CodeDeploy
AWS DevOps Tools
![Page 29: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/29.jpg)
AWS Code 서비스로 배포하기
Testing Staging Production
deploy
deploy
deploySource Build
release
AWS CodeDeploy
AWS CodePipeline
AWS CodeCommit
![Page 30: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/30.jpg)
AWS CodeDeploy – 서울 리전 사용 가능
• 손쉽고 믿을 수 있는 배포 방법• 다양한 배포 옵션 제공• AWS 외부 서버 배포도 가능
TestCodeDeployv1, v2, v3
Production
Dev
applicationrevisions
deployment groups
![Page 31: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/31.jpg)
단계 1. 애플리케이션 패키지 (appspec.yaml)version: 0.0os: linuxfiles:
- source: chef/destination: /etc/chef/codedeploy
- source: target/hello.wardestination: /var/lib/tomcat6/webapps
hooks:ApplicationStop:
- location: deploy_hooks/stop-tomcat.shBeforeInstall:
- location: deploy_hooks/install-chef.shAfterInstall:
- location: deploy_hooks/librarian-install.shApplicationStart:
- location: deploy_hooks/chef-solo.shValidateService:
- location: deploy_hooks/verify_service.sh
![Page 32: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/32.jpg)
단계 1. 애플리케이션 패키지 (appspec.yaml)version: 0.0os: linuxfiles:
- source: chef/destination: /etc/chef/codedeploy
- source: target/hello.wardestination: /var/lib/tomcat6/webapps
hooks:ApplicationStop:
- location: deploy_hooks/stop-tomcat.shBeforeInstall:
- location: deploy_hooks/install-chef.shAfterInstall:
- location: deploy_hooks/librarian-install.shApplicationStart:
- location: deploy_hooks/chef-solo.shValidateService:
- location: deploy_hooks/verify_service.sh
![Page 33: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/33.jpg)
version: 0.0os: linuxfiles:
- source: chef/destination: /etc/chef/codedeploy
- source: target/hello.wardestination: /var/lib/tomcat6/webapps
hooks:ApplicationStop:
- location: deploy_hooks/stop-tomcat.shBeforeInstall:
- location: deploy_hooks/install-chef.shAfterInstall:
- location: deploy_hooks/librarian-install.shApplicationStart:
- location: deploy_hooks/chef-solo.shValidateService:
- location: deploy_hooks/verify_service.sh
단계 1. 애플리케이션 패키지 (appspec.yaml)version: 0.0os: linuxfiles:
- source: chef/destination: /etc/chef/codedeploy
- source: target/hello.wardestination: /var/lib/tomcat6/webapps
hooks:ApplicationStop:
- location: deploy_hooks/stop-tomcat.shBeforeInstall:
- location: deploy_hooks/install-chef.shAfterInstall:
- location: deploy_hooks/librarian-install.shApplicationStart:
- location: deploy_hooks/chef-solo.shValidateService:
- location: deploy_hooks/verify_service.sh
![Page 34: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/34.jpg)
단계 2. 배포 인스턴스 선택
Agent Agent Agent
Staging
Agent Agent
Agent Agent
Agent
Agent
Production
Deployment groupDeployment group
인스턴스 모음:• Auto Scaling group• Amazon EC2 tag• On-premises tag
![Page 35: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/35.jpg)
단계 3. 배포 하기aws deploy create-deployment \
--application-name MyApp \
--deployment-group-name TargetGroup \
--s3-location bucket=MyBucket,key=MyApp.zip
AWS CLI & SDKsAWS ConsoleCI / CD PartnersGitHub
![Page 36: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/36.jpg)
배포 설정 방법
v2 v2 v2 v2 v2 v2 v2 v2All-at-onceMin. healthy hosts = 0
v2 v2 v2 v2 v1 v1 v1 v1Half-at-a-timeMin. healthy hosts = 50%
v2 v2 v1 v1 v1 v1 v1 v1[Custom]Min. healthy hosts = 75%
v2 v1 v1 v1 v1 v1 v1 v1One-at-a-timeMin. healthy hosts = 99%
![Page 37: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/37.jpg)
다운타임 없는 롤링 업데이트(Rolling Update)
v1v1 v1
Load Balancer
![Page 38: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/38.jpg)
다운타임 없는 롤링 업데이트(Rolling Update)
v1v2 v1
Load Balancer
![Page 39: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/39.jpg)
다운타임 없는 롤링 업데이트(Rolling Update)
v2v2 v1
Load Balancer
![Page 40: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/40.jpg)
다운타임 없는 롤링 업데이트(Rolling Update)
v2v2v2
Load Balancer
![Page 41: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/41.jpg)
다운타임 없는 롤링 업데이트(Rolling Update)
v2v2 v2
Load Balancer
![Page 42: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/42.jpg)
서비스 배포 문제 발생 시 – 헬스 트래킹
v2v2 v2
Load Balancer
![Page 43: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/43.jpg)
서비스 배포 문제 발생 시 – 헬스 트래킹
v3 v2 v2Stop
Load Balancer
![Page 44: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/44.jpg)
서비스 배포 문제 발생 시 – 헬스 트래킹
v2v2 v2
Load Balancer
Rollback
![Page 45: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/45.jpg)
서비스 배포 문제 발생 시 – 헬스 트래킹
v2v2 v2
Load Balancer
![Page 46: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/46.jpg)
AWS CodeDeploly 기반 배포
https://youtu.be/Bd02bs-i2ME
![Page 47: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/47.jpg)
AWS CodePipeline
• 각자의 배포 단계에 맞게 파이프라인 시각적 구성 가능• 빠르고 신뢰성 있는 배포 및 제품 테스트 시간 감소• 코드 변경에 민감하게 자동 파이프라인 실행• 서드 파티 도구와 연계 가능
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 48: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/48.jpg)
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
PipelineStage
Action
Transition
MyApplication AWS CodePipeline
![Page 49: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/49.jpg)
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
NotifyDevelopersLambda
MyApplication
Parallel actions
AWS CodePipeline
![Page 50: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/50.jpg)
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
NotifyDevelopersLambda
TestAPIRunscope
MyApplication
Sequential actions
AWS CodePipeline
![Page 51: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/51.jpg)
8. Retrieve build artifact
EC2 instance
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
Source Artifact
S3
Build Artifact
S3
5. Get source artifact
1. Get Changes
6. Store build artifact
3. Poll for Job
4. Acknowledge Job
7. Put Success
9. Deploy build artifact
Elastic BeanstalkWeb container
Java App
MyApplication AWS CodePipeline
![Page 52: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/52.jpg)
서드 파티도구와의연계 가능Source Build Test Deploy
![Page 53: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/53.jpg)
AWS CodeCommit
• Git 코드 저장소 제공• Amazon S3의 확장성, 가용성 및 내구성 제공• 고객의 요구에 맞는 암호화 기능 제공
git pull/push CodeCommit
Git objects inAmazon S3
Git index inAmazon DynamoDB
Encryption keyin AWS KMS
SSH or HTTPS
![Page 54: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/54.jpg)
AWS 코드 서비스 기반 DevOps 프로세스
1. Github에서 EC2 인스턴스로 코드 배포하기2. CodeCommit에서 ElasticBeanstalk으로 코드 배포하기3. 서드 파티 Test 단계 추가 및 파이프라인 변경하기
https://youtu.be/v-o3UafL1hU
![Page 55: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/55.jpg)
Amazon S3
Pro
d -
subn
et
Webserver
Appserver
Amazon RDS
ELB
Production
Dev
-su
bnet
Auto Scaling group
Webserver
Auto Scaling group
Appserver
Amazon RDS
ELB
Development
Test
-su
bnet
Web server
Appserver
Amazon RDS
ELB
Test
CodePipleline CodeDeployCodeCommitServices- Highly available CloudWatch alarm
CloudTrail
CloudFormation
Elastic Beanstalk
AWS 개발 및 배포서비스를통한 DevOps 아키텍처
![Page 56: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/56.jpg)
Future of DevOps?ChatOpsVoiceOps
![Page 57: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/57.jpg)
ChatOps란?
• “Putting tools right in the middle of the conversation” • Jesse Newland, GitHub • Source: https://speakerdeck.com/jnewland/chatops-at-github
• “ChatOps is a collaboration model that connects people, tools, process, and automation into a transparent workflow.”
• Sean Regan, Atlassian• Source: http://blogs.atlassian.com/2016/01/what-is-chatops-adoption-guide/
• “To move fast and maintain stability it’s important to have a culture of automation, measurement and sharing.”
• Jason Hand, Victorops Author of ChatOps For Dummies • Source: http://www.slideshare.net/VictorOps/chatops
![Page 58: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/58.jpg)
Why ChatOps?개발자의 행복!
서버에 접속할 필요가 없음.
![Page 59: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/59.jpg)
Why ChatOps?운영자의 행복!
봇에게 시키면 됨
![Page 60: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/60.jpg)
Why ChatOps?서로의 행복!채팅을 통한
빠른 소통 및 해결
![Page 61: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/61.jpg)
Hubot By GitHub Written in Coffeescript + Nodejs
LitaWritten in Ruby
ErrWritten in Python
ChatOps 플랫폼
![Page 62: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/62.jpg)
Slack의 WebHook 기능 활용
![Page 63: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/63.jpg)
AWS CodeDeploy와 Hubot & Slack 연동https://www.youtube.com/watch?v=8MB9lPbQb9s
![Page 64: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/64.jpg)
![Page 65: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/65.jpg)
![Page 66: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/66.jpg)
AWS Lambda와 Slack을 이용한 Chat 구현
https://aws.amazon.com/ko/blogs/korea/slack-devops-with-aws-lambda-and-eb/
![Page 67: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/67.jpg)
What’s AWS Lambda?
높은 확장성 및빠른 서비스 연동
서버 필요 없이코드만 배포
함수 실행 시100ms 단위 과금
서버 없는, 이벤트 처리 방식의 컴퓨팅 서비스AWS Lambda = 클라우드 함수 기반 마이크로서비스
![Page 68: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/68.jpg)
AWS Lambda : 동작 원리Bring your own code• Node.js, Java, Python• Java = Scala Clojure 등의
어떠한 JVM기반 언어.• Bring your own libraries
유연한 호출 경로• Event 기반 호출 옵션 (여러
AWS 서비스들과 통합)• REST API 호출 가능 (Amazon
API Gateway와 연동)
단순한 자원 모델• 128MB부터 1.5GB까지 64MB
단위로 메모리 설정• 할당된 메모리에 비례하여
CPU 및 네트웍 자원 할당• 실제 사용량 내역 보고
효과적인 권한 통제• AWS IAM (Identity and
Access Management) Role을사용한 실행 권한 설정
• AWS 이벤트 소스에 대한자원 정책
![Page 69: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/69.jpg)
AWS Lambda 예제: 이미지 썸네일 만들기
![Page 70: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/70.jpg)
Alexa Skills Kit과 AWS Lambda를 이용한VoiceOps
https://youtu.be/azKYe4IWTxA
AWSKRUG 발표 영상https://www.youtube.com/watch?v=cz-2JL9XAy4
![Page 71: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/71.jpg)
http://developers.amazon.com
![Page 72: AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)](https://reader031.vdocuments.mx/reader031/viewer/2022013106/5878c4231a28ab26728b5a4f/html5/thumbnails/72.jpg)
https://echosim.io/