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)设计模式会发生本质化的变化:启动一个新的容器实例代价如此低,将鼓舞设计思路朝“微服务”的方向发展。
比如一个传统的站点包含登录注冊、页面訪问、搜索等功能。没实用容器的情况下。除非有特别大的訪问量。否则这些功能開始时都是集成在一个系统里面的;有了容器技术后。一開始设计就行将这些功能依照服务的方式设计,避免兴许訪问量增大时又要重构系统。
BAT解密:互联网技术发展之路(5)- 开发层技术剖析的更多相关文章
- web技术发展历程--读《大型网站技术架构_核心原理与案例分析》
1 早期的web服务 2 CGI程序的出现.发展.凋零到MVC的兴起 CGI:通用网关接口技术. 随着CGI技术的出现,web服务端可以通过不同的用户请求产生动态页面内容. web服务器将请求数据交给 ...
- 【CSDN人物访谈】蒋守壮分享他的技术成长之路以及对Hive技术的解读与思考
结缘大数据技术 CSDN:请简单地介绍一下自己. 蒋守壮:首先非常感谢CSDN能够给我这次被专访的机会,可以让我重新审视自己的职业发展历程,也希望能够帮助一些同行的朋友们.目前就职万达网络科技集团有限 ...
- BAT 解密(四):配置中心、服务中心、异步技术细节
在系列文章的第二篇文章< BAT解密(二):聊聊业务如何驱动技术发展 >中我们深入分析了互联网业务发展的一个特点:复杂性越来越高.复杂性增加的典型现象就是系统越来越多,当系统的数量增加到一 ...
- 十年WEB技术发展历程
一个小分享,知识有限,抛砖引玉. ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生.传奇,大话西游第一代网游一时风靡.我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一 ...
- Web开发技术发展历史
Web开发技术发展历史 来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...
- IS创新之路 -- 都昌公司赋能型HIT企业发展之路
◆◆前言 近日,上海瑞金医院对我司表示:“我院从2000年开始自主开发医院信息系统,走出了一条可持续的信息化发展之路.已建成五大系统,284个子系统.但我院仍然坚持在努力推进以电子病历为核心医院信息化 ...
- 【转载】Web开发技术发展历史-版本1
原文在这里. Web开发技术发展历史 Web的诞生 提到Web,不得不提一个词就是“互联网”.Web是World Wide Web的简称,中文译为万维网.“万维网”和我们经常说的“互联网”是两个联系极 ...
- 阿里云杨敬宇:边缘计算行业通识与阿里云ENS的技术演进之路
近日,阿里云杨敬宇在CSDN阿里云核心技术竞争力在线峰会上进行了<5G基础设施-阿里云边缘计算的技术演进之路>主题演讲,针对5G时代下,行业和技术的趋势.边缘计算产业通识以及阿里云边缘计算 ...
- APP技术演化的路
谈起APP,大家都太熟悉不过了,今天想谈谈这么多年技术演化的路. 早期一些大公司就开始做一些APP了,例如facebook.google等国外的公司就已经开发这个技术路线,那个时候的APP数量很少,基 ...
随机推荐
- Hyper-v: Snapshot merge
我有一个Hyper-V上的虚拟机, 在使用的过程中我给这个虚拟机创建了多个snapshots. 有一天我把整个的snapshots tree从root删掉了(delete snapshot with ...
- WPF, WPF Browser Application(XBAP) 和 Silverlight 的区别
由图可见,XBAP与WPF的区别是“受限的”:Silverlight与XBAP的区别是,不需要.NET Framework. 上星期與以前的同事爭論著究竟使用XBAP來開發XX用戶端 (為筆者之前開發 ...
- FAQ:领域服务和应用服务的职责是什么?
问答部分 问: 领域服务的职责是什么? 答: 夸聚合实例业务逻辑. 没办法合理放到实体中的其它业务逻辑. 问: 领域服务的设计原则是什么? 答: 用来组织业务逻辑. 面向业务逻辑. 细粒度. 内部视图 ...
- Ajax技术——与服务器通信
1. 发送请求 Ajax可以通过XMLHttpRequest对象实现采用异步方式在后台发送请求.通常情况下,Ajax发送请求有两种,一种是发送GET请求,另一种是发送POST请求.但是无论发送哪种请求 ...
- 织梦(Dedecms)select_soft_post.php页面变量未初始漏洞
漏洞版本: Dedecms 5.5 漏洞描述: 漏洞产生文件位于include\dialog\select_soft_post.php,其变量$cfg_basedir没有正确初始化,导致可以饶过身份认 ...
- Node.js:常用工具、路由
一.常用工具util util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. 1.util.inherits util.inherit ...
- easyui更换主题之后出现validatebox的验证提示信息显示跑偏的解决方案
在easyui中更换主题为非default的主题,有的主题会出现如下图所示的情况,验证提示信息的提示内容跑到了下面. 现在说下原因和解决方案: 原因:原因是easyui对某些主题没有进行这个样式的设置 ...
- win10 修改cmd终端编码格式为utf8
最近在使用ssh 连接服务器时,好多中文显示为乱码,查明原因,是因为自己cmd终端编码给是为gbk,而服务器编码格式为utf8,所以需要修改cmd终端编码格式为utf8,但是网上看到好多解决方案是 1 ...
- PHP curl 抓取AJAX异步内容
其实抓ajax异步内容的页面和抓普通的页面区别不大.ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即 ...
- Cognos权限Custom Java Provider表结构实例
select * from org_user;USER_ID USER_CODE USER_NAME FULL_NAME EMAIL PWD2 889 zhangsan 张三 123@126.com ...