云本地应用程序开发如何为应用程序交付供电

构建,运行和操作推动创新的现代应用程序。专注于代码,而不必担心基础架构和安全性。

Dipti Parmar

Dipti Parmar2022年1月18日

全球云计算市场计划超越今年1200亿美元,根据Forrester的报告。推动这种不懈的增长和采用是基础架构,软件,网络和应用程序技术的各种范式转变。其中的主要是云本地计算

“云国”是指实现云中工作负载的设计,开发和操作的最佳结构和技术的最佳组合,并充分利用了云计算模型。

实际上,有一个整个开源软件主体 - 云本机计算基础(CNCF) - 致力于使云本地通用和可持续发展。目前,它监督了近15万名IT专业人员到100多个项目和平台的贡献。这是什么CNCF必须说关于云本地应用:

“云本地技术使组织能够在现代,动态环境(例如公共,私人和混合云)中构建和运行可扩展应用程序。集装箱,服务网格,微服务,不可变化的基础架构以及声明性的API典范。它们具有弹性,可管理且可观察到。结合强大的自动化,它们使工程师可以经常和预测的辛劳经常和预测地进行更大的变化。”

这个定义反映了它的不断变化的面孔。从传统上关注流程和自动化,现在是业务产品的面貌。云应用程序已将其从成为业务本身的功能。

难怪那是超过650万云开发人员全球大楼云本地应用对于每个可能的业务工作量。根据缩放时,这些技术不可知最佳实践,例如DevOps,使用方法论交付,可部署到多个云平台不太容易受到供应商锁定的影响,即使释放周期更快,也不太容易发生“快速修复”的副作用。

但是,在组织可以完全接受云本地应用程序开发之前,需要牢记许多组件和架构考虑。

由于云本身对不同的人意味着不同的事情,因此组织需要定义并坚持某些编码基本面,最佳实践和流程,以实现其应用程序开发和交付目标。

有关的

清除云围绕云的本地人

“当人们说他们想要云时,他们真正想要的是能够灵活地部署资源并根据需要重新配置它们的能力。”史蒂夫·麦克道威尔说摩尔见解与战略。“云本地是关于包装,管理和运行对环境敏感的工作负载。”

获得云本地应用程序开发的所有核心元素 - 基础架构,平台,软件和服务 - 对于提供平稳,现代的用户体验至关重要。让我们一一检查它们,看看它们如何聚集在一起,将云原生应用程序带入生产并实现各种业务计划。

微服务

微服务体系结构(由Netflix开创)取代了具有多个单独构建功能模块的传统应用程序的单个单片可执行文件。这是部署模型的根本变化,并大大减少了在集成,测试和释放上花费的时间和精力。

微服务的基本属性是:

  • 独立建造和部署
  • 在工作负载中启用特定功能
  • 封装和独立,具有自己的编程平台,依赖关系,流程和数据存储框架
  • 使用API​​与其他微服务进行通信

由于每个微服务都是自行运行的,因此不会影响应用程序的其他活动部分 - 除了更改的微服务外,无需更新任何其他代码。这使得更快的滚动效果连续集成/连续交付(CI/CD)一个现实(与传统的定时版本和版本过程相反)。

基于微服务的体系结构还简化了故障排除和隔离调试,修改和更新。例如,工作负载的一个或功能(例如视频流)是错误的或面向使用峰值的一个功能,开发人员可以改进或扩展该功能,而无需重新完成整个可执行文件,并且需要有限且精确的资源配置。

同样,如果功能或功能变得更大且笨拙,则可以将其放置或划分为更粒状的微服务。这会降低复杂性和更轻松的应用监控和管理。

应用程序编程接口(API)

组成云本地应用程序的微服务需要一种固有的机制来互相交谈 - 发送和接收数据,元数据和服务请求。此外,面向客户端的微服务需要接受并响应来自不同设备,浏览器和其他Web/移动客户端以及UIS的用户请求。

RESTFUL API是管理云本地应用程序中微服务之间通信的首选界面。它们是由其他服务(可以驻留在同一服务器上或在Internet上半途旁的)使用标准协议(例如HTTPS,WebSockets,GRPC,AMQP等)“调用”的)。

开发人员需要实施诸如:

  • 添加需要或接受其他参数的新函数时,将更新API格式的版本控制。
  • 监视,数据缓存,节流和断路器,以确保由于使用SPIKE或DDOS攻击而导致的API呼叫不会淹没该服务。

