모놀리식에서 마이크로서비스로의 전환 전략
본 내용은 2018 AWS Summit SEOUL 강연 중 박선용님의 모놀리스에서 마이크로서비스 아키텍처로의 전환 전략을 보고 정리한 내용입니다.
모놀리식 아키텍처에서 마이크로서비스로 전환시에 애플리케이션에서 중요한 기술이나 패턴들을 분류할 때 무엇을 고려해야 하는지, 패턴 및 분할 전략에 따라 분리한 컴포넌트들을 어떠한 AWS 기술들로 매칭해서 전환할 것인가에 대해 충분히 고민해보고 전략을 수립해야 합니다.
모놀리식과 마이크로서비스
모놀리식이란 각각의 어플리케이션들, 모듈들 간에 강하게 결합되어 있는 구조이지만 마이크로서비스는 모듈간 의존성이 약한 디커플링으로 각 모듈 단위로 배포가 가능하며 빠르게 확장하고 분할하는데 확실한 장점이 있습니다. 비즈니스 요구가 빠르게 변화할수록 마이크로서비스의 장점은 더욱 커지게 됩니다. 또한 한 가지 서비스에서 발생하는 장애가 전체 시스템에 영향을 주는 모놀리식과는 다르게 한 가지 모듈의 장애에 전체 시스템이 주는 영향을 최소화할 수 있으며 모듈안에서 장기적 기술 종속을 감소시켜 CI/CD의 장점을 극대화하여 기수렝 대한 빠른 적용이 가능해집니다.
마이크로서비스에서 어플리케이션은 각 서비스 단위로 분리되어 있기 때문에 배포 복잡도도 동시에 증가하게 되는데 이를 수작업으로 하나하나 배포를 하는 것은 매우 비효율적이며 운영 인력을 추가로 필요로 하기 때문에 효율적인 배포를 위해 배포의 자동화 도입이 필수적입니다. 하나의 모듈을 구동하기 위해서 필요한 시스템 스택들 또는 메모리에 대한 리소스 소요도 단일로 통합되어 있을 때보다 더 많은 리소스 소요를 필요로 하기 때문에 시스템의 메모리 소요가 상대적으로 높아집니다.
기업의 규모에 따라 아키텍처를 바라보는 시선 및 관점
기업의 규모에 따라 마이크로서비스 아키텍처를 보는 시선도 달라지게 되는데 스타트업의 경우 초기부터 마이크로서비스를 적용하는 경우가 드물고 빠르게 성장하는 기능 개발에 모든 시간을 소요하여 리아키텍처링에 대한 필요성이 높으며 이를 당장 해결해야 할 과제라고 생각하지 않고 미래에 언젠가는 해결해야 할 과제라고 인식할 확률이 높습니다. 엔터프라이즈 기업의 경우 대규모 기능이 하나의 어플리케이션에 서로 복잡하게 연계되어 있어 마이크로서비스로의 전환에 많은 공수가 들어가게 됩니다.
그렇다면 어떤 경우에 마이크로서비스 아키텍처로 전환/검토 해야 할까요 ?
- 쉽고 빠른 어플리케이션의 변경
- 새로운 개발자의 빠른 적응
- 새 기술의 빠른 적용
- CI/CD의 자동화
위와 같은 요구사항이 있다면 마이크로서비스 아키텍처로의 전환을 검토하고 전환 진행에 앞서 각각의 단위 모듈이 요구하는 퍼포먼스나 요구사항을 패턴별로 명세화합니다. 상태
,