Trong khi mọi người đang tổ chức sinh nhật cho tôi thì tôi đang sửa cụm cho đến sáng - và các nhà phát triển đã đổ lỗi cho tôi về những sai sót của họ

Trong khi mọi người đang tổ chức sinh nhật cho tôi thì tôi đang sửa cụm cho đến sáng - và các nhà phát triển đã đổ lỗi cho tôi về những sai sót của họ

Đây là một câu chuyện đã thay đổi mãi mãi cách tiếp cận của tôi với công việc dành cho nhà phát triển. Quay trở lại thời kỳ tiền Covid, rất lâu trước đó, khi tôi và các bạn mới lên kế hoạch kinh doanh riêng và làm việc tự do theo các đơn đặt hàng ngẫu nhiên, một lời đề nghị đã rơi vào giỏ hàng của tôi.

Công ty viết bài này là một công ty phân tích dữ liệu. Cô xử lý hàng nghìn yêu cầu mỗi ngày. Họ đến gặp chúng tôi với lời nói: các bạn ơi, chúng tôi có ClickHouse và chúng tôi muốn tự động hóa cấu hình và cài đặt của nó. Chúng tôi muốn Ansible, Terraform, Docker và tất cả chúng được lưu trữ trong Git. Chúng tôi muốn một cụm gồm bốn nút với mỗi nút có hai bản sao.

Đó là một yêu cầu tiêu chuẩn, có hàng tá yêu cầu như vậy và bạn cần một giải pháp tiêu chuẩn tốt tương đương. Chúng tôi nói “ok” và sau 2-3 tuần thì mọi thứ đã sẵn sàng. Họ chấp nhận công việc và bắt đầu chuyển sang cụm Clickhouse mới bằng tiện ích của chúng tôi.

Không ai muốn hoặc biết cách mày mò Clickhouse. Sau đó, chúng tôi nghĩ rằng đây là vấn đề chính của họ, và do đó trạm dịch vụ của công ty chỉ đơn giản cho phép nhóm của tôi tự động hóa công việc nhiều nhất có thể, để tôi không phải đến đó nữa.

Chúng tôi đồng hành cùng việc di chuyển, các nhiệm vụ khác phát sinh - thiết lập bản sao lưu và giám sát. Cùng lúc đó, trạm dịch vụ của công ty này sáp nhập với một dự án khác, để lại cho chúng tôi một người của chúng tôi - Leonid - làm chỉ huy. Lenya không phải là một chàng trai có năng khiếu. Một nhà phát triển đơn giản đột nhiên được giao phụ trách Clickhouse. Có vẻ như đây là nhiệm vụ đầu tiên anh quản lý một việc gì đó, và vinh dự quá lớn khiến anh cảm thấy choáng váng.

Chúng tôi cùng nhau bắt đầu tạo bản sao lưu. Tôi đề nghị sao lưu dữ liệu gốc ngay lập tức. Chỉ cần lấy nó, nén nó và ném nó vào một số c3. Dữ liệu thô là vàng. Có một tùy chọn khác - tự sao lưu các bảng trong Clickhouse, sử dụng tính năng đóng băng và sao chép. Nhưng Lenya đã nghĩ ra giải pháp của riêng mình.

Anh ấy thông báo rằng chúng tôi cần cụm Clickhouse thứ hai. Và từ giờ trở đi chúng ta sẽ ghi dữ liệu vào hai cụm - cụm chính và cụm dự phòng. Tôi nói với anh ấy, Lenya, đây không phải là bản sao lưu mà là bản sao hoạt động. Và nếu dữ liệu bắt đầu bị mất trong quá trình sản xuất, điều tương tự cũng sẽ xảy ra trên bản sao lưu của bạn.

Nhưng Lenya đã nắm chặt tay lái và không chịu nghe lý lẽ của tôi. Chúng tôi đã trò chuyện với anh ấy rất lâu trong cuộc trò chuyện, nhưng không có việc gì phải làm - Lenya phụ trách dự án, chúng tôi chỉ là những đứa trẻ ngoài đường được thuê.

