티스토리 뷰

 

 

GOTO 2014에서 마틴 파울러는 마이크로서비스의 개념과 특징에 대해서 설명한다. 마이크로서비스를 간략하게 정의하면 아래와 같다.

"마이크로서비스는 소프트웨어 시스템을 디자인하는 여러 스타일 중 하나로 작은 서비스의 결합으로 하나의 응용프로그램을 개발하는 방법을 말합니다. 각각의 서비스는 비즈니스 기능 중심으로 구성되며, 완전히 자동화된 배포 환경에 의해 각각 독립적으로 배포될 수 있습니다. 중앙 집중식 관리는 최소화하며, 각각의 시스템은 다른 프로그래밍 언어와 다른 데이터 스토리지 기술로 작성하는 것이 가능합니다."

또한 기존 SOA와 모노리틱 스타일이 마이크로서비스와 어떻게 다른지 설명한다. 본 강의에서는 마이크로서비스의 장점 위주로 설명하고 있지만 이것이 모든 아키텍처 설계의 정답은 아니다. 이것을 통해 얻는 유연함 대신 성능상의 저하가 없는지 고려해야 할 것이다.

 

목차

Definition of Microservices

Characteristics of Microservices

1. Componentization via services
2. Organized around business capabilities
3. Products not Projects
4. Smart endpoints and dumb pipes
5. Decentralized Governance
6. Decentralized Data Management
7. Infrastructure Automation
8. Design for failure
9. Evolutionary Design

Are Microservices just SOA?

How Big?

Advantages of Microservices

 

마틴 파울러의 강연 동영상

 

참고

제임스 루이스와 마틴 파울러가 쓴 마이크로서비스에 대한 기사
http://www.martinfowler.com/articles/microservices.html

마이크로서비스가 가져올 미래의 개발 패러다임
http://www.moreagile.net/2014/10/microservices.html

대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해
http://bcho.tistory.com/948

에릭 에반스, <도메인 주도 설계>, 위키북스

 

- James Song

댓글