写点什么

互联网技术架构的启示

  • 2014-02-23
  • 本文字数:2369 字

    阅读完需:约 8 分钟

最近,“金融电子化”的微信 (fcmag1993) 中发表了中国建设银行信息技术管理部副总经理王申科撰写的一篇精彩文章“互联网技术架构给我们的启示”,他从商业银行 IT 从业人员的角度,总结和分析了阿里、谷歌等互联网企业的技术路线、架构和管理,从基本计算机理论与模型、互联网应用的技术基础、商业银行应用系统的技术基础、对银行业的启示等几个方面做了深入的讨论。

在“基本计算机理论与模型”一节中,王申科提到了分布式系统、CAP 理论(一致性、可用性、分区容忍性)、ACID 模型(原子性、一致性、隔离性、持久性)和 SOA 面向服务架构等,其中分析了有别于 ACID 的 BASE 模型:

BASE 则是另外一个理念和思路,Basically Available 为基本可用,Soft-state 为软状态 / 柔性事务,EventualConsistency 为最终一致性。BASE 模型完全不同于 ACID 模型。牺牲高一致性,获得可用性。对一个“基本可用”系统来说,需要把系统中的所有功能点进行优先级的划分,对于系统内部的状态,采用一种柔性的策略,假如系统内分布了 3 个功能模块,允许它们在某一时刻 3 个模块的状态可以不一致。然后通过业务和技术的手段,例如采用异步机制或者批处理方式,来保证系统通过柔性状态一致来获得可用性。当前互联网应用在业务允许范围里普遍参考 BASE 模型来进行系统设计。

对于分布式系统,他以 Google 为例:

Google 在构建搜索系统时,第一次将分布式系统和互联网结合起来,用分布式系统来解决互联网问题。Google 的分布式系统设计有几个重要的特征:视失败为常态;重视横向伸缩性;预测性能,追求低延迟,廉价的硬件和软件,推崇重用,灵活设计,加入足够的监测点和调试功能来帮助日后的调试,优先虚拟计算。 Google 的这些设计思想,成为互联网应用开发事实上的标准和规范。

对于“互联网应用的技术基础”,王申科总结了几个方面:

  • 基于 x86 服务器集群和开源软件搭建技术设施,分布式架构 + 开源软件是其基本特征。
  • 积极进取的创新精神。以阿里巴巴为例,短短几年先后自主开发了许多技术产品。
  • 基于场景的需求分析和应用开发。
  • 平台化建设理念,提高开发效率和系统质量。
  • 自动化部署和运维体系。
  • 成本控制意识和自主掌控能力。

其中的”基于场景的需求分析和应用开发”, 他分析了阿里巴巴的开发原则:

SOA 服务化,所有系统采取服务化模式,系统之间进行必要的分拆和隔离,通过服务调用和消息通知的方式进行协同;BASE 和 ACID 相结合,能够采取 BASE 模式的业务一定是异步方式,而核心的账务信息一定是采取实时方式,保证 ACID;无单点设计、可监控、可测试、可回滚、可禁用、短事务与柔性事务、异步设计、无状态、使用成熟技术、业务分等级、业务可降级、多数据中心部署。

对于“自动化部署和运维体系”,王申科总结了阿里巴巴的经验:

开发了一套资产信息采集程序和采集流程,将服务器、网络设备、存贮等资产信息,采集到数据库中。应用系统不再关心具体的资源信息,无论资产还是资源都是处于动态的变化中。通过资产信息和资源的变更流程,资产信息,硬件信息和应用信息的任何变更,必须通过系统进行变更记录,详细记录每个设备的生命周期里的各种变化。变更流程和工作流系统对接,通过工作流系统进行分级审批之后,才能进行相应的变更。以自动化采集为核心的资产管理体系,主动监控确保资源池一致性,保证资产信息的准确性。对资源进行回收和重新分配的时候,先要确保资源的状态。对于资源的数据,必须采取主动监控的做法,确保数据的可靠性,其具体做法是每天对设备的信息进行重新抓取,并与数据库里的状态进行匹配,发现不一致的数据,报警并锁定资源,不允许对资源进行任何操作。通过这种自动化的方式,杜绝人为错误,确保资产数据和资源池信息的数据一致性,是资源池可信的重要保证。

在“商业银行应用系统的技术基础”方面,他分析了以下方面:

  • 通用信息技术和商业化软件是基础,集中式系统部署。
  • 面临完全依赖供应商的被动局面。
  • 交易系统突出资金安全和核算的准确性,数据一致性要求高,客户体验差。

其中对于第 2 点,王申科认为:

商业银行在信息技术支持和保障能力、技术进步和创新能力、技术采购议价能力、设备升级周期和扩容、成本控制等方面,很大程度上依赖信息技术供应商。从历史看,商业银行应用系统大多采用三层架构:服务层、应用层和数据层,最近几年逐步加入 ESB 层。每层采用双机或集群技术支撑业务应用。早期以纵向(scale-up)升级扩容为主,现在逐步采用横向(scale-out)扩容方式或虚拟化方式。这种历史发展过程中形成的架构和技术路线,很难适应发展迅速的互联网时代应用需求。

