亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

互联网技术架构的启示

  • 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:109156
用户头像

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

关注

评论

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

开源IM项目OpenIM 客户端SDK架构剖析-确保消息的有序性,以及消息百分百可达

Geek_1ef48b

社区活动| Apache Pulsar 中文开发者与用户组志愿者招募

Apache Pulsar

开源 架构 云原生 Apache Pulsar pulsar 社区

微博系统中”微博评论“的高性能高可用计算架构

Geek_8d5fe5

#架构实战营 「架构实战营」

数字化时代,如何做好用户体验与应用性能管理

云智慧AIOps社区

监控宝 监控工具 自动化运维 数字化经济

java培训JVM基础面试题分享

@零度

Java JVM

VuePress 博客之 SEO 优化(三)标题、链接优化

冴羽

Vue 前端 vuepress SEO 博客搭建

从撞“新秀墙”到带团队,XTransfer海归码农升级之路

XTransfer技术

程序员 职场 创业公司

周边生态|StreamNative 联合 Cloudera 开源 Apache Pulsar+Apache NiFi 集成处理器

Apache Pulsar

cloudera 开源 架构 云原生 Apache Pulsar

征文丨TiDB 社区专栏第一届征文大赛,快来一次性集齐所有周边吧!

PingCAP

Flink CDC 项目 GitHub star 破 2000,新增来自XTransfer的Maintainer 成员

XTransfer技术

mongodb flink 社区

MQTT、CoAP 还是 LwM2M?主流物联网协议如何选择

EMQ映云科技

物联网 IoT mqtt emq 物联网协议

JavaScript实现网页截屏五种方法

锋享前端

安全大讲堂 | 谭晓生:安全即服务,万物互联下的网络安全新机遇

腾讯安全云鼎实验室

网络安全 商业化 产业安全

【工具】多人在线协同编辑文档软件

小炮

团队协作 工作效率

如何使用 Checkmk 监控 SSL TLS 证书?

Ethereal

新华三解答:乘“东数西算”东风 算力网络向何处?

科技热闻

翻译 | Kubernetes 将改变数据库的管理方式

RadonDB

数据库 Kubernetes RadonDB

2022年了,微信商城小程序还值得做吗?

源字节1号

小程序 微信小程序 开发商城

web前端培训MySQL面试题binlog日志的作用

@零度

MySQL 前端开发

大数据培训hive数仓存储格式详解

@零度

hive 大数据开发

Rust类型

Shine

读书笔记 rust

Web 键盘输入法应用开发指南(9)—— 标准与实现

天择

JavaScript 键盘 输入法 3月月更

电科申泰加入龙蜥社区并成为理事单位,共创基础软硬件生态新未来

OpenAnolis小助手

开源 理事单位 申威 软硬件

一站式运维管理工具平台 OCP 到底有多好用,看这篇文章就够了!

OceanBase 数据库

在 Manjaro 上安装 Chrome

信号量

chrome Linux

私有云与公有云,哪种云模型最适合企业的需求

Ethereal

技术创想 | shiro550和721反序列化简谈

领创集团Advance Intelligence Group

反序列化

【C语言】三子棋游戏与多子棋 (保姆级的实现过程)

謓泽

3月月更

这门面向应用开发者的 TiDB 使用教程,TiDB SQL、Connector API、架构体系…你一定不能错过!

PingCAP

netty系列之:java中的base64编码器

程序那些事

Java 程序那些事 3月月更

2022 年值得关注的 9 个最新 Java 趋势

Ethereal

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