04. DevOps,CICD 18

롤링 업데이트(Rolling Update)는 소프트웨어 배포 방식

롤링 업데이트(Rolling Update)란? 롤링 업데이트는 시스템 업데이트를 점진적으로 수행하는 방식으로, 서비스 중단을 최소화하고 리스크를 관리하는 데 유용합니다. 가. 롤링 업데이트의 특징 점진적 배포: 업데이트가 일괄적으로 이루어지는 것이 아니라, 시스템의 일부분에만 순차적으로 적용됩니다. 서비스 중단 최소화: 업데이트 중에도 시스템의 나머지 부분이 정상 작동하여 서비스 중단 시간을 최소화합니다. 위험 감소: 전체 시스템에 대한 업데이트가 아니므로, 문제 발생 시 영향을 제한하고 빠른 대응이 가능합니다. 나. 롤링 업데이트의 과정 준비 단계: 새 버전의 애플리케이션을 준비하고, 업데이트를 위한 계획을 세웁니다. 부분적 배포: 시스템의 일부 인스턴스에만 새 버전을 배포합니다. 모니터링 및 검증: ..

04. DevOps,CICD 2024.01.20

Gitops Overview

The GitOps Pipeline 이 문서는 GitOps 파이프라인의 두 번째 부분으로, GitOps의 개념, 중요성 및 실제 적용 방법에 대해 설명합니다. 1. GitOps란 무엇인가 GitOps는 Git을 원천으로 사용하여 지속적인 배포를 하는 방법입니다. 인프라와 어플리케이션을 선언적으로 관리하고, Git에 변경이 있을 때 자동으로 인프라에 롤아웃합니다. 실제 생산 환경의 상태와 Git 소스 코드 간 불일치를 파악하여 문제를 해결할 수 있는 피드백 루프를 포함합니다. 출처: Flux 2. GitOps의 중요성 GitOps는 개발자가 Kubernetes와 같은 운영 관리 및 모니터링 작업을 간소화하고 가속화하는 데 도움이 됩니다. 클라우드 네이티브 CI/CD 파이프라인 모델을 제공하며, 빠른 배포 ..

04. DevOps,CICD 2024.01.18

DevOps vs GitOps

DevOps와 GitOps 개요 가. DevOps (데브옵스) 1. 정의 "Development(개발)"과 "Operations(운영)"의 합성어로, 소프트웨어 개발과 IT 운영의 협력을 강화하여, 더 빠른 개발 사이클과 높은 소프트웨어 품질을 달성하는 방법론입니다. 2. 장점 빠른 배포: 기능의 신속한 출시로 시장 반응 속도를 높일 수 있습니다. 향상된 협력: 개발자와 운영 팀 간의 지속적인 소통으로 조직 문화가 개선됩니다. 자동화된 프로세스: 반복적인 작업의 자동화로 인해 오류가 감소하고, 생산성이 증가합니다. 지속적인 피드백: 고객의 피드백을 빠르게 받아들여 개선할 수 있습니다. 3. 단점 문화적 변화 필요: 기존 프로세스와 다른 접근 방식을 채택해야 하며, 이는 조직 전체의 변화를 요구합니다. 초..

04. DevOps,CICD 2024.01.18

DevSecOps의 주요 보안 요소

1. DevSecOps 소개 DevSecOps는 개발(Dev), 보안(Sec), 운영(Ops)을 통합하는 실천 방법입니다. 이 접근 방식은 보안을 소프트웨어 개발 생명주기(SDLC)의 모든 단계에 내재화함으로써 보안 문제를 초기에 발견하고 더 빠르게 해결할 수 있게 합니다. DevSecOps의 목표는 보안을 자동화하고 모든 팀 멤버가 보안 책임을 공유하도록 함으로써 보안과 개발 속도 사이의 균형을 찾는 것입니다. 2. 보안을 위한 문화적 변화 DevSecOps를 성공적으로 도입하기 위해서는 조직 내에서 보안에 대한 문화적 변화가 필요합니다. 모든 팀 구성원이 보안을 공통의 목표로 인식하고 개발 초기 단계부터 보안을 고려해야 합니다. 이를 위해 교육 프로그램을 통한 인식 제고, 보안 전문가와 개발자 간의 ..

