Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나

2,459 views

Published on

11월20일에 있었던 Partner Techshift에서 김 상필 솔루션즈 아키텍트가 발표한 'Dev Ops AWS Services ' 강연 발표자료입니다.

Published in: Technology

DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나

  1. 1. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved DevOps를 위한AWS 서비스 및 도구 소개 김상필 매니저 Enterprise Solutions Architect Amazon Web Services Korea AWS Techshift
  2. 2. 목차 • DevOps 및 CICD 개요 • 코드 배포 자동화  AWS CodeCommit  AWS CodePipeline  AWS CodeDeploy • 인프라 배포 자동화  AWS Elastic Beanstalk  AWS OpsWorks  AWS CloudFormation
  3. 3. DevOps 및 CICD 개요
  4. 4. DevOps (a clipped compound of "development" and "operations") is a software development method that stresses communication, collaboration, integration, automation, and measurement of cooperation between software developers and other information-technology (IT) professionals.https://en.wikipedia.org/wiki/DevOps
  5. 5. DevOps 좀 더 정리해 보면…  빠른 비즈니스 환경 변화에 대응을 위한 새로운 철학, 문화적인 변화, 패러다임의 전환  개발팀과 IT 운영팀 간 더 나은 소통과 협업을 위한 변화  더욱 향상된 S/W 개발 방법  개발팀과 IT운영팀 사이에 장벽을 허무는 일  Agile S/W 개발과 같은 사상이 인프라와 IT 운영에 적용된 것 Code 거 대 한 벽 개발팀 IT 운영
  6. 6. DevOps 의 원칙  협업 (Collaboration)  시작부터 끝까지 하나의 팀으로 일함  인프라를 코드로 다룸  비즈니스와 IT 민첩성을 지원  모든 것을 자동화  모든 것을 테스트  모든 것을 측정 및 모니터링
  7. 7. Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. This process of frequent check-ins followed by continuous automated build and acceptance testing significantly reduces wasted effort associated to discovering, isolating and correcting errors. In addition, it allows the business to quickly adopt new features and rapidly course correct direction based on changing business needs.
  8. 8. Version Control CI Server Package Builder Commit to Git/master Dev Get / Pull Code Send Build Report to Dev Stop everything if build failed Distributed Builds Run Tests in parallel Code Config Tests Push Config Repo Continuous Integration
  9. 9.  변경된 코드가 제대로 Build 될 것이라는 자신감  반복적인 변경을 통해 더욱 많고 즉각적인 피드백 수용  S/W 버그에 대한 빠른 탐지  자동화된 테스트로 전체 테스트에 대한 노력 감소 Continuous Integration 으로 얻을 수 있는 장점
  10. 10. Continuous Delivery (CD) is the extension of CI where teams ensure that every change to the system is releasable and production ready, and that we can release any version at the push of a button. Continuous Delivery aims to make releases boring, so we can deliver frequently and get fast feedback on what end users care about. http://www.thoughtworks.com/continuous-delivery
  11. 11. Continuous Delivery Version Control CI Server Package Builder Deploy ServerCommit to Git/master Dev Get / Pull Code AMIs Send Build Report to Dev Stop everything if build failed Distributed Builds Run Tests in parallel Staging Env Test Env Code Config Tests Prod Env Push Config Install Create Repo CloudFormation Templates for Env Generate
  12. 12.  변경 사항을 운영 환경으로 적용하는 반복적이고 자동화된 프로세스  서비스 구축 자동화를 통해 리스크 관리 및 최적화  빌드 프로세스 중 장애를 빠르게 탐지  A/B 테스트 지원 또는 “We test customer reactions to features in production”  어플리케이션에 대한 폭넓은 피드백 수용 Continuous Delivery 로 얻을 수 있는 장점
  13. 13. SOURCE CODE REPOSITORY PROJECT MANAGEMENT SERVER CONTINUOUS INTEGRATION SERVER DEVELOPER PICK TASKS SUBMIT CODE SCHEDULE BUILD RECURRENT BUILDS CODE FETCHCODE QUALITY TESTS TEST RESULTS BUILD OUTPUT DOCS BINARIES & PACKAGES DEV FACING NOTIFICATIONS CLOUDFORMATION AMIS or CONTAINERS
  14. 14. 코드 배포 자동화 - CodeCommit, CodePipeline, CodeDeploy
  15. 15. AWS 코드 배포 자동화 서비스 CodeCommit CodePipeline CodeDeploy
  16. 16. MonitorProvisionDeployTestBuildCode Elastic Beanstalk OpsWorks Cloud Watch Cloud Formation Code Deploy Code Commit Code Pipeline 서비스 개발을 편하게 도와주는 AWS 코드 서비스
  17. 17. AWS CodeCommit - AWS의 코드 리비전 컨트롤 서비스  AZ를 통한 데이터 이중화  데이터 암호화  AWS IAM과 통합  무한 확장 (Repo 크기제한 없음)  Git 명령을 지원하는 기존 도구와의 호환  (Visual Studio, Jenkins, Asana, ZenDesk, Jira, Eclipse, etc.) git push CodeCommit Git objects in Amazon S3 Git index in Amazon DynamoDB Encryption key in AWS KMS SSH or HTTPS Secure, scalable, and managed Git source control
  18. 18. AWS CodePipeline • 개별 설정 가능한 워크플로우 엔진 • 파트너 및 개별 시스템들과 통합 • 비주얼 에디터 및 상태 확인 Build 1) Build 2) Unit test 1) Deploy 2) UI test Source Beta Production 1) Deploy 2) Load test Gamma 1) Deploy region1 2) Deploy region2 3) Deploy region3 Coordinate automated deployments, just like Amazon
  19. 19. AWS CodeDeploy • 1개에서 수천 개의 인스턴스 까지 확장 • 다운타임 없이 구성 • 중앙에서 관리 및 모니터링 되는 Deployment Staging CodeDeployv1, v2, v3 Production Dev Coordinate automated deployments, just like Amazon Application revisions Deployment groups
  20. 20. 인프라 배포 자동화 – Elastic Beanstalk, OpsWorks, CloudFormation
  21. 21. AWS OpsWorks AWS CloudFormationAWS Elastic Beanstalk DevOps framework for application lifecycle management and automation Templates to deploy & update infrastructure as code Automated resource management – web apps made easy DIY / On Demand DIY, on demand resources: EC2, S3, custom AMI’s, etc. 배포 및 관리 Convenience Control
  22. 22. MonitorProvisionDeployTestBuildCode Elastic Beanstalk OpsWorks Cloud Watch Cloud Formation Code Deploy Code Commit Code Pipeline 인프라 배포를 편하게 도와주는 AWS 관리 서비스
  23. 23. AWS Elastic Beanstalk – 손 쉬운 웹 어플리케이션 배포 AWS Elastic Beanstalk • 어플리케이션 레이어 중심의 PaaS 서비스 • 확장성 있는 웹 어플리케이션 및 서비스 배포를 위한 손쉬운 서비스 • Java, .NET, PHP, Node.js, Python, Ruby, Go, 및 Docker • Apache, Nginx, Passenger 및 IIS. • 자동 관리 대상 : • 부하 분산, 상태 모니터링 • 오토 스케일링, RDS 와 통합 • 어플리케이션 플랫폼 관리, 코드 배포
  24. 24. AWS Elastic Beanstalk – 손 쉬운 웹 어플리케이션 배포 사용자의 입력을 기반으로 AWS 서비스를 이용하여 통합된 플랫폼을 생성 – 웹서버 환경 예제 AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  25. 25. ElasticBeanstalk 지원 플랫폼 Java PHP Python Ruby .NET Node.js docker
  26. 26. AWS OpsWorks • 어플리케이션 인프라스터럭쳐 관리 • Linux 및 Chef • 주요 구성 요소 : • 스택 (Stacks) • 레이어 (Layers) • 인스턴스 (Instances) • 어플리케이션 (Apps) AWS OpsWorks
  27. 27. 어플리케이션 모델링
  28. 28. • Infrastructure as Code • 버전 컨트롤과 통합 • JSON 포맷 • 템플릿 (Templates) • 스택 (Stacks) • 모든 AWS 자원 타입을 지원 AWS CloudFormation AWS CloudFormation
  29. 29. AWS CloudFormation: 어플리케이션 스택 예제 CloudFront Distribution Amazon Route 53 Elastic Load Balancer S3 Bucket Web ASG Master Standby RR 1 RR 2 RR 3 RR 4 ElastiCache Cluster Web Servers Web Servers Elastic Beanstalk App App
  30. 30. { "Description" : "Create an EC2 instance running the Amazon Linux 32 bit AMI.”, "Parameters" : { "KeyPair" : { "Description" : "The EC2 Key Pair to allow SSH access to the instance", "Type" : "String" } }, "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "KeyName" : { "Ref" : "KeyPair" }, "ImageId" : "ami-75g0061f”, “InstanceType” : “m1.medium” } } }, "Outputs" : { "InstanceId" : { "Description" : "The InstanceId of the newly created EC2 instance", "Value" : { "Ref" : "Ec2Instance” } } } } AWS CloudFormation: 어플리케이션 스택 예제
  31. 31. 감사합니다.

×