Chúng tôi đã theo dõi trạng thái của cụm và chỉ tính phí cho công việc của quản trị viên. Quản trị Clickhouse thuần túy mà không cần nhập dữ liệu. Cụm đã có sẵn, các đĩa vẫn ổn, các nút vẫn ổn.

Chúng tôi không hề biết rằng chúng tôi nhận được đơn đặt hàng này do một sự hiểu lầm khủng khiếp trong nhóm của họ

Người quản lý không hài lòng vì Clickhouse chạy chậm và dữ liệu đôi khi bị mất. Anh ta đặt cho trạm dịch vụ của mình nhiệm vụ tìm ra nó. Anh ấy đã cố gắng hết sức để tìm ra điều đó và kết luận rằng chúng tôi chỉ cần tự động hóa Clickhouse - chỉ vậy thôi. Nhưng mọi chuyện nhanh chóng trở nên rõ ràng, họ không cần một đội ngũ tín đồ nào cả.

Tất cả điều này hóa ra là rất, rất đau đớn. Và điều khó chịu nhất là vào ngày sinh nhật của tôi.

Tối thứ Sáu. Tôi đã đặt chỗ tại quán rượu yêu thích của mình và mời những người bạn thân.

Hầu như trước khi rời đi, chúng tôi nhận được nhiệm vụ tạo một bản thay đổi, chúng tôi hoàn thành nó, mọi thứ đều ổn. Thay đổi đã được thông qua, clickhouse đã xác nhận. Chúng tôi đã đến quán bar và họ viết thư cho chúng tôi rằng không có đủ dữ liệu. Chúng tôi tính toán rằng mọi thứ dường như là đủ. Và họ rời đi để ăn mừng.

Nhà hàng ồn ào vào thứ Sáu. Sau khi gọi đồ uống và đồ ăn, chúng tôi nằm dài trên ghế sofa. Suốt thời gian này, sự lười biếng của tôi dần tràn ngập tin nhắn. Họ đã viết điều gì đó về việc thiếu dữ liệu. Tôi nghĩ - buổi sáng khôn ngoan hơn buổi tối. Đặc biệt là ngày hôm nay.

Gần mười một giờ họ bắt đầu gọi điện. Đó là người đứng đầu công ty… “Chắc quyết định chúc mừng tôi,” tôi ngập ngừng nghĩ ngợi rồi nhấc máy.

Và tôi đã nghe thấy những điều như: “Bạn đã làm hỏng dữ liệu của chúng tôi! Tôi trả tiền cho bạn, nhưng không có gì hiệu quả! Bạn chịu trách nhiệm sao lưu và bạn không làm gì cả! Hãy sửa nó đi!" - thậm chí còn thô lỗ hơn.

- Biết gì không, cút đi! Hôm nay là sinh nhật của tôi, và bây giờ tôi sẽ uống rượu và không tham gia vào các sản phẩm tự chế trong tháng XNUMX của bạn từ những thứ tào lao và gậy!

Đó là điều tôi không nói. Thay vào đó, tôi lấy máy tính xách tay ra và bắt tay vào làm việc.

Không, tôi đã ném bom, tôi đã ném bom như địa ngục! Anh ấy đổ giọng điệu “Tôi đã bảo rồi mà” vào cuộc trò chuyện - bởi vì bản sao lưu, hoàn toàn không phải là bản sao lưu, - tất nhiên, không lưu bất cứ thứ gì.

Tôi và các chàng trai đã tìm ra cách dừng ghi âm theo cách thủ công và kiểm tra mọi thứ. Chúng tôi thực sự đã đảm bảo rằng một số dữ liệu không được ghi lại.

Chúng tôi ngừng ghi lại và đếm số lượng sự kiện diễn ra mỗi ngày. Họ tải lên nhiều dữ liệu hơn, trong đó chỉ có một phần ba không được ghi lại. Ba mảnh với 2 bản sao mỗi mảnh. Bạn chèn 100.000 hàng - 33.000 hàng không được ghi lại.

Có sự nhầm lẫn hoàn toàn. Mọi người lần lượt bảo nhau cút đi: Lenya đến đó trước, theo sau là tôi và người sáng lập công ty. Chỉ có trạm dịch vụ tham gia mới cố gắng chuyển hướng các cuộc gọi và thư từ la hét của chúng tôi để tìm ra giải pháp cho vấn đề.

