5. 마이크로 서비스 아키텍쳐
모놀리식 아키텍쳐
이미지 출처 : https://martinfowler.com/articles/microservices.html
모놀리식 아키텍쳐
하나의 서비스에 하나의 프로젝트 단위로, 단일 디렉토리를 가지고 개발하는구
조
- 쉬운 개발
- 쉬운 배포
- 쉬운 스케일 확장
7. 마이크로 서비스 아키텍쳐
모놀로식 아키텍쳐의 단점
코드의 규모가 커진다.
개발자가 알아야 할 코드의 양이 많아진다.
이해도 어렵고, 수정이 어려워진다.
시간이 지날수록 코드는 난잡해지고, 같은 일이 반복된다.
8. 마이크로 서비스 아키텍쳐
란 무엇일까요?
작은 서비스의 결합을 통해 하나의 응용 프로그램을 개발하는
방법
#작은블록단위 #비결합성 #작은 작업 #모듈식 접근
Micro Service Architecture (MSA)
이미지 출처 : https://martinfowler.com/articles/microservices.html
9. 마이크로 서비스 아키텍쳐
란 무엇일까요?
이미지 출처 : https://martinfowler.com/articles/microservices.html
10. 마이크로 서비스 아키텍쳐
란 무엇일까요?
이미지 출처 : https://martinfowler.com/articles/microservices.html
기능 단위 혹은 컴포넌트 단위로 팀을 나누어 개발,
필요에 따라 DB 분리 / 역량에 따라 언어 분리
11. 마이크로 서비스 아키텍쳐
간단한 예시
이미지 출처 : https://martinfowler.com/articles/microservices.html
유저 회원가입
Node.js / mongodb
상품정보 관련
PHP / MySQL
12. 마이크로 서비스 아키텍쳐
의 장점
개발자가 관리하는 코드의 스코프가 명확해짐
소프트웨어의 복잡성을 제어
개별 팀에서의 개발과 배포
각 마이크로 서비스별로 독립적인 개발과 배포가 가능
요구사항에 최적화된 DB의 선택이 가능
개발속도 증가
15. 서버리스 아키텍쳐
Adrian cockcroft ( AWS Vice President ) 의 트윗
만약 당신의 PaaS가 20ms 이내에 인스턴스를 실행시켜서 0.5초 동안 원하는 기능을 실행시킬 수 있다면,
그땐 그걸 서버리스라고 부르세요.
란 무엇일까요 ?
16. 서버리스 아키텍쳐
FaaS 란
Function as a Service
Function as a Service (FaaS) is a category of cloud computing services that provides a platform allowing customers
to develop, run, and manage application functionalities without the complexity of building and maintaining the
infrastructure typically associated with developing and launching an app
- wikipedia
36. AWS API Gateway
이미지 출처 : https://martinfowler.com/articles/microservices.html
API Gateway 란?
That’s It!API서버 앞단에서 모든 API 서버들의 엔드포인트를
단일화하여 묶어주고 API에 대한
인증과 인가 기능에서 부터
메세지에 따라서 여러 서버로 라우팅 하는
고급기능 까지 많은 기능을 담당할 수 있다.
- 조대협 님의 블로그 중
38. AWS API Gateway
Lambda Function 을 세상밖으로
API–Gateway 를 통해 Lambda Function은
URL 을 가지게 되고,
서버에 올려진 일반 API 같이
사용 가능하게 됩니다.
39. AWS API Gateway
Lambda function 들을 하나로
API Gateway 를 통해
여러 개의 lambda function 을
URL 로 묶어줍니다.
Lambda functions
- add_pet
- get_pet_categories
- get_pet_traits
- get_pet
44. Caution
최대한 많은 내용을 담았지만, 프레젠테이션의 내용만으로는 실습을
완벽하게 진행하실 수 없습니다. 진행에 어려움을 겪거나, 궁금하신
점에 대해서는 메일로 연락주세요 :D 발표에서 모든 내용을 설명드릴
예정이며 차후에 블로그에 step by step 으로 게시하도록 하겠습니다.
54. 실습해보기
Lambda Function 만들기
Select blueprint :
미리 정의된 Lambda function 을 사용할 수 있습니다.
Configure triggers :
S3, dynamoDB 등을 트리거로 받도록 설정합니다.
Configure function :
Lambda funtion 을 설정합니다.
76. 서비스에서의 적용과 경험담
배포 및 소스코드 관리
APEX
node.js 스타 개발자 TJ Holowaychuk의
(https://www.npmjs.com/~tjholowaychuk)
Lambda 함수의
빌드, 배포, 관리를 쉽게 도와주는
Command line tool
http://apex.run/
79. 서비스에서의 적용과 경험담
코어 함수의 모듈화
여러 함수에서 중복적으로 쓰이는 코드들,
모듈화 시켜서 사용할 수는 없을까?
80. 서비스에서의 적용과 경험담
코어 함수의 모듈화
https://aws.amazon.com/ko/blogs/korea/new-aws-
step-functions-build-distributed-applications-using-
visual-workflows/
AWS Step Functions
AWS re:Invent 2016 에서 발표
람다 함수의 Step 을 정의할 수 있음
82. 서비스에서의 적용과 경험담
코어 함수의 모듈화
정식 출시
AWS Step Functions는 오늘 부터 US East (Northern Virginia), US East (Ohio), US West
(Oregon), EU (Ireland), Asia Pacific (Tokyo) 리전에서 사용 가능합니다.
한국은요..? ㅠㅠ
84. 서비스에서의 적용과 경험담
개발 흐름
APEX
Make lambda function
Local-lambda
Test lambda function
API-Gateway
Test With Client
Manage lambda function Rest API documentation