技術棧(technology stack)就是一個公司的透視鏡,從某些程度上可以展示出公司的技術實力。從技術桟也可以看出整個平台的技術要素,平台大小規模等,今天來給大家分享我司的技術全家桶。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5ycldWY1dmbhxWLn5Wat1WYyd2byB3LcVmc1R3YlRXaoNmch9CX3EDMy8CXzV2Zh1Wavw1c0V2czF2Lc12bj5ydv52a19We0lmL3d3dvw1LcpDc0RHaiojIsJye.jpg)
閑來無事就想着還可以總結總結什麼,平台架構、事故解決方案等以前都寫過了,這次就主要寫寫我們都用過那些技術吧。我分了五塊内容來介紹我們的技術棧:前端、後端、中間件、運維和工具。畫了一個思維導圖友善大家整體預覽。
<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,如需轉載請自行聯系原作者