微店陈建:运维工程师眼中的移动端优化之路

原创
移动开发
从2003年以来,微店可以通过手机为用户提供去网络中心化的服务,完成类似淘宝或者第三方开店的大部分功能,并可以随时分享店铺信息给好友或者到微信朋友圈。用户也可以通过PC版微店完成店铺地理位置标注、工商执照申请等操作。

本文是WOT2016互联网运维与开发者大会的现场干货,  新一届主题为WOT2016企业安全技术峰会将在2016年6月24日-25日于北京珠三角JW万豪酒店隆重召开!

陈建是微店的运维工程师,主要从事移动运维和运维自动化方向的一些工作。

 

[[167110]]

从2003年以来,微店可以通过手机为用户提供去网络中心化的服务,完成类似淘宝或者第三方开店的大部分功能,并可以随时分享店铺信息给好友或者到微信朋友圈。用户也可以通过PC版微店完成店铺地理位置标注、工商执照申请等操作。同时现在还有类似于口袋购物、买家版全球购、今日半价,还有海外版的U-shop等功能。

相比其他的演讲,陈建的话题更偏向于运维方面,主要从技术的角度来总结。他从基础服务、自动化和监控等角度展开解读:

基础服务

基础服务这一块,陈建是从NGINX、PHP、DNS、TOMCAT等方面解读微店移动端是如何搭建、如何优化的。

NGINX。NGINX的服务很多,通过它可以在NAT模式下如何通过remote_addr获取真实IP,Header增加请求链路信息,Location rewrite 顺序优化,废弃域名更优雅的跳转,实现全局跨域支持等等。大部分国内的服务都是在NGINX下构建的。

PHP。PHP是后端编程语言的核心,所有承担外部服务API接口是用PHP写的。以上是PHP的常用参数。

我们通过实时分析可以看到一些监控数据,能通过这些可以发现哪些接口可能有问题,不管是由开发造成的还是下游服务造成的,***时间发现一些慢请求。

DNS,现在还是跟传统一些互联网一样,优先使用DNS来做内网解析,但是在DNS前面挂了一层DNSmasq。先说一下配置,默认时间改成了1秒,最小值也是1秒,总共是配了一个本地加三个主DNS。原来DNS在做压力测试的时候会明显感觉很多接口性会比较差,后来通过改造之后,内网DNS比原来健壮了很多,而且对DNS主站的压力也减轻了很多。这个服务在装机的时候默认会配置好,通过程序把它启动起来,一旦它挂了会自动拉起,但是到目前为止是没有遇到过主动挂的情况。

TOMCAT,各个公司根据自己的业务情况都存在不同的调优。在TOMCAT这块主要做了这些:端口做了一下自己的自定义,把它的范围控制在2200-2300之间,单机我们容许一个机器上不超过十个TOMCAT,一旦某个程序有问题不会影响到别的服务。现在新的架构全部都是一台机器单实力、单TOMCAT这样去跑的,走的是类似于KM这样的程序。首先先取到本机的IP,这个值用来做JMX监控,我们会通过动态脚本制作方式把这个机器的监控权加起来,包括TOMDIR取出来,这个变量后面会用到,主要用来删除缓存键,保证每次TOMCAT只要重启都是一个完全干净的环境。

网络优化。首先核心网络是BGP,另外有联通、电信,还有移动专线。好多人可能会觉得为什么有BGP之后还要用其它线路,成本考虑是一方面,更多的是BGP现在没有我们想象中那么好,尤其是涉及到网间结算时,对一些地方的网络会影响比较大。在没有做自动域名链路拆分的时候,每天可能都有几个投诉说微店打不开,或者某一个活动详尽页有问题。后来对所有的链路进行全部拆开,然后多机房多链路全部都打开。微店发展到今天也就是三年左右的时间,我们的规模可能跟大部分大型的互联网公司相比还是差很多,目前这样的结构对我们来说是相对比较合理的一个方案。

陈建从HTTPDNS、HTTPS内容拦截、图画优化以及自动化等方面来阐述微店构建过程中遇到的问题以及后续是如何解决的。

审批机制。对于开发来说每天上线时间是工作日的早晨9点到下午6点,这段时间是可以提交代码的,某些项目,像核心服务会要求完全审批。

监控。监控对于运维来说是非常重要的事情,基础监控就不说了,主要说一说目前在做的应用级别的监控。

这是一个分钟级监控,实际上每个图有两根线。在手机端的监控页面,好多时候我们跟用户沟通,想知道一些基础信息,类似于你的IP是多少,DNS是多少,包括现在访问的CDN节点是多少,这些信息实际上是非常难获取的。后来想办法开发了一套类似这样的监控系统,用户只需要在微信或者是浏览器里面访问这个地址,就能取到这些基础信息。

大数据监控系统。我们每一个业务都是由接口,所有的UL组成。选一个UL之后就可以知道这个UL一些基础信息,错误率包括QUVS等,这是大数据方面正在做的事情。

演讲视频:http://edu.51cto.com/lesson/id-100754.html

【讲师简介】

 [[167112]]

讲师简介:陈建,微店运维专家,***批次加入微店的人员,见证了微店的发展史,也一直努力在为微店的"稳定"、"高效"、"安全"在不听的奋斗,对网络、操作系统及应用等都非常精通,目前主要致力于微店的访问的持续优化。

责任编辑:李英杰 来源: 51CTO
相关推荐

2015-07-15 15:36:16

运维工程师优衣库运维

2012-07-19 13:51:12

linux运维操作系统

2012-12-25 09:43:08

2019-10-29 16:29:28

运维架构开发

2012-12-26 09:20:30

2016-10-13 09:30:46

Linux运维工程师运维前景

2017-09-29 09:22:02

2013-12-18 10:56:48

Linux运维运维技能

2012-05-08 15:31:09

运维南非蚂蚁

2012-07-24 13:36:58

运维

2018-05-25 16:32:04

运维,AI,人工智能,

2016-12-08 14:19:12

数据中心运维工程师

2016-09-14 15:41:38

2009-10-21 21:14:37

BTIM系统IT运维管理北塔软件

2012-07-05 14:46:21

运维工程师

2017-02-03 20:50:08

Linux

2013-07-03 17:55:37

IT运维信息化

2016-11-04 13:30:07

Python运维工程师

2018-04-18 08:36:48

Linux命令运维
点赞
收藏

51CTO技术栈公众号