当每个人都在庆祝我的生日时,我将集群修复到了早晨-开发人员将错误归咎于我





这是一个故事,使我的方式永远改变了。回到船坞时代,很久很久以前,当我和你们正在考虑我们的业务并按随机订单自由经营时,一个提议落入了我的购物车。



写的公司是在数据分析中。她每天处理数千个请求。他们来找我们这句话:伙计们,我们有ClickHouse,我们想自动化其配置和安装。我们希望将Ansible,Terraform,Docker和所有这些存储在gita中。我们想要一个由四个节点组成的集群,每个集群中都有两个副本。



一个标准的请求,其中有数十种,并且您需要相同的良好标准解决方案。我们说“好”,并在2-3周内一切就绪。他们接受了这份工作,并开始使用我们的实用程序迁移到新的Klickhaus集群。



没有人愿意或不知道如何修补Klickhaus。然后我们以为这是他们的主要问题,因此公司的服务站只是简单地让我的团队将工作自动化,以免再次出现。



我们伴随着这一举动,出现了其他任务-设置备份和监视。同时,该公司的加油站合并到另一个项目中,由我们自己任职-Leonid的指挥官。 Lenya不是一个非常有天赋的人。一个简单的开发人员,突然由Klickhaus负责。看来这是他领导某事的第一个任务,从积累的荣誉中他发烧了。



我们一起开始备份。我提议立即备份原始数据。只需将zip压缩并优雅地扔入某些c3中即可。原始数据是黄金。还有另一种选择-使用带状装饰和复制在Klickhaus中备份表本身。但是Lenya提出了自己的解决方案。



他宣布我们需要第二个Klickhaus集群。从现在开始,我们将数据写入两个集群-主集群和备份集群。他们说,我告诉他,莱昂,这不是备份,而是活动副本。而且,如果数据开始在生产中丢失,您的备份将是相同的。



但是Lenya坚定地抓住方向盘,拒绝听我的观点。我们在聊天室里和他呆了很长时间,但是没事可做-Lenya在推动这个项目,我们只是从街上雇来的人。



我们监视了集群的状态,仅对管理员的工作收费。无需管理数据即可清洁Klickhaus的管理。群集可用,磁盘正常,节点正常。



我们仍然不知道由于他们团队内部的严重误解而收到了这个命令。



经理不满意Klickhaus运行缓慢,有时会丢失数据。他将STO的任务设定为解决该问题。他尽力解决了这个问题,并得出结论,您只需要使Klickhaus自动化-就是这样。但是随着很快变得清晰起来,他们根本不需要一支队伍。



事实证明,所有这些都非常痛苦。最令人反感的是在我生日那天。






星期五晚上。我在我最喜欢的酒吧预订了一张桌子,并打电话给我的朋友。



快要离开之前,我们得到了进行更改的任务,我们做了,一切都很好。更改通过,Clickhouse确认。我们已经聚集在一个酒吧里,他们告诉我们没有足够的数据。他们数了数-一切似乎都足够了。他们去庆祝。



该餐厅在星期五晚上很吵。订购饮料和食物后,他们在沙发上休息。所有这些时间,我的懒散慢慢地充满了信息。他们写了一些关于缺乏数据的东西。我以为-早上比晚上更明智。特别是今天。



接近11点,他们开始打电话。那是公司的负责人……“也许他决定向我表示祝贺。”-我很犹豫,想起了电话。



我听到这样的话:“您搞砸了我们的数据!我付钱给你,但没有用!您负责备份,却没有做!让我们修复它!” -只会更粗糙。



-你知道吗,去他妈的你!今天是我的生日,现在我要喝酒,而不是您六月的自制狗屎和棍棒!



我没那么说相反,他拿出笔记本电脑开始工作。



不,我轰炸了,我轰炸了!我在聊天室中添加了苛刻的“我告诉过你”消息-因为备份(当然不是备份)没有保存任何内容。



伙计们和我想出了如何手动停止录制并检查所有内容的方法。确实确保某些数据没有被写入。



我们停止了记录,计算了每天发生的事件数。他们输入了更多数据,其中只有三分之一没有记录。三个碎片的2个副本。您插入100,000行-未写入33,000行。



完全混乱了。每个人都互相派对方去他妈的:Lenya首先去了那里,然后是我自己和公司的创始人。只有加入的SRT试图通过喊叫和信件来接听我们的电话,以寻求解决问题的方法。



真正发生的事-没有人了解



当我们意识到所有数据中的三分之一并没有被记录下来时,他们和我就吓坏了!事实证明,公司的订单如下:插入后,数据将被不可撤销地删除,事件被成批粉碎。我想象过谢尔盖如何将所有这些转换成丢失的卢布。



我的生日也快到了垃圾堆。我们坐在酒吧里,产生想法,试图解决引发的难题。克利克豪斯(Klickhaus)倒台的原因并不明显。也许是网络,也许是关于Linux设置。是的,任何事情,假设听起来都足够。



我没有宣誓就职,但即使把他们归咎于我们,也不让他们留在队伍的另一端是不诚实的。我99%确信问题不在我们的决定中,而不是我们的立场。我们搞砸的机会中有1%仍然充满焦虑。但是无论麻烦出在哪一边,都必须解决。留下如此可怕的数据泄漏,不管他们是什么客户,都太残酷了。



直到凌晨三点,我们在饭店的餐桌旁工作。投掷事件,插入select-并开车填补空白。当您弄糟数据时,它是这样完成的-您获取前几天的平均数据,然后将其插入被弄乱的数据中。



