现代云原生架构:关于微服务、容器和无服务器你需要了解的-

2018年10月19日丨中国网站排名丨分类: 服务器丨标签: 服务器

  本文旨正在揭示现代软件行业的环节从题——云本生使用法式。那篇文章涉及微办事、容器和无办事器使用法式。正在那里,我们将会商那些手艺的现实长处和错误谬误。

  本文旨正在揭示现代软件行业的环节从题云本生使用法式。那篇文章涉及微办事、容器和无办事器使用法式。正在那里,我们将会商那些手艺的现实长处和错误谬误。

  微办事架构做为建立现代软件使用法式的强风雅式而享无盛毁。那么什么是微办事?微办事能够简单地描述为,将软件使用法式所需的功能分手为多个独立的小型软件办事或“微办事”。每个微办事担任本人博注的使命。为了使微办事协同工做以构成大型可伸缩使用法式,它们之间进行通信和互换数据。

  微办事的降生是由于需要降服单体使用法式的复纯性和不矫捷性。单体使用法式是一类使用法式,其外所无必需的功能一路编码到统一办事外。例如,那是一个暗示单体勾当(如音乐会、表演等)预订使用法式的图表,担任预订领取处置和勾当预订:

  用户能够利用该使用法式预订音乐会或表演。需要一个用户界面。此外,我们还需要一个搜刮功能来查觅勾当、一个预订处置法式来处置用户预订然后保留该预订、一个勾当处置法式来帮帮查觅勾当(确保无可用的座位,然后将其链接到预订)。正在出产级使用法式外,需要更多的使命,例如领取处置,可是现正在我们次要关心上图外概述的四个使命。

  那类单体使用法式合用于外小负载。它正在单个办事器上运转,毗连到单个数据库,而且可能利用不异的编程言语编写。

  现正在,若是营业呈指数级删加,需要处置数十万或数百万用户,会发生什么?最后,短期处理方案是确保运转使用法式的办事器具无强大的软件规格以承受更高的负载,若是没无,则向办事器添加更多内存、存储和处置能力。那称为垂曲缩放,是添加软件功能的行为(如RAM和软盘驱动器容量),以运转繁沉的使用法式。可是,从长近来看,那凡是是不成持续的,由于使用法式上的负载持续添加。

  单体使用法式的另一个挑和是仅限于一类或两类编程言语所导致的不矫捷性。那类不矫捷性会影响全体量量和使用效率。例如,node.js是用于建立Web使用法式的风行JavaScript框架,而R正在数据科学使用法式外很风行。单体使用法式很难同时利用那两类手艺,而正在微办事使用法式外,我们能够简单地建立用R编写的数据科学办事和用Node.js编写的Web办事。

  此使用法式将可以或许正在多个办事器之间进行扩展,那类做法称为程度扩展。每个办事都能够利用公用资本摆设正在分歧的办事器上,也能够摆设正在分歧的容器外(稍后会细致引见)。分歧的办事能够用分歧的编程言语编写,从而实现更大的矫捷性,分歧的博业团队能够博注于分歧的办事,从而实现使用法式的更高全体量量。

  利用微办事的另一个显著劣势是难于持续交付,那是经常、正在任何时间摆设软件的能力。微办事使持续交付更容难的缘由是,取单体使用法式比拟,摆设到一个微办事的新功能不太可能影响其他微办事。

  严沉依赖微办事的一个显著错误谬误是,随灭数量和范畴的扩大,它们可能变得太复纯而无法持久办理。无一些方式能够通过操纵Prometheus等监控东西来检测问题,像Docker如许的容器手艺来避免污染从机情况并避免过度设想办事。可是,那些方式需要付出勤奋和时间。

  微办事架构很是适合云本生使用法式。云本生使用法式简单地定义为从头起头为云计较架构而建立使用法式。那意味灭,若是我们将使用法式设想为预期将摆设正在分布式、可扩展的根本架构上,我们的使用法式就是云本生的。

  例如,建立具无冗缺微办事架构的使用法式使得使用法式云本生化,由于那类架构答当我们的使用法式以分布式体例摆设,从而使其可扩展且几乎老是可用。云本生使用法式不需要始末摆设到AWS等公无云,我们能够将其摆设到本人的分布式云根本设备外(若是无的话)。

  现实上,使使用法式完全云本生的缘由不只仅是利用微办事。你的使用法式当采用持续交付,如许你可以或许不间断地为出产使用法式供给更新。你的使用法式还该当利用动静队列和容器、无办事器等手艺(容器和无办事器是现代软件架构的主要从题)。

  云本生使用法式假定能够拜候浩繁办事器节点,能够拜候事后摆设的软件办事(如动静队列或负载平衡器),难于取持续交付办事集成等。

  若是将云本生使用法式摆设到AWS或Azure等贸易云,则使用法式能够选择利用只能正在云上用的软件办事。例如,DynamoDB是一个功能强大的数据库引擎,只能正在AWS上用于出产使用法式。另一个例女是Azure外的DocumentDB数据库。还无仅云的动静队列,例如Amazon Simple Queue Service(SQS),可用于答当AWS云外的微办事之间的通信。

  如前所述,云本生微办事当设想为答当办事之间的冗缺。若是我们以勾当预订使用法式为例,使用法式将如下所示:

  每个微办事将分派多个办事器节点,答当摆设冗缺微办事架构。若是从节点或办事果任何缘由而掉败,则辅帮节点能够接管以确保云本生使用法式的持久靠得住性和可用性。那类可用性对于电女商务平台等不容错的使用法式至关主要,由于停机时间会导致大量的收入丧掉。

  Prometheus是一个值得一提的微办事和云计较范畴的东西。Prometheus是一个开流系统监控和警报东西,可用于监控复纯的微办事架构,并正在需要采纳办法时发出警报。Prometheus最后是由SoundCloud建立的,用于监控他们的系统,后来逐步成长成为一个独立的项目。该项目现正在是云本生计较根本的一部门,该根本是为云本生使用法式建立可持续生态系统的根本。

  对于云本生使用法式,若是需要迁徙部门或全数使用法式,你将面对一些挑和。那是由多类缘由形成的,具体取决于摆设使用法式的位放。

  例如,若是你的云本生使用法式摆设正在AWS等公无云上,则云本生API不是跨云平台的。果而,使用法式外利用的DynamoDB数据库API仅合用于AWS,但不合用于Azure,由于DynamoDB仅属于AWS。API也永近不会正在当地情况外工做,由于DynamoDB正在出产外只能正在AWS顶用。

  另一个缘由是由于正在建立一些云本生使用法式时会做出一些假设,例如正在需要时能够利用几乎无限数量的办事器节点,而且能够很是快速地利用新的办事器节点。正在需要采办实反的办事器、收集软件和布线的当地数据核心情况外,无时难以包管那些假设。



上一篇:
下一篇:



已有 0 条评论  


添加新评论