BAT解密:互联网技术发展之路(5)- 开发层技术剖析

BAT解密:互联网技术发展之路(5)- 开发层技术剖析

1. 开发框架

在系列文章的第2篇“BAT解密:互联网技术发展之路(2)- 业务怎样驱动技术发展”中我们深入分析了互联网业务发展的一个特点:复杂性越来越高。

复杂性添加的典型现象就是系统越来越多,不同的系统由不同的小组开发。

假设每一个小组用不同的开发框架和技术,将会带来非常多问题。典型的问题有:

1)技术人员之间没有共同的技术语言,交流合作少

2)每类技术都须要投入大量的人力和资源和熟练精通

3)不同团队之间人员无法高速流动,人力资源不能高效的利用

所以,互联网公司都会指定一个大的技术方向,然后使用统一的开发框架,比如Java相关的开发框架SSH、SpringMVC、Play,Ruby的Ruby on Rails,PHP的ThinkPHP,Python的Django等等。使用统一的开发框架可以解决上面提到的各种问题,大大提升组织和团队的开发效率。

对于框架的选择,有一个总的原则:优选成熟的框架,避免盲目追逐新技术!为什么呢?

首先,成熟的框架资料文档齐备,各种坑基本上都有人踩过了,遇到问题非常easy通过搜索解决

其次,成熟的框架受众更广,招聘时更加easy招聘到合适的人才

第三,成熟的框架更加稳定,不会出现大的变动,适合长期发展

以我亲身经历的一个反例为例:我们使用了Play 1作为Java开发框架。由于它是轻量级的Java开发框架,但没想到Play 2直接改为scala语言开发,Play 1的架构演进停滞。而我们又不能切换为Play 2,结果就导致仅仅能一直用Play 1。有新的需求仅仅能自己开发。

2. server

开发框架仅仅是负责完毕业务功能的开发,真正可以执行起来。给用户提供服务,还须要server配合。

独立开发一个成熟的webserver,成本非常高;且业界又有那么多成熟的开源webserver,所以互联网行业基本上都是拿来主义,挑选一个流行的开源server就可以。牛逼一点的公司,可能会在开源server的基础上,结合自己的业务特点做二次开发,比如淘宝的Tengine,但一般公司基本上仅仅须要将开源server摸透,优化一下參数。调整一下配置就差点儿相同了。

选择一个server主要和开发语言相关。比如:java的有Tomcat、Jboss、Resin等。php/python的用nginx。当然最保险的就是用apache了,什么语言都支持。

有的人可能操心apache的性能之类的问题,事实上不用过早操心这个。等到你的业务真的发展到apache撑不住的时候再考虑切换也可以,那时候你有的是钱,有的是人,有的是时间。

3. 容器

容器是近期2年才開始火起来的。当中以docker为代表。在BAT级别的公司已经有较多的应用,比如腾讯:腾讯万台规模的Docker应用实践;新浪微博:微博红包:大规模Docker集群实践经验分享 等等。

传统的虚拟化技术是虚拟机,攻克了跨平台的问题。但由于虚拟机太庞大,启动慢。执行时太占资源,在互联网行业并没有大规模的应用;而docker的容器技术,尽管没有跨平台,但启动快。差点儿不占资源,推出后立马就火起来了,估计docker类的容器技术将是技术发展的主流方向。

千万不要以为docker仅仅是一个虚拟化或者容器技术,它将在非常大程度上改变我们眼下的技术形势:

1)运维方式会发生革命性的变化:docker启动快,差点儿不占资源。随时启动和停止,基于docker打造自己主动化运维、智能化运维将成为主流方式

2)设计模式会发生本质化的变化:启动一个新的容器实例代价如此低,将鼓舞设计思路朝“微服务”的方向发展。

比如一个传统的站点包含登录注冊、页面訪问、搜索等功能。没实用容器的情况下。除非有特别大的訪问量。否则这些功能開始时都是集成在一个系统里面的;有了容器技术后。一開始设计就行将这些功能依照服务的方式设计,避免兴许訪问量增大时又要重构系统。

时间: 2024-10-31 23:13:20

BAT解密:互联网技术发展之路(5)- 开发层技术剖析的相关文章

互联网技术发展之路(1) - 技术发展的驱动力

互联网技术发展之路(1) - 技术发展的驱动力 互联网行业是一个快速发展.快速变化的行业,新的业务.新的机会层出不穷,新的技术如雨后春笋般冒出,NoSQL.大数据.云.Node.js.Docker等,无时不刻都在轰炸程序员们的脑袋,难怪中国的程序员都流传一个说法:过了30岁不能做技术工作了,因为技术发展太快了! 快节奏带来机会,但对于技术人员来说,更多的是带来挑战,甚至有时候是困惑.例如: 1)Docker很火哦,咱们要不要用呢 ? 2)Node.js好牛逼啊,我们用上就更牛逼了...... 3

互联网技术发展之路(2)- 业务如何驱动技术发展

