Azure DevOps如何将繁重的手工部署转化成安全可靠的自动化流程,azure ai配音-ESG跨境

Azure DevOps如何将繁重的手工部署转化成安全可靠的自动化流程,azure ai配音

来源网络
来源网络
2022-07-05
点赞icon 0
查看icon 612

Azure DevOps如何将繁重的手工部署转化成安全可靠的自动化流程,azure ai配音Azure DevOps如何将繁重的手工部署转化成安全可靠的自动化流程DevOps是生产力/生产过程/产品迭代的结合,以便持续向终端用户输出有价值的服务。因此可以认为,DevOps并不是一种框架/服务,更像是一种方法论/文化,可......

Azure DevOps如何将繁重的手工部署转化成安全可靠的自动化流程,azure ai配音




Azure DevOps如何将繁重的手工部署转化成安全可靠的自动化流程

DevOps是生产力/生产过程/产品迭代的结合,以便持续向终端用户输出有价值的服务。因此可以认为,DevOps并不是一种框架/服务,更像是一种方法论/文化,可以帮助企业快速/高质量/安全地实现产品的迭代及技术的革新。

细看会发现,DevOps可以划分成很多部分,包括沟通协作/任务管理、持续集成/持续部署、代码管理、基础设施即代码、持续监控等。随着时机的成熟,市场的教育普及与工具链的成熟度越来越高,很多企业也实实在在看到了DevOps的价值。有数据显示:采用或部分采用DevOps的公司,发布频率提高了46倍,Bug修复时间提升了440倍,可以提前20%将产品推向市场,出错率减少5倍,收入增加了20%。

Azure DevOps是微软提供的,用于帮助开发者实现DevOps文化的工具集合,包含Azure Boards(看板,实现任务管理)、Azure Pipelines(持续集成/持续发布)、Azure Repos(代码管理)、Azure Test Plans(测试计划管理)、Azure Artifacts(包管理)等在内的全套工具链。

借助Azure DevOps,用户能够快速开始实践DevOps理念,而无需在意工具的选择以及支持DevOps的基础设施的维护,将精力专注于业务的开发。

Azure DevOps除了支持内置工具集,还支持很多开源工具,用户可以结合自身的实际情况来选择适合自己的工具。

接下来,我们将通过一个案例模拟DevOps的持续集成/持续发布(CI/CD)过程,体验如何通过Azure DevOps将手工的网站更新操作自动化。

Azure DevOps CI/CD演练

例如一家公司运行着一个Python编写的公司门户,虽然内容不多,但是需要经常修改页面内容。

小A是网站开发人员,小B是网站运维人员。每次更新内容后,小A都需要将改好的代码上传到GitHub,小B拉取并手动更新到对应的Web服务器中。这一过程不仅需要大量手工工作,而且时不时会出现问题,导致公司网站无法访问。

接下来,我们尝试将这个场景应用在Azure DevOps中通过Pipelines实现程序自动化发布。随后,小A只需将代码上传到GitHub,就会自动触发一整套部署流程,部署到预生产环境,且增加了代码检查与同事核查,确保了发布的准确性;而小B可以专心维护Azure DevOps Pipelines,确保运行的准确性,而无需手工完成部署任务。

在我们构想的这个场景中,经过DevOps的改造,原本耗时1小时的构建/发布过程可以缩短到5分钟!这极大提高了工作效率,同时可以将人为失误风险降到最低。

第一步:构建Python Web网站自动化发布流程

实验的第一阶段,我们将构建一条CI/CD的Pipeline,随后当我们的代码Merge到Master Branch后,会由CI/CD Pipeline进行必要的测试打包工作,并发布到生产环境中,整个过程无需人工接入。本次实验将模拟一个基于Python Django开发的Web站点,发布到Azure Web App中。

创建一条AzurePipeline for CI工作,名为zjPythonWebCI

1、点击“New pipeline”,设置源代码管理的GitHub链接,选择创建一条空的Pipeline。

选择Build所需的Build Agent Pool:

2、添加Build Pipeline的一系列任务

添加任务设置Build Agent上运行的Python版本:

添加任务安装PythonWeb必要的依赖项,所有依赖项均放在GitHub中的requirements.txt内:

