轻松构建全栈观测,从容应对咖啡产业竞争

news2024/9/20 14:51:25

1964 年,Tim Hortons 咖啡馆诞生于多伦多的宁静小镇汉密尔顿,由传奇冰球运动员 Tim Horton 先生创立。经过近 60 年的发展,Tim Hortons 已成为全球著名咖啡连锁品牌。在英国权威品牌评估机构 Brand Finance 发布的“全球最有价值的 25 个餐厅品牌”排行榜中,Tim Hortons 连续多年入围。

2019 年,Tim Hortons 来到中国上海开出首家门店,并于 2023 年宣布使用中文名“天好咖啡”。秉承着创始人的初心“欢迎任何人随时来到 Tims 咖啡馆,享受家一般的感觉”,Tims 天好咖啡坚持为顾客提供独特的价值:将新鲜、高质量的本地化食品和饮品相结合,以适宜的价格为顾客提供暖心的体验。

截至 2023 年 7 月,Tims 天好中国全国门店数达到 700+ 家,已经覆盖了 40+ 个城市, 并计划在年底前突破 1000 家门店。凭借“咖啡+暖食”的差异化竞争策略,Tims 天好咖啡将全球品牌力与本土创新加速融合,逐渐走通了一条独有的可持续增长路径。

为了进一步强化 Tims 天好咖啡差异化并支持中国市场的快速增长,自 2021 年起 Tims 天好咖啡全面加速推进数智战略。但由于 Tims 天好咖啡部分早期业务系统由外部服务商提供且架构老旧难以维护,无法满足 Tims 天好咖啡线上业务高速增长所带来的高并发、弹性扩展、敏捷性等要求。为了满足中国越发蓬勃的用户需求与业务增长需要,针对用户交易、门店管理、餐饮制作等核心链路服务,Tims 天好咖啡选择全面自研与云原生化,即全面容器化、微服务化。

01 云原生化带来的技术红利

2021 年,Tims 天好咖啡开始落地容器化,这为 Tims 天好咖啡带来了诸多运维红利。首先,应用部署变得更加高效,借助 K8s 的标准化能力使 CI/CD 变得便捷,整体发布效率大幅提升。其次,部署在容器上的应用天然具备弹性扩缩容能力,更加从容的应对每日餐食时段的流量洪峰。最后,采用容器化的服务按需使用资源,相比原先按照峰值长期固定保有大量冗余资源,有效压降服务器成本。相比过往繁琐的运维流程与人员技能门槛,阿里云容器服务 ACK 的标准化界面很好的解决了容器的高密部署以及系统运维问题,极大的降低了人工运维和资源成本。

为了更好的满足快速迭代、稳定发布诉求,2022 年 Tims 天好咖啡对已有业务系统开始尝试微服务化,采用了以 Dubbo 为核心的微服务技术架构。微服务架构将应用分解的同时,规避了原本复杂度无止境的积累。每个微服务模块专注于单一功能,保持高可维护性并提高了开发效率。与此同时,由于微服务具备独立运行进程,每个微服务模块都可以独立部署。当某个微服务发生变更时,无需编译、部署整个应用。使得发布更加高效,缩短应用交付周期。

02 云原生带来的可观测挑战

但随着容器化、微服务化逐渐深入,云原生化带来的运维挑战与痛点驱动 Tims 天好咖啡运维团队构建更加精细与完整的运维可观测能力:

  1. 业务稳定性驱动:如何保障业务可用性?

作为拥有海量客户的餐饮品牌,Tims 天好咖啡的交易链路核心服务需要保证在营业时间内业务系统的连续性与可用性要求非常严苛。在面临每日高峰订餐时间、新品发布、营销活动、突发热点事件等情况时,系统需要在高并发大流量下保证服务可用和用户体验顺畅。但随着微服务数量逐步增多,链路越来越长,故障定位变得愈发漫长与困难。如果不能快速且精准的进行故障定位,那么故障定位效率低下带来的服务不可用造成的业务损失,可能大于微服务架构本身带来的架构红利。

