分布式实验室

其他

开源大语言模型汇总

package:https://pypi.org/project/rwkv/Review:https://www.youtube.com/watch?v=B3Qa2rRsaXo#22Segment
2023年5月7日
其他

Docker着手清退开源组织

说明文件链接。但由于邮件和文件都很简短、缺乏细节,因此给整个开源维护者群体带来了巨大的冲击和焦虑情绪。据我们所知,此次决定只会影响开源社区内的活跃组织账户。个人账户不受影响,免费个人账户将被保留
2023年3月16日
其他

一道Netflix的系统面试题,难倒了我

Ribbon。这家公司的技术特别厉害,他们的工程师团队以薪资高和技术强闻名于硅谷。今天的视频,你可以看作是
2023年3月14日
其他

图解数据库分片技术

你的程序正在变得越来越好,它有更多的功能,更多的活跃用户,并且每天收集更多的数据。而同时你的数据库正在导致程序的其余部分变慢。数据库分片技术可能是该问题的答案,但许多人不知道它是什么,最重要的是,不知道何时使用它。在本文中,我们将讨论什么是数据库分片技术、它是如何工作的以及使用它的最佳方式。在我们进入这个问题之前,有必要了解为什么我们要对数据存储进行分片,以及在开始分片之前你拥有的各种选项。数据库分片信息图当表达到特定大小时,人们通常会觉得分片是解决所有扩展问题的神奇方法。然而,我有数十亿行的表,并且没有看到一个令人信服的理由进行分片,因为我的使用模式很适合单个表并且没有看到任何强有力的理由(除了管理这么大的表,它在某些情况下是足够的理由)对表进行分片。#01什么是数据库分片?简单地说,分片是一种跨多台机器分布数据的方法。当没有一台机器可以处理预期的工作负载时,分片就特别有必要。分片是水平扩展的一个例子,而垂直扩展是一个越来越大的机器来支持新工作负载的例子。水平扩展工程师们经常陷入复杂的做事方式,但随着程序的发展,尽早保持简单会使以后面对具有挑战性的事情时变得容易得多。因此,如果通过获得具有更多资源的机器来解决你的问题,这是正确的答案。我们已经讨论了潜在的服务器架构,现在我们谈谈数据布局。你也可以通过几种方式对数据进行分区并将特定表移动到它们自己的数据库中,这与你在微服务架构中看到的非常相似,程序的特定部分有其自身数据库服务器。程序知道每个数据库该在哪里寻找。或者,你可以跨多个数据库节点存储同一个表的行,这带来了分片键等想法;稍后会详细介绍。分区策略更现代的数据库,如
2023年3月13日
其他

《Kubernetes实战集训营》5月开课

Kubernetes被称为云原生时代的Linux系统,现在已经非常普及了,很多云计算及容器厂商也提供了基于Kubernetes的服务。很多程序也投身到了Kubernetes的学习中,希望通过学习Kubernetes为自己找一份高薪资工作,但是在自学Kubernetes的过程中还是会遇到各种各样的问题。主要原因还是Kubernetes入门容易,深入却很难,而自学又不系统,且缺乏实际操作。分布式实验室推出的《Kubernetes实战训练营》,通过5天线上培训,40个小时直播,15个随堂练习,60天课后辅导,帮助你通过实战掌握Kubernetes,最后讲解CKA考试,让有想考CKA的同学顺利通过认证。
2023年3月13日
其他

一篇文章说清楚分布式日志

我们做软件开发时,或多或少的会记录日志。由于日志不是系统的核心功能,常常被忽视,定位问题的时候才想起它。本文由浅入深的探讨不起眼的日志是否重要,以及分布式架构下的日志运维工具应该具备哪些能力,希望感兴趣的读者能从本文获得一些启发,有所帮助。#01日志什么是日志?日志是一种按照时间顺序存储记录的数据,它记录了什么时间发生了什么事情,提供精确的系统记录,根据日志信息可以定位到错误详情和根源。按照
2023年3月12日
其他

《Kubernetes实战集训营》5月开课

