在过去的文章中,我们曾 追踪过 Kubernetes 中的网络数据包[1],这篇文章将追踪 Kubernetes 中的 DNS 查询。 让我们以在 Pod 中解析 Service 完全限定域名(FQDN) foo.bar.svc.cluster.local 为例。 在开始之前,先回顾下 DNS 的解析流程。
相比于其他电商场景,外卖场景对于实时发现和反馈用户兴趣的能力有着更高的要求。近年来,美团外卖算法团队摸索出了一套适用于外卖场景的智能陪伴型导购架构和策略。这一举措已经取得了显著成效,本文将详细介绍外卖搜索技术团队搭建智能陪伴型导购时,所遇到的挑战以及解决思路,希望能对大家有所帮助或启发。
“用户决定价值。” 英国大文豪狄更斯曾在《双城记》中说:“这是最好的时代,也是最坏的时代”。大浪淘沙之下,汽车产业的故事正是当下制造业最恢宏和吸睛的叙事,恢宏在于增长速度,吸睛则在于变数。 2022年对于国内汽车市场未来近十年间的发展来说算是一个分水岭,一些旧品牌黯然离场,一些新势力厚积薄发,不断刷新着市场固有格局,也引发了接下来一段时间内从汽车从品牌到产品发展的新趋势。 如今的汽车行业,机遇与风险并存。汽车消费群体年轻化,传统制造与智能化技术融合,每一次浪潮都能冲刷出一条新起跑线。王者独霸江湖的时代远去,创新成为优胜劣汰的唯一准则,谁能把握住机会,谁就能笑到最后。
不管是架构治理,还是团队管理,通过有效的度量都能找到问题并加以改进,指标也能反映改进后的效果。 指标是很神奇的,它就像是系统中的一个开关,如果你关注它,就像打开一个开关,整个系统可能会有一些奇怪的反应。找到合适的指标让系统达到自己预期的效果,非常难。然而,这并不意味着我们要放弃通过指标度量的手段来解决问题。 很多人会用医生诊病来比喻软件架构健康度优化,我也曾在 《如何提升系统可用性》 用名医扁鹊三兄弟的故事来说明提前关注系统健康度的重要性。软件系统的运行可能远不及人体那么复杂,但随着系统规模的增大,系统的运行会变得非常复杂,远超出一个人所能认知的范围,在这种情况下,软件系统和人体都可以看做是非常复杂的系统,一些“诊断”和“医治”的手段和方法大概是相通的。
抛开性能、并发、一致性等技术因素,好的业务代码,应当如一篇显浅易懂的业务叙实文章,满足以下几个基本条件: 词要达意:最基础的变量、函数、类的命名,是否名达其意。 结构清晰:类的关系结构,函数的调用结构,是否如文章的章节、段落划分层次分明和逻辑清晰。 紧扣主题:包、类、函数是否内聚,是否破坏了单一和开闭原则。 因此,好代码如同好文章,它应该是饱含业务语义(词要达意)、具有自明性和可读性(结构清晰),能够显性化表达业务意图(紧扣主题),让人赏心悦目。
本文从生活中的时间观、事件的因果顺序、逻辑时钟等方面系统的介绍了分布式系统中的时空观是如何构建的。(文末有活动~)
Monorepo 和 Bazel 给我们带了很多优势,比如快速、正确、易扩展、易协作等。虽然 Bazel 早期版本对于 iOS 开发并不太友好,甚至让一些团队产生了放弃使用 Bazel 的想法;但 Bazel 本身极其优秀的扩展性,使得社区对其一直抱有极高的热情,开发出了许多优秀的 Rules,促使社区和 Bazel 本身一直向前进化,如今的 Bazel 已不同往日,一些早期令人诟病的问题也被一一解决。目前我们正在使用 Bazel 6.1.2 版本,且即将紧跟官方的脚步更新到 6.3.0 版本。今天我们就来聊聊我们哔哩哔哩近一年(主要是Bazel 5.0.0 版本以后)所应用的一些新特性、新 rules 以及在自建 rules 方面的探索。
Pod 作为 K8s 中一等公民,其承载了最核心的 Container(s) 的运行。同时,Pod 也是 K8s 中资源调度的最小单位,因此熟悉其初始化过程(包括网络、存储、运行时等)将会使我们更加深入理解 K8s 的容器编排原理,以期更好的服务各类业务。