CI/CD (지속적 통합/배포)는 마이크로서비스 아키텍처를 성공적으로 운영하기 위한 필수적인 전제조건입니다. 수십 개의 서비스를 수동으로 배포하고 관리하는 것은 불가능하기 때문입니다.
마이크로서비스 환경에서의 CI/CD 파이프라인:
kubectl과 같은 도구를 사용하여, 운영 중인 쿠버네티스 클러스터의 Deployment 오브젝트가 사용하는 이미지 버전을 새로운 버전으로 업데이트합니다.핵심: 개발자는 자신의 서비스 코드만 푸시하면, 이 모든 과정이 자동으로 이루어져 몇 분 안에 변경 사항이 운영 환경에 반영됩니다.
서버리스는 개발자가 서버를 직접 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 컴퓨팅 실행 모델입니다. "서버가 없다"는 뜻이 아니라, 서버의 프로비저닝, 스케일링, 패치, 유지보수 등 서버 관리에 대한 모든 책임을 클라우드 공급자(AWS 등)에게 위임하는 것입니다.
FaaS (Function as a Service): 서버리스의 가장 대표적인 형태로, 특정 이벤트가 발생했을 때만 실행되는 작은 코드 조각(함수)을 작성하여 배포하는 방식입니다.
문제점: 마이크로서비스의 수가 수십, 수백 개로 늘어나면, 서비스 간의 네트워크 통신이 매우 복잡해집니다.
서비스 메시: