在我们完成云堆栈的构建工作——即实现平台即服务(简称PaaS)、规模化容器乃至开发工具集中的各类工具选项——之前,我们首先需要建立良好的操作系统基础以支持这些容器系统。
对于云堆栈而言,良好的基础应当具备出色的灵活性并经得起反复考验。
当我们着手进行应用程序开发时,大家必须首先投入数小时、数天甚至数年以完善自己的规划。大家不仅需要学习相关编程语言及概念,同时也需要学习如何做出正确的架构决策,从而为正在开发中的全部应用程序提供坚实的运行基础。
问题在于,我们往往需要尽可能忽略自己当前正在构建的环境。如今应用程序开发者帮助我们拓宽了视野,通过引入云计算、平台即服务以及容器技术等方案深化我们对于环境工具选项的理解。
万事万物皆需要基础。坚实的基础将成为后续发展的重要故障。我们具体选择物理结构抑或是应用程序及云堆栈等实现方式其实并不重要,真正重要的是无论怎样的上层建筑都需要由最基本的“砖块”构成。
而为了检查这“第一块砖”,我们需要着眼于云堆栈并了解全部应用程序的开发基础。在立足于云堆栈的情况下,我们往往会迷失在浩如烟海的工作流、容器以及应用开发复杂性等要素当中。
在完成云堆栈的构建之前——其中包括平台即服务(简称PaaS)、规模化容器以及各类开发工具——我们首先需要建立操作系统基础以支持各容器系统。
基本基础
我们的云堆栈基础将采用Linux的企业版本,即红帽企业Linux(简称RHEL)。
云基础始于RHEL与RHEL Atomic。
我们当前使用的是RHEL 7版本,其中包含用于创建并托管容器系统的全部集成化支持要素。
在选择RHEL作为我们的操作系统之后,我们还需要利用RHEL Atoic在基础层中实现容器支持能力。这是一套基于Linux的轻量化发行版,专门面向容器进行设计。其中囊括了运行容器所必需的各项组件,因此大家可以将其视为一套“设备”——因为我们已经无法再向其中添加任何软件。
作为应用程序开发者,大家肯定比较倾向于使用个人开发操作系统,例如Windows或者某些Unix版本。不过考虑到容器系统的部署与托管需求,我们必须利用Docker工具集实现镜像的容器化处理。我们只需要保证自己的云堆栈能够托管这些应用即可,而不必过多担心其开发环境以及如何将其添加到RHEL或者RHEL Atomic基础层之上。
在管理这套业务体系时,大家真正需要关注的正是这套负责承载容器并在其开发、测试与生产部署过程中始终提供管理能力的基础层。
除了管理各类企业级基础设施所必需的操作任务之外,我们还需要利用DevOps机制管理现代容器化开发工作流。这些结构化环境能够支持现代企业所必需的敏捷开发方法,从而始终与客户不断变化的实际需求保持一致。
这部分容器化开发环境必须支持持续集成(简称CI)、容器化微服务即时测试以及持续部署(简称CD),从而以自动化方式支持现代敏捷企业开发者日常工作中大量涉及的持续变更任务。
规模不断升级
利用以上基础努力维护、更新并管理一套灵活的DevOps基础设施将很快成为业界共识。大家甚至会发现这种以容器为载体的开发及部署途径即将成为我们甘之如饴的最佳实践方案。
云堆栈示意图
无需恐惧,容器的规模化调整并不是什么可怕的状况。除了可扩展能力之外,我们还需要跨越各主机进行容器系统管理,从而确保应用程序开发团队在业务发展过程中始终具备必要的基础设施与工具供应。