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