Antifragile
- Auto scaling (자동 확장성)
- Microservices - 모듈을 독립적 개발, 통합
- Chaos engineering - 불확실성에도 안정적으로 대처
- Continuous deployments - 지속적 통합, 배포
Cloud Native Architecture
- 확장 가능한 아키텍처
- 탄력적 아키텍처
- 장애 격리
Cloud Native Application
- MicroServices
- CI / CD
- DevOps
- Containers
지속적인 통합, CI
- 통합 서버, 소스 관리, 빌드 도구, 테스트 도구
- Jenkins, Team CI, Travis CI
지속적 배포
- Continuous Delivery
- Continuous Deployment = 자동 반영 = Continuous Delivery + 수동 반영
- Pipe line
카나리 배포와 블루 그린 배포
CloudService를 구축하는데 필요한 12개의 요소 + 3
- Base Code
- Dependency Isolation
- Configuration
- Linkable Backing Services
- Stages of Creation (Build, Release and Run)
- Stateless, Processes
- Port Binding
- Concurrency
- Disposability
- Deployment & Production Parity
- Logs
- Admin Processes for Eventual Processes
- API First
- Telemetry
- Authentication and Authorization
MicroService Architecture
- Challenges
- Small Well Chosen Deployable Units
- Bounded Context
- Restful
- Configuration Management
- Cloud Enabled
- Dynamic Scale Up And Scale Down
- CI/CD
- Visibility
SOA(Service Oriented Architecture) vs MSA(Micro Service Architecture)
- SOA - 재사용을 통한 비용 절감
- MSA - 서비스 간의 결합도를 낮추어 변화에 능동적으로 대응
기술방식
- SOA - 공통의 서비스를 ESB에 모아 사업 측면에서 공통 서비스 형식으로 서비스 제공
- MSA - 각 독립된 서비스가 노출된 REST API 사용
Spring Cloud
- Centralized configuration management - Spring Cloud Config Server
- Location transparency - Naming server (Eureka)
- Load Distribution - Ribbon(Client Side), Spring Cloud Gateway
- Easier REST Clients - FeignClient
- Visibility and monitoring - Zipkin Distributed Tracing, Netflix API gateway
- Fault Tolerance - Hystrix