简要说明devops实践场景,理解devops
一、关于DevOps
DevOps就是实现开发和运维一体化的自动化部署,DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
二、传统开发流程
开发人员开发代码后自行验证,经过测试的打码上传到服务器或交给运维人员进行手工部署。
二、基于DevOps概念来看实施工具和过程
1、源代码库源代码存储库是开发人员签入和更改代码的地方。源代码存储库管理签入的不同版本的代码,因此开发人员不必重写彼此的工作。流行的源代码存储库工具有Git、Subversion等。
2. 生成镜像至harbor或直接拉取git/svn代码
3. 配置管理配置管理定义服务器或环境的配置。流行的配置管理工具是Puppet和或Ansible等工作
4.构建服务器构建服务器是一种自动化工具,它将源代码存储库中的代码编译为可执行代码库。流行的工具有Jenkins, SonarQube和Artifactory
场景一: 开发与运维自动化或持续集成
1、项目管理采用jira
2、开发人员上传代码至git和gitlab,SonarQube进行代码质量检测
3、构建代码生成镜像至harbor
4、容器采用docker
5、通过配置ansible或puppet等来部署自动化所需的资源。
6、部署和配置jenkins,来拉取harbor或svn上的代码进行自动化部署所需设置
7、kubernetes集群对容器进行编排(配置拉取镜像)。
8、服务注册与发现采用etcd。
9、rancher管理多个k8s集群。
10、系统监控采用prometheus、Grafana。
场景二: 自动化的监控
1、部署工具采用Ansible、Puppet
2、日志管理采用ELK
3、监控采用zabbix
监控对象比如:网络设备、存储、网络指标、数据处理/ETL数据、数据库等。
三、DevOps意义
DevOps是强调开发人员(Dev)和运维人员(Ops)之间的沟通合作,通过自动化流程和工具,使得软件构建、测试、发布更加快捷、频繁和可靠。
当然这个方面的知识介绍很多了,但是还是有不少同事在这个方面比较模糊。所以简单举个场景例子,毕竟有时招聘中也会提及这个概念。