容器

容器是实现云本地应用程序开发的体系结构的基本部分。他们提供了更快,更轻松(资源密集得多的)替代VM,作为用于部署单个微服务的计算平台。

有关的

当容器变得复杂时,请转移到Kubernetes作为服务

在年龄混合和多云环境,容器保证一致性并增加不同云系统的应用可移植性。karbon- Nutanix的Enterprise Kubernetes管理解决方案 - 是一种多云的PAA,可加速云本地应用程序,在公共云和边缘的开发和部署。

支持服务

至少在所有云本地应用程序中,都不开发任何软件。需要许多支持系统和资源,例如身份和监视服务,跟踪和分析服务,数据存储,消息传递和排队系统,缓存服务等,以使应用程序体系结构云准备好。

开发人员可以选择托管自己的支持服务或获得云提供商的托管服务,随附内置的可用性,冗余和监视。

备份服务可以动态绑定到具有配置信息(URI和凭据)的微服务。这样,备用服务就可以作为附件资源,但同时与应用程序解耦,使其可互换。

可以通过使用配置管理工具将配置信息外部化,而无需更改代码,可以将备份服务附加到微服务中。

现代设计

微服务,API和容器的结合肯定不是云中应用程序开发挑战的灵丹妙药。IT团队需要开发适用于云模型及其所拥有的IT基础架构的自定义应用程序监视和管理方法。

Nutanix产品营销总监Sean Roth强调了DevOps在使IT团队和软件开发人员能够共同构建和部署现代云本地应用程序中的作用。

“在许多情况下,开发人员的应用程序和IT运营努力以满足其资源需求的努力,开发人员加快了速度,”罗斯说。“ Devops以及随之而来的心态,可以减轻一定程度的障碍。”

有关的

将敏捷宣言纳入DevOps Action

“传统的瀑布方法的特征是开发人员和IT操作之间的严重断开,开发周期可能会延伸到几年。”马克·拉维说,DevOps倡导Nutanix。“云本地通过利用云计算模型的可扩展性和自动化功能来消除许多负担,并将它们与较新的DevOps实践相结合,这有助于将开发与业务目标保持一致。”

其中一些做法是:

  • 采用十二个因素方法这使应用程序通过最大化可移植性来适用于云平台上的部署,从而消除了服务器管理的需求,增强了各种平台和环境之间的超关联,从而使工作负载可以扩展而无需进行重大更改,并启用了连续部署
  • 知道何时从头开始开发新的云本地应用程序,何时(以及如何)现代化,重构,扩展或容器化现有应用程序,以及何时购买现有或定制的解决方案,以扩展现有的工作流程,同时利用敏捷性和灵活性云端
  • 将数据与应用程序解耦(将处理和数据分解为单独的组件)并将其存储在公共,私人或合适的混合云
  • 通过将应用程序组件分组到计划的流中而不是连续或按需传输中来优化应用程序组件之间的通信
  • 统一和集中的绩效监控和控制以及根据工作负载需求对资源实例进行自动配置
  • 开发人员和IT安全团队共同承担的责任,采用DevSecops的安全方法;系统性云本地安全性内置在应用程序体系结构中,使其能够使用零信任模型利用身份和访问管理(IAM)
  • 建筑可观察性在整个堆栈和应用程序容器中,以及集中的日志记录,监视和持久存储,以确保对应用程序的所有组件以及它处理的数据进行全面和按需可见性
  • 自动化,开发人员驱动的功能测试,以释放QAS组以关注集成测试,客户端测试和性能/负载测试

有云

一直以来,组织一直在努力将其应用程序开发工作与业务目标相匹配。这也许是云本地技术最有价值的地方 - 它通过商品化基础架构并为开发人员提供按需PAAS体验来自动化整个软件开发生命周期。

“如果2020教我们任何东西,那就是您需要能够根据世界上发生的事情动态地重新配置IT环境。与遗产环境相关的公司是真正挣扎的公司。”麦克道威尔解释说。“如果您不采用云,云本地不会使您的公司倒闭,但这将使您成为行业中的落后者。现在,这是我们提供响应式IT服务的方式。”

特色图像由pxfuel

Dipti Parmar是一名营销顾问,也是Nutanix的撰稿人。她写了有关主要技术和商业出版物的专栏文章@diptparmar并与她联系LinkedIn

©2022 Nutanix,Inc。保留所有权利。有关其他法律信息,请去这里

Baidu