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)設計模式會發生本質化的變化:啟動一個新的容器實例代價如此低,將鼓勵設計思路朝“微服務”的方向發展。
例如一個傳統的網站包括登錄注冊、頁面訪問、搜索等功能,沒有用容器的情況下,除非有特別大的訪問量,否則這些功能開始時都是集成在一個系統里面的;有了容器技術后,一開始設計就可以將這些功能按照服務的方式設計,避免后續訪問量增大時又要重構系統。
總結
以上是生活随笔為你收集整理的BAT解密:互联网技术发展之路(5)- 开发层技术剖析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11g Active DataGuard
- 下一篇: 从FTP服务器进行文件的上传和下载