Golang Application docker 빌드

Go 애플리케이션을 Docker image로 만들려고 합니다. 간단한 hello-world http 애플리케이션을 GoLang으로 개발하고 GoLang docker image를 이용해서 컨테이너에서 빌드하고 이를 Docker 이미지 형태로 만들어 봅니다. 향후 MSA 기반의 Go 애플리케이션을 만드는데 도움이 될 겁니다....

CNCF NATS

NATS는 분산 시스템을 지원하는 연결기술(connective technology)로 메시지의 주소 설정, 검색, 통신을 담당한다. 마이크로서비스아키텍처(MSA)에서의 메시지 교환, 스트림 처리를 위해서 사용한다. 클라우드 메시징 서비스 (마이크로서비스, 서비스메시) 이벤트 / 데이터 스트림(데이터 모니터링, 분석, ML/AI)...

NATS를 이용한 멀티 프로덕트 SSO 시스템 구축하기

MSA(Micro Service Architecture)는 2022년 주요 소프트웨어 아키텍처 트랜드 중 하나다. MSA를 이용하면 필수 기능을 가지는 여러 독립된 컴포넌트로 개발을 하면, 각 팀은 원하는 기술셋을 이용해서 필요한 기능에 집중 할 수 있다. 반면 서비스들이 서로 분리되면서 데이터를 동기화하는데 어려움이 생길 수도 있다. CNCF NATS를 ...

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로 통신하는 작고 독립적인 소프트웨어 컴포넌트들로 구성된다. ...