NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

2010 年大规模技术架构的思路

  • 2010-03-15
  • 本文字数:2249 字

    阅读完需:约 7 分钟

相比其他行业,IT 技术由于信息流动便捷,新技术更新非常频繁。架构师经常面临新技术及传统方案选择的困惑。架构师应如何抓住本质构建新一代的应用?本文从几个方面提出一些思路供架构师参考。

编程语言

2009 年编程语言领域也发生了不少变化。虽然架构师通常都表示编程语言并不重要,但事实上每一次大的语言改进还是对业界产生非常大的影响,同时大部分技术团队也依赖某一两种编程语言。下面介绍几种值得架构师关注的语言及热点。

Erlang 近几年在并发编程与分布式领域比较受关注。2009 年 11 月 7~8 日在杭州举办了第四次 Erlang 全国开发者大会(CN Erlounge IV)。从会议主题及参会者的讨论来看,Erlang 在 2009 年在一些先行项目中取得了不错的效果,同时 Erlang 的并发编程思想也在其他语言得到了一些借鉴和应用。预计 2010 年 Erlang 会继续在小圈子内流行,目前业界应用 Erlang 技术最大的障碍不是 Erlang 技术本身,而在于缺乏这方面专业人才,与 C++/Java 相比,Erlang 暂时不具备大规模团队协同开发的条件。

Scala 也是一门和 Erlang 类似的函数式编程语言, 由于 Scala 是基于成熟 JVM 并具有丰富的周边 library,因此相比于 Erlang 切换成本和风险都低很多。尤其是 Java 团队如果希望利用函数式及并发编程优势的可以关注。

2009 年 11 月,Google 发布了一种新的语言 Go,它在系统编程领域具有很多优势,如支持 goroutine 并行编程模型,支持 GC,编译速度快等。很多系统程序员表示 Go 就是他们心中的“梦中情人”。但是由于刚推出不久的缘故,Go 还是不适合在生产环境使用,建议保持跟进。

在网页编程领域,PHP 仍然是 Web 页面编程语言首选。如 Facebook 谈到选择 PHP 的原因是“开发效率高,支持快速的产品迭代”。2010 年 2 月,Facebook 开源了 HipHop 框架,在 PHP 业界引起较大的轰动。它将 PHP 编译成 C++ 执行,可以提高性能 50%。据 Facebook 博客上的资料,HipHop 发布仅半年之后,Facebook 90% 的 Web 服务器都用上了 HipHop。据估算,Facebook 每月有 4000 亿页面访问,则 HipHop 承担了 3600 亿。如果节省 50% 服务器的开销,那将是非常大的节省。希望在 2010 年国内的 PHP 开发者也能充分利用 HipHop 的成果。

Ruby 由于具有快速的开发效率,近年来在 Web 开发领域异军突起。首届中国 Ruby 大会 2009 年 5 月 21 日上海召开,Ruby 创始人 Matz 也亲自来华做了主题演讲。从大会来看 Ruby 社区在国内已经比较蓬勃。预计在 2010 年 Ruby 会在企业应用和部分互联网 Web 应用中得到更广泛的使用。

存储:从 Cache、数据库到分布式文件系统

Web 2.0 的设计中,Cache 会成为一个中心元素。传统的 web 应用瓶颈通常在数据库或者应用程序上,但是最近 Twitter 的一篇技术博客的分析,Twitter 广为人知的“鲸鱼”故障的罪魁祸首竟然是 Memcached。因此最近技术界流传一句新的名言,“Disk is the new Tape,RAM is the new Disk。”意思就是说传统 SQL 存储已经像旧的磁带机一样成为应用的瓶颈,需要把一切数据都放在内存里面才能满足新的应用需求。另一 Web 2.0 应用巨头 Facebook 也广泛使用 Memcached,据称每秒访问量达 2 亿次以上。

在 2009 年数据库受到 NoSQL 运动的冲击。NoSQL 是指用非关系数据库的方式来存储数据,通常也指用 key value 方式存储。比较有名的有 Tokyo Cabinet, Redis, Cassandra 等。由于大部分 Web 应用的需求是基于主键查询,同时业务上又常常面临更改表结构字段的需求。如果将所有数据内容作为一个 value 字段存入,相对于 SQL 模式,使用更简洁,维护方便。在性能上一些 key value 产品比传统的 SQL 在小数据访问性能上有一个数量级的提升。因此 key value 存储迅速被业界接受及采用。

分布式文件存储也具有广泛需求,目前开源的解决方案有 HadoopFS,MogileFS 等。很多互联网公司目前也借鉴 GFS 来开发自己分布式存储产品。

可扩展架构:从手工切分到云服务