虽然 Tims 天好咖啡针对不同的服务模块都有对应监控,构建相对完善的指标监控体系,但由于微服务化后的服务模块众多、依赖复杂。很有可能因为某个组件的异常或不可用导致整条链路产生大量冗余告警,形成告警风暴。造成运维团队疲于应付海量告警信息,并非常容易遗漏真正用于故障排查的重要消息。因此,针对海量持续告警信息,如何进行告警合并,在保证不错过核心告警消息的前提下抑制告警消息数量,成为 Tims 天好咖啡的急需解决的重要运维难题。与此同时,由于缺乏链路追踪能力,链路之间无法关联,多个告警可能关联的是同一条完整链路的上下游服务,运维团队对于告警或故障的判断可能被误导或反复排查。

  1. 研发效能驱动:全面提升研发效能与代码质量

应用研发是一项由团队共同参与、需要兼顾多方需求的复杂工作。为了更快、更及时地交付符合生产环境质量要求的服务,过去 Tims 天好咖啡大多采用 Code review 形式对代码质量进行评估。但随着研发协作规模不断扩大,这种评估形式效率达到瓶颈,质量与效率难以有效保障。随着团队规模、业务规模不断提升,团队需要对研发过程进行回顾,从效率、质量、交付速度、稳定性、可预估性等多角度进行抽象,并进行量化评估及巡检。

  1. 构建运维巡检机制:先于客户发现问题

随着业务规模愈发增大,为了提供更稳健的服务与更优质的用户体验,Tims 天好咖啡计划建立内部巡检机制,主动对IT运行风险的评估发现,并围绕业务连续性保障相关的重要系统性能 & 容量 & 质量管理展开,打造先于用户、业务发现问题、分析问题、定位问题的运维巡检闭环,做到技术驱动用户体验与业务优化。

在云原生改造开始前,由于各个服务系统相对简单,Tims 天好咖啡通过自建 Zabbix 来进行指标监控,但 Zabbix 更擅长硬件、系统、网络设备等基础监控。随着云原生化,Zabbix 无法再满足更加丰富的可观测需求。Tims 天好咖啡结合现有云原生架构与以上三个可观测核心痛点,清晰梳理出两个核心思路:

  1. 围绕业务增长规划全链路可观测体系

针对运行态,从前台业务数据、用户体验,到后台应用服务性能,再到云服务及基础资源,即系统资源层、云服务应用层、业务监控层,构建全链路可观测体系,及时发现、定位、解决影响业务与用户体验的故障与瓶颈。避免“自下而上”产生的后台问题,浪费团队时间与精力。同时,借助链路、日志、指标等不同类型指标的融合,提升预警的及时性与准确性,并有效提升故障排查效率。

  1. 可观测驱动研发效能提升

作为领先的技术团队,Tims 天好咖啡将 DevOps 理念与流程引入日常研发流程中,并希望将可观测应用于业务运行态与研发态,从而形成全研发生命周期的观测体系。尤其是系统经过云原生改造后,Tims 天好咖啡希望借助可观测工具更直观高效的评估代码质量,为提高研发效率、需求评估抽象出可衡量的目标。

03 解决方案落地

目前 Tims 天好咖啡的服务载体客户端主要是支付宝小程序、微信小程序,针对Tims天好咖啡业务形态,由于海量用户使用不同操作系统、不同屏幕分辨率的终端设备,分布在不同地域,又通过不同网络运营商进行接入,甚至存在复杂第三方依赖,包括 CDN、第三方统计脚本、页面嵌套等方面。当用户体验遇到问题时,如果仅拥有服务端监控手段,很难第一时间确认问题的根源到底在于前端还是后端。即便能够排除服务端的问题,前端用户体验也受到页面渲染、JavaScript 执行、网络质量、第三方接口服务质量等方面的影响,为进一步排查问题留下了非常多的挑战。

因此,Tims 天好咖啡采用应用实时监控服务 ARMS -前端监控,实时掌握 PV/UV、首次渲染耗时等基础性能指标的同时,及时了解 JS 错误数、API 请求错误等影响用户体验的异常数据。从页面打开速度、页面稳定性和外部服务调用成功率这三个方面监测小程序健康度,帮助使用者降低页面加载时间、减少 JS 错误,有效提升用户体验。

在这里插入图片描述

