마이크로서비스 개발의 필수 요소들
Command and Query Responsibility Segregation (명령과 책임분리)
• 명령 : 데이터 변경 (Create, Update, Delete) 작업
• 쿼리 : 데이터 쿼리(Read)작업
• 명령과 쿼리 작업의 책임을 분리하는 것

순차적으로 발생하는 이벤트를 적용된 순서대로 모두 저장
이벤트의 갱신이나 삭제 연산은 수행되지 않음
이벤트 소싱은 확장성이 뛰어나고 분산된 변경처리 방식

마이크로서비스는 API를 통해 통신
URL별 : a.vora.net 과 b.vora.net 를 구분해 라우팅
모듈별(Prefix별 / Host별) : a.vora.net/a 과 a.vora.net/b 를 구분해 라우팅
여러 서비스의 엔드포인트와 REST API를 관리

쿠버네티스의 POD은 가상서버보다 작고 경량으로 마이크로서비스에 적합
서버운영과 유지보수 불필요
어플리케이션이 필요한 경우에만 시작
유휴 상태일 때는 비용부과되지 않음 (서비스에 따라 저장용량 비용 발생)
개발기간과 비용단축
• Identity : OAuth
• Directory
• IAM (Identity and Access Management)
• Event Sourcing
• Messaging :
- Topics
- Queues
- Incoming Webhooks
- Outgoing Webhooks
- Scheduler
• Long-running
• Core Storage (S3)
• Simple URL Shortner
• Generate QR Code
• Business Process
• Automation Rule
• SMS
• DNS
• IOT
• Search query
• Rate Limiting