有条件的同学尽可能都开始使用 ChatGPT、new bing 和 GPT-4,这些是新的生产力工具。
它们或许不能替代某个岗位,但做个不恰当的比方,没有它们时的学习效率是坐马车,使用这些工具的学习效率是开汽车。
一、引言
1.1 先问问 ChatGPT 🤖
关键在于清晰、准确地描述你的问题,ChatGPT 不同于搜索引擎的地方在于可以 “哪里不会问哪里”。
举个例子,我对 Docker 容器的概念还是不理解,继续追问。
1.2 对教育的思考 🏫
因此,有了 ChatGPT 后,我们对 教育 应当又有了新的思考,现在的主流语境称千禧年附近出生的人为 “Z世代”,是互联网的原住民。那么,15后、20后是否有可能是 AI 时代的原住民呢?我觉得是很有可能的,毕竟我小学的时候需要普及电脑课,高中时代需要掌握信息技术课程,而目前人工智能的教育有向中小学教育拓展的趋势,甚至是少儿编程。记得当时面试 CityU 时教授说,现在深圳的中学生都在学 Python。就像电脑的普及的让知识获取的成本大大降低一样,ChatGPT 的出现或许可以让学习知识的成本大大降低,因为可以做到定制化地哪里不会问哪里(尽管不一定正确)。
二、概念理解
CNCF 对☁️ 云原生 的定义
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
解释一下上述名词:
- 公有云:是服务于广大用户,企事业单位的云基础设施,第三方的云服务提供商为用户提供可通过互联网访问的虚拟环境中的服务器空间。常见的公有云平台有亚马逊的 AWS,谷歌的 GCP,微软的 Azure,阿里云,华为云等。
- 私有云:它为一个企业或组织提供专用的云环境。私有云可以由企业内部的 IT 团队搭建,在内部防火墙后进行操作,便于企业对云计算资源进行管理。
- 混合云:一种云计算模型,通过安全连接组合一个或多个公有云、私有云环境,从而允许在不同的云环境中共享数据和应用程序。
- 声明式 API:是一种用于表示系统状态和行为而不指定其实现方式的编程模式。它侧重于描述期望的系统行为,开发人员只需要描述所需的状态,而不用关心如何实现这个状态。常见的声明式 API 有:SQL,YAML,HTML 等。在云原生架构中,声明式 API 被广泛应用于容器编排、服务网格、配置管理、监视报警等方面。
2.1 Docker 镜像 (Image)🪞
Docker 和我一样,也不过是软件行业里平平无奇的搬砖人罢了 😡。
Docker 镜像(Image)是一种轻量级,可执行(通过 docker run
执行)的独立软件包。除了提供容器运行时所需的程序、库、资源和配置外,还包含一些为运行时准备的配置参数(如环境变量、用户等)。镜像是静态的,不包含任何的动态数据,其内容在构建出容器后也不会发生改变。
Docker 和 虚拟机(VM)很像,都是隔离出一个可以独立运行的程序环境,但它们是不同的概念,不能混为一谈。
2.1.1 镜像的分层存储
在 Docker 设计时,充分利用 Union FS(联合文件系统)技术,设计为分层存储。所谓分层存储值得是在 Docker 镜像时,会一层层地构建,前一层是后一层的基础,但对外的表现是只有最上层可以被看到。下面是一个经典的分层存储示意图:
例如 Docker 镜像的最底层是 bootfs(boot file system),和典型的 Linux/Unix 系统一样,包含 bootloader 和 kernel。再往上是 rootfs(root file system),包含 Linux 系统的标准目录,如 /dev,/proc,/bin,/etc 等,根据操作系统不同有 Ubuntu,CentOS 等。
FROM debian
表示 rootfs 加载的是 debian 操作系统;RUN apt-get install emacs
表示基于已有的基础镜像,构建新镜像;RUN apt-get install apache2
同。
2.2 Docker 容器 (Container)📦
镜像和容器(Container)是两个相关联的概念,比较好的理解方式是类比于 OOP 中的类与对象,镜像是类,容器是类的实例,即对象。如前所说,镜像是静态的,不包含任何动态数据;容器是动态的,它可以被构建、暂停、启动、停止、删除等。
容器的实质是进程,但和在宿主机上直接执行的进程不同,容器进程运行于独立的命名空间(namespace)。容器拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样,因此容易与虚拟机混淆。
容器的存储和镜像一样,也是分层存储,即在构建镜像的基础上创建一个容器存储层。容器存储层的生命周期与容器相同,容器删除时,容器存储层也会消失,存储的相应信息也会被删除。根据 Docker 最佳实践要求,不应向容器存储层写入任何数据,容器存储层保证无状态化,所有文件的写入操作应在 数据卷 或 绑定的宿主目录,这些位置会直接对宿主机发生读写,以此保证容器删除后数据不丢失。
2.2.1 Linux 的命名空间(namespace)
2.3 Docker 仓库 (repository)🏠
首先需要区分概念是:Docker registry 和 Docker repository。
A registry is a storage and content delivery system, holding named Docker images, available in different tagged versions.
Repositories let you share container images with your team, customers, or the Docker community at large.
Docker 仓库是用于存储、管理镜像的地方,Docker 提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同 Tag 的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库。
2.3.1 Docker Hub
我自己总结的一句简要描述:
Docker Hub 是云原生时代的 Github。