Kubernetes被称为云原生时代的Linux系统,现在已经非常普及了,很多云计算及容器厂商也提供了基于Kubernetes的服务。很多程序也投身到了Kubernetes的学习中,希望通过学习Kubernetes为自己找一份高薪资工作,但是在自学Kubernetes的过程中还是会遇到各种各样的问题。主要原因还是Kubernetes入门容易,深入却很难,而自学又不系统,且缺乏实际操作。分布式实验室推出的《Kubernetes实战训练营》,通过5天线上培训,40个小时直播,15个随堂练习,60天课后辅导,帮助你通过实战掌握Kubernetes,最后讲解CKA考试,让有想考CKA的同学顺利通过认证。
2023年3月12日
其他

分布式事务的挑战及常见解法

事务构成了大多数现代应用的数据库工作负载的重要部分。当需要为一个不断增长的企业扩大运营规模时,将这些工作负载分布在多个硬件系统上,以实现横向扩展、高可用性和容错,往往是计划的一个重要部分。但是,数据库事务是如何分布的,在分布事务性工作负载方面有哪些挑战和方法?本文我们将讨论这个问题,让我们从一个更简单的问题开始:在数据库的背景下,什么是事务?(如果你已经知道这些东西,可以跳过这一节,开始研究实际分布数据库事务的挑战)。#01什么是事务(在数据库中)?在数据库中,事务是一组我们想在数据上执行的操作。通常情况下,事务是一个全有或全无的过程
2023年3月4日
其他

OpenAI推出新业务模式:售卖Model instance

Plus,每月起步价20美元。他们还与微软合作开发了Bing
2023年2月28日
其他

Twitter裁80%的工程师,公司照常运转?

Twitter是一家独角兽公司,成立于2006年,总部位于旧金山,全球拥有3216名员工。2020年,该公司收入为36亿美元,净利润为-1.39亿美元。也就是说,Twitter在过去几年一直处于亏损状态。在这种情况下,有人会问:解雇80%的工程师是否是一个好的想法?我的答案是:是的。我知道,这是一个极端的观点,但我将尽力解释一下我的想法。有些人在阅读下文时可能会感到不适,但请注意,这只是我的看法,不一定代表他人观点。有人提出,裁员80%的软件工程师,公司是否仍能生存下去?这里涉及到帕累托原则,即“80%的结果来自于20%的原因”。类似地,80%的成果是由20%的工程师完成的。但需要明确的是,这个原则仅适用于大型公司,而不适用于小型或创业公司。此外,裁员并不意味着80%的工程师在公司没有任何作用,他们也在工作,但主要处理那些对公司没有立即影响的项目。不过,完全公平地说,有些工程师什么都不做,会导致团队功能失调。如果公司只剩下20%的工程师,即使这些工程师是最优秀的,公司仍会陷入发展的困境中。这意味着公司只能勉强提供现有产品的支持,而无法构建新的产品或改善现有产品。马斯克在Twitter收购过程中试图验证这个假设,裁员了大约50%的员工,另有25%主动离职。然而,随意解雇贡献最少或在办公室工作时间最短的80%的员工是不可行的。这些指标不能真实地显示谁是公司的核心。找出谁是核心团队并不那么复杂。你只需要要求每个人列出五个他们认为做得好且想要在下一个公司继续与之合作的人。然后按照投票数量对员工进行排序,就可以得到真正的核心团队(这可能与资深程度、编写的代码行数等不完全匹配)。但是,如果人们知道接下来会发生什么,这种方法显然不起作用。在这种情况下,你会发现人们会组成团体来相互投票,规避这种制度。需要强调的是,拥有足够深厚的资金实力的公司能够承受大量的压力。只要掏出一张足够高额的支票,公司就可以找到愿意熬过艰难时刻并推动公司前进的人。软件工程师有时过于自负,认为如果足够多的软件工程师离开,公司就会分崩离析。然而,现实是(大)资金可以帮助公司应对相当严峻的情况。回到Twitter的例子,解雇大量员工的做法被许多人指责为愚蠢和残酷,因为这会对核心团队造成严重打击。虽然马斯克(和Twitter)可能会通过提供高薪和其他优惠来留住一些人才,但这种粗暴的方式仍然会产生负面影响。如果公司真的想要发展壮大,需要采取更加谨慎的方法来留住核心人才并吸引更多优秀的人才加入。当然,解雇80%的软件工程师并不是件轻松的事情,但是有时为了公司的发展和生存,这是必要的决定。当公司规模庞大时,只有少部分优秀的员工对公司的发展起到决定性的作用。为了提高公司效率,降低成本,削减低效的员工是必要的。当然,不能单纯地以代码行数或者在办公室的出勤时间来评价员工的工作价值。但是,公司可以采取多种方法来评估员工的绩效,以便更好地做出决策。拥有足够资金的公司可以在裁员后通过增加薪水或奖金来吸引和激励优秀的员工。此外,裁员也可能意味着公司能够更加灵活地调整团队结构,重新分配任务和资源,以更好地适应市场需求。最后,需要明确的是,裁员并不是一项轻松的决定,需要在权衡各种利弊后做出。但是,在某些情况下,裁员是为了公司的长期利益和发展而必须的决策。推荐阅读:《WebAssembly并不只是一门前端技术》《Kubernetes网络排错指南》为了方便大家交流,我们特别建了运维技术交流群,欢迎大家进群交流。
2023年2月27日
其他

