-
견고한 마이크로서비스 구축을 위해서는 다음과 같은 사항을 고려해야 한다.
- 적정크기
- 위치 투명성
- 회복성
- 반복성
- 확장성
-
마이크로서비스 패턴들은 이러한 요구 조건의 구현 기술들을 분류하고 일반화 한다.
-
핵심 개발 패턴
- 서비스 세분성
- 통신 프로토콜
- 인터페이스 설계
- 서비스간 이벤트 프로세싱
-
라우팅 패턴
- 서비스 디스커버리
- 서비스 라우팅(단일 진입점, 게이트웨이)
-
클라이언트 회복성 패턴
- client-side load balance(클라이언트측 부하 분산)
- circuit breaker pattern(회로 차단기 패턴)
- fallback pattern
- bulkhead pattern
-
보안 패턴
- authentification(인증)
- authorization(인가)
- credential management(자격 증명 관리) & propagation(전파)
-
로깅 및 추적 패턴
- log corelation
- log aggregation
- microservice tracing
-
빌드 및 배포 패턴
- 빌드 및 배포 파이프라인
- infra as code
- immutable server
- phoenix server
-
-
스프링 클라우드(http://projecs.pring.io/spring-cloud) 프로젝트
- 마이크로서비스 패턴을 구현한 오픈소스 프로젝트들을 스프링 기반에서 통합
- 마이크로서비스 구축을 위한 다양한 오픈소스 프로젝트들을 스프링 애플리케이션에서 쉽게 설정하고 구성할 수 있다.
-
마이크로서비스 패턴과 스프링 클라우드 프로젝트
-
Spring Boot: 핵심 개발 패턴*
- JSON(통신 프로토콜)*
- Spring Rest*
-
Spring Cloud Config: 핵심 개발 패턴(구성관리)*
- Git*
- Consul
- Eureka
- Zookeeper
-
Spring Cloud Discovery: 라우팅 패턴(서비스 디스커버리)*
- Consul
- Eureka*
-
Spring Cloud Hystrix & Ribbon: 클라이언트 회복성 패턴*
- Hystrix(circuit breaker, fallback, bulkhead)
- Ribbon(load balance)*
-
Spring Cloud Zuul: 라우팅 패턴(단일 진입점)*
- Zuul*
-
Spring Cloud Stream: 핵심 개발 패턴(서비스간 이벤트 프로세싱)
- RabbitMQ
- Kafka
-
Spring Cloud Sleuth: 로깅 및 추적 패턴
- Pappertrail(log aggregation)
- Zipkin(log corelation, microservice tracing)
-
Spring Cloud Security: 보안 패턴*
- Spring Security(authentification, authorization)*
- oAuth2/JWT(자격 증명 관리)*
-
Provisioning: 빌드 및 배포 패턴
- Travis CI(빌드), Jenkins(빌드)*
- Docker(배포)
-
msa-pracitces's Introduction
msa-pracitces's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.