分享嘉宾简海清,视源股份运维负责人。
视源股份(CVTE)自成立以来,依托在音视频技术、人机交互、应用开发、系统集成等电子产品领域的软硬件技术积累,建立了教育数字化工具及服务提供商希沃(seewo)、智慧协同平台 MAXHUB 等多个业内知名品牌。其中希沃从 2012 年到 2021 年连续 10 年蝉联中国交互智能平板行业市占率桂冠,已成为名副其实的行业标杆企业。
为了应对日趋成熟及快速增长的业务现状,希沃又是如何在网关层面进行跟进的呢?
随着技术的飞速发展,在人际交互智能领域,业务需求也对架构迭代有了更高的要求。为了应对日趋成熟及快速增长的业务现状,希沃又是如何在网关层面进行跟进的呢?
网关往期迭代与痛点
希沃网关的发展经历了四个版本的迭代。2013 年公司开始尝试互联网业务,那时候采用了 OpenResty + NGINX 静态配置的方式搭建了最初的网关,开发人员通过 SCP(Secure Copy)进行发布。与此同时一个比较严重的问题就是,每次上线发布都需要运维人员的协助才能保证平滑上线。
随着业务的发展和人员的扩充,2016 年我们开发了第二代发布系统和相关迭代网关。这次是基于 OpenResty 集成了 upsync 模块,同时配合 Consul 来进行服务发现。第二代的系统解决了上一代开发人员无法独立发布上线的问题,但仍需要运维协助才能进行扩容。
之后公司业务开始了迅猛发展,开始对网关以及产品的弹性扩缩能力有了更高的要求。2018 年我们基于 K8s 开发了第三代系统。考虑到仍有部分应用遗留在数组机上,所以整个网关架构是在 K8s 上使用 Ingress NGINX 来当作第二层的网关,第一层网关仍是 OpenResty 配合的双层网关架构。这种情况下虽然解决了前代发布扩容等自助问题,但又引入了新的麻烦。
业务的快速扩充致使对于整体稳定性的要求越来越高。采用这种双层网关架构后,一层 NGINX reload 和二层网关的路由变更,都会造成长连接断开。这对于一些长连接使用场景会影响较大,比如软件需要获取老师的授课状态时连接突然断开,状态获取中断从而影响授课。
本身双层架构就会带来成本层面的一些增加。同时,从上图的网关流量拓扑图可以看到,除上述遗留问题外也还存在一些架构上的痛点:
- 在双层网关架构下,不管是在第一层网关添加域名、修改配置或者添加一些特殊规则等,都需要 relo