构建企业云本机应用程序以利用云计算模型的优势,该模型可提高速度,灵活性和质量,同时降低部署风险。尽管它的名字叫云原生方法,但它并不着眼于应用程序的部署位置,而是着眼于如何构建,部署和管理它们。
面向云原生应用程序开发和交付的过程是多维的,影响文化,流程,架构和技术。因此,这是一个旅程,而不是目的地,代表着难以适应的变化周期。
云原生应用程序开发是一种构建和运行应用程序的方法,该方法可以充分利用基于四个关键原则的云计算模型:体系结构服务,通信API,基础架构容器和流程DevOps。进行云原生应用程序开发之旅的组织不仅应考虑将这种方法应用于全新的应用程序,还应考虑将其应用于现有应用程序。
在这本eWEEK数据点文章中,Red Hat Linux提供了将云原生应用程序开发置于业务环境中的专业知识,并提供了公司可以采取的八个步骤来帮助平滑技术和文化上的道路。
数据点1:发展DevOps文化
通往云原生应用程序的道路可能要求开发和IT运营团队以多种不同方式发展,以更快,更高效地构建和部署应用程序,并将测试/质量和安全团队作为流程的一部分而不是而非最后一步。DevOps文化的采用不仅依赖于工具和技术,还依赖于人们的意愿和信任,他们愿意采用更加集成和协作的方式来开发和交付应用程序。开源软件项目的文化可以作为构建DevOps文化的指南。
数据点2:使用快速整体方法加速现有应用程序
尽管整体应用程序通常缺乏敏捷性,但这种声誉主要归功于它们的构建方式。许多现有应用程序对业务运营至关重要,不能简单地替换。相反,它们需要与新的云原生应用程序集成。为了帮助加速现有的整体架构,组织可以通过将现有的整体架构转移到更加模块化,基于服务的架构和基于API的通信中来采取快速的整体架构方法。
快速的整体方法可以实现与微服务相关的许多敏捷优势,而不会增加复杂性和成本。但是,即使在对现有应用程序应用快速整体方法之前,也可以通过将它们简单地移动到基于容器的平台来使其更快,该平台可以提供部署和交付优势,同时提供一个平台来使用云原生迭代开发新功能或集成技术和方法。
数据点3:使用应用程序服务加速开发
DevOps和容器可以加速云原生应用程序的交付和部署,而应用程序服务可以加速其开发。因此,当您可以使用已优化并集成到基于容器的基础架构的现有框架时,为什么要重新创建缓存服务,消息传递服务,移动和API管理功能或无服务器框架?
这些应用程序服务是有效的即用型开发人员工具,云本机应用程序可能需要一种或多种此类服务,以帮助开发人员加速开发并更快地将新应用程序推向市场。
数据点4:为正确的任务选择正确的工具
随着语言或框架的选择越来越适合特定的业务应用程序需求,构建云原生应用程序变得越来越多样化。随之而来的复杂性增加可能值得使用基于容器的应用程序平台,该平台支持正确组合精选的框架,语言和体系结构以支持云原生开发。云原生开发人员还应该为正确的任务选择正确的工具-无论采用哪种方法,基于容器的平台都应提供正确的框架,语言和体系结构组合,以支持所选的开发需求。
数据点5:提供自助式按需基础架构
敏捷方法已帮助开发人员更快地创建和更新软件,但是它们缺乏在需要的时间和地点及时访问基础结构的有效机制。通过允许开发人员在需要时访问所需的基础架构,自助式和按需基础架构配置提供了一种替代影子IT的引人注目的替代方案。但是只有在IT运营团队拥有控制权和可见性的情况下,此模型才有效。
容器和容器编排技术可以抽象并简化对基础结构的访问,并在各种基础结构环境中提供强大的应用程序生命周期管理。
数据点6:实现IT自动化以帮助加速应用程序交付
IT或基础结构自动化对于通过消除手工IT任务来帮助加速云本地应用程序的交付非常重要。自动化可以与任务或组件集成并应用于任务或组件,从网络和基础结构配置到应用程序部署和配置管理。
IT管理和自动化工具可创建可重复的流程,规则和框架,以替代或减少劳动密集型的人机交互,从而延迟上市时间。因此,自动化对于IT优化和数字转换非常重要,有助于缩短总体价值实现时间。
数据点7:实施持续交付和高级部署技术
敏捷开发方法经过改进,可以创建早期发布,经常发布的模型,并且DevOps和持续交付方法通过将开发人员,运营,质量保证和安全团队联合起来来改善软件交付流程,从而扩展了这些方法。结果,可以将代码更改更快速,更可靠地推送到生产环境中,从而为开发人员提供更快的反馈。
通过CI / CD可以实现这种迭代的,更快的反馈循环,从而将基础架构自动化扩展到可以涵盖应用程序交付的所有方面的端到端自动化交付系统。自动化交付管道的目标是在不影响运营能力的情况下提供更新,从而帮助降低交付风险。
数据点8:演进更具模块化的架构
不断发展的基于微服务的体系结构可能为非常庞大的团队或部署提供额外的好处,但是,实施微服务体系结构可能需要投资和技能,可能会破坏性。在这里,组织可以将MonolithFirst方法用于微服务,这意味着即使您打算创建微服务架构,也要首先将应用程序构建为整体。这样做的目的是首先了解您的应用程序的域,然后更好地识别其中的有限上下文,这些上下文将成为转换为微服务的候选对象,并且这样做有助于避免技术负担。微服务的另一种替代方法是微服务,它是按域划分的一组服务,可以提高敏捷性和规模,而无需基于微服务的设计和基础架构的复杂性;但是,小型服务仍然需要在敏捷,DevOps和CI / CD方法方面进行投资。
这八个步骤可以指导您迈向云原生应用程序开发的道路,并帮助您成功实现旅程。