마이크로서비스의 장점은 무엇인가요?
마이크로서비스는 모놀리식 아키텍처를 단일 용도로 사용되는 독립형 경량 서비스로 분할합니다.  단일 책임 서비스를 전담하는 팀이 다른 서비스와 독립적으로 릴리스를 제어할 수 있으므로 개발자 생산성이 향상됩니다.  또한 서비스가 작성되는 언어도 제어할 수 있습니다.  이는 특정 서비스를 Python으로 작성하는 것이 C#, Java 또는 Javascript로 작성하는 것보다 유리할 수 있는 경우에 유용합니다.  마이크로서비스는 서비스가 직접 연결되거나 참조되지 않는 이벤트 중심 아키텍처를 지지합니다.  각 마이크로서비스는 다른 서비스에서 소비/구독할 수 있는 이벤트를 게시할 수 있습니다.  컨테이너와 마이크로서비스는 마이크로서비스를 설계할 때 잘 어울리는데, 이 패러다임에서는 컨테이너를 불변하고 Cattle로 취급해야 한다는 점을 고려하면 더욱 그렇습니다.  동일한 마이크로서비스의 새 버전과 이전 버전을 A/B 패턴으로 나란히 릴리즈할 수 있으므로 업데이트에 대한 보증이 가능합니다.  컨테이너는 마이크로서비스를 신속하게 호스팅할 수 있으며, 모든 종속성이 실행 중인 이미지 빌드에 캡슐화되어 안정적으로 여러 환경에서 테스트할 수 있습니다.
What are the benefits of Microservices?
Microservices break up Monolithic Architecture into standalone lightweight services that serve a single purpose.  Developer productivity is increased as teams dedicated to the single responsibility service can control releases independent of other services.  They can also control the language the service is written in.  This is helpful when certain services might benefit from being written in Python vs C#, Java or Javascript.  Microservices advocate for an event driven architecture where services are not coupled or referenced directly.  Each Microservice can publish events that can be consumed/subscribed by other services.  Containerization and Microservices go well together when designing Microservices, considering that the paradigm calls for Containers to be immutable and treated as Cattle.  New and Old versions of the same Microservice can be released side by side in an A/B pattern, helping with assurance of any updates.  Containers can host the Microservices quickly and be tested across environments with reliability ensuring all dependencies are encapsulated in the build of the running image.