Spring Cloud DevOps之旅(一)环境准备
1.什么是DevOps?
百度百科:
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
个人理解
解放了开发人员和运维人员的工作,使得代码提交、构建、测试、发布更顺畅,告别繁琐的手动发布方式,避免出现人为错误。
2.原始社会比较Low的做法
本人做过.NET、做过java,因为发布项目都是手工操作,每次遇到发布代码就很头大,发布测试环境倒还好,发布正式环境真的是步步惊心,我之前的做法大致如下:
image.png问题很明显,全部操作手动实现,费事。
时代会进步,我们的思想也要进步,能尽量偷懒的事情必须偷懒,这是我的原则。
那么正确的姿势是啥呢?
3.CICD
简单解释是,CI
持续集成 CD
持续部署
3.1 CI
- 程序员提交代码到Git:触发WebHook中设置的地址,WebHook中的地址为Jenkins中触发构建的地址,此时,Jenkins就正式启动CICD的过程了。
- Git: 从Git服务器clone代码到jenkins所在的服务器
- Maven:使用maven编译构建Spring Cloud代码
- Docker:使用dockerfile创建镜像
- Docker镜像仓库:Docker镜像仓库可以是免费的,国内有网易蜂巢、阿里云、腾讯云等。也可以自己使用Harbor搭建仓库。
3.2 CD
-
服务编排:常用的服务编排框架如下
-
Docker-Compose:docker开发的服务编排工具
-
Kubenetes:google开发的服务编排工具,支持docker,支持集群、滚动更新、回滚等
-
Swarm: Docker2014年12月发布的服务编排工具,支持集群
-
-
Pull镜像:服务编排工具会自动从配置好的镜像地址拉取指定版本的镜像
-
运行容器:服务编排工具根据配置的映射端口、容器名、环境参数运行
4.安装环境
准备一台Centos服务器,我使用的版本是Centos7.5
4.1 Java环境安装
需要Java1.8,使用yum安装
查看已安装的jdk包
yum list installed |grep java
如果有系统自带的包则删除
安装JDK
image.png检查是否安装成功
image.png
jdk安装完后目录为/usr/lib/jvm
jdk文件夹为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
环境变量配置
vi /etc/profile
打开配置文件后添加
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
立即生效环境变量
source /etc/profile
4.2 maven安装
下载maven包
解压
tar zxf apache-maven-3.5.3-bin.tar.gz
mv apache-maven-3.5.3 /usr/local/maven3.5.3
配置环境变量
vi /etc/profile
#set maven environment
export M2_HOME=/usr/local/maven3.5.3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
环境变量生效
source /etc/profile
4.3 安装Git
yum install git -y
4.4安装Jenkins
Jenkins官网https://jenkins.io/
找到最新的jenkins版本
image.png image.png
安装Jenkins
#下载rpm
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.121.3-1.1.noarch.rpm
#安装
rpm -ih jenkins-2.121.3-1.1.noarch.rpm
修改启动端口
vim /etc/sysconfig/jenkins
#修改JENKINS_PORT参数
JENKINS_PORT="8000"
为jenkins用户添加root和docker组
groupadd docker
gpasswd -a jenkins root
gpasswd -a jenkins docker
systemctl restart docker
systemctl restart jenkins
如果不执行该操作,jenkins无法使用docker的命令,会遇到jenkins操作权限不足的问题。
启动jenkins
systemctl start jenkins
在浏览器中访问http://ip:8000
第一次需要初始化密码
image.png
找到管理员密码,输入密码
cat /var/lib/jenkins/secrets/initialAdminPassword
安装插件
选择所有Pipeline插件
image.png image.png
网络问题无法下载插件的请看此处
- 使用
科学上网
直接下载
image.png
本地安装
image.png
-
更换更新源
image.png
重启jenkins服务
创建账号