iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >CapitalOne - Artifactory高可用集群的自动化部署实践
  • 851
分享到

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

2023-06-04 12:06:38 851人浏览 安东尼
摘要

背景:本文为大家介绍Capital One如何利用自动化流水线实现Artifactory HA集群进行自动化运维。Capital One银行是美国最大的数字化银行之一,在Capital One的devops体系中应用了JFrog&

背景:

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

流水线总体介绍:

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

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

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

流水线构成

静态分析流水线

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

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

 

安全扫描流水线

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

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

单元测试流水线

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

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

构建阶段流水线

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

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

用于部署的流水线

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

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

 1 流量切换到DR区域

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

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

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

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

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

配置测试流水线

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

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

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

系列测试流水线

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

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

性能测试流水线

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

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

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

回滚策略流水线

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

课程介绍

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

课程收益

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

本期话题

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

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

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

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

课堂活动

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

第一名:小爱音响

第二名:JFrog新版T恤

第三名:JFrog新版T恤

--结束END--

本文标题: CapitalOne - Artifactory高可用集群的自动化部署实践

本文链接: https://www.lsjlt.com/news/237908.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CapitalOne - Artifactory高可用集群的自动化部署实践
    背景:本文为大家介绍Capital One如何利用自动化流水线实现Artifactory HA集群进行自动化运维。Capital One银行是美国最大的数字化银行之一,在Capital One的devops体系中应用了JFrog&...
    99+
    2023-06-04
  • Captial One如何实现Artifactory HA集群的自动化维护
    一、背景本文整理自Hank Hudgins,Capital One高级工程师,在JFrog 2019用户大会上的讲演《Automated Artifactory HA Pipeline》。Capital One是美国最大的数字化银行之一,其...
    99+
    2023-06-04
  • 如何部署MySQL-MMM高可用群集
    如何部署MySQL-MMM高可用群集,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简介MMM(Master-Master re...
    99+
    2024-04-02
  • Rancher 2.4.3 - HA 部署高可用k8s集群
    对于生产环境,需以高可用的配置安装 Rancher,确保用户始终可以访问 Rancher Server。当安装在Kubernetes集群中时,Rancher将与集群的 etcd 集成,并利用Kubernetes 调度实现高可用。为确保高可用...
    99+
    2023-01-31
    集群 Rancher k8s
  • Linux上怎么部署高可用的MySQL集群
    在Linux上部署高可用的MySQL集群通常可以通过使用MySQL官方提供的MySQL Group Replication或者Per...
    99+
    2024-05-06
    Linux MySQL
  • Kubernetes​怎么部署高可用kube-apiserver集群
    这篇文章主要讲解了“Kubernetes怎么部署高可用kube-apiserver集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes怎么部署高可用kube-apiserv...
    99+
    2023-06-29
  • 如何在Kubernetes上部署Redis高可用集群
    如何在Kubernetes上部署Redis高可用集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 Redis 介绍Redis 代表REmote DI...
    99+
    2023-06-15
  • PHP CI/CD 与自动化部署的最佳实践
    php ci/cd 最佳实践包括:自动化构建和测试实时监控和警报使用版本控制系统实战案例:使用 github actions 构建和部署通过遵循这些最佳实践,可以建立一个高效且可靠的 p...
    99+
    2024-05-08
    php ci/cd git composer
  • MySQL之高可用集群部署及故障切换的实现方法
    这篇文章给大家分享的是有关MySQL之高可用集群部署及故障切换的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MHA 1、概念2、MHA 的组成3、MHA 的特点二、搭建MySQL+MHA思...
    99+
    2023-06-14
  • Jenkins集成Gitlab实现自动化部署的全过程记录
    目录一、环境准备1.配置无密码登录(1)Jenkins 服务器上生成一对公钥、私钥(2)获取公钥信息(3)获取私钥信息(4)复制公钥到应用服务器二、配置 Gitlab1.创建示例项目...
    99+
    2024-04-02
  • Consul集群版容器化部署与应用集成是怎样的
    Consul集群版容器化部署与应用集成是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。背景由于公司目前的主要产品使用的注册中心是consul,consul需要用集群来...
    99+
    2023-06-19
  • Maven+Tomcat8 实现自动化部署的方法
    本文介绍了Maven+Tomcat8 实现自动化部署的方法,分享给大家,具体如下:1.配置tomcat-users.xml首先在Tomcat里配置deploy的用户(tomcat根目录/conf/tomcat-users.xml):<...
    99+
    2023-05-31
    maven tomcat8 自动部署
  • maven实现docker自动化部署插件的使用
    构建开发项目 首先打开我们的IDEA构建一个我们的开发项目,配置如下: 接着打开我们的pom.xml修改build的配置,修改以后的代码如下: <build> ...
    99+
    2024-04-02
  • Jenkins自动化部署SpringBoot项目的实现
    目录1、Jenkins介绍1.1、概念1.2、优势1.3、Jenkins目的2、环境准备3、Jenkins下载3.1、下载3.2、运行3.3、问题解决4、Jenkins配置4.1、用...
    99+
    2023-01-13
    Jenkins自动化部署SpringBoot Jenkins部署SpringBoot
  • 高效部署:Flask应用的最佳实践
    Flask 是 Python 的一个轻量级 Web 框架,它被广泛应用于开发 Web 应用程序。与其他框架相比,Flask 具有灵活性和可扩展性,同时它也具有相对较少的学习曲线。Flask 的优越性不仅体现在它的设计上,它的高效...
    99+
    2024-01-19
    Flask 最佳实践 部署
  • 怎么用Python实现服务部署自动化
    这篇“怎么用Python实现服务部署自动化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python实现服务部署自动化...
    99+
    2023-07-06
  • 消息中间件Kafka+Zookeeper集群的概念、部署和实践是怎样的
    这篇文章给大家介绍消息中间件Kafka+Zookeeper集群的概念、部署和实践是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中所有动...
    99+
    2023-06-02
  • nginx搭建高可用集群的实现方法
    目录Keepalived+Nginx 高可用集群(主从模式)Keepalived+Nginx 高可用集群(主从模式) 集群架构图 1、准备两台装有Nginx虚拟机 2、都需安装Ke...
    99+
    2023-01-28
    nginx 高可用集群 nginx 高可用
  • 太牛了,用Python实现服务部署自动化!
    最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的 /tmp 目录下,然后进入应用服务器中,使用 mv 命令将压缩文件移动到 Nginx 项目设定目录,最后使用 unzip 命令解压文件,以此完成项目的部署。仔细分...
    99+
    2023-05-14
    Python 命令
  • 怎么用NFV+SDN实现VNF全自动化部署
    本篇内容介绍了“怎么用NFV+SDN实现VNF全自动化部署”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、某运营商期望通过数字化转型项目提...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作