Jenkins实践
高级构建配置
多重结构构建
运行所有可能的参数组合的参数化构建作业
New Job选择Build multi-configuration project
Configuration Matrix
配置从节点
远程启动参数化构建作业:
<server-url>/job/<build-job>/buildWithParameters?branch=release/3.5
ps.注意大小写敏感,并且值需要转义
高级构建配置
参数化触发
build other projects不能参数化触发其他项目
Parameterized Trigger插件
2004年由Sun公司启动,次年发布第一个版本 2010年Oracle收购Sun公司,引发了Hudson所有权的问题
2011年社区更名项目为Jenkins,原开发人员基本都在
开源免费
权限管理
跨平台
WEB可视化
插件丰富
API丰富
主从架构 & 分布式
社区活跃
安装配置简单
Jenkins是java语言编写的开源CI工具(易使用、易扩展、社区活跃)
桌面通知 IM即时通信 wifi噪音外设 声明构建 短信
如何创建一个简单的作业
代码质量
Sonar (将这些代码质量量度集中到单一网站中的工具)
参考wiki:《在Job中配置Sonar》
Checkstyle Findbugs Pmd Coverage Complexity Scatter Plot Task Scanner
含义
0 0 1 1 * (每年运行一次) 同@yearly 0 0 1 * * (每月运行一次) 0 0 * * 0 (每周运行一次) 0 0 * * *(每天运行一次) 同@daily 0 * * * * (每小时运行一次)
如何创建一个简单的作业
通知
被动策略
主动策略
电子邮件 rss订阅 构建分发器
配置SDK
自定义配置
高级构建配置
分布式构建
http/https
user & admin
master
slave
slave
在特定slave运行构建作业
slave
windows !windows linux && mysql linux && (beijing || shanghai)
master:调度分发构建,监视从节点,纪录发布构建产物 slave:实际执行构建作业
CI & Jenkins简介
权限管理
权限矩阵
添加用户/组并分配权限
查看本人所属组名:/whoAmI/
设置Job权限
项目组权限分配原则
• 严格控制Delete权限 • 有经验用户可分配Create和Configure相关权限 • 普通用户只分配Build和Read相关权限
* * * * * 每分钟构建一次 */5 * * * * 每5分钟构建一次 * * * * 1-5 工作日每天构建一次 5,15 * * * * 每小时第5和15分钟构建一次
特殊字符
@yearly @annually @monthly @weekly @daily @midnight @hourly
若勾选Block inheritance…则会阻断全局权限继承
参考wiki:《项目组权限管理》
创建简单作业的步骤
1.创建自由风格的Job 2.填写代码仓库信息
3.执行构建脚本
4.归档构建结果
构建一次的结果
job构建的质量
Байду номын сангаас
如何创建一个简单的作业
设置定时构建
构建触发器
*所有值 / 间隔 M-N 范围 , 枚举
如何创建一个简单的作业
代码变动触发构建
配置构建触发器
在Stash端关联Jenkins
关于Git Hooks
钩子程序会在Git执行命令特定的点触发自定义的行为
git push
post-commit.sh
Stash
Jenkins
如何创建一个简单的作业
上传包到Nexus
NEXUS_GRADLE_UPLOAD /data/config/nexus/build.gradle
示例: hotel_HotelPlus_Assemble
1.构建中合并gradle脚本,增加uploadArchives任务 2.apply新的gradle脚本使其生效 3.执行gradle的打包并上传命令
高级构建配置
参数化配置
Parameterized Build插件
示例: 参数化Git分支构建
如何创建一个简单的作业
管理Jenkins
系统设置
管理构建中使用的工具路径,
例如JDK、不同版本Maven
及Gradle等。
读取设置
迁移Jenkins时使用,会加载
系统和构建作业配置。
负载统计
跟踪服务器繁忙情况,并据此提
醒是否需要扩容和增加节点机
管理节点
处理并行和分布式构建,可以
命令节点机器执行作业。
04 Tips
总结一些需要注意的小问题
Design Develop Test Release
持续集成(CI)
好处:快速发现错误 & 防止分支大幅偏离主干 目的:使产品快速迭代,同时保持高质量
“ ” Build great things at any scale
Jenkins [‘dʒeŋkinz]
管理Jenkins > 管理节点 > 新建节点
Tips
当然,你要注意的真不止这一点…
提示
永远记得你身边的”?”
日志
所有配置都会留下证据
丢弃构建
记得减轻服务器的负荷
Thanks
Eat better,Live better.
Jenkins实践
杨鑫
Jenkins实践
目录
01 CI & Jenkins简介
主要是持续集成和Jenkins特性的简单介绍
02 如何创建一个简单的作业
通过简单的操作示例,引导大家清楚在创建jenkins作业的时候留意哪些配置项
03 高级构建配置
介绍自动化测试,安全性,参数化构建&触发、多重结构构建,分布式构建
软件开发岗位实习报告:软件测试自动化与持续集成
软件开发岗位实习报告:软件测试自动化与持续集成一、实习背景和目标在软件开发的过程中,软件测试起着至关重要的作用。
而软件测试自动化和持续集成则是当前软件开发领域的热门话题。
因此,我在实习期间选择了软件测试自动化与持续集成作为我的实习方向,并希望通过实践掌握相关知识和技能,提升自己在软件开发领域的竞争力。
二、实习内容与工作环境我被分配到了软件开发团队中的测试小组,负责开发和维护自动化测试框架,并利用该框架编写测试脚本,并与持续集成系统进行集成。
这个团队采用敏捷开发方法,每两周进行一次迭代开发。
我们使用Jenkins作为持续集成工具,利用Git作为版本控制系统。
我在实习期间主要使用Java和Python进行测试脚本的编写。
三、软件测试自动化的实践在实习初期,我主要进行了软件测试自动化框架的学习和搭建。
我们使用了Selenium WebDriver作为测试框架,该框架可以模拟用户的操作行为,以自动化的方式进行测试。
我学习了Selenium WebDriver的基本使用方法,包括元素定位、表单操作、页面跳转等内容。
通过编写测试用例,我逐渐掌握了使用Selenium WebDriver进行测试的技巧。
在熟悉了基本的测试方法后,我开始着手编写具体的测试脚本。
根据产品需求文档和设计文档,我分析了各个功能模块的测试用例,并将其转化为测试脚本。
测试脚本的编写过程中,我充分利用了Selenium WebDriver提供的各种API,比如点击、输入、判断元素是否存在等,来模拟用户的操作过程。
同时,我也学会了使用断言来验证测试结果的正确性。
在实践过程中,我遇到了许多挑战和问题。
比如,有时候页面的元素定位会发生变化,导致之前编写的测试脚本无法正常运行。
为了解决这个问题,我学习了XPath和CSS选择器等元素定位方法,并灵活运用它们来保证脚本的稳定性。
四、持续集成的实践除了软件测试自动化,我还参与了持续集成的实践。
我们使用Jenkins作为持续集成工具,每个开发人员在提交代码后,都要触发Jenkins的构建过程,以保证代码的质量。
jenkins使用手册
操作手册
第一章
持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。持续集成最早由Martin Fowler于10年前已经提出,希望通过持续集成能够实现以下过程:
△任何人在任何地点,任何时间可以构建整个项目。
△在持续集成构建过程中,每一个单元测试都必须被执行。
△在持续集成构建过程中,每一个单元测试都必须通过。
2.2.2
可以在这里进行ANT_HOME设置,假如系统已经设置了ANT_HOME,可以不需要再进行配置,同时可以让Jenkins安装一个最新的ANT。
备注:为了让配置更加简单,建议在系统级设置JAVA_HOME和ANT_HOME,便于系统的迁移。
2.2.3
系统能够在执行计划完成后发送结果邮件,需要配置邮件服务器的相关信息:
11)Maven:
12)Miscellaneous:
13)Other Post-Build Actions:
△持续集成构建的结果是可以发布的软件包。
△当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。
Jenkins是一个软件界非常流行的开源CI服务器,下面介绍从基础篇、提高篇两个层面进行介绍。
第二章
2.1
2.1.1
首先从下载最新的Jenkins版本,最新版本为1.383,下载的文件载体为Jenkins.war;
10)Build Environment:设置构建环境设置
①Tool Environment:设置工具的环境变量;
②Create a formatted version number:设置构建的版本号
11)Build:执行构建
构建支持6种方式,shell(运行于Linux环境)、Maven(支持Maven编译)、Command(windows批处理命令)、Ant、EasyAnt、Export job runtime parameters。
使用Jenkins进行自动化测试的流程与实践
使用Jenkins进行自动化测试的流程与实践自动化测试是软件开发过程中不可或缺的一部分,它能够有效地提高测试效率和测试质量。
Jenkins作为一种开源的持续集成工具,可以很好地支持自动化测试工作。
本文将介绍使用Jenkins进行自动化测试的流程与实践。
一、搭建Jenkins环境首先,我们需要在服务器上搭建Jenkins环境。
具体步骤如下:1. 在服务器上下载并安装Jenkins。
2. 启动Jenkins服务,在浏览器中输入相应的URL访问Jenkins控制台。
3. 完成Jenkins的初始设置,包括配置管理员账号和插件的安装等。
4. 创建一个新的Jenkins项目,命名为“自动化测试”。
二、配置自动化测试项目在Jenkins中配置自动化测试项目的过程如下:1. 进入“自动化测试”项目的配置页面。
2. 设置代码仓库地址,Jenkins会通过该地址获取测试代码。
3. 配置构建触发器,可以按照特定的时间间隔或者代码提交时触发构建。
4. 配置测试环境,包括测试框架、浏览器驱动等。
5. 配置构建步骤,在这里可以编写或调用测试脚本,选择测试套件等。
6. 配置邮件通知,可以将测试结果发送给相关人员。
7. 保存配置并启动自动化测试项目。
三、执行自动化测试当自动化测试项目配置完成后,可以手动或定期触发自动化测试的执行:1. 进入“自动化测试”项目,点击“立即构建”按钮手动触发测试执行。
2. 或者等待定期触发器按照预定的时间间隔自动执行测试。
四、查看测试报告测试执行完成后,可以在Jenkins中查看测试报告:1. 进入“自动化测试”项目的构建记录页面。
2. 找到与刚刚执行的构建对应的记录,点击查看测试报告详情。
3. 在测试报告中可以查看测试用例的执行结果、失败原因以及代码覆盖率等信息。
五、持续集成和自动化测试实践1. 执行更多的自动化测试类型,如单元测试、接口测试、UI测试等,以提高测试覆盖率和质量。
2. 结合版本控制工具,如Git,来管理测试代码的版本。
jenkins 配置回滚实现原理
jenkins 配置回滚实现原理Jenkins是一个开源的持续集成工具,用于构建和测试软件项目。
它的特点是可扩展性和灵活性,可以通过插件来满足不同项目的需求。
回滚是Jenkins中的一个重要功能,它可以帮助开发团队在出现问题时快速恢复到之前的稳定状态。
下面我们将详细介绍Jenkins中回滚的实现原理。
一、回滚的概念回滚是指将软件系统恢复到之前某个稳定的状态,以修复或避免问题。
在软件开发过程中,如果出现了严重的问题,可能需要回滚到之前的版本,以保证系统的稳定性和可用性。
回滚的实现包括两个方面:版本控制和构建管理。
二、版本控制版本控制是指对软件项目的源代码进行管理和控制,包括对代码的修改、提交、合并等操作。
Jenkins支持多种版本控制系统,如Git、Subversion和Mercurial等。
版本控制系统能够保存每个提交的历史记录,并将其存储在代码仓库中。
在进行回滚时,我们需要选择要回滚到的特定版本。
Jenkins提供了一个基于界面的操作方式,允许用户选择要回滚的版本。
用户可以通过指定提交ID、分支或标签来选择要回滚的版本。
一旦选择了特定的版本,Jenkins将会自动检出该版本的源代码。
三、构建管理构建管理是指对软件项目的构建和测试过程进行管理和控制。
在进行回滚时,我们需要重新构建并测试之前的稳定版本,以确保回滚后的系统正常运行。
Jenkins允许用户创建和配置构建任务。
构建任务定义了项目的构建步骤,可以包括编译、测试、打包等操作。
当我们回滚时,Jenkins 将会根据配置的构建任务来执行回滚操作。
在进行回滚操作之前,我们需要确保之前的构建任务是正确配置的,并能够成功构建和测试。
如果构建任务存在问题,我们可能无法顺利进行回滚操作。
因此,良好的构建管理实践是回滚的关键。
四、回滚过程1.获取回滚版本:首先,我们需要获取要回滚到的稳定版本信息。
这个信息通常来自于版本控制系统,可以是提交ID、分支或标签等。
使用Jenkins实现持续集成与自动化测试
使用Jenkins实现持续集成与自动化测试随着软件开发的日益复杂,传统的手动测试已经无法满足快速迭代和质量要求的需要。
为了提高软件开发的效率和质量,持续集成和自动化测试成为了软件开发过程中必不可少的环节。
在这篇文章中,我们将介绍如何使用Jenkins来实现持续集成和自动化测试。
一、什么是持续集成持续集成是一种软件开发实践模式,其核心思想是在整个开发过程中,频繁地将代码集成到主干分支,并通过自动化构建和测试来确保每次集成都是可靠的。
这种模式可以在开发周期的早期发现和解决问题,减少集成错误所带来的风险,并加快软件的交付速度。
二、为什么选择JenkinsJenkins是一个开源的持续集成工具,它提供了丰富的插件和功能,可以帮助开发人员实现自动化构建、自动化测试、自动化部署等任务。
以下是几个选择Jenkins的原因:1. 开源免费:Jenkins是一个开源软件,可以免费使用和定制,节省了软件开发成本。
2. 强大的插件生态系统:Jenkins有一个庞大的插件生态系统,涵盖了各种不同的工具和技术,可以轻松地与版本控制系统、构建工具、测试框架等集成。
3. 易于使用和扩展:Jenkins提供了直观的用户界面和丰富的文档支持,使得使用和扩展变得简单易懂。
4. 平台支持广泛:Jenkins可以在各种操作系统上运行,包括Windows、Linux、Mac OS等,同时也支持各种云平台。
三、Jenkins的基本概念在开始使用Jenkins之前,有几个基本的概念需要了解:1. 任务(Job):任务是Jenkins中最基本的概念,一个任务对应着一项特定的工作,比如构建代码、运行测试、部署应用等。
2. 构建(Build):构建是指通过编译和打包源代码生成可执行的软件或者库的过程。
Jenkins可以自动触发构建,并提供了丰富的构建选项和环境配置。
3. 流水线(Pipeline):流水线是一种可用于定义、可重用的构建过程的方式。
使用Jenkins和Terraform实现基础设施即代码的持续交付
使用Jenkins和Terraform实现基础设施即代码的持续交付随着云计算的快速发展,基础设施即代码(Infrastructure as Code)的概念也逐渐受到广泛关注。
基础设施即代码是指通过编写代码来定义和管理基础设施资源的过程,将基础设施定义文档化并纳入版本控制,这样可以实现基础设施的自动化管理和快速部署。
在实践中,使用Jenkins和Terraform这样的工具,可以有效地实现基础设施即代码的持续交付,提高开发和运维的效率。
一、为什么选择Jenkins和TerraformJenkins是一个广泛使用的开源持续集成和持续交付工具,它提供了丰富的插件和强大的扩展性,可以用于自动化构建、测试和部署。
而Terraform则是一个用于定义和管理基础设施的工具,它支持多云环境,并以声明式的方式描述基础设施。
Jenkins和Terraform的结合可以实现基础设施即代码的自动化交付,提供一种简洁、可靠且可重复的部署方式。
二、搭建Jenkins和Terraform环境在开始之前,我们需要搭建Jenkins和Terraform的环境。
首先,通过Jenkins官网下载并安装最新版本的Jenkins。
安装完成后,启动Jenkins并访问其Web界面。
在Web界面中,我们可以安装Terraform插件,以便Jenkins能够执行Terraform脚本。
然后,我们还需要安装Terraform,并配置其环境变量,以便Jenkins能够调用Terraform 命令。
三、创建Jenkins项目在Jenkins中,我们可以创建一个新的项目来管理基础设施即代码的持续交付。
在项目配置中,我们可以选择Git作为代码库,并配置代码拉取和触发构建的方式。
当有代码提交时,Jenkins会自动触发构建流程。
四、实现基础设施即代码的持续交付在项目的构建流程中,我们可以通过执行Terraform脚本来实现基础设施的部署和管理。
Terraform的脚本语言使用HCL(HashiCorp Configuration Language),可以编写灵活且可读性强的基础设施即代码。
在自动化测试中使用Jenkins的十个最佳实践
在自动化测试中使用Jenkins的十个最佳实践自动化测试在软件开发过程中扮演着至关重要的角色。
尤其是在当今这个高速发展的互联网时代,互联网企业需要快速发布优秀的软件产品以应对商场竞争。
但是,面对日益严峻的市场压力,开发和测试团队需要尽可能地减少手动干预和测试,这就需要进行自动化测试。
而Jenkins作为一款广泛应用的持续集成和自动化测试工具,它可为开发和测试团队提供帮助,在这篇文章中,我们将讨论在自动化测试中使用Jenkins的十个最佳实践。
一、管理Jenkins Job在使用Jenkins之前,我们需要先创建Jenkins Job,这是自动化测试的基本单位。
如果未正确管理Job,则可能产生诸多问题,如管理混乱,导致不必要的失败或误判等。
因此,我们可以采用以下方法来管理Jenkins Job:1.使用Freestyle Job:如果我们仅需要运行自动化测试,那么可以使用自由风格的Freestyle Job。
这种Job不需要任何代码配置,仅需要设置构建步骤即可。
2.使用Pipeline Job:这是更高级的选项。
它可以让我们在一个单独的文件中定义我们的构建过程,这个定义可以使用脚本语言,如Groovy。
该方法灵活且易于维护,但需要一定的学习和实践。
3.使用参数化配置:使用参数化配置可以让我们在构建过程中加入参数,从而更快地定位问题。
我们可以为不同的应用程序实现不同的构建过程,也可以指定在构建过程中需要运行的脚本。
二、使用Jenkins插件Jenkins具有许多插件,这些插件可以帮助我们更好地进行自动化测试。
例如:1.使用“Email Extension”插件:它可以让我们在构建失败时自动发送邮件通知。
2.使用“JUnit”插件:它可以帮助我们处理单元测试报告。
3.使用“Cobertura”插件:它可以帮助我们跟踪代码覆盖率。
4.使用“Git Plugin”插件:它可以让我们从代码库中拉取最新的代码,从而在进行测试之前更新应用程序。
jenkins使用文档
jenkins使⽤⽂档Jenkins,之前叫做Hudson,是基于Java开发的⼀种持续集成⼯具,⽤于监控秩序重复的⼯作,包括: 1、持续的软件版本发布/测试项⽬。
2、监控外部调⽤执⾏的⼯作。
扩展阅读:1官⽅⽹站:/随着软件开发复杂度的不断提⾼,团队开发成员间如何更好地协同⼯作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。
尤其是近些年来,敏捷(Agile)在软件⼯程领域越来越红⽕,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
持续集成正是针对这⼀类问题的⼀种软件开发实践。
它倡导团队开发成员必须经常集成他们的⼯作,甚⾄每天都可能发⽣多次集成。
⽽每次的集成都是通过⾃动化的构建来验证,包括⾃动编译、发布和测试,从⽽尽快地发现集成错误,让团队能够更快的开发内聚的软件。
持续集成的核⼼价值在于:1. 持续集成中的任何⼀个环节都是⾃动完成的,⽆需太多的⼈⼯⼲预,有利于减少重复过程以节省时间、费⽤和⼯作量;2. 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。
换⾔之,任何时间点都能第⼀时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;3. 持续集成还能利于软件本⾝的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进⾏有效决策,同时建⽴团队对开发产品的信⼼。
持续集成的原则业界普遍认同的持续集成的原则包括:1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。
常⽤的版本控制软件有 IBM Rational ClearCase、CVS、Subversion 等;2)开发⼈员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地;3)需要有专门的集成服务器来执⾏集成构建。
根据项⽬的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每半个⼩时构建⼀次;4)必须保证构建的成功。
如果构建失败,修复构建过程中的错误是优先级最⾼的⼯作。
VSCode集成Jenkins实现持续集成与部署
VSCode集成Jenkins实现持续集成与部署持续集成(CI)和持续部署(CD)是现代软件开发中的重要实践,它们可以提高团队的工作效率和软件质量。
在本文中,我们将探讨如何使用Visual Studio Code(VSCode)集成Jenkins来实现持续集成与部署。
一、概述持续集成是一种软件开发实践,通过频繁地将代码集成到共享存储库中,并进行自动化构建、测试和部署,从而确保团队成员之间的协作以及代码质量的稳定性。
Jenkins是一个开源的持续集成工具,它提供了丰富的插件和功能,可以与各种构建工具和版本控制系统进行集成。
二、步骤1. 安装VSCode和Jenkins插件:首先,确保已在计算机上安装了VSCode,并在VSCode的扩展商店中搜索并安装Jenkins插件。
2. 配置Jenkins连接:打开VSCode,点击左侧的Jenkins图标,然后点击右上角的齿轮图标进行插件设置。
在设置中,输入Jenkins服务器的URL、用户名和密码,保存设置。
3. 创建Jenkins Job:在VSCode的资源管理器中,右键单击项目文件夹,选择“在Jenkins中创建新Job”。
按照提示输入Job名称、描述和Jenkins上的项目路径。
点击“创建”按钮后,会在Jenkins服务器上创建一个新的Job。
4. 配置构建步骤:在VSCode中打开项目文件夹,并创建一个名为“Jenkinsfile”的新文件。
在Jenkinsfile中,你可以定义构建和部署的步骤。
例如,你可以使用Shell脚本编写构建和测试命令,然后使用Jenkins插件提供的命令在Jenkins服务器上执行这些脚本。
5. 触发构建:当你对项目进行了修改并准备好进行构建时,可以右键单击项目文件夹,选择“在Jenkins中触发构建”。
这将触发Jenkins服务器上相应Job的构建过程。
你还可以通过在VSCode的状态栏中点击Jenkins图标,选择Job并点击“构建”按钮来手动触发构建。
使用Jenkins和Rancher实现容器编排的持续交付(三)
在当今互联网时代,持续交付成为了软件开发领域中的一项重要实践。
借助于Jenkins和Rancher这两个开源工具,企业可以实现容器编排的持续交付,提高软件交付速度和质量,从而增强竞争力。
首先,我们来了解一下Jenkins和Rancher。
Jenkins是一个自动化的持续集成工具,它可以帮助开发团队自动构建、测试和部署软件。
Jenkins提供了丰富的插件生态系统,支持各种语言和技术栈,具有灵活和可扩展的特点。
Rancher是一种容器编排平台,它基于Kubernetes和Docker技术,提供了统一的容器管理界面和自动扩展的功能。
Rancher可以帮助开发团队轻松地部署、运行和管理容器化的应用。
接下来,我们探讨如何使用Jenkins和Rancher实现容器编排的持续交付。
首先,我们需要在Jenkins上配置相关的构建和测试任务。
通过Jenkins提供的Web界面,我们可以定义构建步骤、测试策略和部署目标。
例如,我们可以使用Jenkins的Pipeline插件来定义一个包含构建、测试和部署步骤的流水线。
在构建步骤中,我们可以编译源代码、打包应用程序和生成Docker镜像。
在测试步骤中,我们可以运行单元测试、集成测试和端到端测试。
在部署步骤中,我们可以使用Rancher API来创建容器集群和服务。
一旦构建和测试任务配置完成,我们就可以触发Jenkins的自动构建和测试过程。
当开发人员提交代码到版本控制系统时,Jenkins会自动检测到变更并触发构建任务。
Jenkins将获取最新的代码,并根据定义的构建步骤执行相应的操作。
例如,它可以使用Maven来构建Java项目,使用npm来构建前端应用程序。
在构建完成后,Jenkins 会执行定义的测试策略,并生成测试报告和代码覆盖率报告。
一旦构建和测试过程成功,我们就可以使用Rancher来部署和运行我们的应用程序。
Rancher提供了可视化的应用程序编排界面,我们可以轻松地创建和管理容器集群、服务和负载均衡。
