查看原文
其他

腾讯刘豪:腾讯内部有 160 多个业务使用微服务架构

2017-12-03 IT哈哈

近几年,微服务架构由于其简单和灵活性,受到业内越来越多人士的青睐。目前对“微服务” 的架构风格并没有提供精确的定义,它的优势是什么?在技术选型上需要注意哪些问题?在企业中的应用程度又如何呢?本期【开源访谈】邀请到腾讯后台高级工程师刘豪,与大家分享开源微服务架构在企业中的应用。

刘豪,腾讯后台高级工程师,主要从事于微服务架构、分布式 NoSQL存储、大数据计算平台等技术领域的相关工作。


1、嘉宾自我介绍

我叫刘豪,2012 年硕士毕业进入腾讯公司,目前是一名后台开发的高级工程师,主要从事于微服务架构、分布式 NoSQL 存储、大数据计算平台等技术领域的相关工作。

2、先谈谈您对“微服务”这个概念的理解。

个人理解,微服务是一种架构风格,通常一个大的业务系统由多个具体的服务组成,而这些服务本身有一些特点:

  1. 每个服务都比较简单,服务功能单一;

  2. 拥有轻量级的通信框架;

  3. 有各自独立的进程,能独立部署;

  4. 服务之间松耦合,具有很高的灵活性。

3、微服务架构的优势是什么?主要解决了哪些痛点?

从 Tars 架构上来看,微服务架构的优势有很多,主要体现在以下几个方面:

  1. 每个服务功能简单单一,只关注于一个业务功能,每个服务可以独立开发,开发效率高。

  2. 微服务架构方式是松耦合的,每个服务可独立部署,灵活性好。

  3. 微服务架构提供的轻量级通信框架和高可用能力,能有效解决不同编程语言、不同系统平台之间服务交互的问题,以及服务在分布式环境下遇到的容灾容灾、复杂均衡等问题,让开发更加聚焦业务逻辑本身。

  4. 微服务架构提供了持续交付和运营的能力,让运维工具、运维管理机制更加统一和标准化,让服务部署、发布、监控、问题定位等运营操作变得简单高效。

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


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存