我一直信奉的话是大伟哥说的:技术宅拯救世界!
关于我:目前是200+小公司的ops,我不仅在上班的时候去提升自己的运维经验,在私下的时候,我也会很乐意去学习开发
目前主要使用的技术栈为:
下一步的目标学习的语言为(在感悟中有提到为什么准备使用):
-
react
-
react native
-
golang
在公司层面去设计自动化运维的时候,我们所要做到的是一次搭建,任何人都可以编译和上线测试环境,因此我们让同一个项目都放在同一个git仓库,用文件夹来区分服务/前端。
在编译阶段,使用脚本来判断这个文件夹是使用哪种语言编译,编译成功后,将编译成果上传至统一的地方,并打印版本号(tag名字+git commit hash)
在上线阶段,只需输入版本号和需要上线的服务/前端(服务的机器自动启动服务,nginx目录中替换前端),就可以完成自动化上线
在开源项目/私活的角度,我们得做到快速启动、简易启动
在这种场景下,一般都是1个前端(包括小程序或app)+一个后端
因此,我这里所有的开源项目都是编译出来的前端和后端打包成一个docker,用户只需要一个docker run
就可以快速启动了,这样就大大降低了运维成本
react是函数式编程,所以更加灵活的结构和可扩展性,丰富的生态圈和工具链,解决方案多,后期也更方便迭代与维护
golang是未来服务端的趋势,由于golang比java有更好的性能,更好的内存管理,并且不需要jvm,因此可以大大降低容器的大小,现在大公司的服务都往golang重构(如b站)
而我看中的是,react的编程方式可以大大提升我js/ts的技术,golang的性能和占用空间小,因此未来我开源项目的重心可能往这个方向走