首页 > 娱乐前沿 > 产经
6人开发团队搞定1,000家餐厅,iChef解决维运琐事有密技
乐乐 2016-06-03 12:25:12
图片来源:

iThomegIO我酷网

「我们是一家牛肉麵店的IT部门」,iChef共同创办人兼技术长何明政从连锁餐厅麻膳堂为起点,选择使用iPad作为终端介面,搭配iOS打造餐厅的云端POS解决方案,从2012年创办至今,在台湾、香港已经超过1,000家餐厅使用iChef,而海外据点也扩展到新加坡、香港。gIO我酷网

何明政表示:「iChef从餐厅的角度出发,思考什幺元件对产品最重要」,他会如此表示,是因为iChef的成立,跟麻膳堂的内部作业流程改革有密切关係。gIO我酷网

当时,麻膳堂想摆脱传统的收银作业流程,正苦于找寻于适合的POS系统。刚好,麻膳堂创办人认识了在国外从事资讯工作的何明政,对他透露了这个烦恼。何明政因此开始思考能否打造以iOS为基础的餐厅POS,最后决定一同创办了iChef。gIO我酷网

何明政观察,过去15至20年中,POS系统没太大的改变,大部分产品多沿用工业电脑作为解决方案。不同于一般台湾新创多聚焦于消费者端的应用产品,iChef一开始就想做「企业级解决方案」,主要客户不是一般的消费者。gIO我酷网

在开发iChef的过程中,何明政认为,最重要功能是前端功能,尤其「POS产业是高度客製化需求的产业」,何明政表示,iChef开发团队每天都会收到新挑战,如企业要求开发新报表功能、操作方式。但是,从创立iChef第一天起,「我们决定不做任何客製化」,而是将所有功能整合在单一产品中,打造一套到处适用的统一平台。gIO我酷网

但这也意味,iChef必须尽可能地整合每家餐厅各式各样的需求,开发更多通用功能至POS产品中。gIO我酷网

但是,iChef开发团队只有6个人,为了扛起1,000家餐厅所用的POS系统,「没有多余的力气处理后端的维运工作」,因此,何明政开始导入AWS,「让开发团队可以更专注在产品上。」gIO我酷网

用Docker、ECS解决部署问题gIO我酷网

因为不断加入新功能,开发团队不只频繁地修改程式码,甚至还经常改变资料架构(Data Schema),但这也让程式部署变得越来越困难。例如,iChef用使用资料分析函式库Pandas及Python扩充程式库NumPy来设计报表功能,但这两个函式库需同时部署许多相依元件,使用EC2虚拟机器来部署报表功能的后端系统时相当费工,若遇上程式码或Schema有异动时,维运负担则更是雪上加霜。gIO我酷网

所以,iChef进一步改用EC2容器服务(ECS),将所有需要的映像档打包成Docker映像档来简化部署,「部署时,就不需要担心程式的相依性问题。」何明政表示。gIO我酷网

靠AWS Lambda搞定日常维运工作gIO我酷网

儘管拥抱Docker,仍然不足以解决所有的维运问题,iChef开发团队仍然会受到日常琐事的干扰。「最困难的是就是工作排程」,何明政解释,新创公司永远都会把产品开发放在第一顺位,其次,才是处理日常维运工作。可是,对IT来说,无论如何都得有人负责维运,怎幺办?gIO我酷网

5月报税季就经常发生一些说大不大,但iChef又必须帮用户解决的小事,尤其是电子发票格式、系统对帐等问题。身兼业务、客服和应用工程师的第一线人员儘管有能力解决问题,但要更新这名客户的资料,得接触后端资料库,第一线人员没有权限,得寻求内部IT的协助。可是这些日益增加的维运琐事,又恐拖累IT团队开发新功能的速度,「开发团队得想办法抄捷径,快速解决问题。」何明政说。gIO我酷网

像是iChef最近就碰到发票编号处理的问题,何明政不希望开发团队花时间为此手动存取资料库,也不想要为这样的需求,特别开发一支后端系统来解决问题,「得找出更简单的方法,让一线人员具备自行排除问题的能力。」他说。gIO我酷网

后来,iChef团队利用内部惯用的通讯软体Slack,在上面用脚本程式写了一个软体机器人(Bot)小程式,称为「发票小精灵」,可以将发票处理SQL指令,透过AWS的无伺服器服务Lambda API,转发到后端系统的资料库服务中执行,再将处理结果抛回Slack。gIO我酷网

