1.2 주요혜택


마이크로서비스의 경우 분산 시스템과 서비스 지향 아키텍처의 개념을 더 깊이 내포하는 만큼 훨씬 더 많은 혜택을 누릴 수 있다.

1.2.1 기술 이기종성


다수의 협업 서비스로 구성된 시스템에서는 각 서비스가 다른 기술을 사용하도록 결정할 수 있다. 이는 결국 최소한의 공통점만을 지닌 표준화된, 만능의 접근 방식을 선택하기보다 각 작업에 적합한 도구를 선택하게 해준다.

시스템 특정 부분의 성능을 높이려 할 때, 요구되는 성능 수준을 만족하는 데 유리한 다른 기술 스택을 고려해야 할 수도 있고 변환할 데이터를 어떻게 저장할지 결정해야 할 수도 있다.

마이크로서비스를 통해 기술을 더 신속히 적용할 수 있고, 개선된 새로운 기능들이 어떻게 도움이 될지 살펴 볼 수 있다.

다양한 독립 서비스로 구성된 시스템에는 새로운 기술 분야를 시험해볼 만한 곳이 많다. 혹시 잘못될 때 제한할 수 있는 방법이 있다면 리스크가 가장 낮은 서비스를 선택해서 그곳에 새로운 기술을 사용해볼 수 있다.

물론 여러 기술을 함께 사용하면 문제가 전혀 없을 수는 없다. 어느 기업들은 프로그래밍 언어 선택에 일부 제한을 걸어둔다. 예를 들어 넷플릭스, 트위터는 대부분 자바 가장머신을 플랫폼으로 사용하는데, 이는 JVM의 신뢰성과 성능을 매우 잘 이해하고 있기 때문이다.

1.2.2 회복성


회복 공학의 핵심 개념은 격벽이다. 즉, 한 시스템의 컴포넌트에 장애가 발생하더라도 그 장애가 전파되지 않는다면 해당 문제를 격리하고 나머지 시스템을 계속 작동시킬 수 있다. 서비스의 경계야말로 명확한 격벽인 셈이다.