凌晨三点后,我和我的朋友去我家,从酒市场订购了皮瓦西克。我坐在笔记本电脑上,而Klickhaus出现问题,一个朋友告诉我一些事情。结果,一个小时后,他因为我在工作,不和他喝啤酒而得罪了,然后离开了。经典-是Devops的朋友。



到凌晨6点,我再次重新创建了表格,数据开始填满。一切正常,没有损失。






然后很难。每个人都因丢失数据而互相指责。如果有新错误,我敢肯定会开始枪战



在这些麻烦中,我们终于开始理解该公司认为我们是负责数据处理和监视表结构的人。他们将管理员与dibieys混淆了。他们来问我们不是管理员。



他们的主要抱怨是-该死,您负责备份并且没有正常进行备份,您继续执行数据。而所有这些都与倒带将死者在一起。



我要伸张正义。我挖出了信件,并附上了所有屏幕截图,其中Leonid竭尽全力进行备份。我打完电话后,他们的服务站就站在我们这边。此后,Lenya承认有罪。



另一方面,公司负责人不想责怪自己的人。屏幕和文字对他无效。他认为,既然我们是这里的专家,我们就必须说服所有人并坚持我们的决定。显然,我们的任务是教Lenya,并且绕过Lenya(由项目经理任命)达到重点,并亲自倾倒我们对备份概念的所有疑问。



查蒂克充满了仇恨,隐藏和掩饰的侵略。我不知道该怎么办。一切都陷入停顿。然后,我被告知最简单的方法-用个人笔记给经理写信并与他约会。 Vasya,生活中的人们不像聊天中的灵缇犬。老板回答了我的信息:来,没问题。






这是我职业生涯中最有趣的一次。我客户的盟友-STO-找不到时间。我去了老板和里昂娜的会议。



我一次又一次地在脑海中重放我们可能的对话。我设法提前了半个小时到达了很多地方。紧张开始了,我抽了十支烟,我明白了一切-我,他妈的,一个人。我将无法说服他们。并走进电梯。



在他攀爬时,他用打火机撞击,摔坏了。



结果,Lenya不在会议上。我们对主要的一切进行了精彩的讨论!谢尔盖告诉我他的痛苦。他不想“自动化Clickhouse”-他希望查询有效。



我看到的不是山羊,而是一个全心全意地从事24/7工作的好人。聊天经常吸引我们恶棍,流氓和笨蛋。但是生活中这些人就像你一样。



Sergei不需要雇用几个开发人员。他们面临的问题变得更大。



我说我可以解决他的问题-这是完全不同的工作,而且我有一个DIBI朋友给她。如果我们最初发现这对他们来说是一笔交易,我们将避免很多事情。太晚了,但是我们意识到问题出在对数据进行糟糕的工作,而不是基础架构。



我们握手了,手续费提高了两倍半,但条件是-我绝对把他们的数据和Klickhaus全部拿走了。在电梯里,我联系了同一个dibieyschik Max,并让他上班。必须铲除整个群集。






Treshak在通过的项目中占了很大比重。从提到的“备份”开始。原来,没有隔离相同的“备份”群集。他们测试了其中的所有内容,有时甚至将其投入生产。



员工开发人员已经编写了自己的自定义数据“插入”。它的工作方式如下:批处理文件,运行脚本并将数据合并到板中。但是主要的问题是,一个简单的请求接受了大量数据。每秒加入的数据请求。都是为了一个数字-每天的金额。



内部开发人员错误地使用了分析工具。他们去了格拉法纳,写下了他们的王室要求。它在2周内转储了数据。原来是一张漂亮的图。但实际上,数据请求是每10秒一次。由于Klickhaus根本不进行处理,所有这些都排在队列中。这是主要原因。 grafan没用,请求排队,旧的无关数据不断到达。



我们重新配置了集群,重新设计了插件。内部开发人员重写了他们的“插入”,开始正确地分片数据。



马克斯对基础设施进行了全面审核。他概述了迁移到成熟后端的计划。但这不适合公司。他们从Max那里预料到了一个神奇的秘密,它将使他们以老式的方式工作,但只能有效。 Lenya仍然负责该项目,但他没有学到任何东西。从所有提议中,他再次选择了他的替代方案。与往常一样,这是最挑剔的决定。里昂相信他的公司有一条特殊的道路。棘手且充满冰山。



实际上,我们就此分开了,我们做了我们能做的。






在这个故事充满智慧的情况下,我们开了自己的生意,并为自己制定了几项原则。我们永远都不会像现在这样开始工作。



在Max这个项目之后,Debian播放器加入了我们,我们仍然一起努力。 Case with Klickhaus教授了在开始工作之前如何对基础架构进行全面而彻底的审核。我们深入研究一切工作原理,然后我们才接受任务。而且,如果早些时候我们立即急于维护基础架构,那么现在我们首先要做一个一次性项目,这有助于了解如何使其正常运行。



是的,我们绕过了糟糕的基础架构项目。即使为了很多钱,即使靠友谊。领导生病的项目是无利可图的。这种认识帮助我们成长。要么是一个一次性的项目,以使基础结构井然有序,然后是服务合同,要么我们只是顺其自然。经过另一个冰山。



PS因此,如果您对基础架构有任何疑问,请随时提出要求



我们每月有2次免费审核,也许您的项目就在其中。



All Articles