前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务:从放弃到入门的三个月

微服务:从放弃到入门的三个月

作者头像
芋道源码
发布2018-09-30 10:48:18
5040
发布2018-09-30 10:48:18
举报
文章被收录于专栏:芋道源码1024芋道源码1024

近几年,微服务架构迅速在整个技术社区窜红,它被认为是 IT 软件架构的未来方向。我与同行交流时,提到微服务等新技术,他们先是兴奋,后又无奈。兴奋的是他们看到了新技术带来的便利,无奈的是团队规模和能力又反过来制约了他们采用新技术的步伐。这中间,我也发现大家对微服务有着不同的理解,但更多的是一些疑虑。不知道你是否也有这样的困惑,比如:

  1. 微服务这技术虽然面试的时候总有人提,但作为一个开发,是不是和我关系不大?那不都是架构师的事吗?
  2. 微服务不都是大厂在玩吗?我们这个业务体量用得着吗?
  3. 微服务特别复杂,没个100人的研发团队是不是就无法落地?

我特别理解这样的困惑。的确,大公司动辄就是几百上千的研发人员,并且其中不乏顶尖选手。他们有经验、有能力,也有业务场景,所以在技术的选择上也会更为冒进。而对于大部分的中小团队来说,当微服务架构成为刚需的时候,他们更多的是彷徨和犹豫。

那中小团队应该如何应用微服务呢?或者换句话说,中小团队的技术架构应该如何演进呢?

先给你讲讲我的经历吧。我2012年加入微博,最开始微博首页信息流的后端团队规模也不大,只有七八个人。当时我们就想着快速迭代,业务也就采用了单体应用的架构。因为求快,不同功能模块的代码耦合在一起,编译打包部署也都在一起。

后来业务规模不断扩大,团队人员也增长到二十多人,这时候单体应用架构的开发模式就开始暴露出问题了。那时候,每一次功能发布和上线都需要一个上线负责人来收集上线列表,并协调所有相关的开发人员合并代码到主干,然后编译打包,修改工程依赖的JAR包版本。

你应该可以想象我们那时的状况。如果一次上线超过五个人参与的话,就会经常出现各种问题:有的人忘记提交代码、有的人忘记打包、有的人忘记修改工程依赖到最新版本。一次上线过程需要反复确认,耗费了大量精力,严重影响了整体的开发和部署效率。

看到这,不知你是否大腿一拍,大声叫到:这不就是我们团队每天都在面对的问题嘛!

是的,当时我们为了解决这些问题,做了很细致的技术调研,最后选定了服务化的解决方案。对原有的单体应用架构进行改造,把功能相对独立的模块拆分出去,部署为微服务,分别交给专门的更小的团队来维护。再到后来我们又引入了Docker容器化,以及Service Mesh等技术,为了更好地适应微博业务的高速发展。

可以说,微博的信息流后端架构经历了单体应用 -> 微服务架构 -> 容器化应用 -> DevOps的发展历程。而我也正是因为亲历了微博的架构演进过程,才对中小团队如何落地微服务体系有了更为深刻的理解。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芋道源码 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档