본문 바로가기
AWS 클라우드

마이크로서비스 아키텍처 구축 가이드

by 반화넬 2023. 7. 19.
반응형

마이크로서비스

 

 
 

마이크로서비스란?

 

마이크로서비스는 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식입니다. 이러한 서비스는 독립적인 소규모 팀에서 보유합니다. 마이크로서비스 아키텍처는 애플리케이션의 확장을 용이하게 하고 개발 속도를 앞당겨 혁신을 실현하고 새로운 기능의 출시 시간을 단축할 수 있게 해 줍니다.

마이크로서비스란 단어가 사용되기 시작한지는 대략 10년정도 됬지만 널리 알려진지는 얼마 되지 않았다. 마이크로서비스가 없는 세상에서는 서비스/앱 개발에 대해서 백엔드를 위한 서버 인프라와 모바일 또는 웹 클라이언트로 크게 분류하고 백엔드는 layered architecture로 구현되고 있었다. 트래픽이 점차 늘어나게 되면 로드밸런서를 도입하여 어플리케이션 서버를 확장하거나 DB scale-up 전략이 일반적이었다고 생각한다. 

페이스북, 트위터, 넷플릭스등 폭발적인 성장을 하는 서비스의 등장으로 엔지니어들은 빠른 비지니스 변화에 대한 수용과 서비스 배포주기, 몇백 몇천명 수준의 개발자들이 서로 의존성을 최소화하면서 서비스를 개발하고 확장 가능한 구조가 필요했을 것이다. 

마이크로 서비스 구축 가이드

 

마이크로서비스는 명시적인 스펙이 아니다. 그래서 회사 마다 바라보고 적용하는 수준이 다를 수 있다. 그러다보니 자사의 서비스에 마이크로서비스를 도입하는게 맞는지 그리고 도입하게 된다면 맞는 구조란 무엇인지가 모호하게 느껴지는 것도 사실이다. 이 책은 마이크로서비스란 무엇인지로 시작하여 도입을 고민하고 싶다면 어떠한 기준이 필요한지 장단점에 대한 설명으로 시작하고, 이어서 온라인 강의 서비스를 구축한다는 가정으로 하나하나 섬세하게 마이크로서비스에 대한 적용 단계를 설명한다. 

 

 
 

점진적 마이크로서비스 전환

모놀로식 vs 마이크로서비스
"3장 데이터베이스를 분리한다고?" 에서는, 모놀로식 대비 마이크로서비스로 서비스를 개발하게 될 때 경험하게 되는 문제점들을 나열하고 해결방안에 대해서 서술한다. 전반부에 이러한 내용들이 잘 정리되어 있는 점이 인상적이었고 설명을 매끄럽게 잘하는 점이 좋았다. 대략 3-4년전 마이크로서비스로의 전환 작업을 진행했을 때 직면했던 문제점들에 대해 잘 정리되어 있어 놀랐다.

 

 

Reference


https://aws.amazon.com/ko/microservices/
https://www.redhat.com/ko/topics/microservices
https://microservices.io/
https://learn.microsoft.com/ko-kr/azure/architecture/microservices/model/domain-analysis
https://martinfowler.com/articles/microservices.html

반응형