与此同时,利用应用实时监控服务 ARMS -应用监控,快速了解应用最关键的响应时间,吞吐量,错误率这黄金三指标,同时根据指标的异常利用调用链能力对整个微服务进行快速跟踪。结合 ARMS 前端监控与应用监控,Tims 天好咖啡轻松构建前后端全链路追踪能力,将前端 API 请求从前端发出到后端调用链路完整串联,真实还原代码执行的完整现场。运维团队在故障发现时能够更快速的进行故障定位与根因分析。

在这里插入图片描述

在这里插入图片描述

针对容器及中间件云服务,Tims 天好咖啡选择使用 Prometheus + Grafana 的方案进行构建指标监控体系,并形成统一的可观测大屏。通过阿里云可观测监控 Prometheus 版获取了 ARMS 应用监控、云产品监控等指标数据源,结合业务需求与对象赋予各类业务标签,通过可观测可视化 Grafana 版为各个应用搭建完整可观测视图。

在这里插入图片描述

在建立可观测体系过程中,能够更早发现问题并提示的告警体系是非常重要的环节,Tims 天好咖啡采用**「静态阈值」 + 「ARMS Insight」结合**的方案进行日常告警配置。ARMS Insight 借助 ARMS 算法自动判断异常产生故障告警,并基于阿里云多年诊断经验与方案为这些告警故障生成相关诊断报告,目前已覆盖响应时间飙升、错误飙升等 6 大类不同场景,能自动判别、归因近百种不同问题根因,大幅提升常见问题诊断效率,缩短业务恢复时长。同时,对于 Tims 天好咖啡的核心业务场景和服务接口,Tims 天好咖啡根据业务实践设置各类静态阈值进行兜底,保证告警完整性和及时性。

“如果监控解决的是及时知晓服务故障,那么可观测的落地最终目的是挖掘故障或异常的本质,分析根因并反哺业务增长与技术体系迭代。”整个咖啡行业都在尝试数字化,可以看到作为其中优秀代表的 Tims 天好咖啡,正以惊人速度在中国市场扩张。借助以可观测为代表的阿里云云原生产品解决方案,Tims 天好咖啡更加从容的面对门店、交易数量、会员数量的急速增长,在愈发激烈的市场竞争中始终保持竞争优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KVM创建新的虚拟机(图形化)

1.启动kvm管理器 [rootlocalhost ~]# virt-manager2.点击创建虚拟机 3.选择所需os安装镜像 4.选择合适的内存大小和CPU 5.创建所需磁盘 6.命名创建的虚拟机

C#界面美化小技巧

