背景
关于便利蜂
便利蜂是一家以新型便利店为主体的科技创新零售企业,公司以科技为核心驱动运营,以“品质生活 便利中国”为己任,怀抱“小小幸福 在你身边”的初心,``、健康、安心的产品和高效、便捷、满意的服务。目前全国开业的门店已超2000家。
网络在门店的作用
便利蜂店内大部分设备都已智能化,依赖网络的设备多达数十种,覆盖了从订单支付到店内运营的方方面面。 店内琐碎的事务中,背后有若干算法在支撑,从订货、陈列、盘点、废弃、热餐制作,到实时变价、自助咖啡、订单结算,每一个环节都有着复杂的网络交互。 要支撑住门店的正常运营,门店网络的稳定非常重要。
门店网络架构
net.png
上图是便利蜂门店网络拓扑。 在便利蜂门店场景中,要特别关注稳定性与成本的平衡。 对于网络稳定性,拓扑中可以看到,互联网出口以主线为主4G作为兜底,由算法控制主线恶化程度后决定是否启用4G网络,从而保证门店网络的可靠。 关于成本,便利店生意很注重规模效应,大规模的场景通常对单套成本是非常敏感的。拆解开看,成本项主要有三部分,第一是设备成本,第二是互联网接入成本,第三是运维人力成本。关于设备成本,在后续章节有所提及。关于互联网接入,通常我们会使用最低廉的宽带做为主线接入。
难点分析
基于上述要求,我们要达成【高质量的一人管千店】,那么会面临几个难题:
-
如何定义高质量;
-
如何解决多品牌设备问题;
-
这么多设备配置,因为各种原因,每天都有可能出现⽹络中断的情况,如何做到一人管千店。
其中最关键的因素在网关,它负责重要的线路逃生决策,还兼具各种智能检测、信息采集等任务,汇聚信息到中心,最终会在监控中实时分析全国门店的网络情况。 所以网关是整个管理系统的眼睛和手,总部系统是大脑。
方案选择
硬件和系统选型
硬件选型要满足如下条件:
-
不能单一供应商,风险太大;
-
多供应商带来的复杂性不能伤害一人管千店的目标;
-
硬件稳定性不输给大厂设备;
目前我们选型的策略如下:
-
品牌 or ODM(设备制造商);
-
品牌往往Console界面互不兼容且不具备编程能力,灵活度大打折扣;
-
ODM往往出货量远低于大品牌,需要对硬件有一定了解谨慎选择;
-
我们目前倾向ODM;
-
-
高通 or MTK;
-
从sdk成熟度来讲,高通占优,但若选MTK需要接受使用低版本Kernel;
-
从成本来讲,MTK占优;
-
我们目前倾向MTK;
-
-
系统用 OpenWRT 官方 or 厂商 SDK;
-
如果对新版本有洁癖,且具备一定的 Kernel debug 能力,建议用 OpenWRT 官方,我们在这条路上有过探索,是完全可以走通的;
-
综合考虑后,我们目前倾向厂商SDK。
-
从以上策略出发,便利蜂必然会是一个多系统并存的状态。
开发语言为什么选 Rust
我们的嵌入式硬件有三种,两种 ARM 和一种 MIPS,其中最低的配置为 MT7621 CPU,有 880MHz MIPS CPU、512M内存(可用400M)、370M Flash,属于嵌入式环境。