托管服务允许开发人员专注于应用程序,将基础设施、扩展和服务器管理交由云提供商负责。
本文来自基础设施服务商 nitric ,可能不够中立,但是其思路还是值得一看。译自 Achieve Cloud Native without Kubernetes 。
图片来自 Shutterstock 的 Peshkova
这是一个两部分系列的第二部分。
在本质上,云原生是充分利用云计算模型的好处。这意味着构建和运行能够充分利用基于云的基础设施的应用程序。始终处于前沿的基本原则包括:
在第 1 部分中,我们强调了学习曲线以及直接使用 Kubernetes 可能不是最佳选择的情况。本部分专注于使用托管服务构建可伸缩的云原生应用程序。
达到云可能感觉像是使用 Kubernetes 等工具逐步构建梯子的过程。但如果我们可以简单地按下按钮并平稳地乘坐电梯上升呢?这就是托管服务发挥作用的地方,它们充当我们通向云的电梯。虽然不深入研究具体的提供情况可能不太明显,但托管服务通常在幕后使用 Kubernetes 来构建可伸缩的应用程序平台。
在涉及基础设施(以及总体软件)时,控制和复杂性之间存在明确的联系。我们可以通过将一些控制权委托给 AWS、Azure 或 Google Clou d等云提供商的托管服务来开始降低复杂性。
托管服务使开发人员能够专注于应用程序,将基础设施、扩展和服务器管理的问题交给云提供商的有能之手。这种方法的核心优势在于消除了服务器管理,并让云提供商处理动态扩展。
把托管服务看作是您 IT 部门的延伸,承担着确保基础设施健康、稳定性和可伸缩性的责任。
在设计云原生应用程序时,主要关注的应该是能够提供灵活性、弹性和可伸缩性的架构原则、模式和实践。与其立即选择特定的云提供商,对于团队来说,开始开发而不受这个决策的限制要更有价值。
幸运的是,云的竞争性质已经推动云提供商朝着功能平等的方向发展。基本上,它们已经建立了基础性的构建模块,这些模块在很大程度上互相借鉴,最终为最终用户提供了相同或极其相似的功能和价值。
这为抽象层和框架(如Nitric)铺平了道路,可以利用这些相似之处,为应用程序开发人员提供更大的灵活性,以提供云开发模式。真正的价值在于能够在工程团队的时间表上就技术(如云提供商)做出决策,而不是将其作为开发的阻碍。
应用程序的资源选择决定了它们的增长轨迹;它们塑造了应用程序建立的基础,影响其可伸缩性、安全性、灵活性和整体效率。让我们对一些对构建强大和安全的应用程序起作用的基本组件进行分类和审查。
执行、处理和互动
通信和事件管理
传统的云提供商提供了 CI/CD 服务,但通常无法提供真正无缝的体验。像 AWS CodePipeline 或 Azure DevOps 这样的服务需要复杂的设置和维护。
为什么这是个问题?
您可能会注意到这里与采用 K8s 时面临的一些挑战有一些相似之处,尽管规模较小。然而,有一些选项可以大大简化部署过程,例如使用自动化部署引擎。
这是 Nitric 采取的简化部署流程:
基本上,部署引擎会智能地推断并设置应用程序所需的基础设施,以确保为最大安全性配置了角色和策略,并降低了权限。
这种简化的流程解除了应用程序和运营团队的以下活动的负担:
使用托管服务可以简化与基础设施相关的复杂性,使组织能够将主要重点放在其主要目标上:应用程序开发和业务扩展。与直接使用 K8s 相比,作为 IT 部门的一部分的托管服务为云的平稳过渡提供了更加流畅和更有信心的方式。它们是云原生开发的绝佳选择,以增强数字增长和稳定性。
借助像 Nitric 这样简化部署流程并在不同的云提供商之间提供灵活性的工具,向无 Kubernetes 的云原生环境迈进似乎不仅仅是可行的,而且令人信服。如果您正在努力构建云原生应用程序或多应用程序的平台,我们很愿意听到您的意见。
阅读本系列的第 1 部分:“Kubernetes 并不总是正确的选择”。