WebAssembly并不只是一门前端技术

云原生计算基金会(CNCF)最近的年度调查包含了关于WebAssembly(Wasm)的大胆预言:“容器是新常态,WebAssembly是未来。”这句话预示了很多事情,不仅是关于WebAssembly的路线图和发展趋势,还有它当前在计算领域的地位。据CNCF报道,已经有37%的终端用户组织有一些用WebAssembly部署应用程序的经验。CNCF报告还显示,虽然这些使用是为了测试Wasm的优点,但WasmEdge和WAMR是使用最多的运行时。“WebAssembly是未来,因为它越来越多地用于无服务器、容器化和插件技术,预计将大大影响网络、无服务器、游戏和容器化应用程序。”CNCF生态系统负责人
2023年2月25日
其他

是时候埋葬DevOps了

DevOps一开始是一套初衷很好的实践和文化。但这些年来,它已退化成为一头令人憎恶的野兽,导致部门分裂、目光狭窄。为什么我们不再有更宏大的梦想?拆除孤岛、提升工程速度、增加价值?DevOps承诺的这些优点还记得吗?这些不是DevOps应该做到的吗?但事实上,撇开FAANG(五大IT巨头)和财力最雄厚的公司不谈,贵公司的团队可能存在以下其中一种情况:1、你有一个DevOps团队恭喜,但那不是DevOps。我敢打赌,他们做的大部分工作无非是使用Terrform和YAML为工程团队做一些琐碎的任务。需要数据库?向DevOps提交工单。需要身份和访问管理(IAM)角色?向DevOps提交工单。不久后,贵公司庞大的工程师团队提出的众多要求让人手不足的“DevOps”团队不堪重负。这种方法不具备可扩展性。2、你在做DevOps,但感觉糟透了DevOps,感觉每个工程师都可以随意地做必要的运维来完成其工作。最佳实践?我们会一路上发明它们!安全吗?我正忙着提高转化率呢!命名约定?不。生产环境中没有命名约定。成本管理?删除未使用的云资源?不,我们有AWS积分还没用掉呢!问题是大多数工程师不想做运维工作。工程师只想构建产品。他们只想添加有形价值。但是组织会把运维工作强加在他们头上,工程师们要么使用已有的工具来工作,一路蒙过去,猜测某种新的云服务,要么DevOps任务慢慢地变成少数几个人的责任,这些人于是成为了“DevOps”团体。这个场景最糟糕的部分就是截止期限规定,产品利益相关者看不到运维。你上一次看到产品经理与运维人员击掌时说:“自动扩展器速度真他娘快!”是什么时候?你的团队慢慢觉得可灵活扩展的DevOps变成了僵化的基础架构,因为团队不再做出艰难的运维决策,而是完全围绕已有的工具开发软件。到最后,所有基础架构最终都变成了一个平台——你的基础架构变更起来有多容易?—
2023年2月24日
其他

