微票 Cloud Native 实践之路

导语

2017年“云+未来”峰会即将在深圳盛大举行,本次峰会Cloud Native技术专场将在7月6日下午举行。Cloud Native 专场给各家提供了针对 OpenStack 应用以及背后填坑之路作深度探讨的机会。现在让我们一起回顾下去年各位嘉宾在在现场分享了哪些云上的心得体会以及Cloud Native云原生架构上的亲身实践。

本文是微影时代技术中心副总裁杨森淼在2016年腾讯“云+未来”峰会Cloud Native专场有关《微票儿的 Cloud Native 实践之路》分享的回顾。

杨森淼:《微票儿的 Cloud Native 实践之路》

微影时代技术中心副总裁杨森淼在2016年腾讯“云+未来”峰会Cloud Native专场,分享了国内首个O2O领域的Cloud Native实践分享。微票儿是今年备受关注的互联网购票平台:估值近百亿、年增长率超4000%、覆盖全国500个城市4500多家影院,日出票达100万张,峰值200万张。而在其业务迅猛增长的背后,一个高速、敏捷、弹性、灵活的技术架构必不可少。

微票儿的Cloud Native实践,采用的是微服务+Docker的方式,以实现从研发测试到部署运维的全系列DevOps。其技术部分构建在传统Cloud的IaaS、PaaS、SaaS三个层面。在实践的过程中其优点非常明显:业务逻辑简单、耦合小、独立部署、方便隔离、使用不同的技术栈……但是另一方面,该系统也存在调用开销增加、服务依赖复杂、难以保证数据的一致性、运维成本增加等问题。

为了解决这些问题,微票儿在做微服务的时候针对组织结构进行了变革,2015年研发管理就是前端、平台、运维,到了2016年变成了打散的方式。

微服务对运维的成本成倍的增加,微票儿通过敏捷的基础设施,为微服务提供弹性,按需计算、储存和网络资源能力,所以又有了三个相应的微服务需要执行的点:

第一个是有支撑微服务的平台,我们选择的是OpenStack+Docker+Mesos;

第二个是有符合微服务平台的规范;

第三是有微服务的核心技术点,需要配置、代码分离、服务注册和发现,路由和容错,还有API的边缘服务,这又增加了很大一部分的工作量。

以上是微票儿整个微服务的平台,将开发、发布、运行这三个阶段严格地做了一个拆分,在不同的环境使用不同的相应的服务。

关于微服务平台规范的APP要符合 12 因子的规范,杨森淼对此举了几个例说明。首先,对不同的环境参数的配置是通过环境变量进行注入的,代码和配置分离,代码中不允许出现在生产环境的配置信息中,部署相关的 playbook 的时候是公开的,配置中的隐私是不能公开的,部署的过程中经过代码和配置的合并。本身这样又会造成 playbook 也变成了代码,它也需要一定的测试和维护。

其次,日志作为统一的事件流,统一处理服务和进行收集、聚合、搜集、分析,每个程序的开发都要看到数据,他们每天要看所有的数据是否打算,自己的请求耗时大概是多少,自己的请求返回时间是多少,它吃的带宽是多少,都可以通过自己的数据和日志查找到相应的自己服务的相关报表,整个后面还有一系列的报警。

微服务的技术特点 Devops,是版本控制的分布式配置中心,服务注册和发现,尽早发现问题,尽早解决,成本越小。持续集成保证代码始终处于可用的状态。

微票儿借助于微服务和Docker,实现从研发到运营的全系列DevOps流程,支撑高速增长过程中的敏捷的产品迭代 ,从而提高整个系统的可维护性和稳定性。

微服务还有很重要的核心技术点就是监控,微票儿有业务单元的监控,红包是否存在异常,是否有黄牛每天不断地在领红包,订单的状态是否一致,是否微信支付会有延长,是否微信支付的回调会有异常。然后还有接口级别的监控,每个接口的成功、错误率,调用的时间。通过业务、接口、基础监控和日志处理分析来监测服务是否异常。

微票儿通过使用Docker,其运维团队可以在某一天随机干掉某几个微服务,还不影响到其它服务。好处就是微服务给我们造成了这样好的环境,能提高你的断路和降级。不再担心它是一条链,没办法隔离。因此提高了断路和降级。

以上所有的Cloud Native实践,都是通过腾讯云来实现的。有人会说,你本身的虚机再铺一层会不会把资源浪费,可能会浪费,但是通过你整体的服务来讲,杨森淼认为资源是在下降的,服用是在下降的,而且这里可以看到我们所有的资源开销的占比,看起来最贵的还是带宽,但是这一块就是因为我要有很多的调度系统去实现我的微服务调度和使用资源的调度,都会使用带宽,这一块的成本会增加,但是储存成本和主机成本都在下降。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏京东技术

京东技术沙龙系列之二 | 深度解析京东微服务组件平台

1454
来自专栏Java架构

微服务是传统企业电商解决方案的银弹吗?成功实施微服务的先决条件挑战和风险业务方面的思考演进路线结论

1623
来自专栏互联网高可用架构

Java领域从传统行业向互联网转型你必须知道的那些事儿

1073
来自专栏织云平台团队的专栏

3亿人次的实战演习,如何做到丝般顺滑?

本文介绍的是手机QQ与Qzone两个服务于海量用户的平台级业务,在无损用户服务质量的基准原则下,通过亿量级人次的限时调度实战演习来验证我们的异地容灾架构与快速调...

6241
来自专栏SDNLAB

浅谈基于意图的网络(IBN)

在园区网络中,有许多新兴趋势影响着未来网络建模的方式,这些趋势包括移动性、物联网(IoT)以及跨有线和无线连接的统一安全性。

882
来自专栏DevOps时代的专栏

腾讯织云:DevOps流水线应用平台践行之路

持续交付是DevOps的核心工程实践,持续交付流水线驱动着DevOps的落地,昨天在云+峰会的开发者专场,腾讯跟大家揭开了DevOps流水线平台的神秘面纱。同时...

2049
来自专栏养码场

这13项技能让你从传统“撕”到互联网,论Java转型之不易(内含福利)

本人从传统外企转型到互联网已有3个年头,近两年来面试了很多来自传统行业的同行们。发现他们都有意走进处于风口的互联网,但是由于传统行业使用的技术栈与互联网的有所不...

643
来自专栏杨建荣的学习笔记

运维建设的方向和思路

今天和同事聊需求的时候,突然发现目前我们在做的一些系统,其实他感觉有些迷茫,主要就是一个建设的思路和方向这一块,我想了下,也确实,目前来看,其实系统的功能初期避...

672
来自专栏后端技术探索

漫谈大型网站架构

作者介绍:陈康贤(花名龙隆),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为...

501
来自专栏Rainbond开源「容器云平台」

使用好雨云平台的10大理由!

1444

扫码关注云+社区