大发uu直播快3官方_大发UU快3直播平台 - 大发uu直播快3官方,大发UU快3直播平台是新浪网最重要的频道之一,24小时滚动报道国内、国际及社会新闻。每日编发新闻数以万计。

【实战】在AWS上部署持续集成与持续交付管道

  • 时间:
  • 浏览:0

对于任何三个多多任务管理器 的开发,有那末那些工具后会可不还还可以可视化地看多其居于哪一阶段呢?这里就引出了本期的重点:CodePipeline是三个持续提交服务(continuous delivery service),都不可不还还可以方便地建模、可视化、自动部署目标软件,更直观地控制软件发布的各个阶段。

今天大伙儿 讨论CI/CD,即持续集成(Continuous Integration)与持续部署(Continuous Deployment),这对于软件交付工程师或多多任务管理器 员来说非常重要。

首先大伙儿 说CI-持续集成,这是为保证不同功能的开发人员所贡献的代码保持同步,简单的说却说通过自动测试、验证与反馈的辦法 实现多多任务管理器 员间的协同。比如说开发团队将被委托人的代码库都装进Github上,有却说 每个开发人员都Fork了三个副本在本地做开发测试,最终大伙儿 希望将每个开发人员的代码段集成到主线(Mainline)中,在这事先大伙儿 需要创建测试案例保证多多任务管理器 不仅都不可不还还可以单步运行,也都不可不还还可以按照主线的逻辑运行不至于影响什儿 模块。在持续集成的场景中,开发人员都不可不还还可以不断拉测试案例来验证多多任务管理器 运行正常,与主线兼容良好,后会在发布时有巨大改动。

再说持续部署,他将持续集成所编译的多多任务管理器 部署到环境中,既然是持续部署,就都不可不还还可以是某个特定项目的多个场景,比如说临时环境(Staging Environment)、测试环境(Testing Environment)、验收环境(Acceptance Environment)最后是生产环境(Production Environment)。当然也包括了各个环境中的高可用、负载均衡等场景。

持续集成和持续部署的工具有AWS CodeBuild/CodeDeploy,Atlassian Bamboo和Jenkins。大伙儿 拿三个Python Flask web应用来说,首先大伙儿 需要做本地测试,包括单元测试,语义测试和功能测试。通过了上述那些测试不可不还还可以说明本地开发完成。接下来大伙儿 需要拉取什儿 需求,那些需求是要将本地代码段并入总线(Master Branch)前的一组测试案例,包括安装、测试案例执行、语义分析、单元测试和评论(为和项目组什儿 成员协同开发,需要兼容评论功能)。



并入总线后,大伙儿 会继续测试包的安装、构建、创建过高 、创建版本、推到‘提交’阶段(提交阶段是持续集成和持续部署的分水岭)。进入部署阶段,工具会从‘提交’库中获取安装包,继续在临时环境测试、部署场景验证、负载均衡测试、并发连接测试、应用安装、验证和提交。



在临时环境有测试人员,甚至会有最终用户,完成完整功能点的测试之总要提交进入下一环境,比如测试环境或验收环境。上到临时环境事先,AWS的CodeBuild都不可不还还可以模拟负载均衡环境来验证多多任务管理器 对环境的适应性。



大伙儿 的Python Flask web应用多多任务管理器 也非常简单,却说三个调用Rest API的安装多多任务管理器 。



大伙儿 在CodeBuild中创建三个项目:



输入项目名称,必要一段话,都不可不还还可以加在注释。



接下来大伙儿 选取多多任务管理器 源,大伙儿 的代码库存装进Github上,用户名是bundyfx下的flaskerino数据库。关于Webhook,在Github的代码库中需要创建Webhook,通过AWS CodeBuild项目中的复选框会自动关联Github的代码库从而自动创建Webhook。



接下来都不可不还还可以选取运行环境,包括选取CodeBuild的镜像还是自定义Docker镜像、操作系统、编译环境和版本等等。



事先最后选取使用buildspec.yml来作为Build的配置文件,以下是此yml文件的样式:



在什儿 yml文件中,大伙儿 都不可不还还可以看多CodeBuild分为三个阶段(Phase):安装阶段和预构建阶段。在安装阶段,首先执行的是更新pip(对于蒸不烂 悉python开发的大伙儿 ,这里普及一下,pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能);有却说 是安装根目录下即setup.py中定义的所有安装包,即flask和pylint



预构建阶段执行的三个命令,先是找到所有*.py的文件,有却说 对其语义进行检查(即pylint,python linting);有却说 在对此项目做单元测试。事先大伙儿 定义了三个artifacts:一段话,意为将所有输出文件作为制品打包提交给下一阶段。

制品输出位置那末Amazon S3可选,它合适三个制品杂货店,CodeBuild都不可不还还可以在什儿 杂货店里寄存和取出制品部署到各个环境中。



