티스토리 뷰
데브옵스(DevOps)
데브옵스(DevOps) 는 방법론이다. 즉 개발 조직에 따라서 다르게 적용될 수 있다.
데브옵스(DevOps) 란
데브옵스(DevOps)란 소프트웨어의 개발(Development)와 운영(Operations)의 합성어로 개발 담당자와 운영 담당자가 연계하여 협력하는 개발 방법론이다. 데브옵스는 정확한 정의가 존재하지 않는 추상적 개념에 해당하지만 소프트웨어 개발 조직과 운영조직 간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다.
데브옵스(DevOps) 수명 주기
DevOps 수명 주기는 개발(루프의 왼쪽) 및 운영(루프의 오른쪽)에 필요한 프로세스, 기능 및 도구를 나타내는 6단계로 구성 된다. 각 단계에서 팀은 공동작업하고 커뮤니케이션하여 조정, 속도 및 품질을 유지 관리한다.
1) 계획(Plan)
DevOps 팀은 애자일 방식을 기반으로 소프트웨어 개발에 대한 반복적인 접근 방식으로 팀은 작업을 더 작은 부분으로 나누어 점진적인 가치를 제공한다.
2) 빌드(Build)
Git 등을 이용하여 버전 관리를 한다.
3) 지속적인 통합 및 배포(Continuous Integration and Deployment)
CI/CD를 통해 팀은 소스 코드 리포지토리에서 프로덕션에 이르기까지 지동화 된 워크플로를 사용하여 높은 품질의 제품을 자주, 예측 가능한 방식으로 출시한다.
4) 모니터링(Monitoring)
제품 가동시간, 속도 및 기능에 영향을 미치는 문제를 빠르게 식별하고 해결한다. 서비스를 중단 없이 유지하기 위해 변경, 위험이 높은 직업 또는 장애를 팀에 자동으로 알린다.
5) 운영(Operation)
고객에 대한 IT 서비스의 엔드 투 엔드(E2E) 제공을 관리한다. 이 단계에서 조직의 서비스를 지원하는 모든 IT 인프라의 설계, 구현, 구성, 배포 및 유지 관리에 관련된 관행이 포함된다.
6) 지속적인 피드백(Continuous Feedback)
각 릴리스를 평가하고 보고서를 생성하여 향후 릴리스를 개선한다. 지속적인 피드백을 수집하여 팀은 프로세스를 개선하고 고객 피드백을 통합하여 다음 릴리스를 개선하게 된다.
위와 같은 생명주기를 반복적으로 수행하며 DevOps 개발 방법론을 실행할 수 있다.
* 애자일(Agile)
작업 계획을 짧은 단위로 세우고 제품을 만들어 나가는 사이클을 반복함으로써 고객의 요구 변화에 유연하고도 신속하게 대응하는 개발 방법론이다.
* 엔드 투 엔드(E2E)
처음부터 끝까지 모든 절차가 관리되는 방식을 의미한다.
데브옵스(DevOps) 특징
Continuous Integration
지속적인 통합은 코드 변경을 소프트웨어 프로젝트에 통합하는 작업을 자동화 하는 관행이다. 개발자는 코드 변경 사항을 빌드 및 테스트를 실행하는 중앙 집중 식 리포지토리에 자주 병합할 수 있고, 이를 통하여 DevOps 팀은 버그를 더 빠르게 해결하고 소프트웨어의 품질을 개선하며 새로운 소프트웨어 업데이트를 검증하고 릴리스 하는데 소요되는 시간을 줄일 수 있다.
Continuous Delivery
지속적인 배포는 코드 변경 사항을 테스트/프로덕션 환경에 자동으로 배포하여 지속적 통합을 확대한다. 자동화된 빌드, 테스트 및 배포를 하나의 릴리스 워크 플로우로 오케스트레이션(Orchestration) 하는 지속적 배포 파이프 라인을 따른다.
Automation
자동화는 팀이 높은 품질 소프트웨어를 개발하고 배포하는 프로세스를 훨씬 빠르게 진행되도록 지원한다. 자동화를 통하여 코드 변경 사항을 소스 코드 리포지토리에 푸시하는 간단한 작업으로 빌드, 테스트 및 배포 프로세스를 트리거하여 이 단계에 소요되는 시간을 대폭 줄일 수 있게 된다.
Infrastructure as Code
IaC(Infrastructure as Code)는 단순히 인프라 구성을 스크립팅하는 것 뿐만 아니라 소스제어, 코드검토, 테스트 등을 사용하여 인프라 정의를 실제 코드처럼 다루는 것을 의미한다.
Micro Service
마이크로 서비스는 애플리케이션을 서로 독립적으로 배포 및 운영할 수 있는 소규모의 서비스 모음으로 구축하는 아키텍쳐 기법이다.
Monitoring
DevOps 팀은 계획, 개발, 통합 및 테스트, 배포, 운영부터 전체 개발 수명 주기를 모니터링한다. 이를 통해 개발 초기 단계에서 잘못 된 프로덕션 변경 사항을 최소화 할 수 있다.
* 오케스트레이션(Orchestration)
컴퓨터 시스템과 소프트웨어의 자동화된 구성, 조율, 관리이다.
데브옵스(DevOps) 이점
1) 속도
DevOps를 활용하는 팀은 제품을 더 자주 릴리스 할 수 있으며 더 높은 품질과 안정성을 제공할 수 있다.
2) 공동 작업 개선
DevOps의 기반은 책임을 공유하고 작업을 합치는 개발자와 운영 팀 간의 공동 작업 문화이다. 이를 통하여 팀의 효율성이 향상되며, 작업 전달 및 실행 환경에 맞게 설계된 코드 작성과 관련된 시간을 절약할 수 있다.
3) 빠른 배포
DevOps 팀은 릴리스의 빈도 및 속도를 높여 제품을 빠르게 개선한다. 빠르게 새로운 기능을 출시하고 버그를 수정하여 경쟁 우위를 얻을 수 있다.
4) 품질 및 신뢰성
지속적 통합 및 지속적 배포와 같은 관행은 변경 사항이 기능적이고 안전하도록 보장하여 소프트웨어 제품의 품질을 향상한다. 팀은 모니터링을 통해 실시간으로 성과를 파악할 수 있다.
DevOps 의 중요성
소프트웨어는 비즈니스를 지원하는 것에 그치지 않고, 비즈니스의 모든 부분에서 핵심적인 구성 요소가 되었다. 기업은 온라인 서비스 또는 애플리케이션으로 제공되는 소프트웨어를 통해 온갖 종류의 디바이스에서 고객과 상호작용한다. 또한 소프트웨어를 사용하여 물류, 통신, 운영 등과 같은 가치 체인의 모든 부분을 혁신함으로써 운영 효율성을 향상한다. 20세기에 실제 상품을 제조하는 기업이 산업 자동화를 통해 제품의 설계, 생산 및 전달 방법을 혁신한 것과 마찬가지로, 오늘날의 기업은 소프트웨어를 구축하고 제공하는 방법을 혁신해야 한다.
Reference
'Study > CS' 카테고리의 다른 글
[Software Engineering] TDD(Test Driven Development) (2) | 2022.09.10 |
---|---|
[자료구조] 힙(Heap) (0) | 2022.09.04 |
[Software Engineering] 리팩토링(Refactoring) 과 시큐어 코딩(Secure Coding) (0) | 2022.09.04 |
[Software Engineering] 클린 코드(Clean Code) (2) | 2022.09.04 |
[알고리즘] DFS/BFS (0) | 2022.08.28 |
- Total
- Today
- Yesterday
- 리스트
- CS 스터디
- 리스트2
- 프로그래머스
- 완전탐색
- It
- 자바
- 프로세스 주소공간
- 이진탐색
- 코드업 기초
- CS
- 리스트 복사
- 연결리스트활용
- 알고리즘
- 프로그래머스강의
- 이차 리스트
- 데이터베이스
- 정렬
- Greedy sort
- 스터디
- 네트워크
- 파이썬
- CS.
- 보험
- 운영체제
- 자료구조와알고리즘 23강
- SW
- 자료구조
- 리스트함축
- https
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |