반응형
DevOps
소프트웨어의 개발과 운영의 합성어.
개발 환경과 사례 및 도구의 조합.
개발자의 생산성과 안정성을 최적화할 수 있다.
Culture + Practices + Tools.
Culture
- 개발과 운영 두팀간의 장벽을 없애 준다.
- 개발및 인프라의 수명을 관리한다.
Practices
- 지속적으로 적용이 가능한 Practices
- Architecture patterns, Code packaging, Secrets management, Microservice patterns, Circuit breaker, SCM, Continuous delivery, Static analysis, Infrastructure as code, Continuous integration, Code promotions, Caching and object access patterns, [Small, frequent updates], Service discovery, Coding practice.
Tools
- CI/CD 파이프라인.
- IAC 등
CI/CD
지속적 통합(continuous integration)과 지속적 배포(continuous delivery, CD)가 결합한 사례를 의미한다.
CI/CD는 소프트 웨어의 개발, 테스트와 배포를 모두 통합함으로써 소프트웨어 버그를 쉽게 찾아낼 수 있으며, 더 빠른 배포 주기를 가질 수 있게 만들어 준다.
CI/CD Best Practices
- Automated releases
- Safe Deployments
- Repeatable infrastructure changes
릴리스 프로세스 단계 (CI/CD 파이프 라인)
- Source
- .java 파일과 같은 소스 코드 checkin
- 새로운 코드에 대해 피어 리뷰
- Build
- 코드 컴파일
- 유닛 테스트
- 스타일 체크
- 컨테이너 이미지 배포 패키지 생성
- Test
- 다른 시스템과 통합 테스트
- 부하 테스트
- UI 테스트
- 보안 테스트
- Production
- 프로덕션 환경에 배포
- 신규 코드의 에러 확인을 위한 모니터링
AWS Servises
- CodeCommit
- 완전 관리형 안전한 Git기반의 레포지토리
- (GitHub)
- CodeBuild
- 소스 코드를 컴파일하는 단계부터 테스트 실행 후, 소프트웨어 패키지를 개발하여 배포하는 단계까지 마칠 수 있는 완전 관리형 빌드 서비스
- (GitHub Actions)
- CodeDeploy
- 코드 배포를 자동화하는 완전 관리형 배포 서비스
- (GitHub Actions)
- CodePipeline
- 완전 관리형 지속적 전달 서비스.
AWS CodePipeline
- Source Provider : 소스 코드 저장 위치
- Branch: AWS CodeCommit, GitHub, Bitbucket
- Object/folder: Amazon S3
- Docker image: Amazon ECR
- Builder Provider : 애플리케이션 빌드 방법
- AWS CodeBuild, Jenkins
- Deploy Provider : 애플리케이션 배포 방법
- Amazon EC2: AWS CodeDeploy, AWS Elastic Beanstalk, AWS OpsWorks Stacks
- Containers: AWS CodeDeploy, Amazon ECS, Amazon ECS(blue/green deployment), AWS
Fargate - Serverless: AWS CodeDeploy, AWS CloudFormation/ AWS SAM, AWS Lambda, AWS Step Functions
반응형
'AWS' 카테고리의 다른 글
[AWS] API Gateway (0) | 2023.02.13 |
---|