容器正在吃掉整个软件世界

容器正在吃掉整个软件世界_第1张图片

题图:byglobe_visuals From Instagram

不管你是否意识到,在过去的几年时间里,以 Docker、Kubernetes 为代表的容器技术已经悄然发展成为一项通用技术。放眼国外,Google、Microsoft、IBM 等互联网巨头们,还在容器开源基础设施的技术市场上厮杀。国内的 BAT、滴滴、京东、头条等大厂也都争相把容器和 Kubernetes 项目作为其技术重心,所谓风物长宜放眼量。

江湖传言,软件正在吃掉世界,而容器正在吃掉整个软件世界。虽然有些夸张,但也充分证明了容器在当今软件研发领域的地位。顺势而为,是否掌握容器技术也成为很多企业在招聘时的一个重要选项。

容器技术本身是一项偏向运维工程师的基础技术,namespace 资源隔离、cgroups 资源限制等等概念对于开发人员来说,都有一道难以逾越的理解鸿沟。这些年,总会有很多相似的问题被反复提及,比如:

1、为什么容器里只能跑「一个进程」?
2、为什么我原先一直在用的某个 JVM 参数,在容器里就不好使了?
3、为什么 Kubernetes 就不能固定 IP 地址?容器网络连不通又该如何去 Debug?
4、Kubernetes 中 StatefulSet 和 Operator 到底什么区别?PV 和 PVC 又该怎么用?

这些问题乍一看与我们平常的认知非常矛盾,但它们的答案和原理却并不复杂。而这些对于容器初学者来说,又很难用一两句话就解释清楚。

容器技术涉及到操作系统、网络、存储、调度、分布式原理等等各方面的综合知识,也就导致了很多初学者面对容器技术,要么知识储备不足,要么杂乱无章、无从下手。

其实,看似纷乱繁杂容器技术体系,却存在着很多可以「牵一发而动全身」的主线。比如,Linux 的进程模型对于容器本身的重要意义;或者,「控制器」模式对整个 Kubernetes 项目提纲挈领的作用。

这些基础知识并不会在 Docker 或者 Kubernetes 的官方文档中详细赘述,但它们才是真正掌握容器技术体系的精髓所在,是每一位技术从业者都需要悉心修炼的「内功」。

之前很多开发的小伙伴和我说,希望极客时间出一个介绍 k8s(Kubernetes 简写)的专栏,经过三个月的筹备,我们邀请了 Kubernetes 社区的资深成员和项目 Maintainer(开源项目中资深的参与者)张磊老师一起打造了这个专栏:

深入剖析Kubernetes

专栏基于张磊多年的从业经验,用深入浅出的方式帮你从看似凌乱复杂的 Kubernetes 项目中梳理出一条主线,帮助你理解容器和 Kubernetes 背后的设计思想和逻辑,从而解决现实工作中遇到的问题。

眼下,你可能已经错过了互联网技术大爆炸的时代,也没有在数字货币早期的狂热里分到一杯羹。但是在此时此刻,沉寂了多年的云计算与基础设施领域,出现了以「容器」为名的历史变革,技术更新呼之欲出。这一次,我们又有什么理由作壁上观呢?

专栏作者介绍

张磊,Kubernetes 社区的一位资深成员和项目维护者。

2012年,张磊还在浙大读书的时候,就有幸组建了一个云计算与 PaaS 基础设施相关的科研团队,就这样,他从早期的 Cloud Foundry 社区开始,正式与容器结缘。

之后的几年,张磊全职在 Kubernetes 和 Kata Containers 社区从事上游开发工作,先后发起了容器镜像亲密性调度、基于等价类的调度优化等多个核心特性,参与了容器运行时接口、安全容器沙盒等多个基础特性的设计和研发。张磊作为主要的研发人员和维护者之一,亲历了 Serverless Container 概念的诞生与崛起。

工作之余,张磊还发起和组织撰写了《Docker容器与容器云》一书,受到了广大希望进阶容器技术的读者的好评。

今年,他远赴西雅图,在微软研究院(MSR)云计算与存储研究组,专门从事基于 Kubernetes 的深度学习基础设施相关的研究工作。

可以说,这 6 年里,张磊参与和亲历了容器技术从「初出茅庐」到「尘埃落定」的全过程。

专栏简介

作者希望借由这个专栏,给你讲清楚容器背后的技术本质与设计思想,并结合着对核心特性的剖析与实践,加深你对容器技术的理解。为此,作者把专栏划分成了4大模块:

「白话」容器技术基础:用饶有趣味的解说,给你梳理容器技术生态的发展脉络,用最通俗易懂的语言描述容器底层技术的实现方式,让你知其然,并且知其所以然。

Kubernetes集群的搭建与实践:Kubernetes集群号称「非常复杂」,但是如果明白了其中的架构和原理,选择了正确的工具和方法,它的搭建却也可以「一键安装」,它的应用部署也可以浅显易懂。

容器编排与Kubernetes核心特性剖析:这是专栏最主要的内容。「编排」永远都是容器云项目的灵魂所在,也是Kubernetes社区持久生命力的源泉。在这一模块,我会从分布式系统设计的视角出发,抽象和归纳出这些特性中体现出来的普遍方法,然后带着这些指导思想去逐一阐述Kubernetes项目关于编排、调度和作业管理的各项核心特性。

Kubernetes开源社区与生态:「开源生态」永远都是容器技术和Kubernetes项目成功的关键。在这个模块,我会和你一起探讨容器社区现代开源软件工程指导下的技术演进之路,带你思考如何同团队一起平衡内外部需求,逐渐成为社区中不可或缺的一员。

容器正在吃掉整个软件世界_第2张图片

在专栏开始前,作者首先为你准备了 4 篇预习文章,详细地梳理了容器技术自兴起到现在的发展历程,同时也回答了「Kubernetes 为什么会赢」这个重要的问题,算是额外为读者准备的一份开学礼物。

机会总是留给有准备的人,现在就让我们一起开启这次充满挑战的容器之旅吧,扫码订阅。

容器正在吃掉整个软件世界_第3张图片

你可能感兴趣的:(容器正在吃掉整个软件世界)