不要用战术上的勤奋,掩盖战略上的懒惰。
这句话被无数互联网从业者奉为圭臬。
对于技术人来说,总是加班加点用老旧而低效的技术去解决那些已经有更好的解决方案的问题,也可以算得上是一种战略上的懒惰。
而技术的不断进步,本质目的就是释放出更多的生产力去解决更为重要的问题。
就像前几年,当传统的整体式架构的到后期变得越来越复杂,以致让开发人员束手束脚,情形积重难返之时,微服务横空出世。它的可扩展性、易维护性、故障和资源的隔离性等诸多优点使得研发效率大大提高。到如今,在各个技术会议上,谈架构必谈微服务。
但是,技术是不断变动的,这世上不存在完美无缺的解决方案,微服务也不是包治百病的良药。
当一个应用是由数百个甚至上千个服务组成的时候,服务间通信就变得异常复杂,如何管理好服务间通信以保证端到端的性能和可靠性,成为摆在开发者面前的难题。这个时候,也就意味着需要有更进一步解决方案来应对这个局面。
这时候,Service Mesh 出现了。(意味着我们又要学新东西了,谁让我们是程序员呢?)
Service Mesh 是一个网络模型,它是位于 TCP/IP 之上的抽象层, 可以提供安全、快速、可靠的服务间通信。
Java 资深架构师,微服务专家敖小剑老师这么看 Service Mesh :
Service mesh 为业务开发团队带来的变革:降低入门门槛,提供稳定基座,帮助团队实现技术转型。最终达到的目的是,让业务开发团队从微服务实现的具体技术细节中解放出来,回归业务。
在过去的一年中,Service Mesh 已经成为云原生技术栈里的一个关键组件。很多拥有高负载业务流量的公司都在他们的生产应用里加入了 Service Mesh,如 PayPal、Lyft、Ticketmaster 和 Credit Karma 等。
在国内,大家对 Service Mesh 的讨论也越来越多,甚至有人提出“Service Mesh: 下一代微服务”这样的口号。可见它的未来注定是一片辉煌。
但是, Service Mesh 毕竟还是一个新兴事物,目前国内还没有太多的实际案例,这也导致了大家对 Service Mesh 的讨论大多还停留在理论层面。
对于 Service Mesh 在落地过程中可能会遇到的一些问题,则鲜少有人提及。当然,主要原因还是没有实际的落地经验。
因此,作为国内较早参与 Service Mesh 项目落地的人,我希望把自己在整个落地过程中的经验和思考分享出来,帮助大家对 Service Mesh 有一个更立体的了解:
- 针对 Service Mesh 的特点,落地过程中如何根据现有架构做出合理的取舍?
- 这个过程中有哪些容易掉入的陷阱?如何避免?
- 经过最近一年的发展,Service Mesh 形成了哪些事实规范?
- 经历过整个过程之后,对于架构我有了哪些更深入的思考?
当然,关于 Service Mesh 背后的机制与原理,我也会结合实践过程做相关的介绍。
这些问题,我将用 6 篇文章来一一解释清楚,大纲如下:
- 我们高呼的下一代微服务 Service Mesh 到底是什么?
- 从单体应用到 Service Mesh 的曲折历程
- 异构系统跨语言服务化初探
- 详解 Service Mesh 的事实规范
- Service Mesh 的请求路由流程分析
- 面向未来的思考:泛服务化与 Service Mesh
希望你在埋头干活的同时,也能抬头看路,找到工作中解决问题的最佳路径,找到用新技术解决老问题的成就感和乐趣。
现在这六篇文章已经正式在极客时间 App 上线了,点击下面的图片可以做详细了解。
我是谁?
我叫周晶,我是高性能 OpenResty 开发框架 Vanilla 的作者,同时也是OpenResty 社区委员会成员,主要负责微博平台服务化框架的研发。
我经历了微博从跨语言服务化到 Service Mesh 的一整个经历,所以,关于微博的架构演化,关于 Service Mesh 落地过程中的点点滴滴,我将以过来人的身份把第一手经验分享给你。
作为开源爱好者,我平时喜欢思考关于架构的方方面面,在这个系列文章中,我不仅写了 Service Mesh,也更希望能把自己关于架构的进一步思考也分享给你。
文章在哪里看?
PC 端:
点击此处,微信或支付宝支付,即刻订阅。
移动端:
- 点击此处,下载“极客时间” App,注册并登录,领取 30 元新人红包。
- 从首页轮播图或专栏页进入《Service Mesh 实践指南》,完成订阅。
评论