从源代码构建一个极简的Linux操作系统

现代生活环境中,各式各样的电子设备包围着我们每个人。但凡稍微复杂一点的设备,比如一台电视机、路由器或智能手机,它很有可能运行的就是Linux操作系统,这种想法一直在我脑海出现。让我更加困惑的是,在这些设备或服务器上运行的Linux操作系统的内核居然都是由同一个源码构建而成的,这些源码被放在了一个叫做kernel.org网站的仓库中。如此多样的设备上运行的操作系统都是由相同的源代码组合而成的!当然,这种说法有点片面,实际上内核通常由特定Linux发行版的开发人员以及特定设备的开发人员扩展和修改的,但内核中却有很多通用的源代码。我一直想靠自己从源码开始构建一个Linux操作系统,但过程实在是太复杂,而且越做越乱,究其原因是我有很多没有掌握的领域。终于在某一时刻,我积累了足够的知识,现在我可以实现我的梦想了。因此,在这篇文章中,我将展示如何在计算机上从源码编译和运行一个极简的Linux。虽然它不会具备所有的功能,但它拥有最重要的东西——命令行界面。相信我,在真正的计算机上获得一个可以工作的Linux命令行界面将是一种不可思议的体验。令人惊讶的是,获得Linux命令行所需的最小集合只有两个文件:Linux内核文件和根目录文件系统初始镜像文件。显然,这需要一个引导装载程序来加载这两个文件并启动内核的运行,必要时还可以向它传递初始根目录文件系统的镜像和其他参数。—
2023年2月22日
其他

Kubernetes网络排错指南(万字长文)

不通,其可能原因为:源端和目的端防火墙(iptables、selinux)限制网络路由配置不正确源端和目的端的系统负载过高,网络连接数满,网卡队列满网络链路故障端口不可达:主要现象为可以
2023年2月21日
其他

命名是软件开发中最难的事情

RUP——是未来发布的另一个主题。我有意将这些过程留在讨论之外。这些流程需要创建现实的业务和领域模型,使我们回到本文中已经解决的相同挑战。区分语义网络将把我们带到下一节。—
2023年2月18日
其他

我们选择了Rust,因为它太快了

我们选择Rust作为我们下一个项目的编程语言,它没有让我们失望。—
2023年2月16日
其他

《Rust实战集训营》来了,3月开课

Tang)一起推出了《Rust实战集训营》,通过40个小时的直播,60天课后辅导和10个动手项目,帮你熟练掌握Rust。
2023年2月16日
其他

GitHub Copilot商业版正式发布

Codex对人们如何使用代码有着广泛的了解,并且在代码生成方面的能力明显强于GPT-3,部分原因是它是在包含大量公共源代码的数据集上进行训练的。GitHub
2023年2月15日
其他

FinOps与DevOps的区别与联系

近年来,DevOps的概念在软件开发中越来越流行。它强调开发团队和运维团队之间的协同和自动化,以创建一个更有效的软件开发生命周期。尽管DevOps对软件开发行业产生了重大影响,但一个相对较新的概念正获得越来越多人的关注——FinOps。FinOps与DevOps的相似之处在于,它寻求促进协作和效率,但FinOps的重点是财务运营,而不是软件开发。这篇文章将探讨DevOps和FinOps之间的区别,以及如何将它们结合起来创造更高效、更经济的软件开发流程。—
2023年2月11日
其他

Infrastructure from Code,一种新理念

Code有4种主要方法:基于SDK(Ampt,Nitric)、基于代码内注释(Klotho)、两者的结合(Encore,Shuttle)和通过新的编程语言明确定义(Wing,DarkLang)。
2023年2月10日
其他

为Kubernetes集群部署一个ChatGPT机器人

