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

简介:

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

1. 开发框架

在系列文章的第2篇“BAT解密:互联网技术发展之路(2)- 业务如何驱动技术发展”中我们深入分析了互联网业务发展的一个特点:复杂性越来越高。复杂性增加的典型现象就是系统越来越多,不同的系统由不同的小组开发。如果每个小组用不同的开发框架和技术,将会带来很多问题,典型的问题有:

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

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

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

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

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

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

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

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

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




2. 服务器

开发框架只是负责完成业务功能的开发,真正能够运行起来,给用户提供服务,还需要服务器配合。

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

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

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




3. 容器

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

传统的虚拟化技术是虚拟机,解决了跨平台的问题,但由于虚拟机太庞大,启动慢,运行时太占资源,在互联网行业并没有大规模的应用;而docker的容器技术,虽然没有跨平台,但启动快,几乎不占资源,推出后立刻就火起来了,预计docker类的容器技术将是技术发展的主流方向。

千万不要以为docker只是一个虚拟化或者容器技术,它将在很大程度上改变我们目前的技术形势:

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

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

例如一个传统的网站包括登录注册、页面访问、搜索等功能,没有用容器的情况下,除非有特别大的访问量,否则这些功能开始时都是集成在一个系统里面的;有了容器技术后,一开始设计就可以将这些功能按照服务的方式设计,避免后续访问量增大时又要重构系统。






相关文章
|
7月前
|
存储 监控 NoSQL
干货文:企业 IT 基础架构|(精华篇)
干货文:企业 IT 基础架构|(精华篇)
714 1
|
运维 Dart 前端开发
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】(下)
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】
274 0
|
移动开发 Dart 前端开发
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】(中)
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】
249 0
|
移动开发 Dart 前端开发
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】(上)
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】
230 0
|
小程序 容器
|
云安全 数据采集 边缘计算
政企数字化转型,不可不知的安全内容分发网络实践指南
在后疫情时代,数字化已经成为中国经济的主要驱动力,政企的数字化转型被按下快进键。作为承载数字经济的“关键信息基础设施”,既要满足网络化、在线化的用户体验需要,又要符合逐渐加强的安全监管要求。这已经成为各类政企互联网应用服务所需面临的最大挑战之一,如何为关键信息基础设施构建安全的内容分发网络?看看阿里云产品专家曾林青出席在中国网络安全年会上分享了什么。
1764 0
政企数字化转型,不可不知的安全内容分发网络实践指南
|
机器学习/深度学习 消息中间件 人工智能
【1012 - 1016直播导视 | PPT 下载】走进工业级图神经网络框架GraphLearn、一个真正人人可用的云时代研发模式已经到来!
本周将为你带来多场技术公开课:开源日也迎来第四期走进工业级图神经网络框架GraphLearn;并且还有阿里云Serverless云开发平台风驰为你揭秘一个真正人人可用的云时代研发模式已经到来!
5637 0
|
网络协议 应用服务中间件 云计算
云计算-从基础到应用架“.NET研究”构系列-云计算的演进
  开篇   本篇是主要讲述云计算的发展历程,由于云计算本身提出来也不是太久,并且其实云计算也是经过前人的一些经验总结提出,所以我们对之前的一些计算机的发展史有个一定的了解,那么对云计算的理解就更深入了,当今信息化技术的飞速发展,用户通过浏览器完成信息服务的访问,促进了从传统的数据中心的模式转变到云计算的模式的动力,随着服务器虚拟化,并行处理,向量处理等技术的飞速发展,推动了现有企业应用模式的转变,本文将会针对这些描述进行阐述,加深对云计算的理解,当然如果您在本文中发现错误之处,那么请您批评指出,谢谢。
1138 0
|
算法 大数据 数据安全/隐私保护
大数据最核心的关键技术——32个算法,记得收藏!
奥地利符号计算研究所的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。
11901 0