728x90
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의
Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해
www.inflearn.com
이 글은 위 강의를 수강하고 작성합니다.
[Software의 발전 과정]
- 1960s~1980s : main frame의 시대. 하드웨어의 성격이나 사양에 맞춰 시스템 구축.
- 1990s~2000s : 분산 시스템의 발전(시스템 안정화).
- 2010s~ : Fragile과 반대되는 Anti-fragile의 시대. Cloud Native를 활용한 시스템이 활발하게 구축.
[Antifragile]
- Auto Scaling : 자동 확장성, 사용량에 따라 자동으로 인스턴스 증가. (ex. 쇼핑몰 - 5월, 12월 등에 서버의 운영 개수를 늘린다.)
- Micro Service : 기존의 서비스들이 하나의 거대한 형태로 이루어진 것과는 달리 전체 서비스를 구축하고 있는 개별 모듈 및 기능을 독립적으로 개발, 배포, 운영할 수 있는 서비스
- Chaos Engineering : 시스템이 예측할 수 없는 상황에서도 견딜 수 있어야 한다.
- Continuous deployments : CI/CD
CI/CD
자동화 된 시스템을 구축하고 하나의 작업에서 다른 작업으로 연계되는 과정을 파이프라인으로 연결 시켜 놓은 것
-> 전체적인 시스템 업그레이드를 빠르게 적용 가능
[Cloud Native Architecture]
- 확장 가능한 Architecture
- 시스템의 수평적 확장에 유리
- 확장된 서버로 시스템의 부하를 분산하며 동시에 가용성을 보장할 수 있다.
- 모니터링
- 탄력적 아키텍처
- 서비스 생성 - 통합 - 배포, 비즈니스 환경 변화에 대응 시간 단축
- 분할된 서비스 구조
- 무상태 통신 프로토콜
- 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리)
- 장애 격리(Fault isolation)
- 특정 서비스에 오류가 발생해도 다른 서비스에 영향을 주지 않는다.
[Cloud Native Application]
- CI/CD를 통해 빌드 - 테스트 - 배포를 자동적으로 해야한다.
- DevOps : 개발 조직과 운영 조직의 통합
- 기존은 도메인 분석, 시스템 설계, 구현, 테스트, 배포 등 과정을 거쳐 시스템 개발. (과정이 오래 걸림) -> 기간이 길어지는 만큼 변화에 유연한 대처 어려움
- DevOps환경은 지속적으로 기획, 빌드, 테스트, 배포를 시스템이 종료될 때까지 무한히 실시하여 즉각적인 수정 가능 -> 서비스의 구조를 작은 단위로 분할할 수 있어 더 자주 통합, 테스트, 배포 가능
- MicroServices
- 컨테이너 가상화 : 하나의 Application을 구성하는 Micro Service들을 Cloud 환경에 배포하고 사용하기 위함.
- 적은 비용으로 탄력성 있는 시스템 구축 가능.
- Cloud Native Architecture의 핵심
728x90
반응형