devops、jenkins、docker、k8s概述
一、DevOps
1、概念:DevOps来自于开发和运维的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使软件构建、测试、发布更加快捷、可靠。
2、DevOps的核心实践
持续集成(CI):开发人员频繁将代码集成到共享仓库,并通过自动化测试验证代码质量。
持续交付(CD):自动化构建、测试和部署流程,确保代码可以随时发布到生产环境。
基础设施即代码(IaC):使用代码定义和管理基础设施(如服务器、网络),确保环境一致性和可重复性。
自动化测试:通过自动化测试工具(如单元测试、集成测试)确保代码质量。
监控与日志管理:实时监控系统性能和日志,快速发现和解决问题。
协作与沟通:使用工具(如Slack、Jira)促进团队协作,确保信息透明。
3、DevOps 工具链
DevOps依赖于一系列工具来实现自动化和协作,常见的工具包括:
版本控制:Git、GitHub、GitLab.
持续集成/持续交付:Jenkins、GitLab CI、CircleCI.
配置管理:Ansible、Chef、Puppet.
容器化与编排:Docker、Kubernetes.
监控与日志:Prometheus、Grafana、ELK(ElasticsearchLogstash,Kibana).
基础设施即代码:Terraform、CloudFormation.
二、Jenkins
1、概念
Jenkins 是一个开源的持续集成和持续交付工具。它的主要功能是自动化构建、测试和部署软件项目。
2、工作原理
Jenkins 通过监测版本控制系统(如 Git、Subversion等)中的代码变化,触发构建过程,并进行自动化的编译、测试和部署,从而实现持续集成。
Jenkins 采用主从架构,主节点负责任务调度和分发,从节点负责具体的构建任务。它监听版本控制系统的变化,触发构建过程,并提供丰富的插件和扩展机制来支持各种开发和部署需求。
3、主要组件
Jenkins 的主要组件包括主节点(Master)、从节点(Slave/Agent)、任务(Job)、构建(Build)、插件(Plugin)等。
三、Docker
1、概念
Docker是一个容器化平台,以容器的形式将应用程序及所有的依赖项打包在一起,以确保应用程序在任何环境中无缝运行。
2、特点
只提供一个运行环境,不用运行一个操作系统,所有容器中的系统内核还是和外面的宿主机共用的,这样就可以批量复制很多个容器,轻便又快捷
3、跟虚拟机的区别
架构:Docker容器使用轻量级的隔离方法,共享宿主机的操作系统核心。虚拟机则包括完整的操作系统副本和虚拟化的硬件资源。
性能:由于Docker容器不需要完整的操作系统,它们启动更快,性能开销较小。
资源占用: Docker 容器通常占用更少的存储空间和内存,因为它们共享宿主机的核心和部分资源。
4、Docker镜像
Docker镜像是Docker容器的源代码,Docker镜像用于创建容器,使用Build命令创建镜像。
四、K8s(Kubernetes)
1、定义:
K8s使一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。
2、核心概念
Pod(容器组):运行应用,并支持多个容器协作。
Deployment(部署):控制Pod创建、更新删除,实现程序自动化部署和扩展。
Service(服务):定义Pod的访问方式,实现负载均衡和服务发现功能,
ConfigMap(配置): 让配置灵活调整,避免硬编码。
Volume(存储卷): 让数据持久化,防止 Pod 重启丢失数据。
Node & Control Plane 让集群自动调度、优化资源利用率。
3、优势
自动化运维:自动重启、扩容、滚动更新。
资源高效利用:智能调度,最大化利用服务器资源。
环境一致性:一次定义,随处运行,开发测试、生产环境一致。

浙公网安备 33010602011771号