Кубертатный период
480 subscribers
144 photos
10 videos
3 files
319 links
DevOps Underdog
Download Telegram
Managing 100s of Kubernetes Clusters using Cluster API

Тут ребята делятся своим опытом по управлению сотней кластеров Kubernetes через Cluster API, сократив время развертывания новых кластеров с полутора недель до одного рабочего дня. Минимизировали ручное управление с помощью Kubernetes Operator паттерна.

Правда их опыт релевантен только для Microsoft Azure (AKS) с использованием Cluster API Provider Azure (CAPZ), но скорее всего этот паттерн можно использовать и для других Managed кластеров.
4🤔3👌2
Челик проходил интервью в Google на позицию Senior Site Reliability Engineer, SE (System Engineering) и любезно записал все вопросы и ответы на них с рассуждениями

https://prepare.sh/engineering/devops/google/

Там есть и другие интервью на другие позиции
🔥10👍43
А вы знали, что в Linux кроме базовых прав доступа в inode файла находятся еще три бита, описывающие специальные права доступа?

SUID (Set UID): Этот бит устанавливается на исполняемых файлах. Когда программа запускается с этим битом, она выполняется с правами владельца файла, а не пользователя, который её запустил. Обычно это используется для программ, требующих дополнительных привилегий.

SGID (Set GID): Похож на SUID, но программа выполняется с правами группы владельца файла. Этот бит также может быть установлен на директории, где он назначает группу для всех новых файлов.

Sticky bit: Этот бит обычно устанавливается на директории. Если он активирован, то только владелец файла может удалить его из директории, даже если другие пользователи имеют права на запись в неё. Это защищает от случайного удаления файлов.
11👀4👨‍💻3
IBM приобрели HashiCorp.
Ждём Terransible..
👍5🔥53
Не баян, а классика
😁10😴1
💬 Greenplum: Репозитории заархивированы

Недавно стало известно, что большая часть репозиториев на GitHub Greenplum была заархивирована. В связи с этим у многих возникли вопросы о будущем проекта.

🔍 Комментарий от Arenadata DB:
Разработка Greenplum в рамках open source, скорее всего, будет приостановлена. Дальнейшее развитие проекта будет происходить силами нового правообладателя проекта — компании Broadcom, и сосредоточится на коммерческой версии VMware Tanzu Greenplum.

Нигде не удалось найти прямых подтверждений этому. На сайте Pivotal все еще указаны лицензии по использованию Open Source вплоть до 7-й версии, а также висит следующее уведомление:

🔈 NOTICE:
As part of VMware’s integration with Broadcom, the Tanzu Network domain will remain available to customers until June 7th, 2024, at which point it will redirect to Broadcom’s Support Portal. The associated Tanzu Network registry will remain in read-only mode starting on June 7th, 2024 and will be available until July 15th, 2024 to continue to support using existing OCI artifacts without impact as you transition to Broadcom systems. Please refer to this knowledge base article (ID#: 367105) for all dates and additional information about automation resources.

👍 Что это значит?
Есть вероятность, что просто из-за смены владельца репозитории могут быть перенесены в другое место.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3🤷‍♂1🌚1
Краткий обзор истории создания и развития Kubernetes, включая важные этапы, релизы и статистику. Хорошее чтиво к 10-й годовщине.
👍542
💡 А вы знали, что большинство ошибается насчет PID 0 из-за одной неточности в Wikipedia, сделанной 16 лет назад ? Которая уже исправлена.
Тут челик поясняет за историю PID 0 и кишках запуска ядра.

🔍 PID 0 существует. Это процесс, который запускает ядро.

👎 PID 0 не управляет памятью. В ранних версиях Unix были некоторые задачи, связанные с управлением памятью, но PID 0 давно этим не занимается. Ошибочно связывать PID 0 с такими задачами, как пейджинг или своп.

⚙️ Роль PID 0:
- Инициализация ядра: Во время загрузки ядро инициализирует различные компоненты и создает первый процесс с PID 0.
- Ожидание (idle): PID 0 затем переходит в режим ожидания, готовый к планированию новых задач.
- Управление задачами: Первые задачи, созданные ядром, помогают инициализировать систему. Первая из них в конечном итоге становится процессом инициализации (PID 1) в пользовательском пространстве.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🤓1👨‍💻1
А вы знали, что CRON по умолчанию ведет расписание в UTC, независимо от локального времени?

The solution is that CRON jobs in general run in UTC time. It's considered best practice to use UTC for server-side timestamps. So there is no way to change the default timezone for CRON jobs, but you can manually adjust the scheduled time based on the desired timezone.


За откровение плюсов в карму @N1kituki
3👍21🤔1
🤯 А вы знали, что Redis с версии 7.4 более не OpenSource.

⚙️ Появился форк под названием Valkey, основанный на версии Redis 7.2.

😶‍🌫️ Valkey уже поддерживается облаками AWS, Oracle и Google.
🚀 Кроме того они являются основными контрибьюторами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯2😢2👨‍💻2😱1
Forwarded from /usr/bin
How does Uber build real-time infrastructure to handle petabytes of data every day?

В статье рассказано как устроен стэк Uber, который обеспечивает аналитику, управление и хранение данных. В частности, ни используют Kafka, Flink, Pinot, HDFS и Presto. Читать статью.

❗️Статья на Медиум.
👍61🤔1🥱1
👀 Подписан на канал Админим с Буквой: в целом чел пишет попсовую хуйню от «как сменить пароль в гитлабе локально» до рассказов «как он стал менеджером» с кучей ненужных вакансий, судя по позиции и описаниям, далеко не звездных.

Так вот, на днях публикует свой «инструмент» для проведения собеседований. Внимание ‼️ в гугол таблице :) я заитригован моментально, но чтобы не читать очередной чей-то высер, я ожидал полистать комментарии, которые были отключены по неясной сперва для меня причине.