互联网技术发展之路(2)- 业务如何驱动技术发展 在<互联网技术发展之路(1) - 技术发展的驱动力>一文中,我们详细阐述了对于服务类的业务来说,业务发展是技术发展的驱动力.那接下来我们就看看业务究竟是如何驱动技术发展的. 互联网业务千差万别,但由于他们具有"规模决定一切"的相同点,其发展路径也基本上是一致的.互联网业务发展一般分为几个时期:初创期.快速发展期.竞争期.成熟期. 不同时期的差别主要体现在两个方面:复杂性.用户规模. 复杂性 业务的发展第一个主要方向就是&qu

BAT解密:互联网技术发展之路(8)- 用户层技术剖析

互联网业务用户层技术主要包括:用户管理.消息推送.存储云.图片云. 用户管理 互联网业务的一个典型特征就是通过互联网将众多分散的用户连接起来.因此用户管理是互联网业务不可缺少的一部分. 略微大一点的互联网业务,肯定会涉及到多个子系统,这些子系统不可能每一个都自己来管理这么庞大的用户.由此引申出用户管理的第一个目标:SSO,单点登录,又叫统一登录.单点登录的技术实现手段较多,比如cookie.token等,最有名的开源方案当属CAS. 除此之外,当业务做大成为了平台后.开放成为了促进业务进一步发展

BAT解密:互联网技术发展之路(7)- 网络层技术剖析

上一篇博文<BAT解密:互联网技术发展之路(6)- 服务层技术剖析>中,介绍了互联网业务发展特点的中的"复杂性"的应对方式,本文介绍互联网业务发展特点的另外两个方面"高性能"."高可用". 一般人提到高性能时第一想到的就是优化,提到高可用时第一反应就是双机或者备份,但是对于互联网这种超大容量和访问量的业务来说,这两个手段都是雕虫小技,无法应对互联网业务的高性能和高可用需求,互联网业务的高可用和高性能,需要从更高的角度去设计,这个高点就

BAT解密:互联网技术发展之路(4)- 存储层技术剖析

BAT解密:互联网技术发展之路(4)- 存储层技术剖析 1. SQL 即关系数据.前几年NoSQL火了一阵子,很多人都理解为NoSQL是完全抛弃关系数据,全部采用非关系型数据,但事实经过几年的试验后,大家发现关系数据不可能完全抛弃,NoSQL不是No SQL,而是Not Only SQL,即NoSQL是SQL的补充. 所以互联网行业也必须依赖关系数据,考虑到Oracle太贵,还需要专人维护,一般情况下互联网行业都是用MySQL.PostgreSQL这类开源数据库.这类数据库的特点是开源免费,拿来

读《百度基础架构技术发展之路》有感

这篇文章主要介绍SDF的研发过程,包括问题的提出,解决方案,以及部署在实际系统过程中遇到的问题.SDF的论文发表在ASPLOS 2014会议上.首先问题来自于实际工业环境:随着数据中心将成为承载互联网用户存储和计算的主要战场,如何设计和改进体系结构以满足大规模系统对性能,成本,功耗以及可扩展性的要求成为新的挑战.可以看到的是百度的ARM云服务器方案解决了存储的成本和功耗问题,而SDF架构则幅度提升了性能的性能(当然也会降低成本和功耗). SDF的提出是为了应对固态盘的诸多缺陷:其中包括带宽利用率

BAT解密:互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范

大部分人对于BAT的技术有一种莫名的崇拜感,觉得只有非常牛逼和天才才能做出现在的这些系统,但经过前面两篇博文的分析,我们可以看到其实并没有什么神秘的力量和魔力融合在技术里面,而是业务的不断发展推动技术的不断发展,一步一个脚印,持续几年甚至10几年的发展,才能达到当前技术复杂度.先进性.牛逼度. 抛开BAT各自差异很大的业务,站在技术的角度来看,其实BAT的技术架构基本是一样的,再将视角放大,你会发现整个互联网行业的技术发展,最后都是殊途同归. 如果你正处于一个创业公司,或者正在成为另一个BAT的

BAT解密:互联网技术发展之路(9)- 业务层技术剖析

互联网的业务千差万别,不同的业务分解下来有不同的系统,所以业务层没有办法提炼一些公共的系统或者组件,但抛开业务的差异,各个互联网业务发展最终面临的问题都是类似的:就是复杂度越来越高,也就是说,业务层面对的主要技术挑战是"复杂性". 幸运的是,面对业务层的技术挑战,我们有一把屠龙宝刀,神挡杀神,佛挡杀佛,不管什么业务难题,用上屠龙宝刀一试都迎刃而解.这把屠龙宝刀就是"拆". 复杂性的一个主要原因就是系统越来越庞大,业务越来越多,降低复杂性最好的方式就是"拆&

BAT解密:互联网技术发展之路(10)- 运维平台技术

备注:本来想自己写一篇运维体系的文章的,但毕竟不是专业运维人员出身,担心讲的太肤浅,因此转载我的好朋友王金银(江湖人称老王)同学发表在InfoQ的运维体系介绍.老王的牛逼相信很多同学已经领教过了,全球运维技术大会深圳站一个人专场讲运维能讲3个小时,而且会场还爆满,更多老王的介绍可以参考文章的最后,也可以关注老王的微信公众号:互联网运维杂谈. 原文链接:运维平台规划体系全介绍 =============================================================