logs...======================================================================2023-01-14
2023年2月9日
其他

DevOps的发展史

流程需要成熟的无缝协作文化。需要管线(pipeline)、代码合并、测试、验证和高度自动化才能快速安全地将代码从设计和构建转移到部署和生产。这反映在持续集成/持续交付(CI/CD)中,这是
2023年2月7日
其他

FinOps,值得关注

对于任何一个DevOps或者研发团队而言,日志记录与可观察性都有助于解决和修复来自生产流程的关键问题。其中日志记录的弊端在于有着大量解决方案选项,而且随时间推移其规模和成本也往往随之增加。另外,日志记录还需要面向不同的角色和用例,这就要求DevOps工程师与开发人员在日志的使用策略上相互匹配。面对2023年难以遏制的整体经济衰退形势,组织必须想办法降低开支并削减不必要的运营成本。对工程团队来说,最容易带来回报的突破口就是控制云成本。为了成功制定出正确且具有成本效益的日志记录策略,DevOps团队和开发人员需要透彻了解当前正在记录的内容,并将以往的记录一切转化为记录真正重要的内容,在生产应用中从纯静态日志记录转向静态加动态的混合记录方法。此外,随着组织采取更加稳健的左移FinOps(即云财务管理)方法时,其不仅能够降低总体成本、增强成本可预测性,同时也能加快生产缺陷的解决速度(缩短平均修复时间,简称MTTR),提高开发人员的生产力与创新能力。—
2023年2月5日
其他

找到了一篇介绍ChatGPT核心技术的论文

need》在编写时主要是为了考虑NLP任务,是由几个Google的科研人员一起完成的,其中一个背景是Google也在推广自己的并行计算芯片以及AI
2023年2月3日
其他

15个Kubernetes最佳实践

SourceForge。在将你的代码推送到集群之前执行此操作使你能够跟踪源代码更改以及谁进行了更改。必要时,你可以快速回滚更改、重新创建或恢复集群,以确保稳定性和安全性。4、Git
2023年2月2日
其他

云数据库是不是智商税?

