地  址:江苏省南京市玄武区玄武湖
电  话:4008-888-888
邮  箱:9490489@qq.com
商  务QQ:6759875247
中小企业移动网站建设:傻瓜教程:什么是云原生应用程序?
作者:管理员    发布于:2020-06-11 16:10   文字:【】【】【
傻瓜教程:什么是云原生应用程序? 本文先容的云原生应用的登程点,还能够明晰理解在非云应用往云生应用的开展框架是什么,会带来什么样的优点等等,以及怎么办理好差别域间容量、数据、状态的关系。

大家通常都会在构想什么是一个Cloud Native Appliction,这也是大家为什么不绝地去测试、借鉴各种,借鉴、利用docker的缘故原由。本文先容的云原生应用的登程点,可能和大家的有着殊途同归之处,可能在某些方面说的仍是比拟笼统,可是经过图片,大家仍是能够明晰理解在非云应用往云生应用的开展框架是什么,会带来什么样的优点等等,以及怎么办理好差别域间容量、数据、状态的关系。

最近有试着形容 现代应用程序 或 现代事件负载 。

Twelve-Factor App就是一个很好的尝试。

这是一个很好的办法来形容这样的事件量但我以为这些概念需要贬低一个数量级使普通人正常明白他们。

这就是我想要在这个博文上做的。大家将省略一些重要的细节经过这样做但不要紧。

让我间接点:在(我的意思黑白常)高水平云本机应用程序是一个应用程序,该应用程序有一个明确的 根底设备 和 数据 之间的分离。至少在我眼里,设计一个云本机应用程序没有画这个明确的分离。

我用数据当做一个十分懈怠的术语。你可能正在思考一个 基于数据 (哪一个都行)但这真的应该包含 配置 。

另外一种办法来形容这种分离多是 容量 和 状态 。不只仅是这样。

让大家即刻初步用一幅画来形容这一律念:

请注意这两个域的特征。

根底设备容量没有你需要或想要包庇的本人的状态(至少在本地存储中)。

这是彻底无状态,你能够经过主动化轻松地(重复)创立它,因而,它不需要有弹性。

另外一方面承载了你的耐久性的域(在每个可能的形态和情势)具有彻底差别的特征,由于它需要牢靠的、高可用性、耐用和这一切。

此时,您可能想认识这是怎么差别与传统模式相比在3层web应用程序。在我眼里,云本机应用程序在阻隔传统 应用层 与传统的 数据层 将envelope推到极端。

根底设备容量域

这就是虚构机(又名实例)实时托管原生云应用的代码。他们彻底是无状态的,他们是一群vm所有同样配置(基于人物)和整个生命周期的主动化。在这样一个环境中传统IT概念通常关联到虚构机乃至没有任何含义。下面是一些例子。

不装配这些效劳器(传统办法),由于它们是由主动生成脚本由外部工作或政策触发(如基于用户须要主动定量前端层) 不操作这些效劳器,缘故原由同上。 不记载这些效劳器做什么和怎么提供它们,由于代码生成文档。 不备份这些效劳器,由于他们没有状态。如果你失掉了效劳器,你从头实例这些效劳器,重新初步。 你没有这些效劳器从一个当地迁移到另外一个,由于相同的缘故原由。你从头实例这些效劳器,重新初步。 你不消云平台级别提供高可用性来包庇这些效劳器。没有任何包庇,如果他们落空了,你从头实例效劳器。 你不需要为这些效劳规划根底设备的巨细,你只要为任何给定的工夫点上的消费。

你配置根底设备的素质与运转代码中的一局部一样。你传闻过 根底设备及代码 的概念吗?这就是了。

如今,适当常见的看到完成这类模式被用于完成配置东西组合,而后切换到配置治理东西。

这个念头是为了提供虚构机,让配置东西给客人创立相当的个性和人物。

AWS Cloudformations,HashiCorp Terraform,VMware Application Director,RightScale CMP这些都是专心于可编程初始化实例的几个例子。

Puppet, Chef, Ansible (等等) 是配置治理东西,专心于经过主动化包管实例交融,给定共鸣的配置和状态。

截至2014年末,这简直是现在的情况(和最佳实际)。

然而几个新趋势和模式在回升。他们可能最终收敛汇聚,在某种程度上,你能够看当做一种趋势。

第一个被称为不变的事件负载。现在为止,大家现已讨论了被称为可变负载,这意味着他们的配置能够扭转加班一样配置治理东西配置和从头配置他们需要让他们收敛到一个理想的最终状态。换句话说云本机应用程序其时的最佳实际倡议提供一个根底模板和在操作体系核心模板,包管核心模板利用特定的配置。不变事件量的哲学标明,实例相对于应的应该是不变的,如果你需要从头配置一个实例(如更新应用程序代码),你应该捣毁这个实例并从头当即布置它最新的配置到模板中。

