时间:2021-07-15 | 标签: | 作者:Q8 | 来源:赵健网络
小提示:您能找到这篇{Azure DevOps如何将繁重的手工部署转化成安全可靠}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Azure DevOps如何将繁重的手工部署转化成安全可靠内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< ">DevOps是生产力/生产过程/产品迭代的结合,以便持续向终端用户输出有价值的服务。因此可以认为,DevOps并不是一种框架/服务,更像是一种方法论/文化,可以帮助企业快速/高质量/安全地实现产品的迭代及技术的革新。 < font-size: 16px;">细看会发现,DevOps可以划分成很多部分,包括沟通协作/任务管理、持续集成/持续部署、代码管理、基础设施即代码、持续监控等。随着时机的成熟,市场的教育普及与工具链的成熟度越来越高,很多企业也实实在在看到了DevOps的价值。有数据显示:采用或部分采用DevOps的公司,发布频率提高了46倍,Bug修复时间提升了440倍,可以提前20%将产品推向市场,出错率减少5倍,收入增加了20%。 < font-size: 16px;">Azure DevOps是微软提供的,用于帮助开发者实现DevOps文化的工具集合,包含Azure Boards(看板,实现任务管理)、Azure Pipelines(持续集成/持续发布)、Azure Repos(代码管理)、Azure Test Plans(测试计划管理)、Azure Artifacts(包管理)等在内的全套工具链。 < font-size: 16px;"> < font-size: 16px;">借助Azure DevOps,用户能够快速开始实践DevOps理念,而无需在意工具的选择以及支持DevOps的基础设施的维护,将精力专注于业务的开发。 < font-size: 16px;">Azure DevOps除了支持内置工具集,还支持很多开源工具,用户可以结合自身的实际情况来选择适合自己的工具。 < font-size: 16px;"> < font-size: 16px;">接下来,我们将通过一个案例模拟DevOps的持续集成/持续发布(CI/CD)过程,体验如何通过Azure DevOps将手工的网站更新操作自动化。 < font-size: 16px;">Azure DevOps CI/CD演练 < font-size: 16px;">例如一家公司运行着一个Python编写的公司门户,虽然内容不多,但是需要经常修改页面内容。 < font-size: 16px;">小A是网站开发人员,小B是网站运维人员。每次更新内容后,小A都需要将改好的代码上传到Git危机公关公关危机的Hub,小B拉取并手动更新到对应的Web服务器中。这一过程不仅需要大量手工工作,而且时不时会出现问题,导致公司网站无法访问。 < font-size: 16px;">接下来,我们尝试将这个场景应用在Azure DevOps中通过Pipelines实现程序自动化发布。随后,小A只需将代码上传到GitHub,就会自动触发一整套部署流程,部署到预生产环境,且增加了代码检查与同事核查,确保了发布的准确性;而小B可以专心维护Azure DevOps Pipelines,确保运行的准确性,而无需手工完成部署任务。 < font-size: 16px;">在我们构想的这个场景中,经过DevOps的改造,原本耗时1小时的构建/发布过程可以缩短到5分钟!这极大提高了工作效率,同时可以将人为失误风险降到最低。 < font-size: 16px;">第一步:构建Python Web网站自动化发布流程 < font-size: 16px;">实验的第一阶段,我们将构建一条CI/CD的Pipeline,随后当我们的代码Merge到Master Branch后,会由CI/CD Pipeline进行必要的测试打包工作,并发布到生产环境中,整个徐州动画宣传片过程无需人工接入。本次实验将模拟一个基于Python Django开发的Web站点,发布到Azure Web App中。 < font-size: 16px;">创建一条AzurePipeline for CI工作,名为zjPythonWeb-CI < font-size: 16px;">1、点击“New pipeline”,设置源代码管理的GitHub链接,选择创建一条空的Pipeline。 < font-size: 16px;"> < font-size: 16px;"> < font-size: 16px;">选择Build所需的Build Agent Pool: < font-size: 16px;">2、添加Build Pipeline的一系列任务 < font-size: 16px;">添加任务设置Build Agent上运行的Python版本: < font-size: 16px;"> < font-size: 16px;">添加任务安装PythonWeb必要的依赖项,所有依赖项均放在GitHub中的requirements.txt内: < font-size: 16px;"> < font-size: 16px;">添加任务运行必要的单元测试,所有测试的相关用例均存放在GitHub中的unit_tests内: < font-size: 16px;"> < font-size: 16px;">添加任务将测试结果发布到Azure Pipeline中的Test Tab: < font-size: 16px;"> < font-size: 16px;">接下来的三个任务会将PythonWeb代码打包成ZIP文件,发送到Azure DevOps Artifact中,为后续部署工作做准备 < font-size: 16px;"> < font-size: 16px;"> < font-size: 16px;">最后收尾,设置好CI Pipeline的触发规则,达到持续集成的目的: < font-size: 16px;"> < font-size: 16px;">接下来我们试验一下Pipeline zjPythonWeb-CI是否工作正常,从结果看起来一切正常。 < font-size: 16px;"> < font-size: 16px;">创建一条Azure Pipeline for CD工作,名为zjPythonWeb-CD < font-size: 16px;">1、点击Pipeline-Releases创建一条部署的Pipeline: < font-size: 16px;">添加CI Pipeline构建的Artifact < font-size: 16px;"> < font-size: 16px;">2、添加Release Pipeline部署过程的一系列任务 < font-size: 16px;">添加任务在Azure App Service中安装必要的Python Extension插件 < font-size: 16px;"> < font-size: 16px;">添加任务将Build好的ZIP包发布到预先创建的Web App中 < font-size: 16px;"> < font-size: 16px;"> < font-size: 16px;">步骤中需要设置Generate web.config parameters,具体代码如下 < font-size: 16px;"> -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 "$(AzureA免费推广产品的网站ppServiceManage2.LocalPathsForInstalledExtensions)/python.exe" -m pip install -r requirements.txt < font-size: 16px;">添加任务添加一系列测试任务,确保部署的工作是正常运行的 < font-size: 16px;"> < font-size: 16px;">接下来我们试验一下Pipeline zjPythonWeb-CD是否工作正常,从结果看起来一切正常 < font-size: 16px;"> < font-size: 16px;">接下来,小A如果需要更改页面内容就简单多了,他只需要更改页面代码,提交到GitHub即可;Azure Pipeline会监听GitHub的Commit,触发CI/CD操作: < font-size: 16px;"> < font-size: 16px;">第二步:分离测试/生产环境 < font-size: 16px;">不过,目前的Release Pipeline还有一个问题:没有做到测试生产隔离,无论测试结果如何,代码都已经部署到了环境中。接下来我们需要将环境分开,借用Web App Deploy Slot,当测试没有问题,再将Staging环境与Production环境切换。 < font-size: 16px;">首先,我们将Release的阶段改为Staging,同时去掉Pre approval,任何Build好的代码都可以发布到Web App Staging的部署槽中: < font-size: 16px;"> < font-size: 16px;">另外再增添一个阶段,名为Production,同时Enable Pre-Approval/Gate,只有当代码审核通过,且Gate验证通过后,代码才会部署到环境中: < font-size: 16px;"> < font-size: 16px;"> < font-size: 16px;"> < font-size: 16px;">这样当环境中有不符合策略的地方存在,即使人为Approve也不会部署到环境中,确保了应用发布的安全可靠。 ![]() |
上一篇:优化Shopee Listing应该这样做(上)
下一篇:优化Shopee Listing应该这样做(下)
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“Azure DevOps如何将繁重的手工部署转化成安全可靠”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure DevOps如何将繁重的手工部署转化成安全可靠的相关事宜。
关键词:Azure,DevOps如何将繁重的手