作者 | 蔡书、Ali Naqvi 译者 | 明知山 策划 | 丁晓昀 人们经常问到的一个问题是:“什么是可编程代理,我们为什么需要它?”本文试图从不同的角度来回答这个问题。...我们将从代理的简单定义开始,然后讨论代理在不同阶段是如何演化的,它们满足了哪些需求,以及它们在每个阶段提供了哪些好处。最后,我们将讨论可编程性的几个方面,并概述我们为什么需要可编程代理。...度量是多租户的派生需求,一方面要求隔离性,另一方面需要以尽可能小的粒度度量资源。 接下来,我们将上面的讨论总结成一个表格,其中的行对应于特定的需求,列对应于不同阶段的代理。...表中的第 11 行到第 17 行都与可编程代理有关,它们构成了为什么要使用可编程代理的答案: 可以扩展代理的内部功能,包括底层核心能力、支持的协议、Layer7 处理能力 (转发、路由、判断、访问控制等...总 结 在本文中,我们解释了什么是可编程代理。为此,我们从什么是代理以及它的关键特征的定义开始,然后我们扩展了讨论的内容,包括代理的演进阶段,解释了在每个阶段添加的特性和功能。
[本文由Yaron Parasol编写] 什么是Docker容器?...按照开发设计的原则,Docker被特意的作为应用程序中独立的部分,一般来说,它通常是层中的一个层,甚至一个节点。 然而,一个应用程序在其架构中通常是多层的,这意味着什么呢?...这也就是为什么您需要一种方法来将您的应用程序整合在一起。...来让我们一探究竟。 (链接) 那么,编排器扮演着什么角色呢?...我们并不会在开始时就执行这个配置并运行应用程序。但后来我们意识到,对于具有依赖性的容器,我们需要它的运行属性来进行下一步的操作。我们拿创建容器时采取的对应容器IP导入来作为例子。
但是什么是真正的 Service Mesh?它又为何突然变的如此重要? 在这篇文章,我会讲解 Service Mesh 的定义,并通过应用服务架构过去十年的发展追溯其起源。...Service Mesh 是一个位于 TCP/IP 上的抽象层的网络模型。它假定底层 L3/L4 网络存在并且能够从一点向另一点传输数据。...为什么 Service Mesh 是必要的? Service Mesh 本质上并不是什么新技术,而是功能所在位置的转变。...服务通信的复杂性和重要性导致我们急需一个专门的基础设施层来处理服务间的通信,该层需要与业务代码解耦,并且具有捕获底层环境的动态机制。这就是 Service Mesh。...我们将致力于打造这一令人惊叹的产品,并继续发展壮大我们的社区。
从而需要建立一支由开发,质量保证和运营组成的混合专业知识的团队的需求,并引入了DevOps来弥合团队之间的鸿沟,帮助他们快速而可靠地操作和开发应用程序。 一、什么是DevOps?...顾名思义,Devops是“开发”与“运维”的缩写。它定义了一组流程,这些流程通过在开发和运维团队之间进行协作带来组织文化上的转变。它包含四个关键组件:协作,实践,文化和工具。...二、为什么我们需要DevOps? DevOps带来更高水平的协作和速度,使组织提高生产力,降低运营成本以有效地为客户提供服务并保持市场竞争力。...变更管理 变更管理是一个请求,计划,实施和评估满足新要求所需的变更的过程。在配置管理过程中,如果现有系统和基础架构中需要进行任何更改,那么此时就要考虑更改管理。...运营团队需要提供他们的意见,更改的原因,以及可能在更大范围内产生的后果,包括可能受到新更改影响的其他系统。
用户在这里创造了数据,理论上说用户是拥有它的,但实际上用户拿不到它,甚至没法备份它,只能被企业所用。...底层技术架构决定上层建筑 为什么现在用户创造的数据的却不属于用户?很简单,因为你的数据存储在别人家的服务器上啊!你的数据寄人篱下,宿主能不能给你自由的权利就完全依赖于宿主的仁慈。...Tim Berners-Lee 在设计www(万维网)的时候,它本来就是个去中心的结构,每个人都可以建设自己的网站,现在互联网却变成中心化结构了,为什么?因为服务器是私有的。...公有区块链(public chain)是一个可信的公有计算设施。这种新的底层的技术架构让我们拥有了新的可能性。比如,让用户能够轻便的控制自己的身份和行为数据。...所有的个人隐私数据,均可以通过用户自己来拥有,并在需要的时候有限地授权第三方使用。基于区块链,我们有望免于寡头的“数据剥削“。
什么是知识库,为什么需要它?知识库是一个集中的自助服务集合,其中存储、组织和共享有关产品、服务、特定主题或整个公司的信息。想一想,“知识”是一个强大的词。但它确实很好地反映了整个建设的目的。...他们在使用您的服务时遇到的最常见的陷阱是什么?也许,这是计费问题。也许,这与您的结帐或安装过程有关。这是一个很好的起点。...3.决定它的设计知识库构建工具提供定制作为功能之一。...一个好的做法是在解释实现用户目标所需的一系列操作时添加屏幕截图或视频。开发人员内容可能需要代码示例。大多数编辑工具都允许添加各种类型的内容,从多媒体到代码示例。5....将其整合到您的客服流程中最佳做法是直接从“支持”或“联系我们”页面提供指向您的知识库的链接。9.
什么是心理安全,为什么工程团队比以往任何时候都更需要内部说真话? 译自 What’s Psychological Safety, and Why Does Tech Need It Now?...也许我们都需要重新了解一下什么是心理安全——以及它不是什么。因为事实是,当心理安全得到正确实施时,它对于推动生产力和利润的创新和迭代至关重要。...例如,在航空领域,“如果人们没有提出担忧,说‘我们需要停止’,或者‘我们需要改变我们的行动方案’,那么就会有人丧生,”Geraghty 说。...如果我们半自动驾驶汽车的操作系统开发人员没有自由地提出潜在问题,我们都应该感到非常担忧。 心理安全,或者它的缺失,肯定会对个人产生切实的影响。...冒险和协作 更重要的是,当团队成员不觉得可以自由地冒险时,他们的创新能力就会受到限制。 Dobson 说:“创新最好是在心理安全程度高的组织中进行。为什么?因为人们不怕冒险。
我们为什么需要MapReduce? ---- 我们为什么不能使用数据库来对大量磁盘上的大规模数据进行批量分析呢?我们为什么要使用MapReduce?...寻址是将磁头移动到特定磁盘位置进行读写操作的过程。它是导致磁盘操作延迟的主要原因,因而传输速率取决于磁盘的带宽。 ...但数据库系统更新大部分数据时,B树的效率比MapReduce低得多,因为需要使用“排序/合并”来重建数据库。 许多情况下,可以将MapReduce视为关系型数据库管理系统的补充。...MapReduce比较适合以批处理的方式处理需要分析整个数据集的问题,尤其是即席分析。
小编说:SDN为什么会出现?是什么原因使得学术界提出SDN?我们为什么需要SDN?如果你刚接触SDN方案时,你一定有这样的疑问。...而问题的答案是:我们需要拥有更多可编程能力的网络,来支持快速增长的网络业务需求。 众所周知,相比发展迅速的计算机产业,网络产业的创新十分缓慢。每一个创新都需要等待数年才能完成技术标准化。...除了从Nick McKeown教授的思路去理解为什么SDN会出现以外,还可以从另外一位SDN创始者Shenker教授的观点中顺藤摸瓜,进一步了解为什么SDN会出现。...这也是为什么需要SDN的原因之一。...归根结底,这两种思路从不同的角度阐述了当下网络需要更多可编程能力的事实,而这也正是为什么需要SDN的真正原因。虽然两位教授的思路不同,但殊途同归,有异曲同工之妙。
为什么我们需要Pod? 本文整理于极客时间: 深入剖析 Kubernetes (geekbang.org),侵删。 在前面的文章中,我详细介绍了在 Kubernetes 里部署一个应用的过程。...不过,我相信你在学习和使用 Kubernetes 项目的过程中,已经不止一次地想要问这样一个问题:为什么我们会需要 Pod?...”可以朗朗上口了,为什么 Kubernetes 项目又突然搞出一个 Pod 来呢?...这就是为什么,nginx-container 可以从它的 /usr/share/nginx/html 目录中,读取到 debian-container 生成的 index.html 文件的原因。...第一个最典型的例子是:WAR 包与 Web 服务器。 我们现在有一个 Java Web 应用的 WAR 包,它需要被放在 Tomcat 的 webapps 目录下运行起来。
有的人可能会问,现在消息队列已经非常成熟了,我们可以使用Kafka、RabbitMQ等满足日常的业务需求,为什么还会出现Pulsar这个消息队列,并且迅速发展呢?...3 可靠消息与性能 现有的消息队列让很多人都形成了一个惯性思维,即如果一个消息队列的消息是可靠的,那么它的性能肯定很差,因为同步刷盘、数据同步等会消耗时间。...7 流批一体 随着业务的不断发展,流计算和批处理越来越常见,通常我们需要分别维护一套流计算平台和批处理平台以满足不断发展的业务需求。...BookKeeper是一个可扩展、容错、低延迟、只可追加数据的存储服务。Pulsar使用它来存储数据,它不包含任何业务逻辑,我们可以把它看作数据库。...整个Pulsar的存储逻辑都由BookKeeper负责,它拥有动态伸缩、自动容错恢复、读/写分离等能力,我们会在后面的存储章节中重点讲解BookKeeper。
什么是理论? 理论是指人们对自然、社会现象,按照已知的知识或者认知,经由一般化与演绎推理等方法,进行合乎逻辑的推论性总结。 ——百度百科 设计和理论的关系 “除非有更好的选择,否则就遵从标准。...当然并不是这样做不好,世界上知识那么多,我们也不是专业去做学术研究的,不必去深究理论背后形成的原因,直接拿来使用就即可,当然深层次的理解对我们更有利,这时就需要选择性的去学习了。...为什么我们需要理论? 1. 解释功能 理论提供一个解释,对相关事情进行定义、理清条理和解释。将事情剥开揉碎给人看。理论明事理。 2....节省沟通时间 对不同教育和文化背景的人来描述一件事、并意图达到共识,是一件很费力的事情。你可能需要描述前因后果,背景介绍,可能需要一层层地剥开你要描述的事情。...这个门是阿拉伯的,它听不懂中文 而这些对理解的助力,就是实战意义的基础。我们讲理论与实践相结合,就是以理论为基础(理解和测量)的实战应用(结合现状的测量和验证)。
什么是理论? 理论是指人们对自然、社会现象,按照已知的知识或者认知,经由一般化与演绎推理等方法,进行合乎逻辑的推论性总结。 ——百度百科 设计和理论的关系 “除非有更好的选择,否则就遵从标准。...理论是前人总结的经验,让我们习得后少走弯路。理论指引一个方向,我们沿着这个方向去做设计、去做事,如果偏离这个轨迹,那么就要走很多的弯路或者直接错误。 ...当然并不是这样做不好,世界上知识那么多,我们也不是专业去做学术研究的,不必去深究理论背后形成的原因,直接拿来使用就即可,当然深层次的理解对我们更有利,这时就需要选择性的去学习了。...为什么我们需要理论? 1. 解释功能 理论提供一个解释,对相关事情进行定义、理清条理和解释。将事情剥开揉碎给人看。理论明事理。 2....节省沟通时间 对不同教育和文化背景的人来描述一件事、并意图达到共识,是一件很费力的事情。你可能需要描述前因后果,背景介绍,可能需要一层层地剥开你要描述的事情。
前面我们已经详细介绍过什么是CDP,不了解的同学可以往前翻一翻:3分钟告诉你什么是CDP系统!今天我们要讲的是,为什么企业需要CDP平台?...正因如此,越来越多的数据让许多企业无从下手,多个渠道如洪水般袭来的用户数据亟待整合分析,企业需要这样一个客户数据平台来分析整理所有的数据。...直接触达用户是必然趋势IDC曾发布预测,传统逐级分销模式将受到严重冲击,一些行业中20%的企业将利用技术手段直接触达用户,以提高客户满意度及改善产品开发。...数据管理主体向业务转变传统的会员管理系统是工具属性,而现在的会员管理系统是更偏向业务属性的。由于科技的不断发展,低代码技术的渗透,让CDP系统能迅速蔓延市场。...无论是市场营销、销售、导购还是客服人员都可以快速上手,帮助她们在各个触点平台为客户提供个性化的服务,大大提升用户体验感,让数据从业务中来,又用到业务中去,可谓是优化闭环。
maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能。 这是maven系列第1篇。 为什么我们要学习maven?...所以我们学任何技术之前,需要先了解这种技术能够解决什么问题。带着问题去学习,大家才有兴趣,才能够更快的掌握。 我们遇到了什么问题呢? maven还未出世的时候,我们有很多痛苦的经历。...记得之前在第三方支付工作的时候,我记忆犹新,当时用到的是lvy来引入jar的,这玩意解决jar包的冲突没有什么好办法,为了解决项目中jar包冲突的问题,花了整整一周时间。...后面有了Ant,ant可以将运行测试用例、编译、打包、发布搞成自动化的,ant自由度比较高,需要自己去写很多配置,比如编译:需要指定源码位于什么地方,编译之后的文件放在什么地方。...再来看一下官方解释什么是maven:maven是apache软件基金会组织维护的一款自动化构建工具,专注服务于java平台的项目构建和依赖管理。 下篇我们将介绍maven的使用。
提到 JVM 我们经常会在面试中遇到这样的问题: 为什么 Java 研发系统需要 JVM? 对你 JVM 的运行原理了解多少? 我们写的 Java 代码到底是如何运行起来的?...想要在面试中完美地回答这三个问题,就需要首先了解 JVM 是什么?它和 Java 有什么关系?又与 JDK 有什么渊源?...你可能会想,我们为什么不能像 C++ 一样,直接在操作系统上运行编译后的二进制文件呢?而非要搞一个处于程序与操作系统中间层的虚拟机呢? 这就是 JVM 的过人之处了。...它虽然功能强大,但仍需要为它提供 .class 文件。 仅仅是 JVM,是无法完成一次编译,处处运行的。它需要一个基本的类库,比如怎么操作文件、怎么连接网络等。...相信对于聪明的你来说,这写都不算问题,因为整个 JVM,包括我们的调优,就是在不断试错中完成的。 小结 我们再回头看看上面的三个问题。 为什么 Java 研发系统需要 JVM?
因此,我们需要一个可以管理所有关于数据存储的信息的地方。而这个地方就是 Hive Metastore。...它的模式或多或少是流动的,它随着时间的推移而变化,没有任何事先通知。(好吧,如果您关注 hive-dev 邮件列表,您可以跟踪更改,但很少有人这样做。)...是的,Metastore 可能比其他一些更容易泄漏,但有时您可以将这个问题转化为在需要时进行微调的机会。当然,这只有在您确切知道自己在做什么时才有可能,但我想说这适用于那里的任何工具。...概括 今天我们讨论了 Hive Metastore 是什么,它是如何工作的,以及它的用途。我们简要概述了几种使用 Hive Metastore 的产品,并讨论了该技术的一些优缺点。...那么,为什么我们最终需要 Hive Metastore 呢?因为它存储了有关我们数据结构及其位置的所有信息。这就是为什么许多大公司都在使用它,效果很好的原因。
以下是消息队列至关重要的原因: 1. 服务解耦 独立性:消息队列允许系统的不同部分独立运行。数据的生产者不需要了解消费者的详细信息,使得系统更加模块化,更易于维护。...简化复杂工作流程 工作流管理:消息队列可用于管理需要经过多个阶段或服务的复杂工作流。 排序和时序:它们有助于维护操作顺序,并可以根据特定需求延迟消息处理。 6....事件驱动系统:消息队列是构建事件驱动架构的基础,在这种架构中,动作由事件触发,导致高度响应和灵活的系统。
背景 实习的时候被问过一个问题,为什么 redis 会有 pipline,mysql 会有 batch,这些东西都具有批量操作的共性,是什么原因让我们在处理数据时需要批量操作?...因业务需要,我们需要在 service A 中调用 service B 获取一组 id,然后根据 id 从 service C 中读取最终内容。然后组织成结果返回前端。...现假设,我们需要从数据库中查询一个 id 为 123 的用户信息,我们可以用类似下面这样的代码。...这也就是为什么 mysql 会提供 batch 操作的原因。 Redis 中的 pipline 这里我们再来扩展一下,为什么 redis 中会需要 pipline 这样一种实现机制。...最后 回到这一篇的主题,为什么我们需要批量操作? 虽然现在已经是“云”的时代,在云内部的 rpc 请求几乎不消耗时间,但我们仍然需要意识到构造请求、解析请求、查询数据库等方面的时间和资源消耗。