Monolithic에서 Microservice Architecture로

이 문서에서는 마이크로서비스 아키텍처를 디자인하는 방법을 여러 사례를 들어서 살펴볼 것이다. 먼저 일반적인 패턴을 소개하고 AWS에서 어떻게 구축할지를 살펴보도록 하겠다.이 문서를 통해서 얻고자 하는 것은 다음과 같다. 초당 수천/수만건의 데이터를 처리하기 위한 시스템을 만들기 위한 아이디어 고가용성, 높은 확장성, 짧은 대기시간(latency), 복원력을...

PAYCO 쇼핑 마이크로서비스 아키텍처 전환기

위 동영상을 분석해서 정리한다. 영상에서 PAYCON 쇼핑 플랫폼은 NHN TOAST 클라우드를 기반으로 하고 있다. 나는 AWS를 사용하고 있기 때문에 클라우드를 기반으로 새로운 아키텍처를 제안하려 한다. TOAST에 비해서 AWS에서 제공하는 서비스가 훨씬 다양하기 때문에 더 많은 부분이 클라우드 서비스로 대체되는 그림이 나올 것이다.당연하지만 나는 P...

Consul

Consule는 서비스 디스커버리(Service discovery)와 설정을 관리하는 툴이다. Consule는 분산&클라우드 환경에 적응하기 위한 고가용성, 유연한 스케일링, 분산시스템의 특징을 가진다. Consul의 핵심 기능은 아래와 같다. 서비스 디스커버리 Health Checking KV(Key/Value) 저장소(Store) 멀티 데이터센터...

Go언어에서의 TDD

여기에서 사용한 테스트 코드는 에서 다운로드 할 수 있다.클라우드와 MSA와 의 등장으로 (2016년 6월)TDD가 재조명 받고 있다. TDD의 큰 단점 중 하나는 제대로 적용하려면 상당히 많은 시간과 노력이 필요하다는 점이다. 특히 여기 저기 연동되는 라이브러리나 소프트웨어가 많은 경우 테스트가 굉장히 복잡해지는데, 복잡해지는 만큼 테스트의 신뢰성도 함께...

MSA에서의 REST API 테스트 방안

이름 닉네임 사이트 NaverLabs 클라우드(주로 AWS) 환경에서 서비스 백앤드를 개발. 우분투리눅스 18.04 vim-go + ycm Makefile + glide 개발 환경을 소개 합니다. 여기 있는 문서들은 평소의 제 개발환경에서의 경험을 기반으로 하고 있기 때문에 나름 의미가 있을 거라 생각합니다. 우분투리눅스를 데스크탑으로 하고 있고요...

AWS SAMLocal

AWS는 서버리스 환경에서의 애플리케이션 구현 모델인 AWS SAM을 개발하고 있다. 여기에는 SAM 사양과 SAM 템플릿을 AWS CloudFormation으로 변환하는 코드, 프로그래밍 예제 등을 포함하고 있다. SAM Local은 SAM의 구현체다. 서비리스 응용 프로그램을 만들려면, 람다함수에 대한 사양을 저장하는 JSON이나 YAML 형식의 SAM...

MicroService on AWs

번역 마이크로서비스는 배포주기를 가속화 하고 응용 프로그램의 유지 관리성을 높여서 높은 품질의 제품을 만들기 위한 아키텍처 모델이다. 이 접근법은 개발방법 뿐만 아니라 소프트웨어와 서비스를 제공하는 조직의 변화도 포함하고 있다. 마이크로 서비스의 접근방식을 사용하는 소프트웨어는 잘 정의된 API로 통신하는 작고 독립적인 소프트웨어 컴포넌트들로 구성된다. ...

AWS Lambda

API 서버의 경우, stateless하게 개발을 한다. Stateless는 서버로의 모든 요청과 응답이 다른 요청 혹은 응답과 독립적으로 이루어지는 것을 의미한다. 서버는 상태를 저장할 필요가 없으므로 요청처리부가 단순해지고, 요청을 자유롭게 분산할 수 있다. 각 요청이 독립적으로 실행이된다면, 클라이언트와 서버간의 요청&처리 프로세스는 함수의 실행으로...

분산 시스템 성능 측정

분산 시스템 성능 측정주로 ab와 wrk 등을 이용해서 애플리케이션들에 대한 테스트를 수행했다. 단일 애플리케이션 성능 측정에는 쓸만하지만 분산 시스템 성능 측정에 써먹기는 애매모호하다. 아래와 같은 분산 시스템이 있다고 가정해 보자. 테스트를 쉽게 하기 위해서 모델을 단순화 했다. 중요한 점은 비동기 구간이 있어서, 단순히 Frontend API Ser...