(1)微服务既是一种架构风格,也是一系列文化习惯的集合。它以五大核心原则为支撑,它们分别是自治性、可恢复性、透明性、自动化和一致性。
(2)微服务减少了开发冲突,实现了自治性、技术灵活性以及松耦合。
(3)微服务的设计过程是非常有挑战性的,因为它不仅需要丰富的业务领域知识,还需要开发者在团队之间平衡优先级。
(4)服务向其他服务暴露契约。设计良好的契约是简洁的、完整的和可预测的。
(5)在长期运行的软件系统中,复杂性是不可避免的,但是开发者可以通过一些决策来减少冲突和风险,进而持续地在这些系统中交付价值。
(6)自动化和可验证的发布操作能够让部署过程更加可靠和“没有事故发生”,进而降低微服务的风险。
(7)容器技术将运行环境中的服务之间的差异进行抽象化,简化了对类型各异的微服务进行大规模管理的方式。
(8)故障是不可避免的:对团队来说,微服务需要是透明的、易观测的,这样团队才能够主动地管理、了解和真正拥有服务运维;反之亦然。
(9)采用微服务的团队需要在运维方面比较成熟,并且关注于服务的整个生命周期,而不只是关注设计和开发阶段。