ZStack技术白皮书精选架构篇中册.PDF

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ZStack技术白皮书精选架构篇中册

www.zstack.io ZStack 技术白皮书精选 架构篇:中册 微服务、通用插件系统、工作流引擎 扫一扫二维码,获取更多技术干货吧 www.zstack.io 版权声明 本白皮书版权属于上海云轴信息科技有限公司,并受法律保护。转载、摘编或利用其它 方式使用本调查报告文字或者观点的,应注明来源。违反上述声明者,将追究其相关法律责 任。 www.zstack.io 目录 ZStack--进程内的微服务架构 3 ZStack--通用插件系统 14 ZStack--工作流引擎 25 www.zstack.io ZSTACK--进程内的微服务架构 为了应对诸如惊人的操作开销、重复的努力、可测试性等微服务通常面临的挑战,以及获 得诸如代码解耦,易于横向扩展等微服务带来的好处,ZStack 将所有服务包含在单个进程中, 称为管理节点,构建一个进程内的微服务架构。 动机 构建一个IaaS 软件是很难的,这是一个已经从市场上现存的IaaS 软件获得的教训。作为一 个集成软件,IaaS 软件通常需要去管理复杂的各种各样的子系统(如:虚拟机管理器 hypervisor ,存储,网络,身份验证等)并且需要组织协调多个子系统间的交互。例如,创建 虚拟机操作将涉及到虚拟机管理模块,存储模块,网络模块的合作。由于大多数IaaS 软件通常 对架构考虑不够全面就急于开始解决一个具体问题,它们的实现通常会演变成: www.zstack.io 随着一个软件的不断成长,这个铁板一块的架构(monolithic architecture )将最终变为一 团乱麻,以至于没有人可以修改这个系统的代码,除非把整个系统从头构建。这种铁板一块的 编程问题是微服务可以介入的完美场合。通过划分整个系统的功能为一个个小的、专一的、独 立的服务,并定义服务之间交互的规则,微服务可以帮助转换一个复杂笨重的软件,从紧耦合 的、网状拓扑架构,变成一个松耦合的、星状拓扑的架构。 www.zstack.io 因为服务在微服务中是编译独立的,添加或者删除服务将不会影响整个系统的架构(当 然,移除某些服务会导致功能的缺失)。 微服务远比我们已经讨论的内容更多:微服务的确有很多引入注目的优点,尤其是在一个 的开发运维 流程 (DevOps process )中,当涉及到一个大机构的很多团队时。我们不打算讨论 微服务的所有支持和反对意见,我们确定你可以在网上找到大量的相关文章,我们主要介绍一 些我们认为对IaaS 软件影响深远的特性。 问题 虽然微服务可以解耦合架构,但这是有代价的。阅读Microservices - Not A Free Lunch!和 Failing at Microservices 会对这句话有更深的理解。在这里,我们重点强调一些我们认为对IaaS 软件影响重大的事情。 1. 难以定义服务的边界和重复做功 创建Microservices 架构的挑战之一是决定应该把哪一部分的代码定义为服务,一些是非常 明显的,比如说,处理主机部分的逻辑代码可以被定义为一个服务。然而,管理数据库交互的 代码非常难以决定应不应该被定义为服务。数据库服务可以使得整个架构更加清晰明了,但是 这样会导致严重的性能下降。通常,类似于这样的代码可以被定义为库,库可以被各个服务调

文档评论(0)

zhaoxiaoj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档