데브옵스(DevOps)
데브옵스(DevOps)는 소프트웨어 개발 및 운영 프로세스를 통합하여 효율적이고 지속적인 소프트웨어 제공을 가능하게 하는 소프트웨어 개발문화 또는 방법론을 나타냅니다. "데브"는 소프트웨어 개발(Development)을, "옵스"는 운영(Operations)을 의미하며, 두 영역 간의 협력과 통합을 강조합니다.
데브옵스의 주요 목표와 특징
- 지속적인 통합 (Continuous Integration, CI): 개발자가 코드를 공유하는 과정에서 자동화된 빌드 및 테스트를 수행하여 코드 품질을 높이고 문제를 조기에 발견합니다.
- 지속적인 배포 (Continuous Deployment/Delivery, CD): 지속적인 통합 이후 자동화된 배포 프로세스를 통해 새로운 기능이나 수정 사항이 실제 운영 환경으로 자동으로 배포됩니다.
- 자동화 (Automation): 인프라 구성, 테스트, 배포 등의 작업을 자동화하여 인간의 개입을 최소화하고 신속한 프로세스를 구축합니다.
마이크로서비스(MSA, microservices)
데브옵스를 실현하기 위한 수단으로 마이크로서비스가 이용됩니다.
마이크로서비스 아키텍처는 소프트웨어 시스템을 작은, 독립적인 서비스로 분해하는 디자인 패턴입니다.
마이크로서비스는 각각의 서비스가 독립적으로 배포, 운영, 확장될 수 있도록 하는 것을 목표로 합니다.
*모놀로식서비스(monolithic) : 모든 비즈니스 로직이 한 애플리케이션안에 포함된 구조
마이크로서비스의 특징
- 독립성: 각 마이크로서비스는 독립적으로 배포될 수 있으며, 자체적으로 데이터베이스를 가지거나 다른 서비스와 완전히 분리된 데이터 소스를 사용할 수 있습니다.
- 분산 아키텍처: 시스템은 여러 서비스로 구성되어 있으며, 이 서비스들은 네트워크를 통해 통신합니다. 이는 서비스 간의 결합도를 낮추고 확장성을 높여줍니다.
- 단일 책임 원칙: 각 마이크로서비스는 특정 기능이나 비즈니스 영역에 집중하며, 한 가지 책임을 수행합니다.
- 자율성: 각 서비스는 독립적으로 관리될 수 있으며, 다양한 기술 스택이나 개발 팀이 사용될 수 있습니다.
- 유연성과 확장성: 마이크로서비스는 개별적으로 확장될 수 있어서 특정 서비스에 대한 부하가 증가할 때 해당 서비스만 확장할 수 있습니다.
- 효율적인 배포 및 업그레이드: 특정 서비스의 변경이나 업그레이드가 전체 시스템에 미치는 영향이 제한되기 때문에 빠른 배포가 가능합니다.
- 장애 격리와 회복성: 하나의 서비스에서 발생한 장애는 다른 서비스에 영향을 미치지 않도록 설계됩니다.
'study > 클라우드&쿠버네티스' 카테고리의 다른 글
쿠버네티스 아키텍처 (마스터, 노드) (0) | 2023.10.04 |
---|---|
쿠버네티스 (오브젝트, 컨트롤러) (0) | 2023.10.04 |
마이크로서비스 아키텍처 설계 (구성 요소, 고려 사항) (0) | 2023.10.04 |
컨테이너 오케스트레이션, 쿠버네티스(Kubernetes) (0) | 2023.10.04 |
가상화(Virtualization)와 컨테이너(Containerization) (0) | 2023.10.04 |