写在前面:我们为什么应该学习容器云?

容器云兴起于 Docker 的火爆与容器上下游生态的持续发展,距今不过短短七八年。虽然容器云仍然十分年轻,但其蓬勃的社区生态与巨头的持续投入,使得容器云已然成为时代的弄潮儿。

想要了解容器云,首先要了解容器。无论你是否听说过容器,是否正在使用容器,在正式开始之前,我们都应该梳理清楚下面的问题:

  1. 容器是什么?它的出现解决了哪些问题?
  2. 我们为什么应该学习容器与容器云?它能给我们的学习、工作、求职带来哪些好处?

容器的简单介绍

什么是 Docker 与容器?

维基百科将 Docker 定义为

Docker 是一个开源项目,通过提供基于 Linux 的内核虚拟化抽象层,使得在容器中部署软件应用程序的流程自动化。

简单地说,Docker 是一种允许开发人员与系统管理员等在容器中部署其应用程序,以便在主机操作系统(即 Linux)上运行的工具。Docker 的主要优势是允许用户将应用程序及其所有依赖项打包到用于软件开发的标准化单元中。

容器是一种操作系统虚拟化技术,用于打包应用程序及其依赖项,并在隔离环境中运行。如下图所示,与虚拟机不同,容器并非在宿主机上虚拟出完整的操作系统,通过内核虚拟化技术实现了资源隔离,通过共享宿主机的内核,更高效地使用底层系统和资源。

容器 虚拟机
Container stack example Virtual machine stack example

Docker 的好处有哪些?

  • Dockers 镜像解决环境一致性问题:在 Docker 出现之前,跨环境的应用打包、部署是很麻烦的事情,经常出现这台机器可以运行,换一台就跑不起来的尴尬场景。Docker 通过镜像实现了应用的标准化封装,一次打包、任意运行,解决了环境一致性问题。
  • 速度更快、资源占用更少:相比虚拟机是一个完整的操作系统,Docker 容器本质上是宿主机的一个进程,资源占用少,一个主机可以秒级启动成百上千个 Docker 容器。
  • 天然支持 DevOps:镜像解决了环境一致性问题,Dockerfile 实现了镜像的标准化,使得开发、测试、部署可以复用一套环境,支持了 DevOps 的实践。这也是 Docker 在业界的最核心的价值。
  • 良好的镜像仓库生态:Docker Hub 汇集了海量的 Docker 镜像,大多数日常使用的服务,如 Redis, Kafka 等都可以找到,使得服务的快速部署十分便捷。

为什么应该学习容器?

提高综合工程能力

学校与实验室以科研为主,老师很少制定开发规范,学生很少主动搭建 DevOps 工具链。一般是一个 git 走天下,测试部署全靠手。所以应届生的综合工程能力往往不强。

这里说的工程能力并不是良好的算法能力、扎实的 coding 基础,而是从软件工程的角度出发,在开发、测试、部署、发布、运维等全流程下的综合能力。虽然学习容器云不会让你多会几个算法,但可以让你提高自己的综合工程能力,真正成为一名优秀的工程师。

方便你的日常开发

如果你正在开发一些 web 服务,或对一些通用服务有依赖,则容器,特别是 Docker,可以极大的便利你的日常开发。例如当你的应用依赖 MySQL 或者 Redis,你不用从裸机开始安装依赖、手动部署,可以直接使用现成的镜像启动一个容器实例来提供服务。

如果你有服务迁移的需要,则你不用担心迁移之后因为环境原因服务无法启动,从而花数个小时查找两个环境的细微差异。Docker 保证了环境的一致性。

顺应时代潮流

现在几乎所有大厂都已经广泛的使用容器,其 CI/CD 流程与 Docker 紧密结合,甚至一些公司的日常开发也是在容器环境中进行的(比如我所在的部门);各大云厂商,如阿里云、腾讯云、华为云,都在容器云方向大力探索,其核心技术栈就是 Docker + Kubernetes。

现在学习容器与容器云可以紧跟时代潮流,把握基础设施的最新方向与进展。

为简历增色

云计算是一门融合了科学与工程的学科,高校实验室虽然多多少少把目光投向了容器领域,但实践的效果往往只是 PoC 或者 Demo 级别,不少同学虽然简单的接触过容器云,但对容器、DevOps、Kubernetes 等概念仍是蜻蜓点水、一知半解,对其实践与感受也并不深入。

如果你志在从事基础设施、平台方向的工作,那么容器云知识可以大幅提升你简历的出彩程度;如果你并非从事该方向,一定的容器知识也彰显了你扎实的工程能力,为你的简历增色。

本专栏是什么?

本专栏旨在以从最浅显的角度入手,从零开始梳理容器云的来龙去脉,并手把手的展示如何实践一个云原生工程,之后从该工程的实践中全面观察、审视容器云,并帮助有志于投身云计算领域的同学更好的准备、应对招聘。

本专栏将涉及如下内容:

  • 对容器云从浅入深的全方位介绍
  • 从零开始实践一个云原生的小工程
  • 如何准备容器相关岗位的面试

本专栏适合以下同学阅读:

  • 对容器、云计算有兴趣的零基础同学
  • 有志于将来从事相关方向的同学
  • 对基础设施、基础系统架构有兴趣的同学
  • 对运维没有强烈的偏见,或者有一定兴趣的同学

为了更好的阅读本专栏,希望读者有一定的知识储备,包括

  • 读者有一定的软件工程能力,对持续集成、DevOps 等概念有初步的了解,或有一定的兴趣
  • 读者对 linux 有一定的掌握,至少可以顺畅的使用 linux 命令行
  • 读者有一定的 Go 语言或者 C 语言的基础
  • 读者对容器有浅显的了解更好
全部评论

相关推荐

牛客52811839...:有的hr就是这样啊,很正常。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务