Không ai hiểu chuyện gì đang thực sự xảy ra

Tôi và mọi người thực sự choáng váng khi nhận ra rằng một phần ba tổng số dữ liệu không những không được ghi lại mà còn bị mất! Hóa ra thứ tự trong công ty như sau: sau khi chèn, dữ liệu sẽ bị xóa không thể hủy ngang, các sự kiện bị lãng phí theo đợt. Tôi tưởng tượng Sergei sẽ biến tất cả những thứ này thành đồng rúp bị mất như thế nào.

Sinh nhật của tôi cũng bị ném vào thùng rác. Chúng tôi ngồi ở quầy bar và nghĩ ra các ý tưởng, cố gắng giải câu đố được ném vào chúng tôi. Nguyên nhân khiến Clickhouse sụp đổ không rõ ràng. Có thể do mạng, có thể do cài đặt Linux. Vâng, bất cứ điều gì bạn muốn, đã có đủ giả thuyết.

Tôi đã không thực hiện lời thề của nhà phát triển, nhưng thật không trung thực khi bỏ rơi những người ở đầu dây bên kia - ngay cả khi họ đổ lỗi cho chúng tôi về mọi thứ. Tôi chắc chắn 99% rằng vấn đề không nằm ở quyết định của chúng tôi, không nằm ở phía chúng tôi. Khả năng 1% chúng tôi đã phạm sai lầm khiến chúng tôi lo lắng tột độ. Nhưng dù vấn đề xảy ra ở bên nào thì nó cũng phải được giải quyết. Việc bỏ rơi khách hàng, bất kể họ là ai, bị rò rỉ dữ liệu khủng khiếp như vậy là quá tàn nhẫn.

Chúng tôi làm việc tại bàn nhà hàng cho đến ba giờ sáng. Chúng tôi đã thêm các sự kiện, chèn lựa chọn và tắt chúng tôi để điền vào các khoảng trống. Khi bạn chỉnh sửa dữ liệu, đây là cách bạn thực hiện: bạn lấy dữ liệu trung bình của những ngày trước đó và chèn chúng vào dữ liệu đã được chỉnh sửa.

Sau ba giờ sáng, tôi và bạn đến nhà tôi và gọi một cốc bia ở chợ rượu. Tôi đang ngồi với chiếc máy tính xách tay và vấn đề Clickhouse, một người bạn đã nói với tôi điều gì đó. Kết quả là sau một giờ, anh ta cảm thấy khó chịu vì tôi đang làm việc và không uống bia với anh ta, rồi bỏ đi. Cổ điển - Tôi là bạn của Devops.

Đến 6 giờ sáng, tôi tạo lại bảng và dữ liệu bắt đầu tràn ngập. Mọi thứ đều hoạt động mà không có bất kỳ tổn thất nào.

Sau đó thật khó khăn. Mọi người đổ lỗi cho nhau về việc mất dữ liệu. Nếu một lỗi mới xảy ra, tôi chắc chắn sẽ có một cuộc đấu súng

Trong những cuộc chiến này, cuối cùng chúng tôi cũng bắt đầu hiểu - công ty nghĩ rằng chúng tôi là những người làm việc với dữ liệu và giám sát cấu trúc của các bảng. Họ nhầm lẫn quản trị viên với các đại lý. Và họ đến để hỏi chúng tôi điều gì đó khác với quản trị viên.

Khiếu nại chính của họ là - cái quái gì vậy, bạn chịu trách nhiệm về việc sao lưu và đã không thực hiện chúng đúng cách, bạn tiếp tục lãng phí dữ liệu. Và tất cả điều này với thảm tua lại.

Tôi muốn công lý. Tôi đã tìm hiểu thư từ và đính kèm ảnh chụp màn hình của mọi người, trong đó Leonid bằng tất cả sức lực của mình buộc họ phải tạo bản sao lưu đã được tạo. Trạm dịch vụ của họ đã đứng về phía chúng tôi sau cuộc điện thoại của tôi. Sau đó Lenya đã thừa nhận tội lỗi của mình.

