大廠互聯網金融公司的技術棧總結

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

題外話

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

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

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

兩個你們確定感興趣的問題:爲何離開公司,緣由只能回答:一聲嘆息,之後有機會能夠給你們慢慢道來。我將去那家公司?已經有下家,暫時也不方便告知,望見諒。mysql

總覽

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


點擊這裏看大圖android

接下來就展開來講nginx

前端

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

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

後端

後端以開發語言的角度給你們介紹git

後端使用的開發語言有: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 

更多技術請關注公衆號

相關文章
相關標籤/搜索