系统优化与进阶之道:大规模复杂场景下的技术创新实录
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

从Rails到Golang

在实施微服务时,很多团队都选择Java技术栈,毕竟有Spring Cloud等较为成熟的框架可以使用。FreeWheel选择Golang,则基于以下几个原因:

· Golang本身上手门槛较低,有优秀的标准库可以快速开发应用,同时,Golang生态也逐渐丰富,有不少大型项目采用;

· 微服务化过程中需要使用容器,FreeWheel很早就确定使用Docker和Kubernetes作为容器化技术栈,而这两者都是Golang开发,不管是熟练掌握容器技术,还是要进行一些K8S扩展开发、定制,使用Golang都顺理成章;

· 新的技术栈不仅仅是业务系统团队使用,公司在研发新业务时也会使用,FreeWheel之前各个系统的技术栈各不相同,有用C++,有用Java,也有用Ruby的,因此从大家都能接受的角度,Golang也是一个较好的选择。

· 公司在美国的技术团队有过使用Golang的经验,并在内部做过分享,通过这种方式团队能快速了解这门新语言特点,遇到难题也可以向公司内部请教。

值得一提的是,FreeWheel新的Golang应用都是由原来的Rails工程师研发的,为了让这些工程师顺利转移到新的技术栈,公司通过内部分享、黑客松等方式帮助团队成员快速上手,在短时间内即形成了战斗力。