DevOps
2024. 3. 19. 11:01
728x90
1. DevOps
1) 여러 개발자가 모였을 때...?
하나의 프로젝트를 작은 단위로 분리한다. -> 각각의 작업을 합치는 건 복잡할 수 밖에 없다..3
2) 개발 산출물이 어떻게 사용자에게 도달할까? (운영과정)
- 적당한 성능의 컴퓨터 구비
- 컴퓨터에 개발한 웹 서비스 실행
- 해당 컴퓨터를 인터넷에 연결, 24시간 꺼지지 않도록 조정
- 인터넷 사용자가 이 컴퓨터를 찾을 수 있도록 환경 조성 (방화벽, 포트포워딩 등) + SEO, DNS 등 작업할 것들이 많다..
3) 개발 프로젝트의 전체적 과정 : 소프트웨어 생명 주기 (Software Life Cycle)
- 어떤 기능을 만들어야 할지를 결정하기 위한 기획
- 각각의 개발자가 만든 코드의 통합
- 완성된 코드의 테스트 및 배포
- 배포된 프로젝트 모니터링
> Software Development + IT Operations의 작업의 통합과 자동화를 통해 > 소프트웨어 개발 생명주기의 단축을 목표로 하는 개발.
- Continuous Integration
- Continuous Delivery / Deployment
- Infrastructure as Code
2. DevOps 주요 기술
1) Continuous Integration 지속적 통합
: 개별 개발자의 작업이 통합되지 않은 채 개발이 지속되는 것을 방치하면 통합 과정에서 문제가 더 크고 복잡해진다.
> 짧은 주기로 코드를 통합하고, 통합된 코드를 자동으로 테스트할 수 있는 환경을 구성하는데 목적.
- 자신의 작업을 주 Branch에 빠르게 반영할 수 있도록 노력.
- 개발 내용에 대해 테스트를 지속적으로 작성
- 잦은 통합과 테스트를 통해 충돌 방지
- 최종 배포 시점에서의 고충 해소
2) Continuous Delivery / Deployment 지속적 전달, 지속적 배포
: 짧은 주기로 빌드된 소프트웨어가 자동으로 배포될 수 있도록 구성하는 개발 방식
- 항상 코드를 배포 가능한 상태로 유지하는데 목표를 둔다.
- Delivery(전달,,, 그 후 배포할지 결정)와 Deployment(바로 배포)의 차이는 Click of a Button
- CI : 하루 단위의 작은 작업의 지속적인 통합을 장려
- CD : CI의 결과물을 손쉽게 사용자에게 전달
==> 결국 개별 담당자가 진행하던 내용을 자동화하여 사용자에게 결과를 빠르게 전달.
3) Infrastructure as Code
: 클라우드 서비스는 필요한 자원을 필요한 시점에 제공받을 수 있게 해준다. API를 제공하고 컴퓨터 코드로 실행 가능 >> 자동화하고 싶다!!
-> 코드형 인프라 : 컴퓨터가 읽을 수 있는 설정 파일의 형태로 컴퓨터 자원을 관리.
- 선언적으로 자원 선언
- 컴퓨터 자원의 변화도 버전을 관리
- 필요에 따라 새로운 컴퓨터 자원 구성
728x90
'Programming > etc' 카테고리의 다른 글
면접 자바 질문 (0) | 2024.03.30 |
---|---|
Linux 개요 (2) | 2024.03.22 |
Toss Payments API 적용기 (결제승인, 결제조회, 결제취소) (4) | 2024.02.21 |
[API] 토스 페이먼츠 (0) | 2024.02.20 |
서비스 고도화하기(3) - 검색엔진 최적화(SEO) (0) | 2023.12.12 |