И в последнем сообщении все становится ясно: челу накидали видимо в панамку вполне заслуженно, а он не выдержал критики, чтобы улучшать свой «инструмент», считая видимо его идеальным решением и гордость за свои рукоблудия не позволяет ему войти в конструктивную беседу.
Для тех, кто не способен прочитать в оригинальном посте что вопросы - моя субъективная история, желаю чтобы вы никогда не попадали на руководящие должности.

Желание неудачи другим людям несогласным с твоим субъективным мнением это конечно круто… это первая ступень в походе за позицией СТО, я так понимаю. Какава профессиональность!

🤦‍♂️И еще, как вы думаете почему в канале не было постов больше месяца? да потому что типок работает в консалтинге по секьюрити, клиента которого не так давно зашифровали к хуям.
Мне очень нравится читать советы и методики от людей которые хапают неудачи полной грудью, имея лишь цель поделиться своим мнением, о котором часто никто не спрашивал)

Ну и в довесок, кому нужен инструмент, если он не масштабируется и применим только к «твоей» компании, где ты лучше всех все знаешь? Зачем его тогда шерить? показать как ты умеешь таблицы составлять? чтобы более крутые менеджеры тебя заметили ?

💻Как же меня заебали эти "недоайтишники", которые от осознания своей никчемности и неспособности развиваться и конкурировать, уходят в менеджеры, еще с таким скрипом, типо мы не хотели, у нас такая судьба. К сожалению, я тоже продолжаю встречать людей на выскоких позициях, которые в своей карьере палец о палец не ударили (кроме гугл-таблиц, есс-но), судя по их текущим навыкам.

Ну я бы прошел мимо, если бы не этот вброс про желание неудачи другим, но к сожалению нередко попадаются вакансии в эту конторку или их приближенных «друзьяшек», куда вполне могут попасть одаренные и хорошие специалисты, которые с такими менеджерами рискуют так и не раскрыть свой потенциал. Ведь как можно получать фидбек от руководства за качественно выполненную работу, если само руководство не вдупляет ничего.

Обходите идиотов стороной, друзья)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥31👏1🥱1🤨1
📈 Недавно задался, зачем для BI-аналитики сгружать все данные с различных источников в один Data Warehouse (DWH), почему бы не читать напрямую из тех мест, где лежат исходные данные. На что получил вполне разумный ответ, что данные нужно объединять друг с другом (JOIN) для BI-аналитики. 🤔 На что задался вопросом, а есть ли такие инструменты, которые позволяют читать данные из различных источников и объединять их. ♻️

💡 Оказывается такой инструмент есть -- Trino (бывший Presto).
🗃 Поддерживает классический ANSI SQL, кеширует в Redis.

DWH считается не совсем современным и трендовым решением: данные нужно хранить там, где они хранятся (Postgres, MySQL, Oracle, MongoDB, etc.)

🎙 Тут челик на VK Conf рассказывает как они построили BI-аналитику поверх Trino и Superset.

😎 Все сложное можно сделать просто, если что-то остается сложным, то скорее всего вы пошли не по тому пути. Ищите простое решение или несколько простых решений в цепочке.
Please open Telegram to view this post
VIEW IN TELEGRAM
3👎3🔥3👌1
Логическая репликация в PostgreSQL. Репликационные идентификаторы и популярные ошибки

Весь процесс логической репликации в PostgreSQL основан на использовании репликационных идентификаторов. 📋

Подготовка:
🔍 Проверка наличия в реплицируемых таблицах первичного ключа или индекса, соответствующего минимальным требованиям и задействованного в REPLICA IDENTITY USING INDEX, либо назначение REPLICA IDENTITY FULL.
🛠️ Репликационные идентификаторы необходимы для однозначной идентификации изменяемых или удаляемых строк при репликации команд UPDATE и DELETE.

Репликационные идентификаторы:

🚫 Их можно не настраивать или отключить, если планируется реплицировать только команды INSERT. Главное — исключить из публикации команды UPDATE и DELETE.
⚠️ Для актуальных данных из активно изменяющихся таблиц, где отсутствуют первичные ключи или уникальные NOT NULL индексы, настройка репликационных идентификаторов обязательна. В противном случае UPDATE и DELETE могут привести к отмене транзакций на мастере, что является нежелательным на рабочей базе.


🗂️ Этот запрос поможет вам выявить таблицы без настроенных репликационных идентификаторов.

SELECT pgn.nspname || '.' || pgc.relname AS "Таблицы без репликационных идентификаторов"
FROM pg_class AS pgc,
pg_namespace AS pgn
WHERE pgn.nspname !~ '^(?:pg_.*|information_schema)$'
AND pgc.relreplident IN ('n', 'd')
AND pgc.relkind IN ('r', 'p')
AND pgc.oid NOT IN (SELECT pgi.indrelid FROM pg_index AS pgi WHERE pgi.indisprimary)
AND pgc.relnamespace = pgn.oid
ORDER BY 1;
---


🦄 Не забывайте правильно настраивать репликационные идентификаторы для успешной работы логической репликации!
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥2🌭1
🚀 Удаление устаревших артефактов в GitLab

🔧 Если в GitLab не были установлены параметры для автоматического удаления устаревших артефактов, то после конфигурации в старых репозиториях артефакты не будут удалены автоматически. Для освобождения места можно использовать скрипт, который пройдется по проекту, соберет все Jobs (кроме первой страницы — 100 последних Jobs) и удалит из них все артефакты. 🗑️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👌2
🔥9😁3👍1