ITPub博客

首页 > 自动化运维 > DevOps > CapitalOne - Artifactory高可用集群的自动化部署实践

CapitalOne - Artifactory高可用集群的自动化部署实践

原创 DevOps 作者:JFrog杰蛙科技 时间:2020-02-17 20:54:00 0 删除 编辑

背景:

本文为大家介绍 Capital One 如何利用自动化流水线实现Artifactory   HA集群进行自动化运维。 Capital One 银行是美国最大的数字化银行之一,在 Capital One devops体系中应用了JFrog   Artifactory   HA集群进行软件制品管理。由于 Capital One 规模庞大并且为满足业务连续性要求,其部署的Artifactory   HA拥有primary和DR(灾备)两套集群的架构。在运维Artifactory   HA集群维护中通过建设和运行自动化的流水线,在不影响用户使用和业务连续性的前提下,自动地完成了版本升级、配置更新、功能更新,安全检测等工作,并且在检测到问题时,实现自动化的回滚。

流水线总体介绍:

 

通过Jenkins与Github集成驱动流水线。每个PULL请求触发一个小规模测试并提供快速反馈。 每个Merge会触发研发环境HA集群范围的部署,并进行相关测试。标签(Tag)被用来标记代码更新的验证阶段和对应的环境。

使用 Terraform 创建基础设施,实现蓝 / 绿的发布。并通过Chef   Cookbook完成整个集群内所有角色服务器配置


 

流水线构成

静态分析流水线

 

通过对代码静态分析 对代码结构进行快速反馈,确保其符合行业标准。同时使用一系列的Linters进行不同类型的代码分析。

 

安全扫描流水线

 

      Capital One 引入DevSecOps概念,能够在产品上线之前进行安全扫描和漏洞检测。安全检查主要使用了静态安全检测通过代码扫描来完成漏洞发现。除了静态检测还通过对比分析,使用Jfrog   Xray对依赖进行安全扫描,提高第三方依赖的安全性,并提供修复建议。

 


单元测试流水线

 

单元 / 集成测试,用于验证代码的更新不会破坏预期的功能。主要应用于用户自定user   plugin的测试。流水线通过容器方式拉起Artifactory安装并测试这些 custom plugin ,确保其正确工作,避免在生产环境中进行测试。

 

构建阶段流水线

 

本阶段的所有文件都需要部署在一个高可靠的位置,以便在系统运行时进行自动扩展不需要去依赖其他任何系统包括Artifactory。 Capital One 选择了S 3 进行外部存储。所有制品与chef   cookbook都从Artifactory拉取并存到s 3 中。

 


用于部署的流水线

 

  部署流水线需要确保新集群部署不会影响到现有Artifactory提供正常服务。

  1 流量切换到DR区域

  2 缩容现有集群,减少节点数量并释放license给新的集群使用,Aritfactory集群采用多主架构在所容时不会影响剩余节点的正常工作

  3 新部署集群复用原油的数据库与s 3 存储内容做到无痕切换

  4 当新集群完成部署后,业务流量进行回切

  5 主集群完成升级后,DR集群进行升级

  由于Artifactory使用数据同步机制,因此新节点加入集群的过程对用户透明。

 

配置测试流水线

 

 

在工作节点上线前需要对其配置进行检测,Jenkins通过ssh方式驱动新节点进行测试,确保Artifactory,Nginx,Datadog,Splunk这些工作节点运行正常。

确保所有的工作节点 配置文件的内容、位置、权限都部署正确,以及所有的网络端口都正常开通。

 

系列测试流水线

 

系列测试是确保Artifactory的各个repositories运行正常。通过容器拉取所有种类的repositories中的包进行测试,同时检测所有virtual   repositories,并且需要 测新的系统配置是否会影响制品依赖的解析。

 

性能测试流水线

 

确保发布产品不会存在性能问题。 Capital One 使用Jmeter工具模拟生产级流量并分析, 1 5 分钟的负载测试作为流水线的一部分,使用1小时负载测试主线升级以及重大变更场景。

由于Artifactory支持多种类型的包因此在流量模型是一个挑战, Capital One 通过分析日志获取常用API,并在流量峰值时期测试API调用速度。

 


回滚策略流水线

 

Capital One 设计了两个回滚策略:

In-region回滚。当部署后的测试失败时,马上启动自动化回滚,删除新的集群,并恢复旧的集群。

DR容错回滚。当主集群升级成功后,或监测几天用户流量,没有问题的时候再更新容灾集群。如果在这几天中发现问题,就会启动容错回滚:用户流量切换到DR集群,主集群回滚到之前版本,数据库回滚到之前的快照,再通过 Artifactory  Replication同步数据,最后再把流量切换回回滚后的工作集群。目前

由于 数据库的回滚可能会有DataBase   schema的变化, Capital One 目前在数据库回滚操作上依然使用手动方式完成。

 

自动化流水线部署带来的收益

 

 

Capital One 通过自动化流水线部署Artifactory   HA为团队带来的收益:

* 加快部署进度并且使开发人员能更专注于代码开发本身,不再需要花费时间维护制品管理的工具。

*Capital One 更好的扩展性,整个集群的扩缩容都可以由流水线完成

*全面的测试流程确保用户体验

*自动化回滚策略,加快故障检测和响应,减少对生产业务影响

 

 

更多 精彩内容 请关注公众号: JFrog 杰蛙 DevOps

  更多技术分享 可以关注 2 18 日在线课堂:《Artifactory企业版介绍》

报名链接:https://www.bagevent.com/event/6365977

 

课程介绍

在企业数字化转型的背景下,应用的更新迭代周期正在不断加速,如何在多语言环境下建设一套高性能,高可用的应用制品管理平台成为企业在数字化转型中的一个新课题。

 

课程收益

本期通过演示事例说明如何通过Artifactory企业版实现制品管理,元数据管理,制品与依赖安全管理。并且实现Artifactory与Jenkins的集成使用。

 

本期话题

1 artifactory企业版的特性以及高可用架构

2 如何通过Artifactory实现多语言环境的制品管理

3 通过Artifactory建立企业级制元数据管理平台

4 如何实现制品依赖安全管理

 

课堂活动

本期课堂讲师会在结束前进行抽奖活动

第一名:小爱音响

第二名:JFrog 新版 T

第三名:JFrog 新版 T


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69954434/viewspace-2675952/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-11-15

  • 博文量
    35
  • 访问量
    13780