샤인의 IT (막 적는) 메모장

[DevOps] DevOps 기본 개념 정리 본문

DevOps

[DevOps] DevOps 기본 개념 정리

신샤인 2022. 1. 15. 14:19
반응형

Only English..(Udemy) 강의 정리 내용 +_+

 

왜 DevOps를 배워야 하는가?

점점 더 복잡해져가는 기술 스택들.. 
데브옵스 시장은 점점 더 커지고 있고 App delivery가 더 빨라지고 있다. 
데브옵스 조사에 따르면 데브옵스는 기업에 긍정적인 영향을 미치고 있으며 기존 레거시 시스템을 개선하려고 한다.
모든 회사들은 만든 소프트웨어를 지속적으로 빠르게 전달하고 싶어 한다.

 

 

 

 

 

 

DevOps란?

#DevOps?
DevOps를 검색해보면 DevOps는 소프트웨어 딜리버리의 품질과 속도를 개선하기 위해 기술 운영 및 소프트웨어 개발 팀들 간의 통합, 협업, 커뮤니케이션, 자동화를 촉진하는 문화 철학과 기술 관행, 도구의 조합
(글을 잘 못쓰기에.. DevOps를 잘 정리한 것 같다.)

Development, Deploy, Service

#소프트웨어 개발 프로세스

(1) 개더링
1. 제품 특징
2. 사용할 유저
3. 사용법
4. 유저 요구사항
5. 시장 상태

(2) 설계

(3) 디자인

(4) 개발

(5) 퀄리티 테스팅

(6) 배포

(7) 운영

(8) 유지보수

위의 과정은 Software Development Life Cycle(SDLC)
모델은 워터폴 에자일 스파이럴 빅뱅 등등...

워터폴 모델
요구 -> 디자인 -> 추가 -> 테스팅 -> 유지보수
해당 라이플사이클 동안의 변화를 반영할 수 없다.

개발과 운영의 관계
개발팀에서 개발한 App을 테스트서버에 올려서 QA를 마친 후 운영자가 배포하는 방식
운영 서버에 배포하고 만약 문제가 생겼을 경우.
기존 과정을 계속 거쳐야하며 발생하는 문제들이 많음
개발자 입장 - 배포시간이 오래걸려요..
운영자 입장 - 코드에 문제가 있어서 안올라가요..

결국은 비즈니스 손실.
이러한 문제로 등장한게 DevOps
결국 요구되는 사항은
개발자에게는 서버 안정화
운영자에게는 애자일 방법 을 알아야 한다.

공통사항 - 자동화
자동화 - 코드 빌드 -> 코드 테스팅 -> 소프트웨어 테스팅 -> 인프라 변경 -> 배포

DevOps 라이프사이클
개발자 코드 -> 코드 빌드 -> 코드 테스트 -> 코드 분석 -> 딜리버리 -> DB/OS 등 인프라 변경 -> 소프트웨어 테스팅 -> 운영 배포 -> 변경점 확인 -> 피드백 -> 모니터링

 

 

 

Continuous Integration (CI)

개발자가 코딩한 내용을 Version Control System에 올림.(예 GitHub)

해당 코드를 빌드한 후 레파지토리에 올리는데.
코드를 빌드할 때 war,jar,dll 등등으로 빌드한다.
빌드된 파일을 서버에 올려 테스팅함.

문제점:
개발자가 코딩하여 3주간의 코드를 올렸을 때 빌드 서버에서 테스팅할 때 많은 에러가 발생할 경우 많은 과정 반복해야함.

개선:
개발자가 Commit 할 때 바로 빌드하고 테스팅 과정까지 자동화
빌드될 경우 서버로 보내고 빌드가 안됬을 시 다시 Commit 과정

이러한 과정을 CI라고 한다.
코드 -> 패치 -> 빌드 -> 테스트 -> 알림 -> 피드백


정리
IDE -> 이클립스, VS코드, 아톰 등등
Version Control -> Git, SVN, TFS 등등
Build tool -> MAVEN, ANT, GRADLE, MSBUILD 등등
Software Repository -> Sonatype Nexus, JFRog 등등
CI -> 젠킨스, 서클CI, 팀시티 등등

 

 

Continuous Delivery(CD)

코드를 빌드하고 테스트에서 Promote됬을 경우 CD

해당 Artifact를 서버에 배포하는 작업

서버에 배포 과정은 다음과 같다.
서버 프로비저닝
디펜던시
구성 변경
네트워크
아티팩트 배포

해당 배포 과정을 자동화 하기 위한 툴은 다음과 같음
앤서블 퍼펫 쉐프
테라폼, 크라우드포메이션
젠킨스, 옥토퍼스 디플로이
헬름 차트 등등..

테스트 자동화
기능
로드
퍼포먼스
DB
보안

CD의 과정은 다음과 같음
자동화 배포 -> DB/보안 변경 -> 소프트웨어 테스트 -> 운영 배포 일정 선택

셋업은 Chocolatey

간편하게 CLI를 통해 소프트웨어를 설치할 수 있는 패키지 관리 툴

1. chocolatey 설치
윈도우에서 쉽게 소프트웨어를 설치할 수 있는 툴
https://chocolatey.org/install#individual 접속하여 설치

2. 소프트웨어 설치
Powershell 관리자 권한 실행
choco install 
virtualbox vagrant git jdk8 maven awscli intellijidea-comunity sublimetext3.app

 

반응형

'DevOps' 카테고리의 다른 글

[Jenkins] DSL & 파이프라인  (0) 2022.11.08
[Jenkins] 기본 설정 정리  (0) 2022.11.08
[Jenkins] 컨테이너 구성 및 기본 job 테스트  (0) 2022.11.08
Comments