Ngược lại, người đứng đầu công ty không muốn đổ lỗi cho chính người dân của mình. Ảnh chụp màn hình và lời nói không có tác dụng gì với anh ta. Anh ấy tin rằng vì chúng tôi là chuyên gia ở đây nên chúng tôi phải thuyết phục mọi người và kiên quyết với quyết định của mình. Rõ ràng, nhiệm vụ của chúng tôi là dạy Lenya và hơn nữa, bỏ qua anh ta, người được bổ nhiệm làm giám đốc dự án, để đi vào vấn đề chính và đích thân trút bỏ mọi nghi ngờ của chúng tôi về khái niệm dự phòng cho anh ta.

Cuộc trò chuyện tràn ngập sự thù hận, sự hung hãn ẩn giấu và không che giấu. Tôi không biết phải làm gì. Mọi thứ đã đi vào bế tắc. Và sau đó họ khuyên tôi cách dễ nhất - viết một tin nhắn cá nhân cho người quản lý và sắp xếp một cuộc gặp với anh ta. Vasya, con người ở ngoài đời không nhanh nhẹn như trong trò chuyện. Ông chủ trả lời tin nhắn của tôi: đến, không cần hỏi.

Đó là cuộc gặp đáng sợ nhất trong sự nghiệp của tôi. Đồng minh của tôi từ khách hàng - STO - không thể tìm thấy thời gian. Tôi đã đến cuộc họp với ông chủ và Lena.

Tôi lặp đi lặp lại cuộc đối thoại có thể có của chúng tôi trong đầu. Tôi cố gắng đến rất sớm, trước nửa tiếng. Tôi bắt đầu lo lắng, tôi hút 10 điếu thuốc. Tôi hiểu, thế thôi - tôi đang ở một mình. Tôi sẽ không thể thuyết phục được họ. Và anh bước vào thang máy.

Khi đang đứng dậy, anh ta đã đánh mạnh vào chiếc bật lửa khiến nó bị gãy.

Kết quả là Lenya không có mặt tại cuộc họp. Và chúng tôi đã có một cuộc trò chuyện tuyệt vời về mọi thứ với sếp! Sergei kể cho tôi nghe về nỗi đau của anh ấy. Anh ấy không muốn "tự động hóa Clickhouse" - anh ấy muốn "làm cho các truy vấn hoạt động".

Tôi không thấy một con dê mà là một chàng trai tốt, lo việc kinh doanh, đắm chìm trong công việc 24/7. Trò chuyện thường thu hút chúng ta những kẻ hung ác, những kẻ vô lại và những kẻ ngu ngốc. Nhưng trong cuộc sống đây cũng là những người giống như bạn.

Sergei không cần thuê vài người sùng đạo. Vấn đề họ gặp phải hóa ra lại lớn hơn nhiều.

Tôi nói rằng tôi có thể giải quyết vấn đề của anh ấy - đó chỉ là một công việc hoàn toàn khác và tôi có một người bạn đang làm việc đó. Nếu ngay từ đầu chúng tôi biết đây là thương vụ dành cho họ thì chúng tôi đã tránh được rất nhiều điều. Đã muộn, nhưng chúng tôi nhận ra rằng vấn đề nằm ở việc quản lý dữ liệu tồi tệ chứ không phải ở cơ sở hạ tầng.

Chúng tôi bắt tay nhau, họ tăng lương cho chúng tôi gấp hai lần rưỡi, nhưng với điều kiện tôi phải tự mình gánh chịu toàn bộ mớ hỗn độn với dữ liệu của họ và Clickhouse. Trong thang máy, tôi đã liên lạc với Max, anh chàng DI đó và kết nối anh ta với công việc. Nó là cần thiết để xẻng toàn bộ cụm.

Có rất nhiều rác trong dự án được thông qua. Bắt đầu với "bản sao lưu" đã đề cập. Hóa ra cụm “dự phòng” này không hề bị cô lập. Họ đã thử nghiệm mọi thứ trên đó, thậm chí đôi khi còn đưa nó vào sản xuất.

