DevOps运维开发一体化

项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

2.1.Git/GitLab介绍安装使用


2.1.1.介绍

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

2.1.2.安装 Git及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"

2.1.3.在GitLab创建项目

进入首页 点击New Project

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

2.1.5.从GitLab检出项目

在这里插入图片描述

在这里插入图片描述

2.1.6.提交代码到GitLab

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

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

2.2.Docker


介绍就不多说 是在不知道是个啥玩意可看:

引用百度百科(百度百科Docker

Docker 源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。

官网:docker官网

2.2.1.组成

在这里插入图片描述

1、Docker daemon(Docker守护进程):

Docker守护进程是部署在操作系统上,负责支撑Docker Container的运行以及本地Image的管理。

2、Docker client:

用户不直接操作Docker daemon,用户通过Docker client访问Docker,Docker client提供pull、run等操作命令。

3、Docker Image:

Docker 镜像就是一个只读的模板。

例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Tomcat或用户需要的其它应用程序。

镜像可以用来创建 Docker 容器。

Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

4、Docker Container:

Docker 利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。打个比方,镜像相当于类,容器相当于对象。

5、Docker Registry:

Docker 仓库分为公开仓库(Public)和私有仓库(Private)两种形式

最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。

用户也可以在本地网络内创建一个私有仓库。

当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

2.2.2.部署微服务到Docker

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.部署

1、工程最终打成 Jar包

2、创建Docker镜像

3、创建容器

4、启动容器

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- ARTIFACTIDARTIFACTVERSION.jar H O M E P A T H / HOME_PATH/ HOMEPATH/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.停止与删除

1、停止正在运行的容器

docker stop 容器名

例如:docker stop test-demo

2、删除容器

docker rm 容器名

例如:docker rm test-demo

3、删除镜像

docker rmi 镜像名或镜像Id

例如:docker rmi test:1.0-SNAPSHOT

8.maven构建镜像

a.编写pom_docker.xml

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

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

d.进入工程根目录(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] ------------------------------------------------------------------------

2.3.持续集成


问题描述:

传统的软件开发流程如下:

1、项目经理分配模块给开发人员

2、每个模块的开发人员并行开发,并进行单元测试

3、开发完毕,将代码集成部署到测试服务器,测试人员进行测试。

4、测试人员发现bug,提交bug、开发人员修改bug

5、bug修改完毕再次集成、测试。

问题描述:

1、模块之间依赖关系复杂,在集成时发现大量bug

2、测试人员等待测试时间过长

3、软件交付无法保障

解决上述问题的思考:

1、能否把集成测试时间提前?

2、能否使用自动化工具代替人工集成部署的过程?

持续集成的思想是每天要多次将代码合并到主干,并进行集成、测试,这样就可以提早发现错误,进行修正。持久集成也属于DevOps

优点:

1、自动化集成部署,提高了集成效率。

2、更快的修复问题。

3、更快的进行交付。

4、提高了产品质量。

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

在这里插入图片描述

2.环境搭建

a.安装Jenkins 官网地址:Jenkins官网

具体安装文档网上都有的 没有私信博主也可以

b.安装GitLab(见上文)

c.pom

此文件相比工程原有pom.xml增加了docker-maven-plugin插件,其作用是构建docker镜像并将镜像推送到Docker私有仓库(192.168.101.64:5000)

2.4.创建持续集成任务


1.Jenkins构建一个任务

2.配置git仓库

a.配置git凭证

此凭证用于远程从git仓库克隆工程源代码

输入git仓库的账号和密码,这里如果使用码云,下边需要配置码云的账号和密码。

在这里插入图片描述

b.配置git仓库地址,此地址即构建项目的地址

3.maven构建

1、使用shell脚本停止容器、删除容器、删除镜像

远程登录192.168.101.64(测试服务器)

停止test-center容器

删除test-center容器

删除192.168.101.64:5000/test-center:1.0-SNAPSHOT镜像

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

面试题, 内容 又全含金量又高**

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值