在“对银行业的启示方面”,王申科总结了以下几个方面:

  • 用互联网的思维,认真思考和规划商业银行的信息化建设工作。
  • 引入分布式架构和开源软件,构建集中式和分布式共存的架构体系。
  • 突出核心能力,理性看待“去 IOE”。
  • 从设备供应商向服务供应商转型。
  • 积极主动与互联网公司开展合作。

他认为:从应对市场的整体效果看,互联网分布式架构明显优于商业银行传统集中式架构,核心差别在于两类不同的应用架构理念,以及两类不同的技术团队管理、支持方式。因此,从应用入手,着手调整商业银行传统的技术架构和供应商管理方式,制定商业银行的技术架构设计规范和部署策略,实现架构的科学管理。仅从技术角度看,“去 IOE”的实质是分布式架构和集中式架构、开源软件和商用软件的选择问题,各自的利弊见仁见智。商业银行 IT 从业人员的核心竞争力主要体现在对银行业务理解,以及对信息技术的熟练应用和应用架构设计能力,用信息化支持、推动和引领业务创新。

对互联网架构领域感兴趣的读者可以关注即将于 2014 年 4 月 25~27 日在北京国际会议中心召开的 QCon 北京 2014 大会,专题包括知名网站案例分析扩展性、可用性与高性能云计算服务探秘大数据处理与大数据应用等,许多讲座都与架构相关。读者可点击大会主页查看详情。

2014-02-23 20:109772
用户头像

发布了 501 篇内容, 共 286.0 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

去哪儿网MySQL日志分析实践,80%数据丢失都给你救回来!

Qunar技术沙龙

dba

恒源云 (Gpushare)_Restormer:用于高分辨率图像重建的高效Transformer

恒源云

人工智能 深度学习 Transformer

在基础语法中Java与c++有哪些不同?(对于学过c++转Java必看)

工程师日月

c++ java 5月月更

实践GoF的23种设计模式:建造者模式

华为云开发者联盟

Go 设计模式 GoF 建造者模式

Consul的基本使用与集群搭建

神农写代码

华创视讯加入龙蜥社区,携手共建开源新生态

OpenAnolis小助手

开源 龙蜥社区 CLA 华创视讯 龙腾计划

文章插图汇总

武师叔

基调听云研发总监杨金全出席CSDN可观测性与APM峰会

基调听云

云原生 APM 可观测性 基调听云

企评家|华润三九医药股份有限公司成长性评价报告摘要

企评家

塔米狗企评家 企业评价 企业成长性分析 企评家 企业投资价值评价

一个小操作,SQL查询速度翻了1000倍。

TiDB 社区干货传送门

疫情时代如何提高办公效率?

小炮

区块链系统开发,交易所交易平台搭建

Geek_56201b

建木持续集成平台v2.3.1发布

Jianmu

开源 DevOps 自动化 持续集成 gitops

TiKV 缩容不掉如何解决?

TiDB 社区干货传送门

网站开发进阶(三十三)中文字符编码问题解决总结

No Silver Bullet

异常 5月月更 中文编码

开家自助洗车房需要投资多少钱

共享电单车厂家

自助洗车加盟 开自助洗车店多少钱 开家自助洗车房

用上这个 Mock 神器,让你的开发爽上天!

Liam

前端 前端开发 Postman Mock Mock 服务

Java中容易混淆的基础知识

工程师日月

java 5月月更

加盟自助洗车需要营业执照吗

共享电单车厂家

自助洗车加盟 加盟自助洗车

解决方案| 阿里云数据库MongoDB版助力餐道显著提升运维效率,打造卓越餐饮/零售服务

MongoDB中文社区

mongodb

Hadoop hdfs 的shell操作

Emperor_LawD

hadoop Shell 5月月更

开发板上新抢先知!居然可以用来跑游戏?

HarmonyOS开发者

开发板 HarmonyOS

Redis命令HSCAN踩坑指南

Qunar技术沙龙

dba

从手工测试到自动化测试进阶,需要学什么?结合自身分享我10+年的测试经验!

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

自助洗车加盟都要注意哪些事项

共享电单车厂家

自助洗车加盟 自助洗车机厂家 自助洗车品牌

行业案例| MongoDB在腾讯零售优码中的应用

MongoDB中文社区

mongodb

gRPC服务开发和接口测试初探【Go】

FunTester

从活动能力层建设看业务架构

Qunar技术沙龙

业务架构

购买自助洗车机时都要注意哪些

共享电单车厂家

自助洗车机多少钱 自助洗车机价格 自助洗车加盟 购买自助洗车机

网站开发进阶(三十六)String.getBytes()方法中的中文编码问题解决总结

No Silver Bullet

编码 5月月更 getBytes

技术干货| MongoDB如何查询Null或不存在的字段?

MongoDB中文社区

mongodb

互联网技术架构的启示_Google_崔康_InfoQ精选文章