DevOps를 위한 기술적 구성 요소는 네가지로 정리할 수 있다.
첫번째 : 코드 기반 인프라(Infrastructure as Code) 관리
프로그래밍형 인프라 라고도 하는 Infrastructure as Code는 인프라 구성을 소프트웨어를 프로그래밍하는 것 처럼 처리하는 방식을 가리킨다. 결과적으로 애플리케이션을 작성하는 작업과 애플리케이션이 실행되는 환경을 구현하는 작업을 코드 기반으로 관리 할 수 있다.
애플리케이션은 자체적으로 VM(가상 시스템)을 생성하고 오케스트레이션하는 스크립트를 포함핲구 있다. AWS, MS, Google 등 대부분의 클라우드 업체는 IaC 기반의 인프라 서비스를 제공한다.
두번째: 버전 관리(Version Control).
개발 시간이 지남에 따라 발생되는 소스코드의 변경 사항을 개발팀이 관리하는데 도움을 주는 소프트웨어 도구로, 버저너 제어 소프트웨어는 특별한 종류의 데이터 베이스에 소스코드의 모든 수정 사항을 저장하고 추적한다. 코드 개발에 실수가 발생 했을 때 개발자는 이전 버전의 코드와 비교하여 오류를 수정함으로써 팀 구성원의 업무 중단을 최소화 할 수 있다.
세번째 One-Step 빌드와 배포(Build & Deploy)
빌드(Build) 작업은 개발팀 내 여러 개발자가 개발한 소스를 버전 관리 시스템을 이용하여 통합하고, 통합된 소스를 컴파일/테스트/정적 분석 등을 실시해 실제 동작 가능한 S/W로 변환하는 작업을 말함
보통 버전 관리 시스템 (Version Control System)에 있는 소스코드를 가져와 Compile 하여 실행 가능한 파일로 만드는 일련 과정을 수행한다. 배포(Deploy) 작업은 개발되어 빌드된 파일을 개발 서버 또는 운영 서버에 등록하여, 신규로 개발되거나 변경된 프로그램을 사용할 수 있게 전달하는 과정을 말한다.
대량의 변경된 내용을 한 번에 배포하기보다 자동화된 배포 툴을 통해 조금씩 자주 변경되는 내용을 배포함으로써 위험을 분산시킬 수 있게 한다.이런 빌드와 배포 도구는 자동화를 통해 지속적으로 수행 가능한 시스템으로 구성되며, 이런 자동화 도구는 DevOps의 기술적 구성 요소의 핵심이다.
이런 DevOps의 자동화 서비스를 CI/DC(Continuous Integration/Continuous Delivery)라 말하며 다양한 CI/CD 툴을 통해 보다 효과적인 DevOps를 통한 자동화 환경을 지원한다.
네번째: 장애 발생 시 인프라의 빠른 배포
문제가 발생하면 문제가 된 인프라를 재구성하기 위해 OS 설치 및 솔루션 설치와 환경 구성까지 많은 시간과 노력이 필요하다. 하지만 DevOps 기반의 인프라 환경은 문제 발생 시 기존 인프라를 빠르게 재배포가 가능한 환경으로 제공한다.
'AWS DevOps > DevOps 개념' 카테고리의 다른 글
IaC(Infra as a Code)의 주요 도구 (0) | 2021.02.18 |
---|---|
AWS Cloudformation Template 구성 사항 (0) | 2021.02.03 |