4. What is Monolith
▸일명 통서버
▸하나의 시스템 혹은 하나의 묶음
▸하나의 파이프라인
▸일반적으로 많이하는 전통적인 개발방식
▸소규모 프로젝트의 경우 빠른 개발 가능
▸소규모 팀이 작업하기에 적합
DEPLOYING SERVERLESS NODE.JS MICROSERVICES
5. What is microservices
▸작은 단위의 기능으로 서비스를 분리,구성
▸하나의 작은 서비스가 독립적으로 동작
▸개별 서비스에 문제가 생길시 다른 시스템에 직접적인 영향을 주지 않음
( 전혀 없진 않음. 이슈가 전파될 수도 있음 )
▸개별의 서비스들이 서로 다른 언어로 개발 가능 ( Multiple Language )
▸개별적인 서비스들은 독립적으로 Scale
▸대규모 서비스에 적합
▸대형팀이 아닌 작은 팀이 여러개로 나뉘어서 작업하기에 편리
DEPLOYING SERVERLESS NODE.JS MICROSERVICES
6. Monolith vs Microservices
▸작은 시스템의 경우 무리하게 나누기 보다는 Monolith가 더 낫다.(
무리한 트랜드 추종 )
▸우선 간단히 빠르게 Monolith로 만들고, 규모가 커지면서 분리를
해서 Microservices로 분할 하는편이 나을 수 있다.
▸팀의 규모를 생각하라.
▸Microservices는 팀간의 커뮤니케이션이 매우 중요하다. ( 컨웨이
의 법칙 )
▸전체적으로 두 개발방식의 차이와 서비스들을 이해를 하고 있는
최고 책임자가 필요하다.
DEPLOYING SERVERLESS NODE.JS MICROSERVICES
10. Event Driven
▸이벤트 주도형
▸HTTP Request, Message income over socket, Keyboard,
etc..
▸Input/Output이 진행되는 동안 CPU의 Blocking을 일으키지
않음
DEPLOYING SERVERLESS NODE.JS MICROSERVICES
11. Async Non-blocking I/O
▸비동기 I/O
▸요청에 응답을 기다리는 동안 다른 작업이 가능
▸많은 사람들이 동시에 하나의 서버에 다양한 작업을 요청하면
그것을 처리해야 하는 Web Server에게는 매우 적합
▸Mutex, 타이밍, 이벤트 처리등에 대해 신경쓰지 않아도 된다.
DEPLOYING SERVERLESS NODE.JS MICROSERVICES
15. No Use No Pay
▸사용한양에 비례하는 요금제
▸철저한 사용자의 관점에서 적용되는 개념
▸몇회의 요청을 총 얼만큼의 시간동안 이용하였나에 비례하는
과금
▸과금의 시간단위는 ms ( millisecond )
▸간헐적으로 사용이 불규칙적인 경우 매우 유리
DEPLOYING SERVERLESS NODE.JS MICROSERVICES
16. Automatic Scale
▸사용량에 비례하는 Autoscale
▸아주 짧은 시간동안 엄청나게 많은 사용자가 몰려도 처리 가
능
▸Autoscale 은 클라우드의 가장 기본적인 속성
DEPLOYING SERVERLESS NODE.JS MICROSERVICES
17. Focus on Code
▸No infrastructure management
▸No VM management
▸서버의 기본적인 설정은 클라우드에 맡기고 Code만 만든다.
▸시스템 관리는 신경쓰지 않는다.
DEPLOYING SERVERLESS NODE.JS MICROSERVICES