天天看點

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

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

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

閑來無事就想着還可以總結總結什麼,平台架構、事故解決方案等以前都寫過了,這次就主要寫寫我們都用過那些技術吧。我分了五塊内容來介紹我們的技術棧:前端、後端、中間件、運維和工具。畫了一個思維導圖友善大家整體預覽。

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

<a href="http://www.ityouknow.com/assets/images/2017/architecture/technology-stack.png">點選這裡看大圖</a>

接下來就展開來說

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

我司的前端比較簡單主要分為了三大塊: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。

互金文章系列:

<a href="http://www.ityouknow.com/%E6%9E%B6%E6%9E%84/2017/01/10/%E4%BB%8E%E9%9B%B6%E5%88%B0%E7%99%BE%E4%BA%BF%E4%BA%92%E8%81%94%E7%BD%91%E9%87%91%E8%9E%8D%E6%9E%B6%E6%9E%84%E5%8F%91%E5%B1%95%E5%8F%B2.html">從零到百億網際網路金融架構發展史</a>

<a href="http://www.ityouknow.com/%E4%BC%98%E5%8C%96/2017/02/06/%E4%B8%80%E6%AC%A1%E7%94%9F%E4%BA%A7%E4%BA%8B%E6%95%85%E7%9A%84%E4%BC%98%E5%8C%96%E7%BB%8F%E5%8E%86.html">一次生産事故的優化經曆</a>

<a href="http://www.ityouknow.com/%E4%BC%98%E5%8C%96/2017/02/09/%E4%B8%80%E6%AC%A1dns%E7%BC%93%E5%AD%98%E5%BC%95%E5%8F%91%E7%9A%84%E6%83%A8%E6%A1%88.html">一次dns緩存引發的慘案</a>

<a href="http://www.ityouknow.com/%E4%BC%98%E5%8C%96/2017/02/12/%E4%B8%80%E4%B8%AA%E8%84%9A%E6%9C%AC%E5%BC%95%E5%8F%91%E7%9A%84%E8%A1%80%E6%A1%88.html">一個腳本引發的血案</a>

<a href="http://www.ityouknow.com/%E4%BC%98%E5%8C%96/2017/02/15/%E4%BA%92%E8%81%94%E7%BD%91%E9%87%91%E8%9E%8D%E5%A4%A7%E6%88%98%E9%BB%91%E5%AE%A2.html">網際網路金融大戰黑客</a>

<a href="http://www.ityouknow.com/%E4%BC%98%E5%8C%96/2017/02/16/%E7%99%BE%E4%BA%BF%E4%BA%92%E9%87%91%E5%B9%B3%E5%8F%B0%E6%95%91%E7%81%AB%E6%95%85%E4%BA%8B.html">百億互金平台救火故事</a>

<a href="http://www.ityouknow.com/pay/2017/06/13/reconciliation-system.html">如何做一個對賬系統</a>

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。 

本文如對您有幫助,還請多幫 【推薦】 下此文。 

如果喜歡我的文章,請關注我的公衆号

本文轉自純潔的微笑部落格部落格園部落格,原文連結:http://www.cnblogs.com/ityouknow/p/7109417.html,如需轉載請自行聯系原作者