The Benefits of Microservices (Microservice가 주는 혜택)
Microservice Architecture Pattern은 많은 중요한 혜택을 준다.
첫번째로, 복잡성의 문제를 다룬다. Microservice Architecture Pattern은 괴물같은 monolithic application을 반대로 service들의 집합으로 분해한다. 전체 기능성을 변경하지 않는 범위내에서 관리가능한 덩어리나 서비스로 application을 쪼갠다. 각 서비스는 RPC-나 메시지 기반 API 형태로 잘 정의되어 있는 경계를 가진다. Microservice Architecture Pattern은 실제 monolithic code에서는 극도로 달성하기 어려운 모듈화(modularity) 수준을 강화한다. 따라서, 개별 서비스를 훨씬 더 빨리 개발하고, 더 이해하기 쉽고, 유지하기도 쉽다.
두번째로, 이 아키텍처는 한 팀에서 각각의 서비스에 초점을 맞춰 독립적으로 개발할 수 있게 한다. 개발자들은 API를 붙여서 명예로운 서비스를 제공하는데 어떤 기술이 적합한지 선택하는데 자유롭다. 물론, 대부분의 조직에서는 완전한 무정부 상태를 피하고 기술 선택을 제한하고 싶을 것이다. 그러나 이러한 자유는 개발자들이 신규 프로젝트를 시작할 때 존재했던 한물간 기술을 더이상 의무적으로 사용하지 않아도 된다는 것을 의미한다. 새로운 서비스를 만들 때, 현재 기술을 사용할 선택권을 갖는다. 더 나아가, 서비스들이 상대적으로 작기 때문에 현재의 기술을 사용하여 예전 서비스들을 재작성하는 것이 가능하다.
세번째는, Microservice Architecture Pattern에서는 각 microservice별로 독립배포가 가능하다. 개발자들은 로컬환경에서 서비스로 변경 사항들을 배포할 때, 조정할 필요가 없다. 변경 사항들은 테스트가 완료되는 대로 즉시 배포할 수 있다. 예를 들어, UI 팀은 A/B 테스트를 수행하고, UI를 변경하는 작업을 빠르게 반복할 수 있다. Microservice Architecture Pattern은 지속적인 배포가 가능하다.
(A/B testing : 전체 디자인에서 한가지 요소에 대한 두가지 이상의 버전을 시험하여 더 나은 것을 판별하는 테스트 기법)
끝으로, Microservice Architecture Pattern은 각 서비스별로 독립적인 확장이 가능하다. 각 서비스별로 용량과 가용성 제약사항들을 만족시키는 범위 내에서 수많은 인스턴스에 배포할 수 있다. 게다가, 서비스의 리소스 요구사항에 가장 적합한 하드웨어를 사용할 수 있다. 예를 들어, EC2 Compute Optimized instance에 CPU-집중적인 이미지 프로세싱을 배포할 수 있다. 그리고 EC2 Memory Optimized instance에 인메모리 데이터베이스 서비스를 배포할 수 있다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/749