移动应用开发,兼顾安全和敏捷特性的小程序容器技术
“容器”一词来源于英文单词 Container ,翻译过来也是“集装箱”。在研发管理领域中,容器能达到类似“集装箱”的效果,只要我们提供的原材料(镜像)一样,得到的结果(运行实例)都是一样的,并且还能实现打包隔离和轻松运输。
一、前端容器的优势
如果把容器类比成集装箱的话,可以很清晰的汇总容器的优势:“提供的原材料(镜像)一样,得到的结果(运行实例)一样”、“打包隔离”、“轻松运输” 等。
容器内运行的服务或服务对应的多个进程就应该是集装箱里对应的货物了,可以很自然地想到,容器的目的就是为进程集合提供一个独立的运行环境。
那我们具体应该怎么实现 “独立的运行环境” 呢?
1、文件系统隔离
- 每个容器都具有独立的文件系统,单个容器内对文件系统进行增删改查不会影响到其他容器
- 参考 Linux 下的 chroot 命令,可以将子目录变为根目录
2、资源隔离
- 利用 namespace 隔离进程之间的相互可见及通信
- 使用 Cgroup 限制资源使用率,设置其能够使用的 CPU 以及内存量的大小
所以容器的本质就是一个视图隔离、资源可限制、独立文件系统的进程集合,它将系统的其他资源隔离开来,具有自己独立的资源视图。“视图隔离”,指的是能够看到部分进程、有独立的主机名,“资源可限制”,指的是可以限制内存大小、CPU 使用个数等。
二、小程序容器相较于h5、原生的优势
在国内,时代的搅局者非小程序莫属。
随着微信、支付宝、百度、抖音等小程序平台的推出,小程序生态获得空前的成功,那有没有一种可能,小程序生态和容器相结合,形成小程序容器呢?
小程序容器顾名思义,是一个承载小程序的运行环境,可主动干预并进行功能扩展,达到丰富能力、优化性能、提升体验的目的。
可能大家也会想,H5也能实现为啥非要搞小程序,如果用小程序和我们更常接触和使用的“H5 移动应用”与“移动原生应用”作比较,我们会发现小程序的又具有非常明显的几大优势。
- 具备跨平台的能力,一套代码可以在 iOS 与 Android 等多个平台中运行;
- 远超过 H5 的体验(支持本地缓存,Webview,有丰富的组件与支持库);
- 能获取更多系统权限,完成更加丰富的产品设计;
- 可以避免 DOM 泄露(不使用常用的 window 对象与 document 对象);
- 包尺寸有效减少,节省流量和存储
三、小程序容器可以发挥的价值
总而言之小程序容器可以帮助开发者快速优化发布包大小,节省流量和存储。同时,App 服务迭代不再受发版限制,快速发布,快速迭代。甚至,基于统一的开发标准,小程序仅需开发一次,便可快速投放至多端。
1、多端投放上架
因为语法的规范性和兼容性,在开发工作中只需要开发一次小程序,就能在不同的应用打开,天然解决跨端痛点。同时,通过IDE工具调试适配后可将小程序投放至例如微信、阿里、百度、字节等开放平台,连接各大流量平台,触及海量用户,满足多端引流的需求。
2、迭代更敏捷
对于例如金融、社交、电商等复杂的业务本身会有频繁迭代的需求,其实较好的方式是将这部分业务剥离改造为小程序,继而通过上下架的形式到 App 中,可以做到热更新,不再需要等待主版发版和频繁的提交App Store审核,满足复杂业务多变的场景。
3、打造开放生态平台
对于有生态建设的企业来说,同样可以通过小程序上下架形式引入第三方商户,在 App 内打造一个自有轻应用集散中心(应用商店),快速覆盖衣食住行、办公协同等各类高频小程序场景,像微信、支付宝一样形成自己的开放生态平台。
四、如何引入小程序容器
小程序容器很好,很多公司也都是内部在自研,不过仅限于有实力的公司,研发出来也是自己内部在用。例如,腾讯、阿里、字节、百度等大厂都有自己的小程序平台,但他们几乎也都是仅限于内部使用。
更普遍的现实是更多的公司想用但没这个实力搞,如果确实需要一个小程序容器该用怎样的正确姿势获得呢?
这里就推荐下FinClip ,一个能够让任何 App 运行小程序的解决方案,只需要在你的 App 里面,引入它的 SDK,就能加载运行外部小程序了。除了 SDK,它还提供一个后台管理系统,统一管理小程序的上架和下架,以及收集和分析小程序数据。
使用下来,想谈下对 FinClip的体验:
- 遵循微信小程序的开发标准与规范,开发轻松很多
也就是说,现有的微信小程序可以不改一行代码,直接放进你的 App 里面,运行效果保持不变,不必额外二次开发和改造,大大节省了人力成本。
- 开发者的福音,支持多终端运行
除了移动端的 iOS 与 Android,看到还支持了包括 Linux、Windows、MacOS、麒麟等操作系统。相当于PC 端、车载设备、智能电视都能使用小程序了,看得出来做产品确实很用心。
- 提供IDE 与文档,上手的学习成本低
提供小程序 IDE 开发工具,界面与微信小程序的开发工具类似,自带调试和真机预览,简单易上手。可以在这个 IDE 里面,对现有项目进行二次开发,扩展功能和接口,或者从零开始写出一个小程序。
而且从官网看到,FinClip 已经得到了很多大公司的认可,有上百家客户,包括券商、股份制银行、航空公司、车载设备服务商、省级移动警务平台等重要企业。开发者人数超过3万,服务用户达到2500万人,在真实的生产环境经受了百万级的并发压力考验。
FinClip 有社区版,供个人开发者免费使用;也有企业版,不过需要按年付费,或者购买专属私人化服务。
*** 最近看到他们还基于小程序插件、小程序应用开发在搞黑客马拉松,超过10万元的现金池,也推荐有兴趣的朋友关注些(毕竟这种大额奖金的羊毛还是少见)。在活动主页加了他们的活动交流群,还在真正无门槛地送超过400份的前端学习资料包,对于必须卷的我还是挺受用。