课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着软件编程开发技术的不断发展,我们在前端以及运维架构等方面都有了很大的改变。今天我们就一起来了解一下,这些改变对软件开发都有哪些影响。
运维:从手工运维到DevOps
运维在过去几年遭遇了云计算技术的强烈冲击。那些依赖云计算提供商的公司,它们的运维的职责大大削弱,而自研云技术的公司里的运维则要求大大提高,过去的经验已经难以适用了。
这其中重要的变化就是DevOps的出现,运维的身份职责发生了转变,它不再是专门跑任务脚本或者与机器打交道的人,而是变成了OpenStack或者Kubernetes的专家,通过搭建/管理相关的分布式集群,为研发提供可靠的应用运行环境。
DevOps更重要的方面还是改变了应用交付的流程,从传统的搭火车模式走向持续交付,应用的架构和形态改变了,其方法论也随之而改变。DevOps和持续交付也被认为是云原生应用的要素。
至于AIOps是DevOps在实践AI过程中的一些应用,称不上是范式的改变,AI在运维领域还远远取代不了人的作用。
前端:前后端分离
前端在过去几年的变化同样称得上是翻天覆地,2008年Nodejs的出现彻底激发了前端的生态,将JavaScript的疆域拓展到服务端和桌面,终催生出大前端的概念。
如果纯粹看传统的前端开发的变化,不仅主流技术从jQuery转移到三大框架,更重要的是SPA和前后端分离的出现。
SPA代表着前端的应用化,也就意味着胖客户端,部分业务逻辑可以从服务端转移到客户端完成。前后端分离更是将前端从后端独立出来,划定了领域边界。后端对前端来说,成为了数据层,只要接口能够正确返回数据,前端并不关心后端是如何做到的。
事实上,胖客户端的转变正好与后端的进化方向吻合。无论是微服务还是Serverless,都强调无状态,这意味着你不应该用后端去生成有状态的UI,而是让客户端自行处理状态。
架构:微服务、ServiceMesh和Serverless
云计算为应用打造了分布式的基础设施,但是,如果应用还是以传统的单体应用的思路开发,则云计算意义并不大。
这些年里,软件架构逐渐从SOA进化到微服务,很多人认为微服务是一种细粒度的SOA,在去掉了SOA中的ESB之后,微服务变得更加灵活、性能更强。但是,实施微服务需要一些前提。
MartinFowler曾经总结过微服务实施的前提包括:
计算资源的快速分配
基本的监控
快速部署
这基本就是Kubernetes所起到的主要作用,虽然如SpringCloud、Dubbo微服务框架在各方面已经非常完善,但随着云原生计算基金会的壮大,基于Kubernetes的微服务在社区中的热度越来越高,也开始有很多公司开始利用这一套技术栈来构建微服务。
到2016年,ServiceMesh开始引起社区的注意,Kubernetes加上ServiceMesh,再加上CNCF的一些开源项目,基于k8s的微服务技术栈基本就完善了。2018年Istio1.0发布,更是为这股浪潮加了一把火,未来的微服务将是k8s和ServiceMesh的天下。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。