论盲目跟从新技术还是追求完美?

为什么要谈论这个话题?

我任职的过公司在2019年6月底发生了一件,公司经营困难,从年前就开始延发工资,到8月北京的一群同事还未发6月工资,可以说很惨。但成都这边我们被安排转移人事关系到与数澜的合资公司澜迅,6月的公司是7月1日发的,到了8月1日,居然没有根据合同约定发放,这个肯定是两家公司的关系产生了问题,这个时候有两个选择:
– 1、留下来继续干,但是公司没有项目做呀;
– 2、申请离职找下家,才在共待了1年半啊,我计划要待2年以上的;

经过反复的思考最后还是决定离职了,找工作的时候就有面试官问我关于SpringCloud的技术。

关于SpringCloud技术面试

SpringCloud是Spring项目下的一个子项目,可以说是微服务架构的全家桶,包含配置中心、注册中心、熔断、API网关等等组件,但是我在项目中并没有使用这个技术。我们项目使用了SpringBoot2,面试官很看不起我们的项目是单机部署的。我想说的是项目有大有小,杀鸡用牛刀合适吗?追求新技术不是什么项目都需要使用分布式服务的。

一个面向5000用户量的电商应用,我们采购的8G内存500G硬盘4核CPU,使用Docker单机部署数据库、APP接口、运营平台接口、Nginx,一台机器全部搞定,项目目前稳定运行,项目仅是一个外包项目,有必要用微服务吗?

答案是显而易见的,还是有必要的,主要有以下理由:
– 1、拥抱没有接触过的技术是学习能力的体现;
– 2、团队需要学习新东西来增加自我认知;
– 3、对寻找工作有好处,因为大家都在用的技术,你不用显得格格不入;
– 4、后期扩展变得很简单而不是重构;

新的机会

7月份,一个偶然的机会在Boss直聘上认识了毛总,经过一段时间的沟通,了解到毛总和刘斌认识,毛总是原来汇安融的部门老大,那感情好。深入了解下毛总他们在做“夕阳产业” — 康养行业。 我对这个行业是基本没有认识的,但由于是技术管理岗位需求,对我来说很有吸引力的,毕竟在多次面试中都不尽人意。后来果断选择毛总公司从事技术管理工作。

入职研发部项目经理,管理技术团队7个人,后来扩招了Android和IOS开发,一共9个人。感觉棒棒的!做APP的原因是投资人要求的,因为最开发采用Python架构用户端仅是一个简单的小程序,提供康养旅居业务。

谈Java重构,这个时候面临的问题和在上家公司一样,选择单机部署还是微服务,因为服务器的内存和CPU的关系,选择微服务视乎不是很合适。经过和毛总讨论,我决定还是使用SpringCloud做微服务开发,相信这个选择没错的。然后开始设计架构,大概就是这样的,如下图

image

为了与国际接轨,没错!

行业内还有一个比较火的技术,那就是Docker了。那我还是会选择它,毕竟使用Docker已经1年多了,高效稳定从来没有出现过问题。豆蕊米项目可以说是非常成功的实践,因为
从博易离职后,豆蕊米的服务器被他们的技术人员搞坏了(原因是把所有目录权限搞为777),当然linux整体奔溃。然后重装系统后,花了不到半天时间全部恢复,这个要归功于Docker环境的标准化部署。那么咱们Java重构的项目肯定少不了它了,上图:

image

最后就是咱的技术架构了:
image

完美

不是新技术还是老技术,只要能满足需求的就是好技术。哪怕它不稳定,在我们技术实践过程中发现问题解决问题的能力才是最重要的。有时候我会熬夜到凌晨去思考解决一个问题。这就是一种对技术追求的精神,他能带领我们在这条路走的更远。

来源: 雨林博客(www.yl-blog.com)