16. 모노리딕 - Monolithic
비즈니스 로직, 데이터 액세스 코드를
하나의 애플리케이션으로 결합하는
단일구조 애플리케이션 중 하나
…
which all the business logic and
data access code are combined
into a single application.
36. 마이크로 서비스 아키텍쳐
2012년 ThoughWorks의 James Lewis가 “Java, The Unix way”라는 제목의 발표로 처음 언급
2014년 3월 James Lewis, Martin Fowler
Microservices라는 타이틀로 MSA에 대한 개념정리
37. 마이크로서비스
• 작고(small)
• 자율적이며(autonomous)
• API로 다른 서비스와 연계하며
(communicate with us via those APIs)
• 한 가지 일을 잘하는데 초점을 맞춘 서비스
(focused on doing one thing well)
…is a software architecture style in which complex
applications are composed of small, independent
processes communicating with each other using
language-agnostic APIs. These services are small,
highly decoupled and focus on doing a small task,
facilitating a modular approach to system-
building.
wikipedia - Microservices
38. 마이크로 서비스 아키텍쳐
• 서비스 제공 기업 주도
• 이미 검증된 사례 모음
• 오픈소스 기반
• Agile 개념 결합
• Cloud 환경 활용
90. '소프트웨어의 구조는 그 소프트웨어를 개발하는
팀의 구조와 유사해진다는 법칙’
ORGANIZATIONS WHICH DESIGN SYSTEMS ... ARE CONSTRAINED TO PRODUCE DESIGNS
WHICH ARE COPIES OF THE COMMUNICATION STRUCTURES OF THESE ORGANIZATIONS
Conway, Melvin E. (April 1968)
컨웨이 법칙 (CONWAY LAW)
114. Microservice Architecture 특징
• Componentization via Services / 서비스에 의한 컴포넌트화
• Organized around Business Capabilities / 비즈니스 영역에 따른 조직화
• Products not Projects / 프로젝트가 아닌 프로덕트
• Smart endpoints and dumb pipes / 단순한 어플리케이션간 연동과 파이프처리 – 유닉
스의 철학
• Decentralized Governance / 개발의 분권화
• Decentralized Data Management / 데이터 관리의 분권화 – Polyglot Persistence
• Infrastructure Automation / 환경구축의 자동화 - DevOps
• Design for failure / 장해를 전제로한 설계
• Evolutionary Design / 변화에 대응하는 설계
115. Microservice Architecture 단점
• Complexity
• Multiple Database Transaction Management
• Complicated Test
• Require Automation for Deploy/Operation
• Hard to develop features span multiple services
116. 정리
• MSA는 만능은 아니다
• 패러다임 변화가 큰 만큼 조직 문화가 뒷받침되어야 가능
• Microservice 단위의 재사용과 자유로운 리팩토링이 가능
• 코드의 양을 줄여서 누구나 쉽게 파악하는것이 가능
• 서비스 간 연계 시 사전협의 필요