liujinlong
作者liujinlong联盟成员·2021-03-15 22:40
项目经理·china

容器云初探与推荐

字数 4350阅读 2526评论 0赞 1

【写在前面】

企业都希望可以在这个快速变化的商业时代追随潮流的步伐,迫使其 IT 系统需要转型以应对与日俱增的商业压力。

一些传统类型的企业对高可用有非常严格的要求,在应用变更和发布方面有着严苛的控制流程,从项目立项到最后投入生产会经历一个漫长的周期,交付效率无法应对业务快速迭代的压力。而互联网企业必须支持敏捷开发,通过快速迭代实现对产品需求快速变更的支持。借助 DevOps 工具,从提交代码、单元测试、集成测试到持续部署可以在短时间内自动完成,从而面对业务需求的快速变化。因此,如何借鉴互联网企业的经验和能力实现敏捷开发,往往是传统型企业的探索方向。

【背景介绍】

Kubernetes 是 Google 于 2014 年 6 月基于其内部使用的 Borg 系统开源出来的容器编排调度引擎, Google 将其作为初始和核心项目贡献给 CNCF (云原生计算基金会),近年来逐渐发展出了云原生生态。 Kubernetes 的目标不仅仅是一个编排系统,而是提供一个规范用以描述集群的架构,定义服务的最终状态,使系统自动地达到和维持该状态。 Kubernetes 作为云原生应用的基石,相当于一个云操作系统,其重要性不言而喻。云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括 容器 、 服务网格 、 微服务 、 不可变基础设施 和 声明式 API ,越来越多的应用或者解决方案逐步开始基于 Kubernetes 构建。 Docker 技术的不断成熟,越来越多的企业开始考虑使用 Docker 。 Docker 有很多的优势,本文主要讲述了 Docker 的五个最重要优势,即持续集成、版本控制、可移植性、隔离性和安全性。对于 Docker ,应该不需要进行详细的介绍了。它是最火热的开源项目之一,通过在容器中增加一个抽象层( a layer of abstraction ),就可以将应用程序部署到容器中。在看似稳定而成熟的场景下,使用 Docker 的好处越来越多。在这篇文章中,我不谈论 Docker 是什么或者 Docker 是怎么工作的,取而代之,这个不断成长的平台的几大好处。

【容器云的好处】

【 1 持续 部署于集成 】

由于不同安装包的版本和依赖关系引起的。然而, Docker 可以通过确保从开发到产品发布整个过程环境的一致性来解决这个问题 Docker 容器通过相关配置,保持容器内部所有的配置和依赖关系始终不变。最终,你可以在开发到产品发布的整个过程中使用相同的容器来确保没有任何差异或者人工干预。

使用 Docker ,你还可以确保开发者不需要配置完全相同的产品环境,他们可以在他们自己的系统上通过 VirtualBox 建立虚拟机来运行 Docker 容器。 Docker 的魅力在于它同样可以让你在云服务器 2 实例上运行相同的容器。如果你需要在一个产品发布周期中完成一次升级,你可以很容易地将需要变更的东西放到 Docker 容器中,测试它们,并且使你已经存在的容器执行相同的变更。这种灵活性就是使用 Docker 的一个主要好处。和标准部署与集成过程一样, Docker 可以让你构建、测试和发布镜像,这个镜像可以跨多个服务器进行部署。

【标准云服务架构对照】

【服务应用到应用落地】

容器是逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境。利用这种脱离,不管目标环境是私有数据中心、公有云,还是开发者的个人笔记本电脑,您都可以轻松、一致地部署基于容器的应用。容器化使开发者和 IT 运营团队的关注点泾渭分明 - 开发者专注于应用逻辑和依赖项,而 IT 运营团队可以专注于部署和管理,不必为具体的软件版本和应用特有的配置等应用细节分心。

容器与虚拟机 (VM) 进行比较。您可能已经熟悉虚拟机的定义:在主机操作系统上运行且以虚拟化途径访问底层硬件的客机操作系统(如 Linux 或 Windows )。与虚拟机相似,容器也让您可以将应用与库和其他依赖项打包,提供独立环境来运行您的软件服务。

【 2 多云 + 标准化和控制版本】

多云管理平台首先要做到多云纳管。能把主流云服务商的平台都兼容了,作为用户的自服务门户,用户可一点操作多个不同云平台的资源池。其次要做到智能运维。多云管理平台能为客户提供不同云平台一点监控,最好还能提供云、网、端一体化监控服务。方便用户一点了解整体运行状况,掌控故障处理进程和结果。另外,站在云服务商视角来看,多云管理平台应该还是一个运营平台。实现计费、资源管理、运营分析等功能,甚至还要能提供开放接口给客户对接内部 IT 系统。从而使项目业务的容器化达到更高的按诉求可用性管理。

Docker 容器可以在不同的开发与产品发布生命周期中确保一致性,进而标准化你的环境。除此之外, Docker 容器还可以像 git 仓库一样,可以让你提交变更到 Docker 镜像中并通过不同的版本来管理它们。设想如果你因为完成了一个组件的升级而导致你整个环境都损坏了, Docker 可以让你轻松地回滚到这个镜像的前一个版本。

【 3 隔离性 + 运行要求低】

