目标:
- docker原理以及在运维工作的地位和作用,运维工作进化论,docker、微服务、k8s的联系、devops和docker的关系,docker的前世今生
- 容器、镜像和仓库、
- 容器和虚拟化,优势和劣势,底层的核心
- 容器除了docker还有什么选择
- docker的安装以及三大核心:容器、镜像、仓库
- docker的实际应用,docker的常用命令以及注意事项,镜像的原理,dockerfile的作用和应用,docker的永久存储和网络通信
- docker实际工作案例实现,搭建一台私有仓库,镜像仓库的上传和拉取,管理仓库,微服务的概念,用docker实现一个实际案例
Docker原理以及在运维工作的地位和作用
运维工作进化论:测试环境和生产环境
- LNMP是一套技术组合
L=Linux、N=Nginx、M=Mysql、P=PHP
Nginx服务不能处理动态请求
静态请求:请求静态文件或者html页面,服务器上存在的html文件
动态请求:动态页面上的内容存在与数据库中,根据用户发出的不同的请求,其提供个性化的网页内容,大大降低网站维护的工作量
当用户发起http请求,请求会被Nginx处理,如果是静态资源请求,Nginx会直接返回,如果是动态请求,Nginx通过fastcgi协议转交给后端的PHP程序处理
- 一台服务器
- 更新用ftp
FTP有着极高的延时。从开始请求到第一次接收需求数据的时间非常长,并且会执行一些冗余的登录进程。
运维生产环境的发展
- 生产后有了一定程度的流量,需要运营和测试等部门给出数据,根据数据考虑冗余
- 防止单点故障,保证业务稳定,做HA集群
- 节约成本,使用共有云服务器,提前部署
- 更新方式太过原始,测试环境使用git,并且搭建使用gitlab或gogs
原生产环境
- 多点集群单体应用,多点集群服务一个单体应用
- 共有云,一种按使用量付费的模型,用户可以随时随地、便捷地、按需地从可配置的计算资源共享池中获取所需的计算资源(网络、服务器、存储、应用程序等服务)。这些资源可以快速供给和释放,用户只需投入较少的管理工作。公有云,云计算运营商拥有超大规模基础设施,对外提供云服务
- git更新
虚拟化和云计算
- 物理隔离,2005年以前,大多数企业采用物理方法,将内网与外网隔离。从而避免入侵或信息泄露的技术手段。保证网络的保密性,安全性、完整性、防抵御性和高可用性。但是资源 利用率极低,灵活性差,成本高
- 虚拟化的技术,2008年左右,企业开始使用虚拟化技术,通过硬件和软件,实现物理架构资源的重新整合利用,可用用一台物理机,通过虚拟化,划分为多套系统,在系统之内进行多方位隔离,隔离之后相当于多台服务器。大幅降低了IT硬件成本,减少资源浪费,提升了系统的稳定性和安全性
- 云计算(概念),2018年至今,大部分企业开始使用云计算技术。分布式计算技术透过网络庞大的计算处理程序,自动分拆成无数个子程序。然后,交由多部服务器组成的系统进行搜寻、计算、分析之后,将处理结果回传给用户。
运维生产环境的发展
- 生产环境
- 多点负载均衡单体应用
- 混合云
- 提供既能在公共空间又在私有空间中的服务。混合云把公用云模式与专用云模式结合在一起。混合云有助于提供所需的、外部供应的扩展
- devops
- 原始的互联网公司工作模式是瀑布流,但用户越多、需求越大,公司的管理,人力成本都是问题。而如果更新间隔太慢,一定会导致用户的满意度下滑。DevOps的观念应运而生。所以DevOps是一个必然趋势,是一种方法,也是一种观念
- DevOps打破开发人员和运维人员的壁垒,根据需求情况,把需求拆分成多个小需求,小步快跑大幅增加需求完成的频率。运用自动化和CI、CD的概念,运用工具,实现稳定、快速的版本更新上线。对运维人员的技术要求和经验大大提升
- 新型生产环境
- 生产环境主要分为:多点负载均衡单体应用,docker和devops
- Docker于2013年初开源,基于Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。容器就是一个技术类型,而docker是当下最主流的一种能够实现容器的方案
- 其他方案包括:LXC、Mesos、PKT等等,docker或者容器和传统虚拟化最大的区别,就是虚拟化的封装是系统级的封装,docker或者其他容器是进程级的封装
- 微服务就是将前端拆分成各个模块,然后连接到服务器,微服务需要跑多个容器,容器多又会涉及到通信、架构、伸缩、更新、监控等 问题
- K8s容器编排管理工具
- k8S的自愈功能是指重新 启动失败的容器,在节点不可用时,替换和重新调度节点上的容器
- k8s的弹性伸缩功能,