昨晚(9月21日)“微信应用号”萌萌哒的化身——“小程序”才刚开始宣布内测,今天朋友圈就刷屏了!真是一石激起千层浪,各种分析、预测文章铺天盖地而来,让人应接不暇。这让笔者依稀看到了当年Docker技术开源时的盛景。
有人说,微信小程序的横空出世,让前端开发开始热闹起来;而笔者想说,在后端开发中,Docker的地位可以与微信小程序一较高下,因为它早就已经火遍后端!
今天我们就来比比微信小程序和Docker究竟是如何在前端和后端开发中一统天下的!
1.Docker在后端开发的江湖地位
作为给容器领域提供了标准化“集装箱”的Docker技术,自开源以来,Docker类应用均以CloudNative云原生自居,在容器类创业者、国内外Docker技术大拿的不断推动下,真正让开发者、企业开始逐渐接受这种云原生应用,并通过Docker&k8s等技术推动互联网的不断进步。
那么,Docker是如何火遍后端的呢?先来看看下面这段火药味十足的对话:
测试:你提测的代码有BUG。看这个页面显示问题吧,点下这个链接跳转的不对吧,再多点几下,网站挂掉了吧!!!
开发:开什么玩笑,我这里怎么一点事没有。搞出网站挂掉这种BUG我还混不混了。你部署环境有问题吧???
测试:!##$&!#$%@#
开发:&@#$@#$&!#
开发:我上你的机器看下……
10分钟后,或者更长,或者更更长时间后……
开发:你配置文件没更新!
测试:你提测的文档里没说要更新!
开发:我昨天不是说过了么……
这里我们并不讨论谁是谁非,要知道是人就会出错,我们应该找到好的方法避免出错。那应该如何统一开发与测试环境呢?
Docker带来了很好的解决方案:把代码和依赖环境做成不可变的一个镜像,需要关注的事物越少遗漏机率越小,这是毫无疑问的。如此统一了开发、测试以及生产环境,你就能节省出更多的时间做更有意义的事情。
为了充分利用计算资源以及考虑到安全问题,我们会在高性能的服务器上使用虚拟机隔离资源为多租户提供服务,要知道虚拟机是重量级的解决方案,创建速度慢、本身占用资源高。
而Docker使用了cgroups/namespace等,是非常轻量的解决方案,占用资源少,启动速度快,可以秒级启动容器。这意味着相同的机器使用Docker能够提供更多的服务。
上面只是简单地举了两个例子,Docker实际解决的问题远不止这些,所以不火才怪。后端开发同行们,你认不认同!
2.微信小程序在前端开发中的潜在地位
微信小程序提供了丰富的框架组件和 API,极大降低了开发的难度,在这些组件和接口的帮助下,建立在微信上的小程序在运行能力和流畅度上便可以保持和Native App一样的体验。
尤其对于 web 前端开发者来说,开发 APP 不再需要学习 IOS、Android,也不需要搞懂 React Native,开发一个微信小程序就够了,所以 JavaScript 是世界上最好的语言。
微信小程序实现了千千万万前端工程师开发App的梦想,想不火都难。所以别再开发App了,请开发移动网页应用吧。
3.Docker与微信小程序的对比
◆ 技术角度
Docker (微服务)的开发技术:
为何要微服务?了解微服务架构、了解其优点与缺点; 微服务间如何通信?学习常见网络协议;
如何制作Docker镜像?学习Dockerfile;
如何管理各容器?了解常用编排系统,如Kubernetes、Mesos、Swarm 。
微信小程序的开发技术:
前端框架如何选择?微信小程序提供了丰富的UI控件,WeUI让小应用看起来更加微信原生化(react、vue、ionic是不是跃跃欲试了呢~)
如何调用系统接口?微信小程序提供的接口和框架异常丰富,包括:视图、内容、按钮、导航、多媒体、网络能力、罗盘、重力感应、画板等。
◆ 产品市场角度
Docker:加速了创业公司的Server端开发流程; 微信小程序:加速了创业公司的用户端开发流程。
4.最后
微信小程序的出现,可以说给开发者和创业者带来了无限的想象空间,最直接的好处就是降低了App开发成本,加快了互联网产品的迭代;而Docker技术的开源和普及,则让后端开发者们尝到了开发运维一体化的甜头,降低了App Server的开发成本,加快了产品的迭代。