개발일지/MSA 및 api gateway
Cloud Native Application
티에리앙리
2022. 8. 10. 19:18
Cloud Native Architecture 특징
- 확장 가능한 아키텍처
- 시스템의 수평적 확장
- 시스템 부하 분산, 가용성 보장
- 서비스 어플리케이션 단위 패키지 (컨테이너 기반 패키지)
- 모니터링
- 탄력적 아키텍처
- 어플리케이션의 각기능을 서비스로 생성 - 통합 - 배포을 CI/CD자동화 파이프라인을 통해 처리, 환경 변화 대응시간 단축
- 작게 분리된 독립적인 서비스들이 분할된 구조
- 무상태 통신 프로토콜, 종속성 최소화
- 서비스 추가와 삭제 자동으로 감지
- 변경된 서비스 요청에 따라 사용자 요청 처리 (동적 처리)
- 장애 격리
- 특정 오류가 나더라도 다른 서비스에 영향을 주지 않는다.
Cloud Native Application
- 지속적인 통함, CI(Continuous Integration)
- 결과물을 통합하기위한 형상관리, 통합된 코드를 빌드하고 테스트하는 과정
- 통합 서버, 소스 관리(SCM), 빌드 도구, 테스트 도구
- ex) Jenkins, Travis CI, Team CI
- 지속적 배포
- Continuous Delivery : 소스저장소에서 실행환경에 수동으로 배포
- Continuous Deployment : 소스저장소에서 실행환경에 자동으로 배포
DevOps
Development + Operations : 개발조직과 운영조직의 통합
고객의 요구사항을 빠르게 반영하고 만족도 높은 결과물을 제공
Container
가상화 기술
Cloud Native의 핵심
운영체제 위에 Container Runtime 서비스를 작동, 애플리케이션을 패키지화하고 분리하는 기술
Microservice
각기능에 해당하는 서비스를 독립적으로 분해하여 구축하고 서로 네트워크로 통신하는 아키텍처