操作系统级别虚拟化 CPU 、内存、存储和网络资源,为开发者提供在逻辑上与其他应用相隔离的沙盒化操作系统接口。任何地方运行,极大减轻了开发和部署工作量:在 Linux 、 Windows 和 Mac 操作系统中;在虚拟机或裸机上;在开发者的机器或本地数据中心的机器上;当然还有在公有云上。几钟之内人门 Docker 并进行安装和部署,这是容器使用史上的一次飞跃。因为它的易用性,有更多的人开始关注容器技术,加速了容器标准化的步伐。应用镜像仓库。 Docker 官方构建了一个镜像仓库,组织和管理形式类似于 Github ,其上已累积了成千上万的镜像。因为 Docker 的跨平台适配性,相当于为用户提供了一个非常有用的应用商店,所有人都可以自由地下载微服务组件,这为开发者提供了巨大便利。

【基于服务的架构】

基于服务的架构会将这些部分分为独立的组件。工作的分离和分割让您的服务在其他服务发生故障时也能继续运行,使您的应用在整体上更加可靠。组件化还让您能更快、更可靠地进行开发;小代码库更易于维护,而且由于服务是独立的,您可以轻松地测试特定的输入会造成怎样的输出。基于服务的应用最适合使用容器,因为您可以对每个容器进行运行状况检查,限制每项服务只能使用特定的资源,以及独立启动和停止每项服务,不会相互干扰。同时,由于容器脱离了代码,您可以将单独的服务视为黑箱,从而进一步缩小开发者需关注的空间。

【代码快速应用】

不同经验水平的开发人员能够通过图形用户界面,使用拖放式组件和模型驱动逻辑来创建 Web 和移动应用。低代码开发平台减轻了非技术开发人员的压力,帮其免去了代码编写工作,同时也为专业开发人员提供了支持,帮助他们提取应用开发过程中的繁琐底层架构与基础设施任务。业务和 IT 部门的开发人员可以在平台中协同,创建、迭代和发布应用,而所需时间只是传统方法的一小部分。不但能让您团队中的开发者轻松复制您的应用,还可在集群中的机器之间复制。软件库将零碎的代码打包在一起,让开发者脱离用户身份验证和会话管理等逻辑;与此类似,容器让您可以将应用整个打包,脱离操作系统、机器,甚至是代码本身。结合基于服务的架构,要求开发者考虑的整体单元就会小许多,因而敏捷性和生产力更高。

【容器云价值】

【时代的普惠技术】

容器运行时和容器编排引擎两场重要战争之后,容器的核心技术框架选型已经基本成熟,容器生态也在蓬勃发展。对比之前的基础设施平台技术,容器算得上是一项普惠的基础设施技术。容器技术的普惠性主要体现在以下两个方面:

当前,构建容器基础设施平台的核心技术组件和框架几乎都是开源技术,而这一场景在 IT 基础设施领域还是第一次出现。不像之前 VMware 虚拟化平台等是专属技术,由少数企业所垄断;未来,得益于开源社区日益成熟的项目运营管理机制,以 CNCF (云原生计算基金会, Cloud Native Computing Foundation )为代表的独立第三方基金会得以成立,并且持续推进整个容器云生态向着开源、开放的方向发展;另一方面,以 Operator 为代表的新型开源框架又进一步将大量的 PaaS 层公共组件供应商拉入这个领域,更加夯实了整个生态进一步向普惠方向发展的基础。

【复用企业内现有基础架构】

企业内部广泛存在的 IT 基础设施包括 VMware 、 OpenStack 、 x86 物理机、集中存储和负载均衡器等。解耦后的容器云方案应该重点关注对于 VMware 和 OpenStack 环境的深度集成。最好用户只需要配置好 VMware 和 OpenStack 环境的相关管理账号信息,就可以调用这些平台的 API ,完成计算、存储和网络资源的自动申请、配置和初始化。

这样可以带来两个明显的好处。一是可以复用企业内部现有的 VMware 和 OpenStack 环境资源(这些资源本身就是数据中心内部人员掌控和管理的);二是由于 VMware 和 OpenStack 环境已经提供了非常好的计算、存储和网络解决方案并具备弹性,容器云建设可以复用这些能力,快速建设并充分发挥容器云的弹性调度能力。

【容器云应用展望观点】

【牵引着云计算产业的再创新】

容器与公有云的结合,容器云以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建,发布和运行分布式应用的平台。对于容器的支持,几乎所有公有云厂商都非常积极。对于面向容器技术支持微服务架构方面来说,对应用带来更好的灵活支持。为此,借助容器技术,公有云厂商再次迎来新的进步,将云原生深入人心,可以进一步打动企业用户有着实现更灵活应用,企业用户而言,不少对容器技术非常感兴趣,但是迫于容器技术、微服务等方面部署上需要专业技术人员。在推动容器技术、微服务、 DevOps 发展方面。

【架构集群将以代码形式大量涌现】

一次编写,随处运行”的能力,编排集群将越来越多地从蓝图变得模板化和实例化,就像将容器化应用程序以 Docker Compose 文件的形式被部署一样。用户将自行定义他们需要的 Kubernetes 、 Swarm 或 Mesos 部署配置,以及他们需要的任何基础架构服务,然后将其部署到任何他们选择的云或虚拟化基础架构上。根据业务发展需要,您可以随时扩容集群、变更节点规格、纳管节点、设置节点和工作负载伸缩策略或使用节点池管理。使其可以更快为企业加速提供动力。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

作者其他文章

相关文章

相关问题

相关资料

X社区推广