赞
踩
如果云应用程序开发人员了解并遵循云原生应用程序开发的最佳实践,他们可以战略性地创建和维护更好的应用程序。
云原生应用程序可以带来一系列好处。它们提供精细的可扩展性、可移植性和资源的有效利用。尽管如此,它们可能难以管理且难以保护。云原生应用程序开发人员需要将劣势最小化并最大化收益。
在开发云原生应用时遵循最佳实践。这些最佳实践的范围从选择正确的设计模式到从一开始就考虑安全性以防止以后出现问题。通过避免供应商锁定和战略性地使用无服务器,开发人员可以创建高质量、持久的应用程序。
您的云原生开发流程越好,您的应用程序可能就越高效和可靠。
理想情况下,云原生应用程序将在任何 IT 环境中运行。这样,它就不会依赖于特定的公共云或平台类型。
要实现这种可移植性的云原生优势,请避免与特定供应商绑定的服务。确保应用不依赖特定供应商的服务或环境中的功能来运行。同样,避免让开发人员仅将应用程序构建和部署到特定云或主机环境类型的 PaaS 产品。
例如,如果您选择使用 Kubernetes 容器编排运行云原生应用程序,请将其设计为可以在任何 Kubernetes 环境中运行。不要将自己局限于特定供应商的 Kubernetes 发行版。
微服务、容器化、持续交付和 DevOps 是云原生开发的关键原则。
在设计云原生应用程序时,开发人员有很多选择。例如,微软的列表包括不少于39 种不同的模式。最流行的云设计模式包括:
许多设计模式可以同时使用;它们并不相互排斥。您使用的设计模式或模式应反映应用程序的使用目标和公司优先级。
如果安全是重中之重,那么看门人设计模式可以工作;它减少了应用程序在互联网上的暴露。对于另一个用例,CQRS 有利于需要高数据可用性的应用程序。因为 CQRS 模式只允许应用程序的特定部分修改数据,所以它降低了由错误应用程序导致的意外数据覆盖或损坏的风险。
使用无服务器计算来部署云原生应用程序有很多很好的理由。
即便如此,无服务器也有明显的缺点。
云原生开发人员应该研究何时——何时不——将应用程序设计为无服务器功能。如果易于部署和可扩展性等因素是优先考虑的因素,那么无服务器是有意义的。如果您优先考虑可移植性,那是没有意义的。它也可能不适合用不太常用的语言编写的应用程序。
在开发云原生应用程序时,安全性不能成为事后的想法。
在实践中,组织需要政策来确保安全发展。这些可以包括规划和实施安全应用程序身份验证、应用程序开发过程中的授权以及防止开发人员构建任何业务功能并在以后进行身份验证的方法的指导。
开发人员还应计划最大限度地提高应用程序数据的安全性。这包括存储在应用程序内部的数据以及外部存储的数据,例如对象存储服务中的数据。在所有存储位置实施数据加密和访问控制功能。
云原生一词具有误导性。云原生应用不一定要在云中运行。他们也可以在现场操作。您可以采用基于容器化微服务的应用程序并将其部署到本地 Kubernetes 集群中。
有时,本地部署更可取——如果它们提供的总拥有成本低于在云中托管应用程序的话。对于特定用例,本地还可以提供比公共云更好的安全性和数据隐私控制。
开发人员不应假设他们的云原生应用程序将始终在云中运行。他们应该设计可以在任何地方运行的应用程序。通过避免依赖仅在公共云中可用的服务并与平台(例如 Kubernetes)集成来实现这一点,这些平台可以轻松地在云中和本地运行云原生软件。
请记住,开发云原生应用程序没有一种正确或错误的方法。充分利用云原生应用程序需要一个针对应用程序的用例和优先级量身定制的精心规划的开发过程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。