年代,无法定制或扩展你所使用的软件的问题,在云软件中进一步加剧。对于在你自己的电脑上运行的闭源软件,至少有人可以对它的数据文件格式进行逆向工程,这样你还可以把它加载到其他的替代软件里(例如
2023年1月31日
其他

用40天时间,彻底搞懂Kubernetes

Kubernetes被称为云原生时代的Linux系统,现在已经非常普及了,很多云计算及容器厂商也提供了基于Kubernetes的服务。很多程序也投身到了Kubernetes的学习中,希望通过学习Kubernetes为自己找一份高薪资工作,但是在自学Kubernetes的过程中还是会遇到各种各样的问题。主要原因还是Kubernetes入门容易,深入却很难,而自学又不系统,且缺乏实际操作。分布式实验室推出的《Kubernetes线上实战训练营》,通过5天线上培训,40个小时直播,15个随堂练习,60天课后辅导,帮助你通过实战掌握Kubernetes,最后讲解CKA考试,让有想考CKA的同学顺利通过认证。
2023年1月30日
其他

图解Kubernetes架构原理

Kubernetes是什么,为什么上手这么难?Kubernetes是一个基于容器技术的分布式集群管理系统。它是谷歌在大规模应用容器技术方面数十年经验的实际成果。因此,支持大规模的集群管理承载着非常多的组件,分布式本身的复杂度非常高。接下来我们一步步来看看Kubernetes到底有什么?首先,既然是分布式系统,那么肯定有多个Node节点(物理主机或者虚拟机),它们共同构成了一个分布式集群,而这些节点之间会有一个Master节点,统一管理Node节点。如图所示:问题1:Master节点和Worker节点如何通信?首先,当Master节点启动时,会运行一个Kube-apiserver进程,它提供了集群管理的API接口,是集群中各个功能模块之间进行数据交互和通信的中心枢纽,同时也提供了一个完善的集群安全机制。在Node节点上,利用Kubernetes中的kubelet组件,每个Node节点上都会运行一个kubelet进程,负责向Master汇报本节点的运行状态,如Node节点注册、终止、定期健康报告等等,并接收来自Master的命令并创建相应的Pod。在Kubernetes中,Pod是最基本的运行单元。它与Docker容器略有不同,因为Pod中可能包含一个或多个容器(可以是Docker容器),这些容器内部共享网络资源,即可以通过localhost相互访问。关于如何在Pod中实现网络共享,每个Pod启动,内部都会启动一个pause容器(谷歌的image)。它使用默认的网络模式,其他容器的网络设置为它,完成网络共享问题。如图所示:问题2:Master如何将Pod调度到指定的Node上?这项工作由Kube-scheduler完成。整个调度过程通过执行一系列复杂的算法,最终为每个Pod计算出一个最优的目标Node,这是由Kube-scheduler进程自动完成的。最常见的是循环调度(RR)。当然也有可能我们需要将Pod调度到指定的Node上。我们可以通过将节点的标签(Label)与Pod的节点选择器属性进行匹配来达到指定的效果。如图所示:问题3:各个节点和Pod的信息统一在哪里维护,谁来维护?从上面的Pod调度来看,我们必须有一个存储中心来存储每个节点的每个Pod的资源使用情况、健康状态和基本信息,这样Pod调度才能正常进行。在Kubernetes中,etcd组件被用作高可用和一致的存储库。该组件可以内置在Kubernetes中,也可以外部构建供Kubernetes使用。集群上的所有配置信息都存储在etcd中。考虑到各个组件的相对独立性和整体的可维护性,这些存储的数据的增删改查都是统一由Kube-apiserver来调用的,并且apiserver还提供了REST支持,不仅为各个内部组件提供服务但也向集群外的用户公开服务。外部用户可以通过REST接口或kubectl命令行工具管理集群,该工具内部与apiserver通信。如图所示:问题4:外部用户如何访问集群中运行的Pod?前面我们讲了外部用户如何管理Kubernetes,但我们更关心的是内部运行的Pod如何对外访问。用过Docker的同学应该都知道,如果使用bridge模式,在创建容器的时候会分配一个虚拟IP,外部无法访问该IP。我们需要做一层端口映射,将容器中的端口映射到宿主机的端口Map并绑定,这样外部就可以通过访问宿主机的指定端口来访问容器内部的端口。那么,Kubernetes的外部访问也是这样实现的吗?答案是否定的,Kubernetes中的情况更加复杂。因为上面说的Docker是单机模式,一个容器对外暴露一个服务。在分布式集群中,服务往往由多个应用提供,以分担访问压力,而这些应用可能分布在多个节点上,这就涉及到跨主机通信。这里Kubernetes引入了Service的概念,将多个相同的Pod包装成一个完整的服务,对外提供服务。至于获取这些相同的Pod,每个Pod在启动时都会设置labels为attribute。在服务中,我们传递选择器Selector,选择与整体服务具有相同Name标签属性的Pod,将服务信息通过Apiserver存储到etcd中,由Service
2023年1月30日
其他

用40天时间,测底搞懂Kubernetes

Kubernetes被称为云原生时代的Linux系统,现在已经非常普及了,很多云计算及容器厂商也提供了基于Kubernetes的服务。很多程序也投身到了Kubernetes的学习中,希望通过学习Kubernetes为自己找一份高薪资工作,但是在自学Kubernetes的过程中还是会遇到各种各样的问题。主要原因还是Kubernetes入门容易,深入却很难,而自学又不系统,且缺乏实际操作。分布式实验室推出的《Kubernetes线上实战训练营》,通过5天线上培训,40个小时直播,15个随堂练习,60天课后辅导,帮助你通过实战掌握Kubernetes,最后讲解CKA考试,让有想考CKA的同学顺利通过认证。
2023年1月30日
其他

一位技术大牛画的系统设计图,解惑

可扩展性》这本书后我松了一口气,因为我在工作中听到了很多关于软件架构和各种技术的信息,但我总觉得"我没有完全理解"。我想深入研究。我很高兴它发生了!但是还有很多东西要学
2023年1月28日
其他

编程将被淘汰

layers)、标记器(tokenizers)和数据集。即使是20年前的时间旅行者,也很难理解GPT-3论文[3](描述为该模型构建的实际软件)的三句话(three
2023年1月18日
其他

案例 | QQ音乐是怎么做高可用架构体系的?

故障是开发者高频关注的问题。在分布式系统建设的过程中,我们思考的重点不是避免故障,而是拥抱故障,通过构建高可用架构体系来获得优雅应对故障的能力。本文作者冯煦亮从架构、工具链、可观测三个维度,介绍了QQ音乐多年来积累的高可用架构实践。期望对你有帮助。—
2023年1月17日
其他

对领域的认知比会写代码更重要

按照惯例,首先声明,以下内容皆为个人观点。但,无论你是经验丰富的专业人士还是刚刚入行的小白,都希望下面这些见解能够给你带来一些帮助。我从2022年年中就想写这篇文章了,但很多观点我一时无法全部记住。所以在过去的一年里,我一直在收集想法并把它们记录下来,现在我有了足够的观点,下面来分享给大家。—
2023年1月16日
其他

算算过去一年,我们在云上花了多少钱

万美元,需要做大量的工作。运营团队运行着一个细致的成本检查计划,每月报告和跟踪,我们已经签订了关于保留实例和承诺使用的长期协议,作为私人定价协议的一部分。这是一个高度优化的预算方案。这就是我们
2023年1月15日
其他

Linkerd创始人:Linkerd采用率2022年翻了一番

层初始化之后……这些问题中的每一个都可以在特定情况下解决,但一般类别的问题仍然是服务网格采用者的麻烦,并且最严重地违反了我们的原则,即服务网格应该对应用程序透明。然而,随着臭名昭著的sidecar
2023年1月10日
其他

《Rust实战集训营》来了,年后开课

Tang)一起推出了《Rust实战集训营》,通过40个小时的直播,60天课后辅导和10个动手项目,帮你熟练掌握Rust。
2023年1月10日
其他

