成功过渡到云原生架构的6个步骤
云原生已成为软件行业的最大趋势之一。它已经改变了我们思考开发,部署和运营软件产品的方式。应用开发的云原生范例包括微服务架构,容器化服务,编排和分布式管理。
每个行业的组织都希望保持竞争力,并且存在强烈的紧迫感,需要快速适应。迫切需要确保适当的基础设施灵活性和性能弹性,以管理不可预测的使用量和地理分布。许多公司已经在这一过程中取得了不同程度的成功。
Cloud Foundry最近对大约600名IT决策者进行的调查显示,超过75%的人正在评估或使用平台即服务(PaaS),而72%的人正在评估或使用容器。近一半(46%)正在评估或使用无服务器计算。值得注意的是,超过三分之一的人正在采用所有这些技术的某种组合,而在使用这三种技术的公司中,云原生计算正在获得动力。
采用云原生架构不仅仅是将一些工作负载转移到公有云供应商。这是一种全新的,不同的方法来构建基础架构,开发应用和构建团队。以下是企业必须采取的六个步骤,以确保成功过渡。
1.计划过渡到云原生
成功转型的第一步是制定计划,但许多企业没有朝着正确的方向前进,因为他们总是从技术开始。虽然新技术令人兴奋,但它也可能令人生畏。否则,高度有益的技术可能被滥用。
首先,让你的领导,合作伙伴和客户参与至关重要。介绍你的发现和高级计划。组建合适的团队并共同努力,将你的云原生之旅划分为不同阶段。然后,将这些阶段分解为开发项目,冲刺和操作。设定明确的期望并经常收集反馈。最终,领导层和工程团队必须在业务目标和企业希望通过启动过渡在短期和长期内实现的关键结果上保持一致。如果没有这种相互理解,工程团队就有可能过早地优化与业务无关的用例的体系结构。
在你将业务使命,愿景和人员与云原生目标保持一致之前,请抵制追求技术的诱惑。
2.从silos过渡到DevOps
尽管敏捷方法很流行,但应用开发仍然常常被组织到以下孤岛中:软件开发,质量保证和测试,数据库管理,IT操作,项目管理,系统管理和发布管理。
通常,这些silos具有不同的管理结构,工具,沟通方法等。这些差异对应于有关应用开发工作的任务和实现的不同观点。
DevOps既是一种方法论,也是一种组织结构。它旨在打破孤岛,建立一个共同共享工具集和更广泛的沟通渠道。我们的目标是培养一种强调经常发布高质量可交付成果的文化。DevOps用自主权和问责制取代了繁重的程序和不必要的官僚氛围。
3.从Waterscrumfall迁移至持续交付
今天,许多敏捷团队发现自己沉浸在瀑布式敏捷开发(Water-scrum-fall)。是的,拥抱敏捷原则是件好事。但是,组织往往没有这样做。在许多敏捷团队中,每次迭代的结果实际上并不是生产级可交付成果。顺便说一下,这是敏捷宣言工作软件原则的初衷。
更常见的是,新代码只是一个与下游其他批次聚集在一起的批处理。这与传统的瀑布模型非常相似。这种对传统开发的明显回归实际上减少了敏捷交付的两个主要好处。首先,客户需要几周的时间才能看到正在开发的应用程序的价值。其次,开发团队在相同的时间段内没有收到任何真正有价值的反馈。
要开发云原生应用并实现云原生架构的优势,有必要完全转向持续交付(CD)。在CD中,应用更改会自动部署——每天数次。
4.分解你的单体应用
如果将传统的多层单体应用(monolith)移入云中,则很少能够正常运行。这是因为这种迁移通常是针对部署环境的几个主要的,不可支持的假设。
另一个抑制因素是整体部署与静态,持久的基础设施密切相关。这与假设的云计算对短暂和弹性基础设施的期望很不相容。由于云基础架构不能为单体应用提供良好的支持,因此有必要制定一个计划,将单体应用分解为可以在云中的组件。
5.设计一系列服务
从本质上讲,云原生架构通常被视为基于服务的架构。最理想的情况是,应将云原生应用部署为云服务或API的集合。
虽然很容易理解这些概念,但许多开发人员仍然倾向于创建紧密耦合的应用。此类应用与用户界面紧密对齐并绑定。为了有效利用云计算资产和优势,云原生应用应将支持功能公开为可独立访问的服务。
在为云开发应用体系结构时,必须构建它以与复杂,不同,广泛分布的系统进行交互。这些系统可以支持多个松散耦合的应用。此类应用可以使用许多服务,并且与数据保持分离。开发人员可以从数据中构建并使用它与服务进行通信。这些服务可以组合成复合服务和复合应用,这些服务保持灵活性和可扩展性。
6.解耦和分解数据
简单地将单片应用分解为微服务是不够的。解耦数据模型也很重要。如果开发团队获得“自主”的自由,但仍然必须与单一数据库竞争,那么创新的单一障碍仍然无法改变。
如果数据已经与应用紧密绑定,则无法在云端找到一个好的归宿。考虑一下:由于我们知道最好将应用功能分解为服务,因此必须将数据解耦。解耦数据的努力将获得丰富的回报,能够在任何云实例上存储和处理数据。
迁移到云原生架构将是耗时的挑战。它不仅仅是让应用在云计算环境中运行。云原生需要支持基础架构的重大变化以及围绕微服务设计应用的转变。此外,基础变更需要用于云原生操作的新工具。
但长期收益将是毋庸置疑的。企业可以在最短的时间内从创意转向应用。没有其他应用开发范例更有效。这是企业可以追求的最明智的投资之一。