首页运营教程DevOps自动化运维平台全解析

DevOps自动化运维平台全解析

2025-09-05 306

DevOps是Development和Operations的组合词,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。DevOps方法就是基于对更好的协作和更快的交付的需求而产生的,允许用较少复杂问题的持续软件交付来修复和更快地解决问题。下文详细分享了DevOps自动化运维平台的介绍、硬性要求、安装使用和集成等等。

一、DevOps简介

DevOps是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控。 这些活动只能在DevOps中实现,而不是敏捷或瀑布,这就是为什么顶级互联网公司选择DevOps作为其业务目标的前进方向。 DevOps是在较短的开发周期内开发高质量软件的首选方法,可以提高客户满意度。

DevOps自动化运维平台全解析

DevOps的目的是更快速、更可靠地创建质量更好的软件,同时开发、运维团队之间进行更多的沟通和协作。它是一个自动化过程,允许快速、安全和高质量的软件开发和发布,同时保持所有利益相关者在一个循环中。这就是DevOps获得越来越多的大型互联网公司青睐的真正原因。

二、DevOps工具链

DevOps工具链是研发与运维博弈的产物,尽可能地自动化。研发分享了DevOp的实践,发现我们项目组还在使用传统的方案开发项目。CI与CD工具确实能提交交付的能力,自动化是大方向。

以下两幅图都是关于Devops的工具链,近年来由于云计算,互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了一大批优秀的工具,这些工具包括开发、测试、运维的各各领域,例如:GitHub、Git/SVN、Docker、Jenkins、Hudson、Ant/Maven/Gradle、Selenium、QUnit、JMeter等。下图是DevOps相关的工具集:

DevOps自动化运维平台全解析

DevOps自动化运维平台全解析

DevOps工具链:

DevOps中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好的执行实施 DevOps 工作流。

  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit、Nexus
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
  • 日志管理:Logstash、CollectD、StatsD
  • 监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
  • 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
  • 构建工具:Ant、Gradle、maven
  • 自动部署:Capistrano、CodeDeploy
  • 持续集成(CI):Bamboo、Hudson、Jenkins
  • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
  • 容器:Docker、LXC、第三方厂商如AWS
  • 编排:Kubernetes、Core、Apache Mesos、DC/OS
  • 服务注册与发现:Zookeeper、etcd、Consul
  • 脚本语言:python、ruby、shell
  • 日志管理:ELK、Logentries
  • 系统监控:Datadog、Graphite、Icinga、Nagios
  • 性能监控:AppDynamics、New Relic、Splunk
  • 压力测试:JMeter、Blaze Meter、loader.io
  • 预警:PagerDuty、pingdom、厂商自带如AWS SNS
  • HTTP加速器:Varnish
  • 消息总线:ActiveMQ、SQS
  • 应用服务器:Tomcat、JBoss
  • Web服务器:Apache、Nginx、IIS
  • 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
  • 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

三、Git/GitLab介绍安装使用

1、介绍

Git是一个版本控制系统,GitLab是一个远程的Git仓库,GitLab与GitHub及国内的码云类似,用户在GitLab上注册账号,上传项目到GitLab,通过GitLab对项目进行版本控制。

2、安装Git及GitLab

GitLab网站地址:点击直达

查询user.age和uesr.sex

git config user.age
git config user.sex

设置:

git config –global user.age “itcast”
git config –global user.sex”baidaguo@baidaguo.cn”

3、在GitLab创建项目

进入首页 点击New Project

DevOps自动化运维平台全解析

输入对应信息并提交,创建成功后,进入项目主页,通过项目主页即可访问项目内容,并得到项目的Git项目仓库地址:

DevOps自动化运维平台全解析

4、使用Git管理項目(Idea继承Git并对项目进行管理)

DevOps自动化运维平台全解析

DevOps自动化运维平台全解析

5、从GitLab检出项目

DevOps自动化运维平台全解析

6、提交代码到GitLab

提交到暂存区->确认无误->push

如果用过svn的话都懂得 大差不差 总体没有什么难度

四、部署微服务到Docker

  • Docker daemon(Docker守护进程):Docker守护进程是部署在操作系统上,负责支撑Docker Container的运行以及本地Image的管理;
  • Docker client:用户不直接操作Docker daemon,用户通过Docker client访问Docker,Docker client提供pull、run等操作命令;
  • Docker Image:Docker 镜像就是一个只读的模板;
  • Docker Container:Docker 利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。打个比方,镜像相当于类,容器相当于对象;

Docker Registry:Docker 仓库分为公开仓库(Public)和私有仓库(Private)两种形式,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

1、安装

centos7:

  • 直接通过yum安装即可:yum install -y docker
  • 启动docker:service docker start
  • 查询docker版本:docker version

centos6:

rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y docker-io
service docker start

2、部署

  • 工程最终打成 Jar包
  • 创建Docker镜像
  • 创建容器
  • 启动容器

3、打包容器

4、创建镜像

上一步jar包拷贝到linux服务器先测试jar包是否可以运行:java -jar test-1.0-SNAPSHOT.jar
在test-1.0-SNAPSHOT.jar 位置编写Dockerfile文件

FROM java:8
ENV ARTIFACTID test
ENV ARTIFACTVERSION 1.0-SNAPSHOT
ENV HOME_PATH /home
WORKDIR $HOME_PATH
ADD /A R T I F A C T I D − ARTIFACTID-ARTIFACTID−ARTIFACTVERSION.jar H O M E P A T H / HOME_PATH/HOME
PATH/ARTIFACTID.jar
ENTRYPOINT [“java”, “-jar”, “test.jar”]

在Dockerfile文件所在目录执行:docker build -t test:1.0-SNAPSHOT.jar

镜像创建成功,查询镜像:

[root@localhost xc-govern-center]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 1.0-SNAPSHOT ad14dcce6666 35 seconds ago 684 MB

5、创建容器

基于test:1.0-SNAPSHOT镜像创建容器,容器名称为test-demo

docker create –name test-demo -t -p 50101:50101 -e PORT=50101 -e EUREKA_SERVER=http://192.168.101.64:50101/eureka/,http://192.168.101.64:50102/eureka/ test:1.0-SNAPSHOT

创建成功后 可通过docker ps -a命令查看

6、启动容器

docker start test-demo

7、停止与删除

  • 停止正在运行的容器:docker stop 容器名
  • 删除容器:docker rm 容器名
  • 删除镜像:docker rmi 镜像名或镜像Id

8、maven构建镜像

编写pom_docker.xml

将Dockerfile文件拷贝到src/main/resource下

删除之前创建的xc-govern-center镜像

进入工程根目录(pom_docker.xml所在目录)执行:mvn -f pom_docker.xml clean package -DskipTests docker:build

创建镜像成功,结果如下:

Successfully built 64682c9ba311
[INFO] Built xc-govern-center:1.0-SNAPSHOT
[INFO] Tagging xc-govern-center:1.0-SNAPSHOT with 1.0-SNAPSHOT
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 7.409 s
[INFO] Finished at: 2018-07-19T14:21:16+08:00
[INFO] Final Memory: 52M/414M
[INFO] ————————————————————————

五、持续集成

此处测试项目集成流程如下:

DevOps自动化运维平台全解析


推荐阅读:

DevOps自动化部署流程

DevOps安装使用教程

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关文章