study/클라우드&쿠버네티스

데브옵스(DevOps)와 마이크로서비스(microservices) 개념, 특징

dddzr 2023. 9. 26. 19:04

데브옵스(DevOps)

 

출처 : https://devopedia.org/devops

데브옵스(DevOps)는 소프트웨어 개발 및 운영 프로세스를 통합하여 효율적이고 지속적인 소프트웨어 제공을 가능하게 하는 소프트웨어 개발문화 또는 방법론을 나타냅니다. "데브"는 소프트웨어 개발(Development)을, "옵스"는 운영(Operations)을 의미하며, 두 영역 간의 협력과 통합을 강조합니다.

 

데브옵스의 주요 목표와 특징

  • 지속적인 통합 (Continuous Integration, CI): 개발자가 코드를 공유하는 과정에서 자동화된 빌드 및 테스트를 수행하여 코드 품질을 높이고 문제를 조기에 발견합니다.
  • 지속적인 배포 (Continuous Deployment/Delivery, CD): 지속적인 통합 이후 자동화된 배포 프로세스를 통해 새로운 기능이나 수정 사항이 실제 운영 환경으로 자동으로 배포됩니다.
  • 자동화 (Automation): 인프라 구성, 테스트, 배포 등의 작업을 자동화하여 인간의 개입을 최소화하고 신속한 프로세스를 구축합니다.

 

마이크로서비스(MSA, microservices)

데브옵스를 실현하기 위한 수단으로 마이크로서비스가 이용됩니다.

출처 : https://microservices.io/

마이크로서비스 아키텍처는 소프트웨어 시스템을 작은, 독립적인 서비스로 분해하는 디자인 패턴입니다. 

마이크로서비스는 각각의 서비스가 독립적으로 배포, 운영, 확장될 수 있도록 하는 것을 목표로 합니다.

*모놀로식서비스(monolithic) : 모든 비즈니스 로직이 한 애플리케이션안에 포함된 구조

 

마이크로서비스의 특징

  • 독립성: 각 마이크로서비스는 독립적으로 배포될 수 있으며, 자체적으로 데이터베이스를 가지거나 다른 서비스와 완전히 분리된 데이터 소스를 사용할 수 있습니다.
  • 분산 아키텍처: 시스템은 여러 서비스로 구성되어 있으며, 이 서비스들은 네트워크를 통해 통신합니다. 이는 서비스 간의 결합도를 낮추고 확장성을 높여줍니다.
  • 단일 책임 원칙: 각 마이크로서비스는 특정 기능이나 비즈니스 영역에 집중하며, 한 가지 책임을 수행합니다.
  • 자율성: 각 서비스는 독립적으로 관리될 수 있으며, 다양한 기술 스택이나 개발 팀이 사용될 수 있습니다.
  • 유연성과 확장성: 마이크로서비스는 개별적으로 확장될 수 있어서 특정 서비스에 대한 부하가 증가할 때 해당 서비스만 확장할 수 있습니다.
  • 효율적인 배포 및 업그레이드: 특정 서비스의 변경이나 업그레이드가 전체 시스템에 미치는 영향이 제한되기 때문에 빠른 배포가 가능합니다.
  • 장애 격리와 회복성: 하나의 서비스에서 발생한 장애는 다른 서비스에 영향을 미치지 않도록 설계됩니다.