본문 바로가기
Web

MicroService란?

by 밍상 2022. 5. 26.

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

  1. Base Code
  2. Dependency Isolation
  3. Configuration
  4. Linkable Backing Services
  5. Stages of Creation (Build, Release and Run)
  6. Stateless, Processes
  7. Port Binding
  8. Concurrency
  9. Disposability
  10. Deployment & Production Parity
  11. Logs
  12. Admin Processes for Eventual Processes
  13. API First
  14. Telemetry
  15. Authentication and Authorization

MicroService Architecture

  1. Challenges
  2. Small Well Chosen Deployable Units
  3. Bounded Context
  4. Restful
  5. Configuration Management
  6. Cloud Enabled
  7. Dynamic Scale Up And Scale Down
  8. CI/CD
  9. 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

'Web' 카테고리의 다른 글

IP 주소란?  (0) 2022.07.28
CORS란?  (0) 2022.07.26
HTTP 2.0  (0) 2021.11.19
쿠키와 세션  (0) 2021.11.19
Rest API  (0) 2021.08.02