作者:魏新宇郭跃军
来源:华硕科技
01 微服务架构简介
微服务的概念并不新鲜,但新一代以容器为中心的应用托管平台的兴起,让微服务在过去两年中获得了新的生机。
大型传统单体应用程序需要在单个服务器上部署和运行大量内存和其他资源。大型单体应用程序的可扩展性非常低,因为整个应用程序必须跨多个服务器复制才能实现水平可扩展性。此外,这些应用程序通常更加复杂,并且具有紧密耦合的功能组件,使得它们更难以维护和更新。
在这种情况下,如果您只想升级应用程序的功能部分,您将遇到“系统范围影响”的问题。
微服务架构将传统的大型单体应用程序分解为更小的模块化服务,每个服务都围绕特定的业务领域构建。另外,不同的微服务可以用不同的编程语言编写,并使用完全不同的工具进行管理和部署。
与单体应用程序相比,微服务组织得更好、更小、耦合更松散,并且独立开发、测试和部署。微服务可以独立发布,这大大减少了修复错误和添加新功能所需的时间,并允许更有效地将更改部署到生产中。此外,微服务很小且无状态,因此易于扩展。
总体而言,微服务通常具有以下特征:
对单个业务或领域进行建模。每个微服务都实现自己的业务逻辑,并包含独立且持久的数据存储。每个微服务都有一个单独公开的API。每个微服务都可以独立运行。每个微服务都是独立的,并且与其他服务松散耦合。每个微服务都可以独立升级、回滚、扩展和缩容。
02 微服务架构的主要类型
目前微服务架构领域有多种微服务治理框架,例如Spring Cloud、Istio 等。所有这些微服务架构都遵循上一节介绍的微服务架构的特征,但它们的实现方式有所不同。有的是通过代码入侵实现的,有的是通过代理实现的。
在Kubernetes 引入并流行之前,实现微服务架构需要类似Spring Cloud 的代码入侵:在应用程序的源代码中引用微服务架构的治理组件。
随着Kubernetes 的出现,容器化应用程序之间的路由、安全和其他任务都可以由Kubernetes 接管。这意味着应用开发者在开发阶段不再需要考虑微服务之间的调用关系来实现应用功能。这种类型的代码侵入式微服务架构(例如Istio)正在获得业界和客户越来越多的支持。
03 企业实施微服务架构的收益和原则
从技术角度来看,企业实施微服务通常可以提供以下好处:
作者简介:魏新宇,红帽副首席解决方案架构师。他在IaaS 和PaaS 方面拥有丰富的经验,热衷于在企业中推广和采用开源解决方案。从售前角度来看,他领导了红帽在金融和汽车行业的多个PaaS 项目。曾就职于华为、IBM、VMware。
郭跃军目前在VMware担任解决方案工程师。他是红帽的PaaS 顾问和AWS 咨询服务团队的云架构顾问,精通私有云和公有云生态。自2015年接触容器技术以来,参与了众多PaaS建设前沿的OpenShift项目的投标、PoC、咨询和实施,帮助众多企业实现数字化转型。
本文摘自《OpenShift在企业中的实践:PaaS DevOps 微服务》(第2版),经出版商许可发布。
扩展读取《OpenShift在企业中的实践》
建议:本书以红帽OpenShift v4 为核心,向您展示如何开始客户的数字化转型、构建PaaS 平台以及通过OpenShift 实施DevOps、云原生和微服务。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。