3 云原生软件平台
本章要点
■ 云平台发展历史简介
■ 云原生平台的基础功能
■ 容器的基本知识
■ 如何在整个软件开发生命周期中使用平台
■ 安全性、合规性和变更控制
我帮助过许多客户了解和采用基于云原生的模式和实践,以及为运行软件而专门进行优化的平台。特别是,我在Cloud Foundry平台上工作。我想分享一下一个客户的经历,他和其他客户一样,接受并采用了Cloud Foundry平台,并在平台上部署了一个现有的应用程序。
尽管此客户部署的软件只采用了本书中提到的几个云原生模式(例如,应用程序都是无状态的,并调用持久化状态的其他服务),但在迁移到云平台的过程中,成效即刻显现。在部署到Cloud Foundry后,他们发现系统比以往任何时候都更加稳定。最初,他们将此效果归功于为了在Cloud Foundry部署所做的轻量级重构,无意中提高了软件的质量。但是在检查应用程序日志时,他们发现了一些令人惊讶的事情:应用程序崩溃的频率和以前一样频繁,他们只是没有注意到而已。云原生应用程序平台一直监控着应用程序的运行状况,当应用程序出现故障时,平台会自动启动一个替代的应用程序。隐藏的问题仍然存在,但运维人员和用户(这个更重要)的体验要好得多。
注意 这件事情的意义在于,尽管云原生软件定义了许多新的模式和实践,但是开发人员和运维人员都不需要提供所有这些功能。云原生平台,即那些旨在支持云原生软件的平台,已经提供了丰富的功能来支持现代软件的开发和运行。
先在这里澄清一下:我并不是说有了这样的平台就可以降低应用程序的质量。如果一个bug导致了系统崩溃,那么你应该找到并修复它。但出现这样的情况并不一定意味着在bug被解决之前,需要不断地在半夜吵醒运维人员,或者影响用户的体验。新的平台会提供一套服务来满足在前几章中所描述的需求,即软件能够持续部署、高度分布式,以及在不断变化的环境中运行。
在本章中,我将介绍云原生平台的一些关键功能,让你知道通过平台可以获得的能力。如果你深刻理解了这些功能,不仅可以从烦琐的运维工作中解脱出来,更多地关注业务需求,而且可以优化云原生部署的过程。