Kubernetes已经成为主流

进入主流地位,并成为更多组织可以实现的目标。边缘使用增加了,开源成为云原生成功的驱动力。然而,可用性挑战依然存在,供应链安全威胁也开始浮出水面。那么,2023
2023年1月7日
其他

我判断,今年WebAssembly会流行起来

模块可以利用彼此的能力。这为软件开发人员提供了一种构建应用程序的新方法。开发人员可以声明他们的应用程序需要哪些组件,而不是在他们喜欢的源语言中寻找库,或者更抽象地说是他们的应用程序需要哪些功能,然后
2023年1月6日
其他

讨论下全球数据库行业的发展趋势

DBMS(MonetDB)。Martin于2020年被荷兰政府授予皇家爵士头衔,奖励他在数据库方面的卓越贡献。MonetDB代码库也成为其他多个OLAP系统项目的基础。在2000年代后期,Peter
2023年1月5日
其他

你要的只是模块化,而不是微服务

架构有时候挺难捉摸的——人们不断提出新想法,这些想法在没有任何背景或者细微差别的情况下快速成为主流“实现方式”;而迫于寻求架构改进之法的行业则盲目跟进,不假思索地全盘接受。在这股大有问题的风潮中,微服务正是最新一代弄潮儿。可微服务到底哪里好,我们又为什么要使用微服务?是时候对这个问题追根溯源了。—
2023年1月4日
其他

解密负载均衡算法

负载均衡器是一种软件或硬件设备,它起到了将网络流量分散到一组服务器的作用,可以防止任何一台服务器过载。负载均衡算法就是负载均衡器用来在服务器之间分配网络流量的逻辑(算法是一组预定义的规则),有时候也叫做负载均衡的类型。负载均衡算法的种类非常多,包括从简单的轮询负载均衡算法到基于响应状态信息的自适应负载均衡算法。负载均衡算法的选择会影响负载分配机制的有效性,从而影响性能和业务连续性(也就是对外承诺的SLA),选择正确的负载均衡算法会对应用程序性能产生重大影响。本文将会介绍常见的负载均衡算法,并结合主流负载均衡软件或硬件设备介绍各种负载均衡算法的实现方式。—
2022年12月31日
其他