例如,第一线人员需要查询特定发票编号的资料时,只要在Slack特定讨论频道中,发出查询这批发票的SQL指令,发票小精灵能自动撷取将这串指令,透过HTTPS通讯送给Lambda API,再由有权存取内部VPC环境的Lambda,呼叫AWS RDS资料库服务来执行这段SQL指令,RDS传回查询结果后,同样透过Lambda API将资料送到Slack的发票小精灵,发布到同一个讨论频道中,彷彿就像是发票小精灵作完了查询工作后,将结果回覆给第一线人员一般。gIO我酷网

「虽然这是简单的资料库读取流程」,但何明政认为,这些简单、小量的日常客服工作实作为脚本程式后,的确大幅简化了iChef每日的营运工作。gIO我酷网

他坦言,虽然iChef目前没有稳定的DevOps工作成员,但是利用AWS、Slack拼凑的内部解决方案,连非IT团队的成员也能够使用,「因此仍然能够继续前进。」gIO我酷网

加速公司营运,IT团队要当领头羊gIO我酷网

何明政表示,维运工作的目的,是减轻企业内部的维运成本,但是新创公司往往会降低例行公事的优先顺序,「永远不会有人重视这些基本但重要的工作」,无形中逐渐累积的维运工作,回过头来又让开发团队无法投入全部的力气开发新产品。gIO我酷网

更重要的是,何明政认为,企业要快速成长,就算开发团队导入Scrum敏捷式工作流程,单靠IT团队还是不够,需要与其他部门一同协作。gIO我酷网

「协助其他部门找到敏捷工作方式,是IT团队的责任」, 就像是发票小精灵,不只降低IT部门的额外负担,还可以帮助非IT部门快速处理例行琐事的小帮手,就是一举两得的好例子。gIO我酷网

身兼共同创办人及技术长的何明政,自言「这两个角色很极端」,身为技术长的角色,他想专注于开发而非解决琐事,但作为创办人,他必须确保iChef运作正常,「如果IT团队替其他部门多着想,这是改变企业文化很好的出发点。」gIO我酷网

gIO我酷网

自製软体机器人「发票小精灵」gIO我酷网

负责客服的第一线人员,只要在Slack特定频道(图中为Special-command)下达查询发票的SQL指令,发票小精灵会自动撷取发言内容,呼叫Lambda API来完成查询,并将结果自动回覆到对话中。gIO我酷网

?gIO我酷网

gIO我酷网

发票小精灵Lambda概念架构gIO我酷网

客服人员在Slack中下达特定SQL指令后,会驱动发票小精灵Bot,将SQL指令透过Lambda API传给内部VPC环境的RDS资料库执行,RDS也透过Lambda API回传结果给发票小精灵,自动发布到Slack中。gIO我酷网

gIO我酷网

上一篇  下一篇

I 相关 / Other

搞定“金欧百姬” 黄鸿升这么做

记者翁新涵/台北报道电影《风云高手》男主角黄鸿升,2日受邀担任金瓯女中毕业典礼神秘嘉宾,他一现身,全场700多位女学生都尖叫不已,比在他自己的演唱会上还受欢迎。黄鸿升说:“虽然毕业已经很多年了,但这次回到

申购基金更便利 一个帐户就搞定

为扩大证券商财富管理业务及便利民众理财,金管会开放境內基金款项收付得委由证券集中保险事业办理,即未来民众可透过同一帐户,跟券商购买境內外基金。金融监督管理委员会日前发函,开放证券经纪商以自己名义为投资

帮阿怡大小姐代打的是谁 斗鱼阿怡有完善的代打团队 [非常娱乐]

帮阿怡大小姐代打的是谁 斗鱼阿怡有完善的代打团队 [非常娱乐]帮阿怡大小姐代打的是谁 斗鱼阿怡有完善的代打团队这段时间斗鱼阿怡大小姐的代打事件,在各大直播平台和微博闹的可是沸沸扬扬,很多人还在怀疑阿怡到底

科智攻机联网 电脑展秀平台解决方案

台北国际电脑展持续热闹登场,物联网技术应用成为焦点之一,其中资策会衍生公司科智企业,大秀机联网平台解决方案。2016台北国际电脑展 持续在台北南港展览馆、世贸一馆、世贸三馆、台北国际会议中心盛大展出,包括

男子猝死西餐厅 [焦点]

男子猝死西餐厅 服务员表示或为附近流浪汉 5月31日,福建泉州的一处肯德基快餐店中,一名男子在进入店内后一个人默不作声的在座位上休息,不久后起身走动一会又躺在长椅上睡觉,后被工作人员发现时已经身亡。 据餐厅

I 热点 / Hot