百亿互金平台技术栈大起底

技术栈(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

本文全部示例图均使用xmind,须要原图的同窗请在公众号回复:xmind。


做者:纯洁的微笑
出处:http://www.ityouknow.com/
点一波关注再走

相关文章
相关标签/搜索