解决方案

应用程序的未来是云原生

使用 Habitat Builder 快速可靠地将容器化应用程序交付到云端

什么是云原生?

       随着云的发展,聪明的组织已经重新考虑了他们的应用程序开发和交付模型,以最好地利用云架构的优势。亚马逊 AWS、微软 Azure、谷歌云引擎和其他云中的第一代云工作负载主要是一种“提升和转移”的练习。这些努力将本地应用程序和基础设施转移到一个商品非托管平台中,以节省硬件支出和 IT 开销。

       这种“云原生”方法利用云架构,结合微服务架构和容器技术,重新思考在基于云的世界中应用架构的可能性。云原生应用战略在 IT 领域掀起了一场革命,但需要一种新的思维方式来最好地利用云的力量。

云原生应用的三大支柱

       云原生应用程序的通用定义涉及三个核心支柱:应用程序使用容器技术(如 Docker)进行封装,它由一系列微服务组成,以离散组件提供数据和逻辑流程,以及它们由主管动态管理协调和联合流程的功能和规模。云原生的这三个特征为 IT 组织解决了许多问题。

1、减少容器应用交付的摩擦

       容器标准化使团队摆脱了传统应用程序开发和交付模型中的许多摩擦源。Docker 等技术通过提供一致的方式来打包和管理隔离的“容器”中的基础设施和平台组件,从而使开发和运维团队的交叉变得顺畅。在基于容器的世界中,开发人员和 IT 团队的云障碍减少和消除。

       IT 团队可以创建操作系统、数据库和网络配置的标准化映像,开发人员可以轻松发现和使用这些映像。当开发人员针对这些图像进行构建时,他们还可以将这些图像考虑在内来打包应用程序。因此,当他们完成功能并将其交付给运营以在测试或生产环境中进行部署时,运营团队无需进行取证工作即可了解开发人员最终做了什么。并且应用程序可以与容器映像的依赖项一起打包,以简化部署过程。

2、 使用微服务超越单体

       下一个特征,基于微服务的架构,将应用程序功能、数据流和接口从单体应用程序的特性解耦到应用程序中汇集的一系列联合服务。将应用程序模型解构为小的离散功能单元,为开发人员和运营团队提供了以精益和敏捷方式解决大问题的灵活性和能力。特定功能或数据源通过 API 公开并由应用程序开发人员使用。然后可以添加、更新或修复功能,而无需重写、重新测试和重新部署整个应用程序。然后应用程序可以快速发展以响应业务需求,

3.、与主管的动态应用管理

       随着跨容器化基础设施运行的组合和连接微服务,重要的是管理这些以获得可预测的结果。第三个特征,动态管理,在服务之上提供了一个监督层,让运营团队可以查看应用程序的内部工作情况。云原生主管会跨云平台、容器状态和内容以及服务状态查看应用程序基础架构的组件,以了解当前的配置状态、服务状态和生态系统的其他关键元素。然后,适当的开发或运营团队可以识别和纠正在当前状态中发现的缺陷以进行补救。

云原生架构剖析

        云原生架构由五个不同的层组成,从高级应用程序代码到所需的运行时和连接的服务。这些应用程序和服务通过一致的调度、编排和监督进行管理,所有这些都运行在由云提供商托管的低级基础设施上。

成功交付云原生应用

在 Chef,我们相信交付云原生应用程序的成功取决于四个核心方面:

  • 可组合性:组件可以轻松组合并与特定服务要求连接
  • 灵活性:从开发者的角度来看,不受限制(或似乎不受限制)。
  • 可编程性:提供、部署和管理的 API 优先方法
  • 无摩擦:从开发人员的角度来看,基础设施是隐藏的。

云原生应用程序的这四个特征不仅是成功的初始代码部署的关键,而且是实现向客户敏捷和持续交付价值的关键。

随着团队开始设想出生时是云原生的应用程序,下一个要回答的问题是“我们如何实际构建这些东西?” 团队需要考虑如何以不同于传统应用程序的方式构建、部署和管理云原生应用程序。云原生架构非常适合精益和敏捷的 DevOps 实践,在这种实践中,新的离散功能可以快速构建、频繁部署和测试,并尽快交付给客户。在云原生组织中,每一天都是“第一天”,创新和速度是成功的关键。

建造、部署、管理,云原生之旅

建造

       应用程序开发流程需要不断发展才能在云原生世界中蓬勃发展。build-deploy-test-fix 的基本工作流程保持不变,但容器化镜像让开发人员可以开始构建到已知平台。在注册表中查找图像,将其下载到本地并开始编码。当您签入代码时,持续集成会自动触发可以在本地容器环境或云基础架构中测试的新构建。

部署

       当运维团队看到容器注册表中出现新应用程序时,他们可以在容器化环境中测试应用程序。应用程序是为环境打包的,可以进行测试以确保应用程序和依赖项正常工作。容器运行时间,无论是 Docker、Kubernetes、Cloud Foundry 还是其他,都可以轻松地从测试转移到生产部署,并跨节点实现扩展。容器和云带来的运行时与平台的解耦使部署变得灵活和可扩展。

管理

       容器化应用运行时和基于云的平台使规模几乎无限。云原生应用程序允许运营团队收集可操作的见解,以衡量应用程序和基础架构的健康状况。运维团队成员可以了解应用程序的性能并添加额外的资源或节点,识别系统中不健康的节点,并随着需求的变化降低资源速度。动态管理应用云基础设施的能力通过改进的性能、新功能以及快速检测和纠正故障为客户创造最佳体验。

使用来自 Chef Habitat 交付云原生应用程序

      对于希望开始迁移到云原生世界的组织,或希望自动化交付流程以提高速度的以应用程序为中心的团队,Habitat Builder 可自动执行从代码到容器再到生产的应用程序交付流程。

      开发人员将他们的 GitHub 和 Docker Hub 帐户连接到 Habitat,提供几行配置代码,然后返回编码。当代码更改提交到 GitHub 时,Habitat Builder 会负责打包、构建和导出您的应用程序作为完全打包的 Docker 容器。这些软件包包括 Habitat Supervisor,它允许快速轻松地部署 Habitat 中内置的应用程序,而且还为运营商提供洞察力,以确保应用程序为最终用户提供出色的体验。