LAMP 是一种经典的 Web 架构设计,他指用 Linux, Apache,MySQL,PHP 来搭建 Web 架构。当 Web 请求量增大到单台服务器没法承载时典型解决方案是对应用服务器及数据库进行切分。目前切分大部分是借鉴 LiveJournal 模式,由于 LiveJournal 架构设计甚至大部分源代码都是公开的,因此在过去很多架构师设计 LAMP 扩展通常是在 LiveJournal 基础上作出改进。

从 2009 年开始,由于云计算的蓬勃发展,LAMP 发生了两大变化。首先,部分原先用数据库如 MySQL 的场合开始被 key value 存储代替。分布式的 key value 存储产品本身解决了扩展,负载均衡,复制,数据一致性等问题。无需架构师手工编写代码解决数据过大后的分表问题。

另外一个变化是 PHP/Python/Java 等语言可以运行在一个 App Engine 的容器上,这个容器可以托管一个几行代码的 hello world 项目,也可以承载上千万访问量的用户的大型项目。App Engine 自身具有可扩展性,容错性,负载均衡,用户可以自动访问最近的 IP 等特性。它对于需要架构师根据业务来切分的传统做法是一种全新体验。

在 2010 年,分布式存储及 App Engine 模式是架构师需要考虑的两大方向。

相关内容淘宝网架构师岳旭强的年度展望


个人简介:杨卫华,新浪产品事业部技术经理,目前工作以开发高并发的分布式应用为主。对互联网后端技术,分布式,网络编程,XMPP 即时通讯等领域感兴趣。曾组织多次广州及珠三角技术沙龙活动。个人blog 为: http://timyang.net/

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2010-03-15 22:4713206

评论

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

小步发布、验收测试和完整团队

Teobler

项目管理 敏捷 敏捷开发 工程实践 敏捷开发管理

敏捷技术实践之TDD

Teobler

敏捷 敏捷开发 TDD 极限编程 测试驱动开发

1.2 Go语言从入门到精通:编写第一个Go程序

xcbeyond

28天写作 Go 语言

基于SpringBoot实现文件的上传下载

Java鱼仔

springboot

应云而生,幽灵的威胁 - 云原生应用交付与运维的思考

阿里巴巴云原生

云计算 容器 微服务 云原生 k8s

区块链技术在各国政府管理中的运用

CECBC

区块链

使用 Tye 辅助开发 k8s 应用竟如此简单(六)

newbe36524

Docker Kubernetes 微服务 dotnet

CIO/CTO必读 | 数字转型时代,企业存储支出知多少

焱融科技

存储 焱融科技 CIO 存储成本 IT成本

基于WASM的无侵入式全链路A/B Test实践

韩陆

又长又细,万字长文带你解读Redisson分布式锁的源码

数据库 redis 架构

备战金三银四,阿里,腾讯春招面试题解析,含Java岗988道题分享

Java 架构 面试

“他者”德意志(一):“进窄门”的德国AI

脑极体

敏捷团队实践

Teobler

项目管理 敏捷 敏捷开发 工程实践 敏捷开发管理

山东区块链赋能农产品溯源平台解决方案

源中瑞-龙先生

微信小程序开发笔记(一)

陈飞

小程序

28天瞎写的第二百四十四天:冥想的种类

树上

冥想 28天写作 正念

首全网发!2021最新版美团面经刷题笔记,已霸榜GitHub

比伯

Java 编程 架构 面试 程序人生

敏捷业务实践之计划游戏

Teobler

项目管理 敏捷 敏捷开发 敏捷开发管理

滴滴开源 LogicFlow:专注流程可视化的前端框架

滴滴技术

OpenYurt 如何 “0 侵入” 攻破云边融合难点

阿里巴巴云原生

云计算 Serverless 容器 云原生 边缘计算

利用xml实现数据传输

天狼

产业数字金融的数字化与生态化

CECBC

金融

泰康和百度智能云为何相互需要?

吴俊宇

百度 保险数字化 泰康

【Python】关于 Type Hints 你应该知道这些

zhujun

Python

Selenium 自动化前的补充知识,Frame操作、多窗口切换、模糊定位、复合定位

梦想橡皮擦

Python 28天写作 2月春节不断更

Elasticsearch 一个 field 两个索引

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

华为发布智能云网“五个一”新能力,助力运营商完成云与网的价值归一

脑极体

一名叫谙忆的程序员在2021年的具体安排《打工人的那些事》

谙忆

【科技改变生活,区块链改变世界】欧科云链徐明星的区块链密码朋克世界

CECBC

区块链

爬虫知识记录之一

头号摄影师

爬虫

我凭借这份“2021全网最全Java面试清单”彻底征服阿里面试官

比伯

Java 编程 程序员 架构 面试

2010年大规模技术架构的思路_Java_杨卫华_InfoQ精选文章