添加任务运行必要的单元测试,所有测试的相关用例均存放在GitHub中的unit_tests内:

添加任务将测试结果发布到Azure Pipeline中的Test Tab:

接下来的三个任务会将PythonWeb代码打包成ZIP文件,发国际快递Azure DevOps Artifact中,为后续部署工作做准备

最后收尾,设置好CI Pipeline的触发规则,达到持续集成的目的:

接下来我们试验一下Pipeline zjPythonWebCI是否工作正常,从结果看起来一切正常。

创建一条Azure Pipeline for CD工作,名为zjPythonWebCD

1、点击PipelineReleases创建一条部署的Pipeline:

添加CI Pipeline构建的Artifact

2、添加Release Pipeline部署过程的一系列任务

添加任务在Azure App Service中安装必要的Python Extension插件

添加任务将Build好的ZIP包发布到预先创建的Web App中

步骤中需要设置Generate web.config parameters,具体代码如下

WSGI_HANDLER django.core.wsgi.get_wsgi_application() DJANGO_SETTINGS_MODULE python_webapp_django.settings PYTHON_PATH $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)\python.exe PYTHON_WFASTCGI_PATH $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)\wfastcgi.py appType python_Django

步骤中需要设置的Deploy脚本如下

@echo off

if NOT exist $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)/python.exe (

echo Python extension not available 2

EXIT /b 1

)

echo Installing dependencies

call $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)/python.exe m pip install U setuptools

call $(AzureAppServiceManage2.LocalPathsForInstalledExtensions)/python.exe m pip install r requirements.txt

添加任务添加一系列测试任务,确保部署的工作是正常运行的

接下来我们试验一下Pipeline zjPythonWebCD是否工作正常,从结果看起来一切正常

接下来,小A如果需要更改页面内容就简单多了,他只需要更改页面代码,提交到GitHub即可;Azure Pipeline会监听GitHub的Commit,触发CI/CD操作:

第二步:分离测试/生产环境

不过,目前的Release Pipeline还有一个问题:没有做到测试生产隔离,无论测试结果如何,代码都已经部署到了环境中。接下来我们需要将环境分开,借用Web App Deploy Slot,当测试没有问题,再将Staging环境与Production环境切换。

首先,我们将Release的阶段改为Staging,同时去掉Pre approval,任何Build好的代码都可以发布到Web App Staging的部署槽中:

另外再增添一个阶段,名为Production,同时Enable PreApproval/Gate,只有当代码审核通过,且Gate验证通过后,代码才会部署到环境中:

这样当环境中有不符合策略的地方存在,即使人为Approve也不会部署到环境中,确保了应用发布的安全可靠。


文章推荐
AWS与阿里云服务器在国内使用的简单对比评测,aws和阿里云对比
AndroidMoPub广告的集成(1),android应用开发bmi检测
Google cloud platform配置虚拟机,google pixel 7pro上市时间
App Annie【成功故事】Tilting Point 的游戏发行新策略和新工具


特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。

搜索 放大镜
韩国平台交流群
加入
韩国平台交流群
扫码进群
欧洲多平台交流群
加入
欧洲多平台交流群
扫码进群
官网询盘
加入
官网询盘
扫码进群
美国卖家交流群
加入
美国卖家交流群
扫码进群
ESG跨境专属福利分享群
加入
ESG跨境专属福利分享群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
《TikTok综合运营手册》
《TikTok短视频运营手册》
《TikTok直播运营手册》
《TikTok全球趋势报告》
《韩国节日营销指南》
《开店大全-全球合集》
《开店大全-主流平台篇》
《开店大全-东南亚篇》
《CD平台自注册指南》
《开店大全-俄罗斯篇》
通过ESG入驻平台,您将解锁
绿色通道,更高的入驻成功率
专业1v1客户经理服务
运营实操指导
运营提效资源福利
平台官方专属优惠

立即登记,定期获得更多资讯

订阅
联系顾问

平台顾问

平台顾问 平台顾问

微信扫一扫
马上联系在线顾问

icon icon

小程序

微信小程序

ESG跨境小程序
手机入驻更便捷

icon icon

返回顶部