栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

专题篇二:Linux企业级 CICD 持续集成交付发布(平滑发布,灰度发布,nexus搭建maven私服)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

专题篇二:Linux企业级 CICD 持续集成交付发布(平滑发布,灰度发布,nexus搭建maven私服)

企业级CI/CD持续集成/交付/发布–(平滑发布,灰度发布) 一:平滑发布和灰度发布 1,什么叫平滑
在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问
2,什么叫灰度
发布后让部分用户使用新版本,其它用户使用旧版本,逐步扩大影响范围,最终达到全部更新的发布方式 。
注意:
只有一台服务器时候,不存在灰度发布,只有平滑发布;服务器数量大于一台时候,可以实现灰度发布。
二:蓝绿发布、灰度发布和滚动发布 1,蓝绿发布
   需要准备正常业务使用资源的两倍以上服务器,项目逻辑上分为AB组,在项目系统时,首先把A组从负载均衡中摘除,进行新版本的部署,B组仍然继续提供服务。两套环境交替升级,旧版本保留一定时间便于回滚。
2,灰度发布
  灰度发布只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本。根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。
3,滚动发布
   滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本。按批次停止老版本实例,启动新版本实例。
4,小结
  三种方式均可以做到平滑式升级,在升级过程中服务仍然保持服务的连续性,升级对外界是无感知的。那生产上选择哪种部署方法最合适呢?这取决于哪种方法最适合你的业务和技术需求。如果你们运维自动化能力储备不够,肯定是越简单越好,建议蓝绿发布,如果业务对用户依赖很强,建议灰度发布。如果是K8S平台,滚动更新是现成的方案,建议先直接使用。
三,nexus搭建maven私服 1,nexus简介
   Nexus私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
2,maven简介
   Maven是一个采用纯Java编写的开源项目管理工具,Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。目前Apache下绝大多数项目都已经采用Maven进行管理. 而Maven本身还支持多种插件, 可以方便更灵活的控制项目。
3,安装maven
1.下载maven并解压安装
官方文档下载地址https://archive.apache.org/dist/maven/binaries/
[root@192 ~]#wget  https://archive.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.tar.gz

[root@192 ~]#tar  xfz  apache-maven-3.0.3-bin.tar.gz  -C  /usr/local

[root@192 ~]#cd  /usr/local

[root@192 ~]#mv  apache-maven-3.0.3    maven

2,下载并解压安装jdk(maven运行需要借助jak)
官方文档下载地址:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html

[root@192 ~]#wget  https://download.oracle.com/java/17/archive/jdk-17.0.3.1_linux-aarch64_bin.tar.gz

[root@192 ~]#tar xf  jdk-17.0.3.1_linux-aarch64_bin.tar.gz   -C /usr/local

[root@192 ~]#mv  /usr/local/jdk-17.0.3.1   /usr/local/java

3,设置环境变量
[root@192 ~]#vim /etc/profile
JAVA_HOME=/usr/local/java
MAVEN_HOME=/usr/local/maven
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
export JAVA_HOME  MAVEN_HOME PATH

[root@192 ~]#source /etc/profile
4,验证java和maven安装

[root@192 ~]# java -version
java version "17.0.3.1"
...
[root@192 ~]#mvn  -version
...
version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
4,安装部署nexus
由于专业版的nexus是收费的,所以我下载的是开源版 Nexus OSS,下载地址为 :

https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3

1,下载解压安装

[root@192 ~]#wget  http://download.sonatype.com/nexus/3/nexus-3.24.0-02-unix.tar.gz

[root@192 ~]#tar xfz  nexus-3.24.0-02-unix.tar.gz -C /usr/local

解压后会多出两个目录,nexus-3.24.0-02和sonatype-work

[root@192 ~]#cd nexus-3.24.0-02/bin/

[root@192 ~]#./nexus start

进入游览器访问:http://192.168.222.129:8081

网页加载需要点时间....

注意 :

点击右上角的sign in登录,新版首次登录需要

cat /usr/local/sonatype-work/nexus3/admin.password

获取密码。

1,仓库介绍
按图中标识顺序点击,就可以看到有这些仓库,现在分别介绍它们,分为三种类型:
proxy:是远程仓库的代理。比如说在nexus中配置了一个central     repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用。    

Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里,一般用来存放公司自己的jar包;

Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

maven-public:maven-central、maven-release和maven-snapshot三个库的合集。
maven-release:用来存放release版本的jar包。
maven-snapshot:用来存放snapshot版本的jar包。
2,创建haha库 3,将新建的haha库加入maven-public管理,点击save保存


至此,创建仓库完成!!!

4,上传jar包并查看


5,创建授权用户lisi


注意:用户名lisi,密码:123登录后,操作和管理员操作一样。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号