除了上述选项之外,还什儿 高级选项,包括选取加密S3,制品打包格式、资源耗费(一般情况表3GB,2vCPU绰绰有余了),环境变量等等。



和什儿 的云产品一样,AWS CodeBuild仅根据你的使用时间来收费。创建完CodeBuild的项目事先,事先大伙儿 事先勾选了自动关联Github的代码库变化。在Github中大伙儿 也就自动创建了关联的Webhook。



在URL的释义中标明了pull_request and push,意为当github的此代码库收到推送更新时,CodeBuild会自动对新版本进行构建(包括大伙儿 底下所说到的安装、语义测试和单元测试);当CodeBuild这边的项目执行完某个测试事先,在Github的代码库也会收到三个comments标记测试情况表。



接着大伙儿 选取代码库的位置,跟事先一样,大伙儿 选取Github上的位置。



在选取Build提供者时,事先大伙儿 先前创建了项目,这里选取CodeBuild的提供者以及对应的项目名称即可。



同样,下一步时选取部署对象。事先大伙儿 事先的部署提供者是AWS的CodeDeploy,选取什儿 提供者并选取事先创建的应用名和部署组名。



最后大伙儿 给刚创建的AWS Pipeline服务取个名字。



CodePipeline就自动帮大伙儿 梳理了整个开发流程,并自动开始英文运行。



运行到每一步,大伙儿 都都不可不还还可以进入看多运行的每个细节,比如Build的运行情况表。每三个阶段前的小三角箭头都都不可不还还可以继续下钻查看进一步的运行情况表。



再比如CodeDeploy阶段,大伙儿 都不可不还还可以中断任意正在运行的阶段;查看每三个高可用下属实例的情况表及客户流量信息。



除了按照Code Pipeline的向导部署各个阶段外,大伙儿 还都不可不还还可以直接编辑当前的Pipeline,类事于删掉某个阶段,或加在某个自定义的新阶段。



可加在的阶段包括审批、源码、构建、测试、部署和激活。在测试阶段通过事先,大伙儿 都不可不还还可以考虑将代码部署到生产环境了。这事先大伙儿 在事先创建的Code Pipeline中加在三个生产阶段。



在生产阶段的配置中,大伙儿 需要将其指向到生产的部署组。



保存事先,Code Pipeline就会自动进入蓝绿部署阶段。



在详情页都不可不还还可以查看当前阶段的部署完整报告。



运行完成后,大伙儿 就都不可不还还可以考虑更新当前的版本了,点击Pipeline下方的Release Change更新版本。



系统会提示最近的变更将覆盖原始代码,有无据悉,大伙儿 点击发布(Release)。



这期的内容就到这里,谢谢大伙儿 。

在定义完应用名和部署组名后,进入部署辦法 的选取,CodeDeploy提供了并有无部署辦法 ,分别是就地部署(In-place deployment)和迭代部署(Blue/green deployment)。前者意为直接用最新版本替换当前的运行多多任务管理器 ,期间事先有文件夹和目录特征的更新,CodeDeploy会自动将相关前端应用指向新的目录位置;后者更适用于有负载均衡的生产场景,比如当前多多任务管理器 有80个实例运行在负载均衡器下,最新版本同样有那些实例。多多任务管理器 都不可不还还可以在指定时间切换,一起去保留事先的版本,以便在新版本运行故障时回切。这里大伙儿 从生产出发,选取迭代部署(Blue/Green Deployment)



在环境配置中,建议选取克隆qq自动定标组(Automatically copyAuto Scaling group),意为将现行环境的资源分配情况表克隆qq到最新版本中并有自适应功能,以保证迭代后对并发压力的应对能力。



在什儿 配置的下方大伙儿 都不可不还还可以看多当前正在运行的所有实例的ID列表以及当前有无启用了负载均衡,这跟大伙儿 事先所要配置的迭代方案有密切关系。



在部署设置中,迭代部署的默认配置是一次仅更新三个实例,且立即切换客户端的访问流量到新实例,对于旧实例在切换一小时后停止运行。



当然大伙儿 也都不可不还还可以修改什儿 默认配置,建议是既然要立即切换客户端访问实例,何不一次性替换掉所有的实例。至于旧实例的保留时间,看内部内部结构规定或内部内部结构法律,这里不做推荐。

最后输入具有部署权限的账号名称,点击Create Application即可完成预部署。



在大伙儿 上期讲CodeBuild的事先谈到了Amazon S3制品库,这里大伙儿 也都不可不还还可以根据提示直接将S3中的制品位置输入到脚本中完成部署。



值得一提的是,通过CodeDeploy,不仅都不可不还还可以将多多任务管理器 部署在AWS上,还都不可不还还可以部署在本地环境中。