腾讯刘豪:腾讯内部有 160 多个业务使用微服务架构
近几年,微服务架构由于其简单和灵活性,受到业内越来越多人士的青睐。目前对“微服务” 的架构风格并没有提供精确的定义,它的优势是什么?在技术选型上需要注意哪些问题?在企业中的应用程度又如何呢?本期【开源访谈】邀请到腾讯后台高级工程师刘豪,与大家分享开源微服务架构在企业中的应用。
刘豪,腾讯后台高级工程师,主要从事于微服务架构、分布式 NoSQL存储、大数据计算平台等技术领域的相关工作。
1、嘉宾自我介绍
我叫刘豪,2012 年硕士毕业进入腾讯公司,目前是一名后台开发的高级工程师,主要从事于微服务架构、分布式 NoSQL 存储、大数据计算平台等技术领域的相关工作。
2、先谈谈您对“微服务”这个概念的理解。
个人理解,微服务是一种架构风格,通常一个大的业务系统由多个具体的服务组成,而这些服务本身有一些特点:
每个服务都比较简单,服务功能单一;
拥有轻量级的通信框架;
有各自独立的进程,能独立部署;
服务之间松耦合,具有很高的灵活性。
3、微服务架构的优势是什么?主要解决了哪些痛点?
从 Tars 架构上来看,微服务架构的优势有很多,主要体现在以下几个方面:
每个服务功能简单单一,只关注于一个业务功能,每个服务可以独立开发,开发效率高。
微服务架构方式是松耦合的,每个服务可独立部署,灵活性好。
微服务架构提供的轻量级通信框架和高可用能力,能有效解决不同编程语言、不同系统平台之间服务交互的问题,以及服务在分布式环境下遇到的容灾容灾、复杂均衡等问题,让开发更加聚焦业务逻辑本身。
微服务架构提供了持续交付和运营的能力,让运维工具、运维管理机制更加统一和标准化,让服务部署、发布、监控、问题定位等运营操作变得简单高效。
4、微服务目前在企业的应用程度如何?它能给企业带来什么价值?
目前互联网企业中很多都在使用微服务架构,帮助企业提供了敏捷开发、持续交互、高效运营等方面的能力。
5、能否向大家介绍一下利用“微服务架构”进行实践的典型案例?
这里介绍一下公司旗下某个投资公司进行“微服务架构”的实践。
下面是他们先前的架构和快速发展下遇到的问题和瓶颈:
使用 Tars 微服务架构后,很好的解决了他们的问题。最后,他们改造的系统架构如下:
6、微服务架构在技术选型上,主要要注意哪些方面的问题?
我个人认为,在微服务的技术选项上,需要重点注意的有以下几个问题:
服务注册与发现
负载均衡
通信框架与通信协议
服务部署、发布、升级
服务监控和告警
资源管理和服务调度
配置管理和日志收集
7、谈到微服务,大家都会联想到容器技术。如果没有容器技术的支持,会给微服务带来哪些不便?
容器化,特别是 Docker,给我们带来了非常大的好处。在没有容器化以前,我们经常遇到一些问题,比如:
环境异构造成的交付失败,主要体现在几个方面,一是基础环境,如OS、GCC等,二是运行环境,如Apache、Nginx、Tomcat等,三是依赖环境,如各种动态库和jar。
运行包异构造成的部署复杂,比如执行文件、目录管理的问题
如何提高部署的效率,并且提升资源的利用率,一直是比较头脑的问题。
8、目前腾讯对微服务架构的使用情况如何?是否已将多数业务架构转向微服务?
这里主要说下,Tars 在腾讯的使用情况,目前腾讯内部有 160 多个业务(比如手机 qq、qq 手机浏览器、应用宝、腾讯手机管家等)在使用,覆盖的服务器规模超过 1.6w 多台,有 2w 多个服务模块,6w 多的服务进程在平台上运行,每天模块间的调用量超过 10 亿次。
9、您对微服务未来的发展有哪些期待?
期待微服务在资源隔离、资源调度等方面能做的更好,以达到运维自动化和提高整体资源利用率的目的。
来源:https://www.oschina.net/question/2928191_2265225