什么是云原生基础架构?
基础架构是指支持应用程序的所有软件和硬件,包括数据中心、操作系统、部署流水线、配置管理以及支持应用程序生命周期所需的任何系统或软件。
高效运行的基础架构可以使得迭代更快,缩短投向市场的时间,从而加速业务发展。
使用云原生基础架构是有效运行云原生应用程序的要求。
云原生的优势
通过选择在公有云中运行基础架构,您可以更快地创造价值并专注于业务目标。只需构建您的产品所需的内容,并从其他提供商那里获得服务,就可以缩短交付时间,提高灵活性。
使用云托管的服务时无需精专于管理应用程序所需要的每项服务。这极大地加强了业务变更和业务增值的能力。
云原生实践还可以缩小传统工程角色之间的差距(DevOps 的共同目标)。系统工程师将能够从应用程序中学习最佳实践,开发工程师可以拥有应用程序运行所在的基础架构的所有权。
什么不是云原生基础架构?
- 云原生基础架构不等于在公有云上运行基础架构
- 云原生不等于在容器中运行应用程序。
- 也不是说只要您运行了容器编排器(例如 Kubernetes 和 Mesos)就是云原生架构。
- 云原生不等于微服务或基础架构即代码。
云原生应用程序
云原生应用程序被设计为在平台上运行,具有弹性、敏捷性、可操作性和可观测性。弹性能够容忍故障而不是试图阻止故障,利用了在平台上运行的动态特性。敏捷性允许快速部署和快速迭代。可操作性从应用程序内部控制应用程序生命周期,而不是依赖外部进程和监视器。可观测性提供信息来回答有关应用程序状态的问题。所有这些可以用12因子表示。
采纳云原生基础架构的时机
云原生基础架构并不适合所有人。任何架构设计都经过了一系列的权衡。您只有熟悉自己的需求才能决定哪些权衡是有益的,哪些是有害的。
不要在不了解架构的影响和限制的情况下采用工具或设计。
怎么知道是否应该使用云原生基础架构设计?确定云原生基础架构是否适合您,下面是一些需要了解的问题:
- 您有云原生应用程序吗?(有关可从云原生基础架构中受益的应用程序功能,请参阅上面的云原生应用程序定义)
- 您的工程团队是否愿意且能够编写出体现其作业功能的生产质量代码?
- 您在本地或公有云是否拥有基于 API 驱动的基础架构(IaaS)?
- 您的业务是否需要更快的开发迭代或非线性人员 / 系统缩放比例?
如果您对所有这些问题都回答“yes”,那么您可能会从本书其余部分介绍的基础架构中受益。如果您对这些问题中的某个问题回答是“no”,这并不意味着您无法从某些云原生实践中受益,但是您可能需要做更多工作,然后才能从此类基础架构中充分受益。
应用程序ready后,下一步就是人了。人是云原生基础架构中最难的部分。
需要组织架构有devops精神,人们不会扩大规模,也不擅长重复无聊的工作。
应用程序和系统工程师的目标应该是消除无聊和重复的任务,以便他们可以专注于更有趣的问题。
最关键的方面是他们需要一起工作。如果没有其他方面的支持,工程的一方无法迁移到运行和管理应用程序的新方式。团队组织和沟通结构非常重要。
如果系统的架构和组织的架构不一致,则组织的架构会胜出。
—— 鲁斯马兰,“康威定律”
当沟通结构反映业务需要创建的基础架构和应用程序时,业务已准备好采用云原生实践。这包括反映像微服务这样架构的沟通结构。他们可能是小型的独立团队,无需通过层层管理与其他团队交流或合作。
DevOps 和 Cloud Native
DevOps 可以补充团队合作的方式,并影响使用的工具类型。公司采用后有很多好处,包括快速原型化和提高部署速度。它也非常注重组织的文化。
云原生需要高性能组织,但更注重于设计、架构和健康度,而不是团队工作流程和文化。如果您原以为必须解决应用程序开发人员、基础架构运维以及技术部门中任何人员之间的交互问题,才可以成功地实现云原生模式的话,那么您可能会对此感到意外。
当业务意识到需要频繁迭代和更改时,它可能已经准备好采用云原生应用程序了。只要在人员效率和流程方面遇到限制,且可以随时更改它,就可以准备迁移到云原生基础架构了。
参考
本文节选自以下文档,更多详细内容请参考以下链接
标签:原生,架构,迭代,应用程序,基础架构,介绍,运行 From: https://www.cnblogs.com/llwhrbust/p/18194589