반응형
DevOps 공정
: 과거에는 개발과 운영파트가 구분되어 기능을 배포하는데 수개월이 걸렸으며 차세대 프로젝트처럼 다음 버전으로 릴리즈하는데 많은 비용과 시간이 들었다. DevOps는 개발과 운영을 동시에 관리하여 작은기능 단위로 본다면 빠른시간안에 배포하여 운영이 가능하다.
**계획 - 개발 - 빌드 - 테스트 - 릴리스 - 배포 - 운영 - 모니터링 순서**
DevOps 구간별 활동 - 애자일 개발
- 계획 - 서비스 개선을 계획하고 추적 번경 요구 검토 및 개선 작업 계획수립 우선순위에 따른 요구사항 관리 작업상황 가시화 및 추적 스크럼, 칸반이라는 방식을 사용
- 개발 소스코드 저장소를 통해 버전관리 필수 테스트 자동화를 위한 테스트 코드 작성 소스코드 인스펙션, 동료검토 및 리팩토링 수행 Saas(software as a service) 개발을 위한 필수 요건 반영 - 코드관리방안, 무상태 프로세스, 포트 바인딩, 동시성 처리, 로그처리 방안
- 지속적 통합 게획부터 빌드, 테스트까지 통합하여 하는 활동
- 빌드/테스트 실행 가능한 소프트웨어 산출물을 만들고 테스트 하는 활동 소스코드 컴파일, 단위 테스트, 패키딩, 통합테스트 통합된 최신 코드 지속적 업데이트, 작은 단위로 수행 완벽한 빌드 테스트 후 즉각적 변경 반영( 완벽히 빌드 되지않은 코드는 작업 지연 및 병목현상 발생 가능)
- 지속적 전달 /배포 지속적 통합을 확장하여 릴리즈 배포까지 활동
- 릴리즈/ 배포 릴리즈는 가장 큰 병목과 지연이 발생하는 구간 운영 환경 준비 및 문제 발생 시 롤백 대응 UI테스트/부하 테스트, 통합 테스트 등 다양한 테스트 수행 지속적 전달의 경우 테스트 성공시 스테이징 환경까지 배포 지속적 배포의 경우 자동 프로덕션 환경까지 배포
- 지속적 서비스 개선 지속적 전달/배포를 확장하여 운영/모니터링까지 활동
- 운영/모니터링 - 사용자에게 중단없는 서비스 제공이벤트 및 로그를 통한 성능, 품질 모니터링 분석을 통한 개선사항 도출, 계획 반영 후 적용
- 장애,성능,보안, 용량, 가용성관리 애플리케이션 및 인프라 구성, 변경관리
사례
지속적 통합/전달/배포 : Jenkins를 사용하여 지속적으로 통합 배포한다. 대쉬보드 : 쿠버네티스, 지라 등을 사용하여 프로젝트 개발 진행사등을 공유 관리한다.
- 이클립스 대중적 통합개발환경 도구 다양한 플러그인을 사용하여 확장된 기능을 제공
- spring tool suite 이클립스 기반의 기능확장 도구
- spring boot 쉬운 환경 설정으로 SaaS 서비스 개발에 용이함
- Git 소스코드 관리를 위한 분산형 버전 관리 시스템
- GitHub Git기반의 글로벌 깃 저장소서비스 ( Git의 SaaS버전) 많은 오픈소스 프로젝트들 관리 개발자 커뮤니티의 중심
- Apache Mave 자바 소스코드를 배포용 산출물로 빌드하기 위한 도구 소프트웨어 프로젝트 객체 모델 사용 - 기존보다 사용성이 좋음 의존성, 라이브러리관리, 컴파일, 패키징, 테스트 작업 수행
- 젠킨스 지속적 통합을 자동화 해주는 가장 유명한 도구 빌드 - 테스트 - 배포 자동화 웹 인터페이스를 통한 간편한 실행 플러그인을 통한 확장된 기능 수행
- 소나큐브 소스코드 정적 분석을 통해 품질 대시보드를 제공하는 도구 지속적 통합과 연계하여 소스코드 품질 점검 소스코드 검사를 통해 개발자에게 더 나은 코딩 안내 ( 개발자 역량 및 소슼도 품질 향상)
- 도커 컨테이너 기반의 애플리케이션으로 쉽게 관리하는 가상화 플랫폼 DevOps관련 가장 빠르게 발전 컴퓨팅환경(개발,테스트,운영)사오항에 따른 다양한구성 가상화 기술 활용으로 동일한 환경, 구성을 유지하여 쉽게 관리 가능 리눅스 컨테이너 방식의 사용으로 성능 저하 문제 해결
반응형
'What i learn.' 카테고리의 다른 글
[What I Learn] HashMap사용 (0) | 2021.05.03 |
---|---|
[What I Learn] Apache Maven (0) | 2021.04.05 |
[What I Learn] Git Flow( using Git Extension) (0) | 2020.11.17 |
[What I Learn] MVC의 service vs Dao (0) | 2020.11.16 |
[What I Learn] Shell, Console, Terminal (0) | 2020.11.16 |