P99 是如何计算的?

3s?”我查了一下确实如他所说,但是这个结果确实预期的。因为我们设置的桶的分布是:10ms、50ms、100ms、500ms、1s、5s、10s、60s。如上所说,Prometheus
2022年12月29日
其他

阿里高级技术专家方法论:如何写复杂业务代码?

张建飞是阿里巴巴高级技术专家,一直在致力于应用架构和代码复杂度的治理。最近,他在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。结合实际的业务场景,他沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家,相信同样的方法论可以复制到大部分复杂业务场景。—
2022年12月28日
其他

如何从零开发Kubernetes Operator?

你也许能够将应用熟练的部署到Kubernetes上,但你知道什么是Operator吗?Operator是如何工作的?如何构建Operator?这是一个复杂的课题,但幸运的是,自2016年发明以来,已经开发了许多相关工具,可以简化工程师的生活。这些工具允许我们将自定义逻辑加入Kubernetes,从而自动化大量任务,而这已经超出了软件本身功能的范围。闲话少说,让我们深入了解更多关于Operator的知识吧!—
2022年12月27日
其他

如何基于Kube-Prometheus设计监控系统?

本文介绍了如何基于Kube-Prometheus设计一个监控系统,以灵活简单的方式对Kubernetes上的应用进行指标采集,并实现监控报警功能。本文提供了作者的应用示例,另外还记录了作者在学习、使用Prometheus过程中的一些笔记,如arm版镜像获取、一些工具的使用等。—
2022年12月26日
其他

卫剑钒:我对云原生的理解

云原生技术里有很多技术、概念和术语,不了解的人,往往弄不清楚而一头雾水,这些概念都是啥,之间是什么关系?本文要说的就是这些。本文更多是科普和扫盲,无意面面俱到,也无意深入细节。本文适合一定IT基础的人阅读,完全的小白和门外汉,可能是看不懂的。完全看不懂的云原生—
2022年12月23日
其他

WebAssembly和Docker到底有什么关系?

推广的容器,它使得在简约的包装上下文中运行应用程序配置变得更加容易,而不会影响主机操作系统上的任何其他应用程序。但是,这仍然需要分发与其运行时和必要的库捆绑在一起的应用程序。安全边界由
2022年12月22日
其他

黄东旭:今天我们应该怎么设计数据库?

体验也是很重要。Unified,这点稍微需要解释一下,如果说第二点是从终端的开发者体验来说,那么这条其实想表达的是:架构的简化。我们这些年发明了太多的数据处理技术,即使做一个普通的应用,可能都要使用
2022年12月21日
其他

深入解读应用可观测性(万字长文)

云原生时代,企业从单体架构发展到分布式架构,广泛采用微服务、容器、Serverless等部署方式,IT基础设施变得愈发不可控。这导致传统的监控技术和工具很难跟踪这些分布式架构中的通信路径和相互依赖关系,更别提排查问题并定位根本原因了。Gartner认为数字化转型以业务为中心,服务和用户体验是关键目标。而IT监控以系统可用为中心,仅关注系统可用性指标对于转型中的企业而言是一场灾难。到2023年,依赖于“正常运行时间”指标的监控实践将抑制90%的转型计划。当监控无法再单独以运维的视角、被动地解决故障为目标,而要追随IT架构的改变和云原生技术的实践,融入开发与业务部门的视角,具备比原有监控更广泛、更主动的能力,“可观测性”概念诞生了。—
2022年12月20日
其他

事件驱动架构避坑指南

URL)传递给事件负载中的对象。这些对象存储可以在不影响延迟的情况下,保留任何所需的负载大小。重要的是要确保在生成链接之前负载已完全上传到对象存储,否则消费者将需要不断重试,直到可以开始下载为止。—
2022年12月16日