美文网首页
[首发]国内某大型银行的持续集成与交付实践

[首发]国内某大型银行的持续集成与交付实践

作者: JFrog | 来源:发表于2020-01-06 18:04 被阅读0次

一、背景

随着架构的不断演进以及微服务技术在我行的深入应用,应用部署发布的复杂性大大增加,简单的代码配置管理模式、人工的版本记录及手工部署等发布操作和管理的模式,效率低、操作风险较大,因此急需从整体上提升我行软件持续交付的能力,降低应用部署发布的操作风险。

通过引入构建自动化及可视化的软件交付流水线,整合从开发、构建、测试、部署、发布、运维等多个环节,加强各职能团队协助和沟通,全面实现项目构建持续自动化管理。


二、实施方案

1.总体框架

DevOps是一组能够帮助软件开发团队极大的提高其软件交付的速度和质量的模式和最佳实践组成;DevOps的整体架构如图:

从使用层次主体关联:开发、测试和运维团队,配套对应的权限控制体系。

      从交付流程方面:涵盖从代码到应用交付的全流程管理。

      DevOps平台既包括了项目管理、产品管理、交付中心、组织机构等宏观维度的各项,同时在也纳入了编译、部署、代码管理及pass平台部分,同时,平台机制应该支持灵活的扩展(如工具集成扩展、部署能力扩展等),面对复杂的场景或者特殊需求的时候,平台也可以提供更加灵活的能力。

2.功能介绍

功能将实现流水线管理、质量管理、告警管理、制品管理、项目信息管理、系统管理、个人工作台等模块,达到交付自动化,可视化的目标。

3.持续集成

持续集成模块功能主要有代码库管理、构建定义管理以及构建实例管理等,DevOps平台中构建任务可以分为以下类型:

· 需求类任务:jira、ones等

· 编译类任务:Maven、Ant、前端构建等

· 打包类任务:Maven 、ant、gradle、npm、docker等

· 测试类任务:junit、Postman、Jmeter等

· 静态代码扫描:Sonarqube

· 安全扫描:Xray

· 部署类任务:ansible、chef、shell

· 容器类:k8s、mesos

· 日志类:elk

· 其他工具类任务:shell、制品提交到nexus仓库、Jfrog制品库等。

每个构建定义上可选择若干个需要构建的任务,通过原子步骤编排,组装成一个完整的构建流程,代码提交时触发构建(支持gitlab、github、svn等常用代码库版本管理工具),结合诸如jenkins、docker等工具,提升编译速度和增强资源的灵活调度能力,将持续集成的完整链路打通,示例如下:

4. 持续部署

软件团队通常需要将发布后续推送到不同部署环境进行上述讨论的不同类别的测试。

例如,常见的情况是将软件部署到测试环境进行人为的质量检查测试,然后部署到性能测试环境,进行自动化负载测试。如果构建通过该测试阶段,则应用程序可能稍后部署到用于 UAT 或 beta 测试的独立环境中。

理想情况下,将任意发布候选制品以及与之通信的其他系统可靠地部署到任意环境中的这个过程应尽可能实现自动化。

如果企业希望按照计划的速度持续交付,那可能需要每天或每周多次执行,因此它的工作速度和可靠性至关重要。

用自动化方式在环境之间移动软件是作为DevOps的团队的主要特性之一,因此这也是DevOps的关键重点。

示例如下:

5. 技术框架

6. 技术、工具、角色、能力梳理

Devops实施时,涉及到的技术、工具、角色、能力梳理如下:

三、收益

一期完成了Jfrog制品库采购、上线、高可用建设并围绕Jfrog制品库进行了工具链的打通;实现了持续集成与持续部署功能、制品提升功能、软件包不同仓库流转功能、软件包依赖关系管理、软件包元数据可视化管理及试点项目的接入;

主要得到的收益如下:

统一制品库管理:软件包统一由制品库管理,改变原来散落在各处,无法跟踪追溯的问题。

简化操作步骤:使用前,开发人员部署需要手工操作7-10步;使用后,可以一键部署到DEV、SIT、UAT等环境。

缩短等待时间:测试人员可按需部署,无需等待。改变了以往测试人员需等待开发人员部署的情况。


1月7日,20:00   在线课堂:《Netflix,甲骨文的 DevOps 之路》

课堂收益:

1. 介绍甲骨文在进行 DevOps变革时遇到的困难

2. 解决办法

3.落地 DevOps 用到的工具链

4.甲骨文的自助式 CI/CD 平台

5.Netflix的持续交付平台Spinnaker

6.完成 DevOps 转型之后得到的收益

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

抽奖活动:

课堂结束前五分钟,进行抽奖活动

第一名:小米蓝牙耳机

第二名:JFrog杰蛙新版T恤

第三名:JFrog杰蛙新版T恤

相关文章

  • [首发]国内某大型银行的持续集成与交付实践

    一、背景 随着架构的不断演进以及微服务技术在我行的深入应用,应用部署发布的复杂性大大增加,简单的代码配置管理模式、...

  • 什么是CICD?持续集成与持续交付

    持续集成与持续交付是软件开发和交付中的实践。我们项目中一直在践行持续集成(CI:Continuous Integr...

  • CICD - 持续集成与持续交付

    持续集成与持续交付是软件开发和交付中的实践。我们项目中一直在践行持续集成(CI:Continuous Integr...

  • 微服务的部署与发布:持续交付与持续部署微服务

    持续交付与持续部署微服务 持续集成(Continuous Integration)与持续交付(Continuous...

  • 被轻视的持续集成

    被轻视的持续集成 专栏简介 分享持续集成的理论和实践。在这里你可以了解到什么是持续集成、持续部署、持续交付。在项目...

  • Jenkins 从入门到实践

    最近在公司做的 Jenkins 入门介绍 Jenkins 从入门到实践 持续集成/持续交付/持续部署 Note:持...

  • 持续集成良好实践 v0.4

    团队在实践“持续部署”和“持续交付”之前,要先做好“持续集成”。 本文标题之所以没有使用“最佳实践”,而是使用了“...

  • 【译】如何开始CI

    开始学习持续集成所要了解的知识:分支策略,测试自动化,工具和最佳实践。 目标:快速且安全地交付工作代码 持续集成的...

  • Python,你了解么?

    最近在考虑持续交付(Continuous Delivery)的一系列最佳实践,持续集成工具的选择影响到未来的投入,...

  • CI Weekly #6 | 再谈 Docker/ CI / C

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成、持续交付,持续部署、自...

网友评论

      本文标题:[首发]国内某大型银行的持续集成与交付实践

      本文链接:https://www.haomeiwen.com/subject/vtgkactx.html