云原生cloud native随笔

导读:这不是一篇介绍云原生是什么的文章,而是因对云原生的接触和认知引生出来的一些话题,甚至涉及到职业方向的选择。

最近半年,我们接触到了阿里的开发体系,在参与合作项目的开发时才真正了解到了云原生开发体系(cloud native)是怎么样一个过程。他们从需求到开发,再到集成,最后到发布,整个流程基本上都有已经实现了自动化的流转。其中有几项令人印象深刻:

(1)阿里体系内某个公司开发人员规模2-3千人左右,但运维人员只有4-5个人。相比之下,我们的开发和运维人员配比已经远远超标。

(2)测试环境服务器用时申请,申请即可使用,使用完毕即可销毁,不会闲置硬件资源。

(3)基于AONE及其他在线服务平台,所有服务和硬件资源在线申请,在线完成配置,全程自动化。

(4)基础中间件非常丰富,基本解决了应用开发中遇到的常规问题。可以很好的让应用开发人员集中精力解决业务问题。缺点是开发人员对于这些基础的技术栈离得越来越远,就像他们自己说的,离开了这个平台,都不会开发了(没有基础设施的支持,一切得从头在来)。

从云原来的框架图谱来看,阿里的开发体系已经与云原生非常接近。

作为小厂,我们虽然没有大厂那样强大的基础设置,但也在做一些局部的改造:

(1)代码库统一,统一使用GIT,从开发到发布统一一套代码库。

(2)配置信息从应用中抽离出来,集中化管理。

(3)微服务化改造。

(4)通过改造运维基础设施,实施滚动发布(之前是每2周定期发布一次)。

(5)提高自动化测试的覆盖率。

至此,我对云原生的总体认知是为了更好的支撑业务发展,需要将研发体系的效率提升到极致,所以一切都在朝着自动化的方向发展,而未来的方向一定是AI。

然而,有一个方面在云原生里很少被提及,那就是如何提升具体应用系统的质量和效率,说白了就是如何让开发人员交付架构设计良好、代码层次优秀、可扩展性高、稳定可靠的系统。根据我的理解,因为这一块涉及的知识面非常多,比如面向对象、UML、设计模式,架构模式、领域驱动、测试驱动、基础设施的合理搭配和应用以及复杂多变的业务领域等,抽象出一套放之四海而皆准的方法论及体系,非常的困难。

从与阿里合作的项目来看,他们开发出来的应用系统在质量和可靠性上也不是很理想,可以说与市场的平均水平相当,没有什么优势可言。但是拥有完善的基础设施可以让他们试错成本更低,响应业务的速度更快。

综上,云原生是在帮助我们更快更好的创造客户价值,而如何创造客户价值是需要另外深入思考的问题。所以,没有进大厂的同学,也不要气馁,抓住自己发展的方向,宁挖一口井,不挖十个坑(冯伦语录)。

你可能感兴趣的:(云原生cloud native随笔)