使用 Jenkins 创建微服务应用的持续集成

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,182元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 本场景指导您结合Jenkins把微服务应用部署到SAE平台

体验简介

本场景指导您结合Jenkins把微服务应用部署到SAE平台:
场景资源

背景知识

本场景主要涉及以下云产品和服务:Serverless 应用引擎 SAE

Serverless 应用引擎 SAE(Serverless App Engine)是面向应用的 Serverless PaaS 平台,能够帮助 PaaS 层用户免运维 IaaS、按需使用、按量计费,做到低门槛微服务应用上云。相对于其他 Serverless 产品,它抽象了应用的概念,并提供了一整套微服务解决方案,支持 Spring Cloud、Dubbo、HSF 等主流的微服务开发框架,实现了 Serverless 架构和微服务架构的完美结合。

创建资源

  1. 在页面左侧,单击云产品资源下拉菜单,查看本次实验资源。
  2. 单击免费开通创建所需资源。

说明:

资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:IP地址、用户名和密码等。

配置项目

1.修改Maven项目配置,添加toolkit-maven-plugin及部署信息,具体操作,请参见通过Maven插件自动化部署应用

配置Jenkins

1.在Jenkins控制台的菜单栏中选择Manage Jenkins > Manage Plugins,安装Git和GitLab插件。

在这里插入图片描述
2.在Jenkins控制台的菜单栏中选择Manage Jenkins > Global Tool Configuration,设置Maven版本名称并配置路径,单击保存。
在这里插入图片描述

3.在Jenkins服务器上生成SSH RSA密钥对,并将公钥导入GitLab,实现Jenkins拉取GitLab代码时的自动认证。

3.1在Jenkins服务器生成SSH RSA密钥对。具体信息,GitLab文档
在这里插入图片描述
3.2进入GitLab首页,在菜单栏选择Settings > Deploy Keys ,并单击New Deploy Key ,导入在Jenkins服务器上创建的SSH RSA公钥。

在这里插入图片描述

创建Jenkins任务

1.在Jenkins首页左侧导航栏中单击新建Item,在创建任务界面输入任务名称,并选择Freestyle project,单击确定,配置任务信息。

在这里插入图片描述
2.单击源码管理,在源码管理页签中选择Git,并设置相关参数。

Repository URL:您的项目的Git协议地址。
Credentials:安全凭证,选择无即可。
在这里插入图片描述
3.单击构建触发器,在构建触发器页签选中GitHub hook trigger for GITScm polling。

4.单击构建环境,在构建环境页签选中Add timestamps to the Console Output,为控制台输出的信息添加时间戳。

5.单击构建,在构建页签单击增加构建步骤,在下拉列表中选择Invoke top-level Maven targets。

6.在Invoke top-level Maven targets区域设置Maven Version和Goals。如果您想部署多模块工程,请参见(可选)创建多模块工程的Jenkins任务。

Maven Version:单击该选项后面的下拉框,选择在全局工具配置里配置的Maven版本名称。
Goals:输入mvn clean package toolkit:deploy -Dtoolkit_profile=toolkit_profile.yaml -Dtoolkit_package=toolkit_package.yaml -Dtoolkit_deploy=toolkit_deploy.yaml (如有其它参数,请根据实际情况输入)。
在这里插入图片描述

配置GitLab的Web Hook

1.在Gitlab首页右键单击GitLab工程,然后选择Setting > Web Hooks。

2.在Web Hooks页面的URL区域中输入http://jenkins服务器地址:jenkins服务器监听端口/git/notifyCommit?url=本项目的git协议地址。

图中表示的Jenkins服务器地址为您的Jenkins服务器的Web访问地址如192.168.XX.XX:8080
在这里插入图片描述
3.配置完成后,单击Test Hook,测试配置结果
在这里插入图片描述

提交变更到GitLab

如果上述步骤配置正确,提交后将会触发一次GitLab Hook。Jenkins在接收到该Hook后会构建您的Maven项目,并在构建结束时调用SAE POP API脚本触发部署。

提交部署成功输出的日志信息(Build Number > 控制台输出)。
在这里插入图片描述
如果部署失败,您可以登录SAE控制台,查看此次部署任务的执行过程。具体步骤,请参见查看变更记录。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
机器学习/深度学习 人工智能 算法
|
5月前
|
安全 数据建模 物联网
关于IP SSL证书的9大常见问题解答
IP SSL证书用于实现IP地址的HTTPS加密,确保数据传输安全。它分为DV型和OV型企业型,支持单个或多个IP地址保护。常见问题包括:什么是IP SSL证书、其作用与类型、签发机构、内网申请可行性、应用场景、价格范围、申请条件与流程等。锐安信sslTrus和CFCA等品牌支持内网IP加密,价格从几百到几千元不等。申请需确认型号、生成CSR文件并提交验证。
|
11月前
|
监控 小程序 JavaScript
讯飞-微信小程序-语音助手
讯飞-微信小程序-语音助手
336 1
讯飞-微信小程序-语音助手
|
9月前
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot编码的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
314 2
|
10月前
|
数据采集 JavaScript 搜索推荐
服务器端渲染(SSR)(Nuxt+Next.js)
服务器端渲染(SSR)技术在服务器上生成页面HTML,提升首屏加载速度和SEO效果。Nuxt.js和Next.js分别是基于Vue.js和React.js的流行SSR框架。Nuxt.js提供自动化路由管理、页面级数据获取和布局系统,支持SSR和静态站点生成。Next.js支持SSR、静态生成和文件系统路由,通过`getServerSideProps`和`getStaticProps`实现数据获取。SSR的优点包括首屏加载快、SEO友好和适合复杂页面,但也会增加服务器压力、开发限制和调试难度。选择框架时,可根据项目需求和技术栈决定使用Nuxt.js或Next.js。
|
11月前
|
算法 Java
JVM进阶调优系列(3)堆内存的对象什么时候被回收?
堆对象的生命周期是咋样的?什么时候被回收,回收前又如何流转?具体又是被如何回收?今天重点讲对象GC,看完这篇就全都明白了。
|
Linux
Linux在文件特定偏移量处读写pread和pwrite
系统调用 pread()和 pwrite()完成与 read()和 write()相类似的工作,只是前两者会在 offset 参数所指定的位置进行文件 I/O 操作,而非始于文件的当前偏移量处,且它们不会改变文件的当前偏移量。
354 0
Linux在文件特定偏移量处读写pread和pwrite
|
机器学习/深度学习 人工智能 负载均衡
【AI大模型】分布式训练:深入探索与实践优化
在人工智能的浩瀚宇宙中,AI大模型以其惊人的性能和广泛的应用前景,正引领着技术创新的浪潮。然而,随着模型参数的指数级增长,传统的单机训练方式已难以满足需求。分布式训练作为应对这一挑战的关键技术,正逐渐成为AI研发中的标配。
541 5
|
存储 JSON Kubernetes
基于 cri-dockerd 二进制部署 kubernetest-v1.26.3 2
基于 cri-dockerd 二进制部署 kubernetest-v1.26.3
191 0
|
NoSQL 关系型数据库 MySQL
一文吃透企业级elk技术栈:6. filebeat安装配置
一文吃透企业级elk技术栈:6. filebeat安装配置