微服务架构的核心概念不是将之一就是每个服务打包和部署为离散独立制品。
1.微服务部署环境:
- 物理服务器,开发人员不能快速提高物理服务器的容量,并且在多个物理服务器之间水平伸缩微服务成本非常高
- 虚拟机镜像,微服务主要特点之一是能够快速启动和关闭微服务实例,虚拟机是主要云供应商的心脏和灵魂。微服务可以打包在虚拟机镜像中,然后开发人员可以在Iaas私有或公有云快速部署和启动服务的多个实例
- 虚拟容器,虚拟容器是在虚拟机镜像上部署微服务的自然延伸。许多开发人员不是将服务器部署到完整的虚拟机,而是将Docker容器(或等效的容器技术)部署到云端。虚拟器在虚拟机内运行。使用虚拟容器,可以将单个虚拟机隔离成共享相同虚拟机镜像的一系列独立进程。
微服务不只是写代码,编写微服务需要考虑的几个主题:
- 大小适当-如何确保正确地划分微服务的大小,请记住,适当的大小允许速度更改应用程序,并降低整个应用程序中断的总体风险。
- 位置透明-在微服务应用程序中,多个服务实例可以快速启动和关闭时,如何管理服务调用的物理细节?
- 有弹性-如何通过绕过失败的服务,确保采取“快速失败”的方法来保护微服务消费者和应用程序的整体完整性。
- 可重复-如何确保提供的每个新服务实例与生产环境中的所有其他服务实例具有相同的配置和代码库
- 可伸缩-如何使用异步处理和事件事最小化服务之间的直接依赖关系,并确保可以优雅地扩展微服务
2 架构师的故事,设计微服务架构
架构师在软件项目的作用是提供待解决问题的工作模型。架构师的工作是提供脚手架,开发人员将根据这些脚手架构建他们的代码,使应用