top aws devops tools
최고의 Amazon AWS DevOps 도구 : 파이프 라인 , 소스 코드 저장소, 빌드 및 배포 Amazon Web Services 사용
소프트웨어 경력을 시작한 지 20 년이 넘었을 때 모든 종류의 개발 및 배포를위한 인프라 (소프트웨어 및 하드웨어)를 조달해야했습니다.
여기에는 공급 업체에 서버를 주문하고, 일정 시간 동안 기다려야하고, 제공된 서버 공간을 예약해야하고, 서버 설치, 운영 체제, 스토리지 구성 등이 포함됩니다. 성능, 가용성 (24 * 7), 유지 관리, 네트워크 등
이것은 애플리케이션 개발 및 배포 활동을 위해 서버를 가져 오는 데 너무 많은 노력을 기울였습니다.
학습 내용 :
클라우드 컴퓨팅의 진화
클라우드 컴퓨팅의 진화와 함께 상황이 바뀌어야했습니다. 즉, 인터넷을 통해 모든 애플리케이션과 데이터베이스에 액세스 할 수 있습니다. 따라서 클라우드 컴퓨팅 공급자는 웹 애플리케이션을 실행하는 데 필요한 모든 하드웨어를 유지합니다.
애플리케이션을 호스팅하는 데 필요한 적절한 구성이있는 모든 리소스를 클릭 한 번으로 사용할 수 있습니다. 개발자가 리소스를 사용할 수 있도록하는 데 걸리는 시간이 대폭 단축됩니다. 가장 중요한 것은 필요한만큼만 비용을 지불한다는 것입니다.
클라우드 기반 서비스를 사용하는 개발자의 초점은 인프라 가용성에 대해 걱정하지 않고 프로젝트에서 작업하는 데 필요한 부분에만 있습니다. 나는 클라우드 컴퓨팅 (IaaS, PaaS, SaaS)의 유형을 이해하고 있지 않습니다. 인터넷을 통해 그들이 무엇인지 설명 할 수있는 수많은 정보가 있습니다.
많은 클라우드 공급자가 있습니다. 하지만 제가 함께 일한 3 가지 가장 인기있는 것은 다음과 같습니다.
- 아마존 웹 서비스
- 마이크로 소프트 애저
- 구글 클라우드
이 섹션에서는 다음을위한 도구에 중점을 둘 것입니다. 파이프 라인 , 소스 코드 저장소, 빌드 및 배포 와 아마존 웹 서비스 . 팀은 여전히 Jenkins, Git, Maven 등과 같은 DevOps 도구를 사용한다는 사실을 잊지 마십시오.
따라서 팀이 자산과 아티팩트를 클라우드 인프라로 옮기고 싶을 수 있지만 가능한 한 통합 / 마이그레이션을 통해 도구 및 데이터에 대한 기존 투자를 극대화해야합니다.
딸깍 하는 소리 여기 AWS와 Architects, Developers 및 SysOPS를위한 다양한 서비스에 대해 알아보십시오. 언급 된 도구에 대해 무료 계정을 사용하지만 물론 프로덕션 환경에서는 사용할 서비스를 확보해야합니다.
AWS 도구를 사용하여 구축 및 배포
빌드 및 배포 관점에서 다음 AWS 서비스를 살펴 보겠습니다.
CPU 온도를 모니터링하는 최고의 프로그램
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline은 종단 간 전송 프로세스를 시각적으로 볼 수 있도록 도와주는 Jenkins Pipeline과 유사합니다.
따라서 CodePipeline에서 일반적으로 다음을 구성합니다.
- 소스 코드 저장소 – 따라서 소스 코드는 AWS CodeCommit 또는 GitHub 리포지토리에 있어야합니다.
- 서비스 구축 – AWS CodeBuild 세부 정보는 파이프 라인의 일부로 구성됩니다.
- 배포 – AWS CodeDeploy가 파이프 라인에 구성됩니다.
- 승인이 필요한 경우 다른 환경에 배포하는 동안 구성 할 수도 있습니다.
따라서 개발자가 코드를 변경하면 빌드 및 배포의 시각적 표현이 자동화 된 것으로 볼 수 있습니다.
AWS CodePipeline의 소스 코드 리포지토리 구성
Maven 빌드를 사용하는 AWS CodePipeline의 빌드 구성
AWS CodePipeline의 배포 구성
AWS CodePipeline에 완전한 실행이 표시됨
2. AWS CodeCommit
AWS CodeCommit은 프라이빗 Git 리포지토리를 호스팅하는 안전한 온라인 버전 제어 서비스입니다. 팀은 자체 버전 제어 리포지토리를 유지할 필요가 없습니다. 대신 AWS CodeCommit을 사용하여 소스 코드를 저장하거나 빌드에서 생성 된 WAR / JAR / EAR 파일과 같은 바이너리를 저장합니다.
AWS CodeCommit을 사용하여 리포지토리를 생성하면 모든 개발자가 해당 리포지토리를 로컬 시스템에 복제하고 파일을 추가 한 다음 AWS CodeCommit 리포지토리로 다시 푸시합니다. 하나는 AWS CodeCommit 리포지토리와 함께 표준 GIT 명령을 사용합니다.
에 대한 예 : AWS CodeCommit 리포지토리가 로컬 머신에 복제되면 'git pull', 'git add', 'git commit', 'git push'등과 같은 명령을 사용합니다.
예시적인 AWS CodeCommit 빈 리포지토리 생성
저장소를 로컬 시스템에 복제
AWS CodeCommit 리포지토리에 추가 된 파일
3. AWS CodeBuild
앞서 살펴본 것처럼 소스 코드와 기타 프로젝트 아티팩트는 AWS CodeCommit 리포지토리에 저장됩니다.
지속적인 통합을 구현하기 위해 Jenkins와 같은 AWS CodeBuild는 구성 및 빌드 사양에 따라 AWS CodeCommit 또는 GitHub 리포지토리에서 소스 코드의 최신 변경 사항을 가져옵니다. YAML 파일 (buildspec.yml로 생성됨) 명령은 설치, 사전 빌드, 빌드 및 사후 빌드와 같은 네 단계를 기반으로 실행됩니다.
빌드가 완료되면 아티팩트 (WAR / ZIP / JAR / EAR)가 S3 버킷 인 AWS 스토리지에 저장됩니다.
샘플 buildspec.yml 파일
version: 0.2 phases: install: commands: - echo Nothing in the install phase... pre_build: commands: - echo Nothing in the pre_build phase... build: commands: - echo Build started on `date` - mvn clean install post_build: commands: - echo Build completed on `date` artifacts: files: - target/HelloWorld-Maven.war
샘플 AWS Codebuild 프로젝트
성공 구축
아티팩트 (WAR 파일)가 S3 버킷에 복사 됨
4. AWS CodeDeploy
이름에서 알 수 있듯이 AWS Codedeploy는 Amazon EC2 Linux 또는 Windows 인스턴스에 대한 애플리케이션 (이 경우 WAR 파일) 배포를 자동화하는 배포 서비스입니다.
이제 AWS CodeBuild를 사용하여 완료된 S3 버킷에 아티팩트가 저장되었으므로 아티팩트는 S3 버킷에서 선택되어 AWS EC2 인스턴스 프로비저닝의 앱 서버 Tomcat 또는 JBoss 등에 적절하게 배포됩니다.
AWS CodeDeploy는 EC2 인스턴스에 대한 배포 지침이있는 appspec.yml이라는 YAML 파일에 의존합니다.
index.html 파일이 복사되어 Apache 서버에 배포되는 샘플 appspec.yml 파일
version:10.0 os:linux files: -source: /opt/deploy/index.html destination:/var/www/html/ hooks: BeforeInstall: -location:scripts/before_install runas:niranjan AfterInstall: -location:scripts/restart_server runas:niranjan
before_install 스크립트
restart_server 스크립트
AWS CodeDeploy를 실행하는 데 필요한 모든 파일의 GitHub 리포지토리
AWS CodeDeploy에서 배포 실행
AWS 서비스와 Jenkins 통합
앞서 언급했듯이 오늘날 팀은 사실상의 CI 도구로 Jenkins를 많이 사용하고 있으며 대부분의 경우 Jenkins에서 멀어지고 싶지 않고 우리가 논의한 AWS 서비스와 통합하기를 원합니다. 관련된 특정 절차가 있으며 통합 스크린 샷을 보여주었습니다.
1. AWS CodeCommit과 Jenkins 통합
2. AWS CodeBuild와 Jenkins 통합
3. AWS CodeDeploy와 Jenkins 통합
AWS DevOps 스택을 위해 종합 :
스택은 위에서 설명한 AWS 서비스를 아래에서 찾습니다.
이 튜토리얼, 도구에 대한 희망 파이프 라인 , 소스 코드 저장소, 빌드 및 배포 Amazon Web Services를 통해 도움이되었습니다.