什么是微服务、云原生,它们的特点以及优缺点,关于系统架构的发展和演进等等,这里就不再赘述了,有需要的同学可以直走 yifan-online.com
这里,咱们直接讨论两个问题:
一个是,你真的需要微服务与云原生吗?
一个是你需要学、需要懂这些技术吗?
先说结论:
问题一,不一定需要。
微服务和云原生架构,在大的公司和团队,是一定需要的。
中小规模的公司和团队也越来越多的在应用了。
规模很小的团队,业务还很简单的公司,则不那么需要微服务和云原生。
问题二,一定要学、要会。
不论你是否需要和使用它们,你都应该立刻马上去学和掌握它们。
我们不可能一直停留在微小公司和团队的状态,即使眼前没有需求,但是技术发展以及业务变化,或者是个人职业选择,咱们都需要学会和掌握微服务和云原生架构。
下面用两个经历来详细聊一聊这两个问题,大家可以更加容易的来理解。
在使用微服务和云原生之前的状态:
大家对照着看下,自己所在的公司和团队,是否还有出现上面的这些情况呢?
在公司采用微服务和云原生架构之后,上面的问题是否都完美解决呢?又是怎样一种状态呢?其中有需要做那些事情,投入更多在哪些方面呢?
通过 devops 以及微服务平台,貌似解决了上面的所有问题,但也带来了一些新的问题。运维开发和平台带来了效率,也会把很多的工作和权限以及责任下放给了开发团队。微服务平台的能力非常多,意味着有大量的配置和操作。有些配置和操作在以前,都是由专业的运维团队来操作的,现在却要开发团队来处理,这也是一大难题。有些配置(如:健康监测、配置文件)如果出现问题,可能会导致集群和服务的不可用,这也是非常严重的风险。
看到上面大公司遇到的问题,使用微服务和云原生架构之后的情况,是不是感觉所有人都想要了?
而回到现实情况,小的团队可能连微服务平台都无法支撑,更何况定制各种环境和配置呢。
无米之炊,望梅止渴也不是办法呀。
公司的产品可能只需要 1-5 台服务器就可以支撑。这么多的服务器没必要都用来部署k8s集群了。
单一的开发环境,一个 shell 脚本就可以把开发环境以及系统部署、检测都搞定,也就没必要引入容器化和 devops 来支持。
一个人就可以完成全栈开发,没必要再把他分裂成多个角色来左右互搏和互动了。
一个文档可以写清楚的内容,也没必要细分成各种设计、流程、接口文档了。
上面说了这么多,其实不是不需要,不想要,而是条件不成熟,不具性价比。
不使用微服务架构,也需要做好前后端分离,也要做好模块和接口设计。
不使用云原生架构,也可以考虑采购云服务器,也可以考虑使用一些成熟的云服务。当然,也是要权衡成本收益,可以考虑自己来部署和维护一些开源产品。
可见,不论是在大公司还是在微小公司,不论是否急切需要微服务与云原生架构,作为开发工程师,这里的技术和知识,我们都需要立刻马上学习和掌握。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。