1.窗体设置为无边框 FormBorderStyle的属性设置为none 2.窗体无边框,可以拖拽 private Point mPoint new Point(); private void Download_MouseDown(object sender, MouseEventArgs e) { mPoint.X e.X; mPoint.Y e.Y; …

Vue3--->组合式API与Pinia

目录 使用create-vue搭建 1、使用create-vue创建项目 2、项目目录和关键文件 组合式API 1、组合式API - setup选项 2、组合式API - reactive和ref函数 3、组合式API - computed 4、组合式API - watch 1、基础使用 - 侦听单个数据 2、基础使用 - 侦听多个数据 3、immediate&…

面向对象学生考试系统实战:用Java构建简单的学生考试系统(附源码)

文章目录 项目简介项目代码实现1. Person类2. Student类3. Teacher类4. Question类5. ExamMachine类6. TestMain类(主程序) 项目运行 在当今科技高速发展的时代,面向对象编程成为了软件开发的主流范式之一。通过面向对象的方法,我…

【CSDN】

欢迎使用Mark编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#xff0c…

著名开源Linux图形驱动开发者与Valve签约

导读据报道,Valve 最近聘用了著名开源 Linux 图形驱动开发者 Alyssa Rosenzweig,以改进开源 Linux 图形驱动程序堆栈,增强 Linux 游戏生态系统。 据报道,Valve 最近聘用了著名开源 Linux 图形驱动开发者 Alyssa Rosenzweig&#…

国家留学基金委(CSC)|发布2024年创新型人才国际合作培养项目实施办法

2023年7月28日,国家留学基金委(CSC)发布了《2024年创新型人才国际合作培养项目实施办法》,在此知识人网小编做全文转载。详细信息请参见https://www.csc.edu.cn/chuguo/s/2648。 2024年创新型人才国际合作培养项目实施办法 第一章…

工作中用到的shell命令

工作中用到的shell命令 1、查看自己的系统版本:2、登陆远程服务第一种情况(没做端口映射):第二种情况(做了端口映射): 3、 ls -l -f4、grep5、scp6、zip 7、标准输入输出8、dirname9、date 1、查看自己的系…

基于微信机器人的二次开发

使用微信ipad协议来开发微信机器人,可以开发的项目很多,例如一些娱乐机器人、云发单系统,私域流量的智能管理和营销拓客,还有一些自动采集和发朋友圈的云端系统等。每个行业都有需求这样的系统应用,在线教育、金融、电…

从哪些方面学HTML技术? - 易智编译EaseEditing

学习HTML技术是前端开发的基础,它用于定义网页的结构和内容。以下是学习HTML技术时可以关注的方面: HTML基本语法: 了解HTML标签的基本语法和用法,学习如何创建HTML文档和元素。 常用HTML标签: 学习常用的HTML标签&…

一文详解:自动化测试工具——Selenium

前言 Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,…

windows11编译VideoProcessingFramework库

1、下载VideoProcessingFramework Release v2.0.0 NVIDIA/VideoProcessingFramework GitHub 2、下载FFMPEG Releases BtbN/FFmpeg-Builds GitHub 推荐 ffmpeg-n4.4-latest-win64-lgpl-shared-4.4 3、下载CMAKE Download | CMake 4、下载visual studio 2019 Visual …

python必背内容

本篇文章给大家谈谈python必背内容,以及一个有趣的事情,希望对各位有所帮助,不要忘了收藏本站喔。 来源 | Towards Data Science 作者 | Soner Yildirim 编译 | VK Python在数据科学生态系统中占据主导地位PHP与PYTHON:基于语法&a…

Lizard Era: Beginning

题目 思路 暴力dfs会TLE,考虑折半搜索 将每次任务分为左边获得的和右边获得的 即 l 1 r 1 l 2 r 2 l 3 r 3 l_1r_1l_2r_2l_3r3 l1​r1​l2​r2​l3​r3 为了让左边搜索时只依赖l,右边只依赖r,所以移项变为 r 1 − r 2 l 2 − l 1 r_…

b 树和 b+树的理解

项目场景: 图灵奖获得者(Niklaus Wirth )说过: 程序 数据结构 算法, 也就说我们无时无刻 都在和数据结构打交道。 只是作为 Java 开发,由于技术体系的成熟度较高,使得大部分人认为&#xff1…

BugKu CTF(杂项篇MISC)—社工-进阶收集

BugKu CTF(杂项篇MISC)—社工-进阶收集 提 示: flag{小美小区名字拼音} 描 述: 小明当年为了追求小美想尽办法获得小美的地址。直到有一天小美发了一条说说,小明觉得希望来了。(实战改编题,难度降低了。) [外链图片转存失败,源站可能有防盗链机制,建议…

CAS 机制

问题分析与思考: CAS 是 Java 中 Unsafe 类里面的方法,它的全称是 CompareAndSwap,比较并交换 的意思。 它的主要功能是能够保证在多线程环境下,对于共享变量的修改的原子性。 举个例子,比如说有这样一个场景&#xff…

手机上怎么pdf转word?教你这样操作

手机上怎么pdf转word?在现代社会,PDF和Word文档是我们工作和学习中经常用到的文档格式。有时候,我们需要将PDF文档转换为Word文档,以便更好地编辑和修改。那么,我们该如何在手机上实现PDF转Word呢?今天就给…

从小白到大神之路之学习运维第71天-------Docker容器引擎操作(创建私有仓库、docker资源限制、数据持久化、volume的基本使用)

第四阶段 时 间:2023年8月1日 参加人:全班人员 内 容: Docker容器引擎操作 目录 一、Docker 容器操作 1、创建容器与运行容器 2、容器的启动与停止 3、容器的运行与终止 4、容器的进入 5、容器的导出与导入 6、容器的删除 7、文…

【C语言】关键字static——static修饰局部变量、全局变量和函数详解!

在C语言中,static是修饰变量和函数的。static修饰局部变量称为静态局部变量,static修饰全局变量称为静态全局变量,static修饰函数称为静态函数。 文章目录 静态变量在静态区分配内存static修饰全局变量static修饰局部变量static修饰函数 静态…