Các nhà phát triển nội bộ của chúng tôi đã tạo bộ chèn dữ liệu tùy chỉnh của riêng họ. Anh ấy làm việc như thế này: anh ấy sắp xếp các tệp, chạy tập lệnh và hợp nhất dữ liệu vào một bảng. Nhưng vấn đề chính là một lượng lớn dữ liệu đã được chấp nhận cho một yêu cầu đơn giản. Yêu cầu tham gia dữ liệu mỗi giây. Tất cả chỉ vì một con số - số tiền mỗi ngày.

Các nhà phát triển nội bộ đã sử dụng công cụ phân tích không chính xác. Họ đến grafana và viết đơn yêu cầu của hoàng gia. Anh ấy đã tải lên dữ liệu trong 2 tuần. Nó hóa ra là một biểu đồ đẹp. Nhưng trên thực tế, yêu cầu dữ liệu cứ sau 10 giây. Tất cả những điều này đã xếp chồng lên nhau vì Clickhouse đơn giản là không thực hiện quá trình xử lý. Đây là nơi lý do chính đã được ẩn giấu. Không có gì hiệu quả trong Grafana, các yêu cầu xếp hàng dài và dữ liệu cũ, không liên quan liên tục được gửi đến.

Chúng tôi đã cấu hình lại cụm, làm lại phần chèn. Các nhà phát triển nội bộ đã viết lại “trình chèn” của họ và nó bắt đầu phân chia dữ liệu một cách chính xác.

Max đã tiến hành kiểm tra cơ sở hạ tầng đầy đủ. Anh ấy đã vạch ra một kế hoạch chuyển đổi sang một chương trình phụ trợ chính thức. Nhưng điều này không phù hợp với công ty. Họ mong đợi một bí mật kỳ diệu từ Max sẽ cho phép họ làm việc theo cách cũ nhưng chỉ hiệu quả. Lenya vẫn phụ trách dự án và anh ấy không học được gì. Từ tất cả những gì được đưa ra, anh lại chọn phương án thay thế của mình. Như mọi khi, đây là quyết định... táo bạo có chọn lọc nhất. Lenya tin rằng công ty của anh có một con đường đặc biệt. Gai góc và đầy tảng băng trôi.

Thực ra đó là nơi chúng tôi chia tay – chúng tôi đã làm những gì có thể.

Với đầy đủ kiến ​​thức và trí tuệ từ lịch sử này, chúng tôi đã mở công việc kinh doanh của riêng mình và hình thành một số nguyên tắc cho riêng mình. Bây giờ chúng ta sẽ không bao giờ bắt đầu làm việc theo cách giống như chúng ta đã làm lúc đó.

DJ Max đã tham gia cùng chúng tôi sau dự án này và chúng tôi vẫn làm việc rất tốt cùng nhau. Trường hợp Clickhouse đã dạy tôi cách tiến hành kiểm tra cơ sở hạ tầng đầy đủ và kỹ lưỡng trước khi bắt đầu công việc. Chúng tôi hiểu mọi thứ hoạt động như thế nào và chỉ sau đó mới chấp nhận nhiệm vụ. Và nếu trước đó chúng tôi ngay lập tức gấp rút bảo trì cơ sở hạ tầng thì bây giờ trước tiên chúng tôi thực hiện một dự án một lần, điều này giúp chúng tôi hiểu cách đưa nó vào trạng thái hoạt động.

Và vâng, chúng tôi tránh các dự án có cơ sở hạ tầng tồi tàn. Dù vì rất nhiều tiền, dù vì tình bạn. Việc thực hiện các dự án bệnh hoạn là không có lợi. Nhận ra điều này đã giúp chúng tôi phát triển. Hoặc là dự án một lần để sắp xếp lại cơ sở hạ tầng và sau đó là hợp đồng bảo trì, hoặc chúng tôi chỉ bay qua. Vượt qua một tảng băng trôi khác.

Tái bút Vì vậy, nếu bạn có thắc mắc về cơ sở hạ tầng của mình, vui lòng để lại yêu cầu.

Chúng tôi có 2 đợt kiểm tra miễn phí mỗi tháng, có lẽ dự án của bạn sẽ là một trong số đó.

Nguồn: www.habr.com

Thêm một lời nhận xét