全文共4696字,预计学习时长14分钟Micro的未来
图源:Unsplash
什么是微服务?什么是Micro?
在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务",
微,狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来只需要2个披萨就够了 )。而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。
Micro则是一个开源项目,致力于简化微服务开发。它开始了一个面向微服务开发的微操作框架。
但即便在那之前,go micro还是一个被黑客攻击的小库,它的创建是为了在2014年时开发一个“kubernetes as a service”项目。
Go Micro的想法源于将kubernetes构建为一个服务的尝试,它作为一组微服务语言编写,但刚刚面世不久就夭折。但留下来的是其他东西的内核,如果你仔细观察,有几个包看起来像是框架的基础。
2014: 伊始
当时微服务是一个热门话题,但相关工具很少。人们在公司谈到了微服务架构和开发形式的好处,但是没有人真正有机会开源工具,甚至连Hailo的团队也未能做到。
那时我注意到一个模式。
一位开发人员加入一家公司几年,帮助该公司建立了一个平台和一套服务,但在离开进入下一家公司后,因为没有上一家公司的工具,不得不重新将这个程序走一遍。这让我很沮丧,特别是当我知道如果有正确开源软件,我们就不必继续重复这个过程,而可以把注意力放在更有趣的问题上。更不用说我们至少可以因此节省6到9个月的时间了。
这让我开始思考如何让许多公司共同解决一个问题。不过,我知道,每个公司都有不同的技能优势,不同的基础设施偏好,因此采用新的工具往往难度很大。
考虑到这一点,我的想法是,从一个非常轻量级但与开发者想法一致的微服务开发框架开始。曾经在Hailo因此受益,这种方式可能也会引起其他开发人员的共鸣。在接下来的几个月里,我开始研究形成go-micro初始框架的要素。