尽管微服务已经存在了一段时间,但它们最近因承诺能取代单体就架构而广受欢迎。但是它们到底是什么呢?本质上,微服务是独立的基于web的应用程序,服务于特定的功能,并且相对容易混合和匹配以满足不同的需求。由于这个原因,在那些希望实现企业IT系统现代化并享受使用SaaS和云的好处的组织中,作为软件体系结构的基础,它们正变得越来越有吸引力。
小型、轻量级和灵活的微服务很好地适应了敏捷性:当策略发生变化时,它们可以在相对隔离的情况下进行修改,而不会影响系统的所有方面,并可能导致停机和停机。微服务经常与容器技术(如Docker和Kubernetes)结合使用,以便利用它们的自然可移植性和隔离性,作为打包和快速部署的方法。
这种模块化为复杂的单片应用程序提供了一种替代方案,在这种应用程序中,所有的修改和更新必须首先缓慢地、仔细地检查整个系统的风险。结构风险隔离和快速部署(和恢复)的能力改变了微服务体系结构,使开发人员和操作团队之间能够更好地合作。
然而,具有很大的灵活性,就会有更大的风险从裂缝中钻出来。将如此多不同的服务放在一起可能有点像构建一个难题:如果没有一个清晰的控制点和一个关于最终产品外观的计划,依赖关系和整体结构将很难管理。
过程可伸缩性是另一个挑战。企业可以相对轻松地运行一个基于云的服务,但同时跨多个云运行几十个服务很快就会变成一种复杂的杂耍。事实上,由于微服务附带了所有独立的“移动部分”,手工管理这些过程变得越来越困难,甚至是不可能的。
管理大量微服务的解决方案的一个关键部分是实现一个自动化系统,它可以在一个基于微服务的体系结构中组合各种不同的应用程序。通过定义工作流和连接模块,自动化使涉众之间的通信更快、更可靠、更透明、更准确,从而更快地发布更新,减少在返工上花费的时间。
因此,自动化是在企业规模中实现基于微服务的体系结构管理的关键部分。在体系结构出现时,必须“构建”自动化,以确保业务流程按照计划工作,并不断提供客户需求的服务。