04. DevOps,CICD 2024.01.18

DevSecOps는 개발, 보안, 운영의 통합

DevSecOps 개요 DevSecOps는 개발(Development), 보안(Security), 운영(Operations)의 통합을 의미하며, 보안을 소프트웨어 개발과 운영의 전 과정에 걸쳐 내재화하는 것을 목표로 합니다. 이 접근 방식은 개발, 보안, 운영의 긴밀한 통합을 통해 보다 안전하고 신뢰할 수 있는 소프트웨어를 제공합니다. 가. DevSecOps의 핵심 요소 및 오픈소스 솔루션 1. 보안의 초기 통합 오픈소스 솔루션 예: OWASP ZAP, SonarQube 기능: 개발의 초기 단계부터 보안을 고려하고, 코드에 대한 보안 취약점을 조기에 탐지합니다. DevSecOps 관점: 보안의 초기 통합은 DevSecOps에서 핵심적인 역할을 합니다. 개발 초기부터 보안을 고려함으로써 애플리케이션의 보안..

04. DevOps,CICD 2024.01.18

DevOps 기술적 개념(CI/CT/CD/CM)

DevOps 기술적 개념 DevOps는 소프트웨어 개발 및 운영 프로세스를 개선하고, 품질을 향상시키고, 비용을 절감하는데 중요한 역할을 합니다. 가. CI (Continuous Integration) 1. 정의: 코드 변경사항을 주기적으로 빌드 및 테스트하고 중앙 리포지토리에 병합하는 프로세스. 2. 오픈소스 솔루션 예시: Jenkins, GitLab CI, Travis CI 3. 도입시 고려사항: 호환성, 확장성, 통합의 용이성 나. CT (Continuous Testing) 1. 정의: 개발 과정에서 지속적으로 소프트웨어를 테스트하여 품질을 유지하는 프로세스. 2. 오픈소스 솔루션 예시: Selenium, JUnit, TestNG 3. 도입시 고려사항: 테스트 자동화, 커버리지, 실행 시간 다. C..

04. DevOps,CICD 2024.01.18

DevOps Overview

DevOps 필요성, 성공 사례 및 도입시 고려사항 가. DevOps 필요성 시장 출시 시간 단축: 경쟁이 치열한 시장에서 빠른 제품 출시와 반복적인 업데이트가 필수적입니다. 예를 들어, 온라인 쇼핑몰은 새로운 기능을 추가하고 버그를 수정하기 위해 지속적으로 소프트웨어를 업데이트해야 합니다. DevOps를 도입하여 CI/CD 프로세스를 자동화함으로써, 회사는 소프트웨어 업데이트 시간을 75% 단축할 수 있었습니다. 이를 통해 회사는 경쟁업체보다 먼저 새로운 기능을 출시할 수 있었고, 이는 매출 증가로 이어졌습니다. 개발 및 운영의 효율성 증대: 지속적인 통합, 자동화 및 빠른 피드백 루프를 통해 작업 프로세스를 최적화합니다. 예를 들어, 소프트웨어 회사는 CI/CD를 사용하여 소프트웨어 개발 및 배포 프..

04. DevOps,CICD 2024.01.17

Git vs Harbor vs Nexus 구분

Git, Harbor, Nexus 기능 및 사용 목적 비교 가. Git 1. 목적 및 사용 Git은 소스 코드 버전 관리 시스템으로, 주로 개발자들이 소스 코드의 변경 사항을 추적하고 협업하는 데 사용됩니다. 이를 통해 여러 사용자가 동시에 작업하고 변경 사항을 추적할 수 있으며, 이전 버전으로의 롤백도 용이합니다. 2. 주요 기능 코드 변경 이력 관리: Git은 모든 코드 변경 사항을 자세히 기록하고, 변경 이력을 시간순으로 확인할 수 있게 해줍니다. 브랜치를 통한 독립적인 개발 지원: 여러 작업을 병렬로 진행하고, 각각의 브랜치에서 독립적으로 작업하며 최종적으로 병합할 수 있습니다. 원격 저장소와의 동기화: 원격 저장소와 연결하여 다른 개발자와 협업하며, 변경 사항을 공유하고 동기화할 수 있습니다. ..

04. DevOps,CICD 2024.01.15