百億互金平臺技術棧大起底

技術棧(technology stack)就是一個公司的透視鏡,從某些程度上可以展示出公司的技術實力。從技術桟也可以看出整個平臺的技術要素,平臺大小規模等,今天來給大家分享我司的技術全家桶。

百億互金平臺技術棧大起底

題外話

今天是一個特殊的日子,我就多說兩句,2017年過半了,大家的年終計劃都執行的怎麼樣?而對於我還有另一層的意思,就是我終於要離職了。

今天是我在這家公司的最後一個工作日。以前每次和朋友聚會都會問,最近發展的怎麼樣,在那家公司?我說還在xx,他們就開玩笑說,強哥你準備把公司幹倒呀。從寫下一行代碼到成爲公司技術的負責人我用了三年的時間,期間經歷很多事情,但總體還是收穫了很多。看着公司三年多的變遷,也有很多感慨,但是目前的這個階段也不方便多說。

公司在14、15年的時候發展勢頭很好,一度有衝擊一線互金平臺的趨勢,互聯網行業就是這樣,不進則退,短短兩年就脫離了互金的一線大本營。這兩年發生了什麼會導致公司迅速掉隊呢?公司文化絕對是第一原因。公司文化就像一個人的氣質一樣,從開始就決定了往後的發展,公司文化也是一種風氣,幹勁十足、人浮於事、混日子都會傳染,特別如果老闆都是打工心態的話,公司肯定做不好。

兩個大家肯定感興趣的問題:爲什麼離開公司,原因只能回答:一聲嘆息,以後有機會可以給大家慢慢道來。我將去那家公司?已經有下家,暫時也不方便告知,望見諒。

總覽

回到主題,這兩天已經提了離職,閒來無事就想着還可以總結總結什麼,平臺架構、事故解決方案等以前都寫過了,這次就主要寫寫我們都用過那些技術吧。我分了五塊內容來介紹我們的技術棧:前端、後端、中間件、運維和工具。畫了一個思維導圖方便大家整體預覽。

百億互金平臺技術棧大起底
點擊這裏看大圖

接下來就展開來說

前端

百億互金平臺技術棧大起底

我司的前端比較簡單主要分爲了三大塊:PC前端、移動端、模板引擎。

  • PC前端 主要使用了H5、JS,還有很多其它的組件,但以前兩者爲主。少量的使用過angularjs,最後效果不是特別好,放棄了
  • 移動端 分了三塊:安卓、IOS、WAP。安卓前期主要以Java語言爲主,現在慢慢在考慮kotlin;IOS以Objective-c爲主,少量使用Swift;WAP又稱H5,用於微信或者手機瀏覽器,也是使用Html5、js、少量使用了VUE,H5端的一些JS組件和PC會有不同,一般都有對應的替代品比如:使用zepto替代jquery。
  • 模板引擎 前期一直使用的是Beetle,大量使用springboot後替換爲Thymeleaf,Thymeleaf使用體驗很不錯。

後端

後端以開發語言的角度給大家介紹

百億互金平臺技術棧大起底

後端使用的開發語言有:php、golang、python和Java。

  • php 我們公司的前端的網站都是使用php開發,框架主要使用了thinkphp,小項目試驗性的用了laravel。
  • golang 主要用於大數據,使用gin框架,用beego做過一個後臺。
  • python 沒有在公司用過,自己寫小爬蟲玩。
  • java 公司最主要的開發語言,核心系統、支撐系統、服務組件均使用Java開發,下面詳細介紹一下。

Java技術棧比較多,這裏挑選了幾個具有代表性的來講:

  • spring 做Java開發的,幾乎離不開spring全家桶了,不需要多介紹。
  • alibaba 阿里這兩年非常牛逼,也開源了不少的東西,主要使用過dubbo和druid,都很優秀。
  • apache 如果說搞Java的離不開spring,那麼搞開發的就離不開apache,我們主要使用了commons、cxf、zookepper等。
  • orm框架 基本以mybatis爲主,hibernate和jpa爲輔的模式。
  • quartz 定時任務使用的quartz

中間件

這裏面是比較泛的中間件集合,把相關的組件也都包含進來,主要分爲:數據庫、web容器、消息、緩存、文件服務器和安全。

百億互金平臺技術棧大起底

  • 數據庫 業務主要使用mysql,需要跑批統計的離線數據由tungsten replicator同步到mongodb。
  • web容器 php使用的apache,Java使用的tomcat,靜態資源代理使用的是nginx
  • 消息 最開始使用activemq,後來架構升級全面替換爲rabbitmq
  • 緩存 滿標控制使用memcached,後端業務緩存使用redis
  • 文件服務器 最開始使用nginx做圖片服務器,後來上線合同就全面使用了fastdfs
  • 安全 https證書保證傳輸安全,shiro做權限控制,oauth做登錄認證。

運維

運維是平臺的生命線,主要分爲六部分:監控、負載均衡、CI(持續集成)、服務器、自動化部署和網絡

百億互金平臺技術棧大起底

  • 監控 主要使用了zabbix來監控服務器的各項指標,少量使用shell腳本和crontab
  • 負載 使用VIP來做均衡負載,也就是LVS。
  • CI 持續集成工具主要使用了jenkins。Java依賴使用maven爲主,gradle少量使用,版本控制svn爲主,少量使用git
  • 服務器 線上服務器大多使用的是centos 6.5。少量使用7.0。測試環境使用vsphere來虛擬化
  • 自動化部署 這塊還在研究,備選有:puppet、ansible、saltstack。
  • 網絡 使用Wireshark做網絡分析

工具

優秀的工具可以讓工作事半功倍,節省很多時間。這裏分開發、測試、數據庫、畫圖和運維五個維度來介紹

百億互金平臺技術棧大起底

  • 開發 Java常用的開發工具:eclipse和idea。前兩年一直使用的是eclipse,但eclipse對spring boot支持的不夠友好,後來就全面使用了idea;php開發工具比較多,我司開發人員主要使用phpstorm和zend,集成環境使用upupw;前端使用WebStorm和sublime3;golang開發工具liteide,IOS使用xcode。
  • 測試 自動化測試工具selenjum,性能測試使用jmeter或者loadrunner,開發人員一般使用jmeter。接口測試使用postman;移動端測試使用 appiumforandroid和appiumforIOS;抓包工具使用 firebug、MIniSniffer、Fiddler。
  • 數據庫 mysql數據庫可視化工具常用navicat,生產使用Workbench,少部分開發人員使用sqlyog和phpMyAdmin。mongodb使用MongoVUE,表設計用PowerDesigner。
  • 畫圖 架構圖設計使用Visio,也嘗試過processon;思維導圖使用Xmind。
  • 運維 運維工具使用xftp或者SecureCRT

本文所有示例圖均使用xmind,需要原圖的同學請在公衆號回覆:xmind。


作者:純潔的微笑
出處:http://www.ityouknow.com/
點一波關注再走

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章