devops tutorial ultimate guide devops
이것은 DevOps 란 무엇인가, DevOps 원칙 및 설계자와 같은 DevOps의 모든 측면을 다루는 25 개 이상의 텍스트 및 비디오 자습서로 구성된 완전한 DevOps 자습서 시리즈입니다.
DevOps 교육 시리즈의 자습서 목록:
#1) DevOps 소개 (이 튜토리얼)
DevOps 비디오 자습서 :
# 3) 비디오 튜토리얼 1 : DevOps 배경, 정의, 가치, 이점, 습관 및 모범 사례
- 파트 1 블록 1 – DevOps 이해하기
# 4) 비디오 튜토리얼 2 : 애자일 원칙, 소스 제어 및 DevOps 자동화를 기반으로하는 DevOps 사례
이 비디오 자습서는 6 개 블록 :
- 파트 2 블록 1 – Agile Manifesto를 기반으로하는 DevOps Practice
- 파트 2 블록 2 – DevOps의 소스 및 버전 제어
- 파트 2 블록 3 – DevOps의 자동화
- 파트 2 블록 4 – DevOps에서 소량의 전송 증가
- 파트 2 블록 5 – DevOps 팀의 협업
- 파트 2 블록 6 – DevOps 팀에서 협업을 개발하는 방법
# 5) 비디오 튜토리얼 3 : DevOps는 지속적 통합, 지속적 테스트 및 지속적 제공을 처리합니다.
이 비디오 자습서는 4 개 블록 :
- 파트 3 블록 1 – DevOps의 지속적인 통합
- 파트 3 블록 2 – DevOps의 지속적인 제공
- 파트 3 블록 3 – DevOps의 지속적인 배포
- 파트 3 블록 4 – DevOps의 지속적인 테스트
# 6) 비디오 튜토리얼 4 : DevOps 구성 관리 및 라이브 애플리케이션 성능 모니터링
이 비디오 자습서는 3 개 블록 :
- 파트 4 블록 1 – DevOps 사례의 구성 관리
- 파트 4 블록 2 – DevOps의 릴리스 관리
- 파트 4 블록 3 – DevOps의 애플리케이션 성능 모니터링
# 7) 비디오 튜토리얼 5 : 전체 과정의 요약.
- 파트 5 블록 1 – DevOps 비디오 자습서 요약
텍스트 튜토리얼 :
# 8) 왼쪽으로 이동 테스트
# 9) 지속적 통합을 사용하여 소프트웨어 품질을 개선하는 방법
# 10) 지속적인 전달 프로세스
DevOps 도구 :
#열한) DevOps 도구
# 12) 일반적으로 사용되는 오픈 소스 DevOps 도구의 설치 및 구성
# 13) 최고의 연속 통합 도구
# 14) 최고의 지속적 전달 도구
Microsoft VSTS 자습서 :
#열 다섯) Microsoft VSTS 1 부
# 16) Microsoft VSTS 2 부
AWS DevOps 도구 :
# 17) AWS DevOps 도구 1 부 (CodeCommit)
# 18) AWS DevOps 도구 2 부 (CodeBuild)
# 19) AWS DevOps 도구 3 부 (CodeDeploy)
#이십) AWS Elastic Beanstalk를 사용한 .NET 웹 애플리케이션 배포
DevOps 용 Ansible :
#이십 일) Ansible 1 부 : 설치 및 구성
# 22) Ansible 2 부 : 플레이 북을 사용한 작업 자동화
# 2. 3) Ansible Part 3 : Ansible 역할 및 Jenkins와의 통합
# 24) Jenkins와 Selenium의 통합
# 25) Hudson 지속적 통합 도구
# 26) DevOps 서비스 제공 업체
# 27) DevOps 인터뷰 질문
이 시리즈의 첫 번째 자습서부터 시작하겠습니다.
학습 내용 :
DevOps 소개
DevOps는 도구에 관한 것이 아니라 소프트웨어 제공을 자동화하는 통합 도구 세트를 사용하여 지속적인 통합 및 배포 영역에서 개발 팀과 운영 팀 간의 격차를 해소 할 수있는 모범 사례 세트도 포함합니다.
Windows 10을위한 최고의 무료 컴퓨터 클리너
개발자는 운영 측면을 이해하고 그 반대의 경우도 마찬가지입니다. 따라서 DevOps의 목표는 단순히 최종 사용자에게 애플리케이션을 제공하는 속도로 모든 조직을 지원하고 오늘날 모든 비즈니스에 필요한 빠른 최종 사용자 피드백을 가능하게하는 것입니다.
Agile 및 DevOps 개요
Agile과 DevOps에는 차이가 없습니다. 대신 그들은 서로를 보완합니다. 모든 요구 사항이 고정되어 있고 안정적인 제품을 사용할 수있을 때까지 설계 및 개발이 차례로 수행되는 Waterfall 모델부터 살펴 보겠습니다.
따라서 여기서 문제는이 단계에서 고객의 요구 사항이 변경되면 변경된 요구 사항을 포함하여 제공 할 방법이 없다는 것입니다.
고객의 요구에 적응하는 문제를 폭포수 방식보다 더 잘 적응시키기 위해 애자일 방식을 채택했습니다. 여기서 아이디어는 더 작은 스프린트 또는 반복으로 소프트웨어를 개발하는 것이 었습니다. 이는 개발 팀이 최종 사용자 피드백에 대해 작업하고 최신 릴리스의 변경 사항을 통합하는 데 도움이되는 2 ~ 3 주 정도의 반복입니다.
따라서 개발 및 운영 팀은 작업 영역에서 민첩해야합니다.DevOps더 나은 협업을 위해 탄생했습니다.
Agile은 XP, SCRUM 등과 같은 프로세스를 가져오고 DevOps는 지속적 통합, 지속적 전달, 지속적 테스트 및 지속적 모니터링과 같은 사례를 가져옵니다.
DevOps는 도구에 관한 것입니까?
어떤면에서 DevOps를 구현하려면 도구가 필요하다고 주장 할 수 있습니다. 사실이지만 도구는 가속기 일뿐입니다.
그러나 실제로는 다음 세 가지 측면에 관한 것입니다.
사람들 :문화 변화의 전체 여정을 통해 효과적으로 의사 소통하고 협력 할 수 있도록 동기 부여가 높은 팀을 교육하고 보유하는 것이 매우 중요합니다.
방법: DevOps 구현을위한 문화적 변화에 대해 이야기 할 때 고객에게 가치를 제공하는 관행과 전략이 매우 필요합니다. 이를 수행하는 적절한 방법은 AS-IS 성숙도 평가를 수행하고 격차를 살펴보고 적절한 권장 사항을 제공하기위한 로드맵을 제안하는 것입니다.
나는 이러한 평가를 수행하는 방법에 대해 깊이 이야기하지는 않겠지 만 동일한 의견을 공유하게되어 기쁩니다.
도구 : 마지막으로 현재 사용 가능한 표준 DevOps 도구를 사용하여 프로세스를 자동화하여 가속기를 사용하는 방법에 대해 설명합니다. 오픈 소스 (Jenkins, Git 등), 상업용 (Microsoft TFS, VSTS, IBM Rational, Jira 등) 또는 둘 모두를 혼합 할 수 있습니다.
DevOps의 구성 요소
지금 쯤이면 DevOps가 무엇인지 이해 하셨기를 바랍니다.
이제 구현 관점에서 핵심을 형성하는 DevOps의 다음 4 가지 구성 요소를 살펴 보겠습니다. 또한 조직은 동일한 서비스를 고객에게 제공하는 것과 관련하여 우수한 자동화 프레임 워크를 개발했습니다.
- 지속적인 통합
- 지속적인 테스트
- 지속적인 전달
- 지속적인 모니터링
개발자가이 모드에서 작업해야하는 경우 작업 또는 결함 (Agile에서는 사용자 스토리의 일부일 수 있음)과 같은 실행 항목이 할당되어 작업을 수행 할 수 있어야한다고 진정으로 믿었습니다. 스프린트 기간.
따라서 위에 나열된 단계를 구현하기 전에 이러한 개발자 작업 또는 결함을 Sprint에서 계획해야합니다. 따라서 JIRA, IBM Rational Team Concert, Microsoft TFS / VSTS 등과 같은 도구는 Agile Release / Sprint 계획을 만드는 데 도움이됩니다.
이제 이러한 각 구성 요소를 자세히 살펴 보겠습니다.
# 1) 지속적인 통합
개발자는 할당 된 작업 또는 결함에 대해 작업하고 하루에 여러 번 공유 저장소에 코드를 체크인합니다. 마찬가지로 팀의 다른 구성원도 공유 저장소에 코드를 체크인합니다.
그런 다음 실제로 팀 구성원이 수행 한 모든 작업을 공통 빌드 서버에 통합하고 자동화 된 빌드를 수행합니다. 이러한 통합 및 자동화 된 빌드를 정기적으로 수행하는 것을 지속적 통합이라고합니다.
이 방법은 문제를 조기에 발견하는 데 도움이되며 통합 된 모든 모듈이 필요에 따라 작동하도록합니다. 따라서이 접근 방식을 따르지 않으면 팀 작업 통합이 한 달에 한 번 발생하여 통합 문제를 찾아 수정하는 데 늦을 수 있습니다.
샘플 연속 통합 워크 플로우 :
# 2) 지속적 전달
Continuous Delivery는 지속적 통합 이후의 다음 단계입니다. Continuous Delivery의 목표는 빌드 된 애플리케이션을 가능한 한 빨리 프로덕션에 적용하는 것입니다. 이 프로세스 동안 제공 라이프 사이클의 다양한 단계 (예 : QA, 스테이징, 프로덕션 환경 등)를 거칩니다.
다양한 단계에 구축 된 애플리케이션을 정기적으로 제공하는이 프로세스를 지속적 제공이라고합니다.
지속적인 배포는 기존 방법에 비해 시장 출시 시간을 단축하고 위험을 줄이며 릴리스 프로세스에서 더 많은 자동화를 장려함으로써 비용을 낮추고 가장 중요한 것은 고품질 제품을 생산하기 위해 최종 사용자로부터 더 빠른 피드백을 얻습니다.
내 경험으로 볼 때이 프로세스는 모든 종류의 웹 애플리케이션 개발에서 잘 작동하는 것을 보았습니다.
또한 반도체 비즈니스 영역의 조직을 위해 DevOps 구현에 대해 상당한 양의 평가를 수행했지만 기존 릴리스주기 이 Continuous Delivery 영역은 고객 환경에서 요구되는대로 수행되고 배포가 수행되는 폭포수 프로세스에 가깝기 때문에 적합하지 않은 것 같습니다.
지속적인 배포 워크 플로 샘플 :
위의 다이어그램에서 사용 가능한 다양한 환경을 볼 수 있으므로 이러한 환경에 대한 인프라 프로비저닝은이 지속적인 배포 프로세스 중에 자동화 될 수도 있습니다.
# 3) 지속적인 테스트
위의 두 가지 사례를 통해 CI 및 CD가 애플리케이션을 배포하거나 프로덕션에 변경하는 데 도움이된다는 것을 알게되었습니다. 이 전체 프로세스에는 응용 프로그램이 예상대로 작동하고 버그 나 결함이 없는지 확인하기 위해 코드의 적절한 유효성 검사와 관련된 모든 구성 요소와의 통합이 포함됩니다.
따라서 Continuous Testing은 애플리케이션이 최종적으로 프로덕션에 배포 될 때까지 CI 프로세스를 시작으로 다양한 유형의 자동화 된 테스트를 실행하는 프로세스입니다.
이전 다이어그램에서 지속적 통합 단계에서 모든 개발자 작업을 공통 빌드 서버에 통합하고이 단계에서 개발자가 일정량의 단위 테스트를 실행한다는 것을 알 수 있습니다.
이러한 통합 및 테스트가 오류없이 작동하면 이러한 품질 게이트 및 승인을 신청 한 후 애플리케이션 또는 변경 사항이 QA 환경에 배포됩니다.
QA 환경에서 기능 테스트가 실행되고 승인에 따라 프로덕션 시스템 및 승인 테스트가 실행되는 것과 같은 패리티 인 스테이징 환경에 배포됩니다. 이 활동이 완료되면 애플리케이션 또는 변경 사항이 최종적으로 프로덕션 시스템에 배포됩니다.
따라서 활동으로서의 지속적인 테스트는 CI 단계 자체에서 시작되며 지속적인 배포 프로세스 전반에 걸쳐 매우 필수 단계라는 것을 알 수 있습니다.
지속적 배포 프로세스의 샘플 테스트 워크 플로 :
C ++는 무엇을 위해 사용될 수 있습니까?
# 4) 지속적인 모니터링
애플리케이션 또는 변경 사항이 프로덕션 환경에 배포되면 운영 팀은 가동 시간, 안정성, 가용성 관점에서 애플리케이션과 환경을 모니터링 할 것입니다. 이 프로세스를 연속 모니터링이라고합니다.
운영 팀은 환경을 모니터링하기위한 자체 소프트웨어를 보유하지만 문제에 대해 배포 된 응용 프로그램을 모니터링하는 역할도해야합니다. 이를 위해서는 애플리케이션 문제를 분석하기위한 특정 도구를 구축하기 위해 개발 팀과 협력해야합니다.
따라서 인프라, 환경 및 애플리케이션 문제는 모두 지속적인 모니터링 프로세스에서 모니터링됩니다.
요약
이 튜토리얼에서 우리는 DevOps 프로세스와 관련된 다양한 구성 요소를 포함하는 것이 정확히 무엇인지 알게되었습니다. 이러한 구성 요소는 애플리케이션 제공 속도를 높이고 시장 출시 시간을 단축하는 데 도움이됩니다. 이는 경쟁적인 관점에서 볼 때 오늘날 비즈니스에 필요한 사항입니다.
DevOps 세그먼트의 다음 자습서 시리즈에서는 팀이 사용할 수있는 다양한 동영상 / 예상 DevOps 도구와 온 프레미스 및 클라우드 용 특정 도구를 사용하여 DevOps를 구현하는 방법을 살펴 봅니다.
그리고 말하고 끝낸 것처럼 저는 DevOps 구현이 조직의 변화를 바라 보는 방식에서 흥미로운 구현이라는 것을 알게되었습니다.
다가오는 자습서에서는 DevOps 및 소프트웨어 테스트에 대한 모든 것을 설명합니다.