一文带你理解云原生( 三 )


一文带你理解云原生
本文插图
命令式 API:可直接发出让服务器执行的命令 , 例如:“运行容器”、“停止容器”等;
声明式 API:可声明期望的状态 , 系统将不断地调整实际状态 , 直到与期望状态保持一致 。
为什么声明式使系统更加健壮?
可以类比理解成自动化工程学的闭环自适应模型 。
一文带你理解云原生
本文插图
1.3.7 DevOps
一文带你理解云原生
本文插图
DevOps 目标:缩短开发周期 , 增加部署频率 , 更可靠地发布 。
从历史上开发和运维相对孤立到开发和运维之间建立合作 , 可以增加信任 , 更快速地发布新版本 。
DevOps 是一组过程 , 方法和系统的统称包括:
Culture:
文化是 DevOps 中的第一成功要素 。
由于目标不同 , 开发和运维形成一堵墙 , DevOps 通过建立开发和运维之间合作和沟通的文化来消除墙 。
Automation:
自动化软件的开发和交付 , 通常包含持续集成 , 持续交付和持续部署 , 云原生时代还包括基础架构的自动化 , 即 IaC(Infrastructureascode) 。
Measurement:
度量尤其重要 , 通过客观的测量来确定正在发生的事情的真实性 , 验证是否按预期进行改变 。 并为不同职能部门达成一致建立客观基础 。
Sharing:
开发和运维团队之间长期存在摩擦的主要原因是缺乏共同的基础 。
开发参与运维值班 , 参与软件的部署和发布 , 运维参与架构设计 。
2 容器-Docker
2.1 Docker 概述
为什么学习容器技术?
云时代从业者:Docker 已成云平台运行分布式、微服务化应用的行业标准 。
作为有技术追求的程序员 , 有必要理解云原生的关键技术:容器 。
一文带你理解云原生
本文插图
Docker 核心概念:镜像、容器、仓库 。
镜像(Image):
一个只读模板;
由一堆只读层(read-only layer)重叠;
统一文件系统(UnionFileSystem)整合成统一视角 。
容器(Container):
通过镜像创建的相互隔离的运行实例;
容器与镜像区别:最上面那一层可读可写层;
运行态容器定义:一个可读写的统一文件系统 , 加上隔离的进程空间 , 以及包含在其中的应用进程 。
仓库(Repository):
集中存放镜像文件的地方;
Docker Registry 可包含多个仓库(Repository) , 每个仓库可包含多个标签(Tag) , 每个标签对应一个镜像 。