第二个趋势是朝着简化整个堆栈包含这些事件负载。现在常见的做法是利用虚构机当做一个占位符,用于运转时(例如AWS EC2实例或VMware虚构机)。这些天有一所新校园的念头说虚构机太大,太臃肿和云本机应用程序太重,容器是一个更好的方式来打包和布置云本机应用程序。我置信你传闻过Docker和相关的动量(或者说是科技泡沫?)。这也很契合另外一个趋势(微效劳),这一个博文不行说了。

有趣的是,许多人也以为这种容器化趋势只是某个工具更大(呃,或者说更小?)的过渡。

征引:Invent 2014 AWS先容了一项新效劳,被称为Lambda云本机应用程序。这个能够允许开发人员编写代码并把代码当做数据的一局部。当数据产生变化时,工作触发代码运转。没有虚构机,没有挑选的容器,代码只是俄然地运转起来。换句话说,根底设备没有简化,它只是隐没了。

下图形容了图形化这一律念:

你能够想象这些概念将会话通向PaaS-ish模型。

数据和状态域

目前将本人传送到另外一个维度。

改换思想。

耐久性和弹性问题。大量大量问题。

有几件事,属于这个域。

最重要的一个就是在哪持有效户数据。想一想传统的(关系型)数据库但也多是一个存储库的非结构化数据(例如对象存储、NoSQL)。往往这些效劳是由云提供商提供治理效劳。并无什么会制止别的人写云本机应用程序布置和治理他们本人的数据库(关系型或非关系型),一般为使用诸如AWS RDS或AWS DynamoDB等治理效劳。

这办法(有代价可选)的好处是,你有你的耐久性和牢靠性保证而不是花工夫让本人产生。

最后,一个云提供商用一个彻底主动化的方式治理成百纷歧定上千的实例比一小我私家兼DBA特别是一个开发人员,要好大量。

这些云托管效劳的特点是,他们(通常)和水平呈线性比例关系。

以对象存储为例,您能够在主宰无限(或观点上的)的数据量。

想一想诸如AWS DynamoDB等效劳,你只要要订阅这个效劳构成SLAs,云提供商将依据SLA治理所需的容量(后盾)。

传统的关系数据库(虽然治理,如AWS RDS)通常不提供这种感觉无限的可伸缩性,由于他们经常向外扩展(但不超出)和基于云实例支撑治理数据库巨细才有的实践压制。

取决于你的挑选将会有一个变量的根底设备和核心操作过程的可视性,但所有这些解决方案减轻大量担负的耐久性域的可伸缩、高可用性和弹性。

第二组耐久性,属于这个域的形容是根底设备,跟着应用程序栈,需要布置、推行和经营。我把它叫做根底结构状态。

这样形容:

核心根底设备应该像什么样的(又名 根底设备及代码 ) 实例化应用程序的存储库 应用程序配置。

题外话: Twelve-Factor App申明中形容将应用程序代码从应用程序配置平分离是一个最佳实际。经过这样做你能够实例化差别的环境(开发、测试、分期、出产)经过简单地指向一个差别的应用程序配置。模块化(各级)规定在云本机应用程序。

这种耐久性的第二组数据和状态域能够以差别的方式完成。这多是一个(或多个):

一组AWS Cloudformations模板形容怎么建模你的根底设备容量 Puppet, Chef, Ansible, Saltstack或是Terraform,宣称让你的虚构机在运转时经过给定的配置集中起来 效劳如GitHub托管应用程序的 代码

注意根底设备状态只是概念上的用户数据,它们同享同样的须要(共鸣、牢靠、耐用等)。然而这些效劳能够在物理上分开。

尽管最近用一个云提供商一块儿把所有这些环境(根底设备容量域和数据和状态域)放在一块儿是适当普遍的,我们也能够以为他们是懈怠耦合的环境(如根底设备容量由两个云提供商,事务数据托管在第三个云提供商和根底设备状态托管在别的当地)。


2019-06-21 16:39:36 云技能 甲骨文收益好过预期 云应用程序疾速增长 数据库巨擘甲骨文公司(Oracle Corp.)今天颁布的相对于微弱第四季度收益陈述超过之前的预期,一局部缘故原由是旗下云应用事务的疾速增长。
Copyright © 2002-2020 网站制作系统_360免费建站官网_网站制作推广_医院网站建设_网站制作免费 版权所有 (网站地图
地址:江苏省南京市玄武区玄武湖 电话:4008-888-888
邮箱:9490489@qq.com QQ:6759875247