加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

大战黑客,一路披荆斩棘,百亿互联网金融平台救火故事!

发布时间:2017-10-24 18:55:06 所属栏目:安全 来源:51CTO
导读:副标题#e# 多年前,又是周六客服打电话过来,平台官网不能访问,APP 完全无法打开,客户在 QQ 群和微信群中各种反馈,说平台是不是跑路了?客服的多条 400热线完全被打爆,电话已经接不过来… 一直以来总是想以什么方式去记录下自己在互金行业的这段经历,趁

这里面是比较泛的中间件集合,把相关的组件也都包含进来,主要分为:数据库、Web 容器、消息、缓存、文件服务器和安全。

大战黑客,一路披荆斩棘,百亿互联网金融平台救火故事!

  • 数据库。业务主要使用 MySQL,需要跑批统计的离线数据由 tungsten replicator 同步到 Mongodb。

  • Web容器。PHP 使用的 Apache,Java 使用的 Tomcat,静态资源代理使用的是 Nginx。

  • 消息。最开始使用 Activemq,后来架构升级全面替换为 Rabbitmq。

  • 缓存。满标控制使用 Memcached,后端业务缓存使用 Redis。

  • 文件服务器。最开始使用 Nginx 做图片服务器,后来上线合同就全面使用了 Fastdfs。

  • 安全。HTTPS 证书保证传输安全,Shiro 做权限控制,Oauth 做登录认证。

04、运维

运维是平台的生命线,主要分为六部分:

大战黑客,一路披荆斩棘,百亿互联网金融平台救火故事!

  • 监控。主要使用了 Zabbix 来监控服务器的各项指标,少量使用 Shell 脚本和 Crontab。

  • 负载。使用 VIP 来做均衡负载,也就是 LVS。

  • CI。持续集成工具主要使用了 Jenkins。Java 依赖使用 Maven 为主,Gradle 少量使用,版本控制 SVN 为主,少量使用Git。

  • 服务器。线上服务器大多使用的是 Centos 6.5,少量使用 Centos 7.0。测试环境使用 Vsphere 来虚拟化。

  • 自动化部署。这块还在研究,备选有:Puppet、Ansible、Saltstack。

  • 网络。使用 Wireshark 做网络分析。

05、工具

优秀的工具可以让工作事半功倍,节省很多时间。这里分开发、测试、数据库、画图和运维五个维度来介绍:

大战黑客,一路披荆斩棘,百亿互联网金融平台救火故事!

  • 开发 Java 常用的开发工具。Eclipse 和 idea。前两年一直使用的是 Eclipse,但 Eclipse 对 Spring Boot支持的不够友好,后来就全面使用了 idea。

PHP 开发工具比较多,我司开发人员主要使用 phpstorm 和 zend,集成环境使用 upupw;前端使用 Web Storm 和 Sublime3;Golang 开发工具 liteide,iOS 使用 xcode。

  • 测试。自动化测试工具 Selenjum,性能测试使用 jmeter 或者 loadrunner,开发人员一般使用 jmeter。接口测试使用 postman;移动端测试使用 appium for Android 和 appium for iOS;抓包工具使用 firebug、MIniSniffer、Fiddler。

  • 数据库。MySQL 数据库可视化工具常用 navicat,生产使用 Workbench,少部分开发人员使用 sqlyog 和phpMyAdmin。Mongodb 使用 Mongo VUE,表设计用 Power Designer。

  • 画图。架构图设计使用 Visio,也尝试过 Processon;思维导图使用 Xmind。

  • 运维。运维工具使用 xftp 或者 SecureCRT。

总结

古人有云,胸有惊雷而面如平湖者,可拜上将军。在互联网行业对大牛的要求也同样如此,特别是技术的负责人。

在面对生产事故的时候,一定首先是安抚同事,静下心来找到问题本质再去解决,而不是不断去施加压力催促解决,重压之下很多心理承受能力稍弱的队友,更加慌乱而不利于解决问题或者引发二次事故。

在看淘宝双十一视频中,有一段特别受到感触,在双十一初期,虽然技术团队做了很多的准备,但是在零点过后流量瞬间涌入,服务被打垮,部分用户投诉刷新不出网页,紧接着隔壁同事也都反馈网站打不开。

在大家都在慌乱中,xx 一拍桌子大喊一声,大家都别动,三分钟之后再说,过了几分钟之后服务慢慢部分恢复了正常。

后来回忆说,当时虽然服务瘫痪,但是监控还是有部分的业务成功,说明系统并没有被压垮,而此时的任何操作都有可能引发更大的问题,从此之后此人一战成名,成为阿里大将。

互联网平台发展大抵都会经历三个阶段:

上线初期

此阶段问题最为繁多,生产事故不断,系统快速迭代优化。有人说为什么不测试到完全没有问题再投产呢?

说实话在互联网行业这个很难,小公司很难做到生产环境和测试环境一致,成本太高;时间紧迫,一般都是很短的时间内要求上线,上线之后在快速迭代。另外互联网本就是一个快速试错的行业,错过半年时间可能风口早过。

发展期

此阶段主要业务模式已经得到验证,系统出现问题的频繁度较少,低级错误减少,但此时是用户量和交易量不断爆发的时候,对系统性能、高并发的要求又上来了,所以此时出现的问题大多都是性能的问题。

成熟期

发展期过后系统相对比较平稳,用户量和交易量都已经慢慢稳定下来,生产问题越来越少,出现问题几乎都是细小的Bug,这个阶段也是公司最忽略技术的阶段,恰好我们公司就处于这个阶段。

在这个阶段就需要静下心来,组织架构升级,补齐在初期和发展期所欠的技术债务,做好公司在升下一个量级的技术准备。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读