金融科技 DevOps 的最佳实践
随着软件技术的发展,越来越多的企业已经开始意识到 DevOps 文化的重要价值。DevOps 能够消除改变公司业务开展方式,并以更快的速度实现交付,同时创建迭代反馈循环以实现持续改进。而对于金融科技(FinTech)行业来说,拥有一套企业量身定制的 DevOps 流程变得至关重要。因为 FinTech 企业需要在应对不断变化的监管和安全场景的同时为客户提供创新价值,而拥有并实施以 FinTech 为中心的 DevOps 方法对 FinTech 企业的业务成功来说十分关键。
本文将谈谈 DevOps 如何融入金融科技世界。并一起探讨 FinTech 公司在发展独特的 DevOps 文化和工程实践时可以采用的方法与最佳实践。
FinTech 行业的不同之处
传统软件行业正在飞速变化,而对于 FinTech 领域来说发展速度甚至更加快。FinTech 是一个相对较新的领域,却又在最古老的领域之一——金融服务中运作着,而现代技术的进步以及不断变化的消费者期望要求企业需要不断响应。因此企业想要在 FinTech 领域中脱颖而出,在发展有效且个性化的 DevOps 文化时,需要考虑一下两个对 Fintech 行业的独特因素。
消费者驱动的市场变化
随着消费者对软件技术的认知与接受,人们开始要求越来越复杂的金融科技解决方案来处理在过去几十年甚至几个世纪以来一直由人工执行的财务工作。例如,金融科技服务正在席卷房地产行业。在 2022 年福布斯金融科技 50 强上市公司中,有五家金融科技公司属于房地产行业。从提供投资出租物业的新方式到颠覆当今购房者的抵押贷款体验,消费者们要求在房地产投资和抵押贷款方面获得与他们在常规销售点和个人银行服务中所期望的相同的易用性,房地产金融科技受到年轻人群需求的推动。
立法驱动的监管需求
金融科技领域的变化由监管环境驱动。全球现行的大部分立法都是为金融行业制定的。当政府试图协调金融法与金融科技公司提供的创新金融产品和服务时,他们会不断研究新产品。因此,金融科技公司经常发现自己需要在创新步伐与监管考虑之间取得平衡。
显而易见,金融科技领域的公司不同于一般的软件公司。其商业环境的特殊性决定了企业内部流程的独特性。这其中就包括 DevOps。DevOps 通过使用自动化和反馈来快速向客户交付价值,对于任何软件公司的战略来说都是必不可少的。而对于金融科技公司所处的特殊领域,在实施 DevOps 时需要考虑金融行业法规因素。
独特的 FinTech DevOps 文化
采用 DevOps 方法会影响公司的开发人员 DevOps 文化及其实践。在金融科技公司中,以下提到的 DevOps 文化元素应该受到特别关注。
分散所有权
FinTech 企业需要考虑的 DevOps 文化元素是“去中心化所有权”的概念。为了能够灵活有效地响应不断变化的消费者需求和法规,特定产品功能或基础设施要求的所有权不能单独隔离开来。因此,任何识别出关键需求或任务的有能力的员工或团队都应该被授权和鼓励以独立于组织结构或严格的工作框架来解决问题。
重视自我批评
FinTech DevOps 的另一个重要元素是强调自我批评的价值。如果企业的 DevOps 不允许或鼓励团队检查和反思他们在出现问题时所扮演的角色,企业将无法创新或做出足够快的响应以应对突发事件。
应急意识与预备方案
随着金融科技服务对现代消费者变得越来越重要,金融科技公司将越来越多地成为安全威胁的目标。成熟的团队应当采取一种安全策略来为可能发生的恶意攻击做准备,这种态势也将影响企业对软件开发生命周期 (SDLC) 和 DevOps 策略的计划与实施。
FinTech DevOps 最佳实践
在这一部分我们将探讨 FinTech DevOps 的最佳实践。
源代码监管链自动化
在代码存储库中 FinTech 企业可以实施自动执行分支保护规则。通过执行分支保护规则,能够有效减少容易出错的手动过程(例如在常规删除、合并和审查过程中对代码产生影响和破坏)。同时,拥有合理的双人控制机制能够帮助 FinTech 企业更好地应对审计和其他相关监管。
当然此类机制的实施需要适当的培训,从而建立合规文化。当企业中的不同团队对于合规要求意见不统一时,难以避免摩擦。鉴于金融行业处于高度监管的情况之下,让企业的每个成员了解合规等法律监管是没有商量余地的,如果疏忽大意,企业很有可能被处以重罚甚至倒闭。
持续衡量 DevOps 性能
一般情况下企业无法提前知道 SDLC 流程的更改将如何为客户带来更多价值或为企业带来更快的功能发布及更优质的代码。因此需要通过持续衡量 DevOps 性能,来测试任何更改的有效性并尽早响应反馈。企业可以通过跟踪 DORA 指标,如平均恢复时间(MTTR)等,来帮助决定如何最好地利用其资源。
使用正确的 DevOps 工具和云技术
许多人认为实施工具是向 DevOps 过渡的核心。事实上,DevOps 工具可以提供急需的自动化和可重复性——DevOps 的关键原则。但如果不支持适当的操作流程,即使是最好的软件也会失败。常用工具包括:
版本控制和源代码控制工具
CI/CD 自动化服务器,例如 Jenkins、Bamboo 或 GitLab CI/CD
Appium、Selenium 和 Test Sigma 等连续测试工具
自动发布和部署工具
容器化和虚拟化工具,例如 Kubernetes、Docker 和 Vagrant
编排和工作负载调度工具等
DevOps 正在推动对云计算的兴趣和需求。由于 DevOps 专注于持续创新并加快从开发到生产的软件交付,云操作也需要在云环境中不断改进。如今 DevOps 环境必须更新底层的分布式云基础设施,以扩展和管理使用类似服务支持这些操作的应用程序。DevOps 需要关注他们使用的所有云服务的可衡量价值。
参考链接:
https://dzone.com/articles/devops-best-practices-for-fintechs
https://relevant.software/blog/fintech-and-devops/
版权声明: 本文为 InfoQ 作者【SEAL软件供应链安全】的原创文章。
原文链接:【http://xie.infoq.cn/article/9dbfdb7759ce25eb00033bd0d】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论