Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.38K photos
71 videos
4 files
2.58K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🧐🧐 Kubernetes Events

События генерируются различными компонентами Kubernetes, такими как планировщик, kubelet, контроллеры и т. д., для сбора информации, относящейся к нодам, подам и другим ресурсам.

События будут иметь запись о состоянии, если пода запланирована, контейнер выходит из строя или ноде не хватает места на диске.

Продолжение тут

#туториал
1👍1
Какая особенность определений портов в модулях позволяет ссылаться на них в атрибуте targetPort сервиса в Kubernetes?
Anonymous Quiz
11%
IP-адресация
22%
Соглашения об именах
11%
Сетевые протоколы
56%
Сопоставление портов
🥰51
Привет, друзья! 👋

Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬

1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?

2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧

Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
1👍1
#дайджест перед выходными

🛟 Установка Sentry в Kubernetes, отловы exception на бекенде, в браузере, на Android — сказ об инструменте для сбора exception, который помогает разработчикам быстро обнаруживать и устранять проблемы, сокращая время выхода новых релизов

🛟 Освоение NGINX — руководство для начинающих по созданию быстрого, безопасного и масштабируемого веб-сервера

🛟 РЕД АДМ — централизованное управление ИТ-инфраструктурой и плавная миграция с Microsoft AD

🛟 k8spacket — инструмент для сбора информации о трафике TCP и метаданных TLS-подключений в кластере Kubernetes с использованием eBPF и визуализации в Grafana

🛟 Введение в Istio для Kubernetes: основы и начальная настройка — мощная платформа, обеспечивающая сетевое взаимодействие, безопасность и наблюдаемость в кластере Kubernetes
👍42
WatchYourLAN

Легковесный сетевой IP-сканер с веб-графическим интерфейсом.

Особенности:

👉 Отправляет уведомления при обнаружении нового хоста
👉 Отслеживает историю хостов онлайн/оффлайн
👉 Сохраняет список всех хостов в сети
👉 Отправляет данные в InfluxDB2 для создания панели мониторинга Grafana

#софт
👏61
🕸️🕸️ Сетевые плагины (CNI) в Kubernetes

CNI или Container Network Interface — это спецификация, разработанная CNCF (Cloud Native Computing Foundation) для стандартизации процесса подключения сетевых интерфейсов к контейнерам. CNI обеспечивает гибкость и адаптивность сетевой инфраструктуры, позволяя интегрировать различные сетевые решения в Kubernetes.

CNI применяется для настройки оверлейных и андерлейных сетей:

👉 Оверлейными сетями, называют сетевой трафик, который инкапсулируется с помощью виртуального интерфейса, такого как виртуальная расширяемая локальная сеть VXLAN.
👉 Андерлейные сети работают на физическом уровне, состоят из коммутаторов и маршрутизаторов.

Продолжение тут

#туториал
2
🔧🔧 Настройка IAM в Multi-account AWS для Terragrunt

В статье автор описывает, как настроить отношения IAM в AWS multi-account с помощью AWS SSO, чтобы разрешить управление с помощью terragrunt/terraform как с CI/CD runner, так и с локальных ПК.

Читать статью

#гайд
2
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты

В статье познакомимся с концепцией тестирования кода и её основными видами, изучим инструменты стандартного пакета testing, научимся запускать и визуализировать тесты. В качестве практического задания напишем и протестируем алгоритм «Решето Эратосфена».

👉 Читать гайд

📌 Остальные части в серии:

1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
15. Конкурентность. Горутины. Каналы
5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода

От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:

☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова infer.
☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью as: при работе с объектами типа ключ-значения можно использовать as для переименования ключей — это позволяет создавать производные типы с измененными именами свойств.
☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием unique symbol: позволяют создавать типы, которые структурно похожи, но рассматриваются типовой системой как разные.
☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.
👍21
Очередной #дайджест для DevOps-ов

🛟 GreptimeDB — опенсорсная система мониторинга all-in-one для метрик, журналов и событий

🛟 Redis 7.4 — добавили новые типы данных bfloat16 и float16, упростили использование вторичных индексов и удалили триггеры и функции на языке JavaScript

🛟 Может ли Postgres заменить Redis — действительно ли Postgres как кэш — хорошая идея? Может ли он действительно заменить Redis?

🛟 Kubernetes: GRPC или HTTP2 — балансировка нагрузки для GRPC и HTTP2 не работает из коробки на L4 прокси, но есть несколько способов улучшить ее

🛟 Запросы и лимиты в Kubernetes: разбираемся в деталях — как в Kubernetes организована работа с запросами и лимитами, как они используются для управления ресурсами
👍21🔥1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
1
Мы хотим провести большой розыгрыш и подарить победителю смартфон на выбор. Помимо iPhone, предлагаем вам выбрать, какой ещё смартфон вы бы хотели видеть среди призов.
🆒 Дарим наш курс за ответ на задачу

В предверии дня программиста проводим конкурс: решите нашу задачу на тему программирования — рандомно выберем победителя


Подробные условия:
➡️ Решаем задачу со следующего поста
➡️ Решение присылаем в бота @ProglibContest_bot
➡️ Рандомно среди правильных ответов разыгрываем курс на выбор

Курсы на выбор:
🔵 Архитектуры и шаблоны программирования
🔵 Основы программирования на Python
🔵 Базовые модели ML и приложения
🔵 Frontend Basic: принцип работы современного веба

Таймлайн:
11-12 сентября — принимаем ответы
⬇️
13 сентября — подводим итоги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
❗️Задача для конкурса в честь дня программиста

Условие:

Даны две строки s и f (начальная и конечная) и словарь D (набор слов).

Нужно определить, можно ли преобразовать s в f, используя только слова из словаря D. При этом каждое преобразование должно менять только один символ, а длина слова должна оставаться неизменной. Если преобразование возможно, нужно найти кратчайшую последовательность таких преобразований и вернуть ее длину. Если преобразование невозможно, вернуть "Преобразование невозможно".

Пример ввода 1:
    D = ["cat", "cot", "dot", "dog", "bat", "dag"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': 3

Пример ввода 2:
    D = ["cat", "cot", "bat"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': Преобразование невозможно
Please open Telegram to view this post
VIEW IN TELEGRAM
1👏1
💼🤝 Как айтишнику найти работу через рекрутинговое агентство

Самостоятельный поиск работы — это, конечно, хорошо. Однако иногда возникают ситуации, когда нужна дополнительная помощь, поддержка и взгляд со стороны.

В нашей статье мы рассмотрим, как айтишнику искать (и найти работу) через рекрутинговое IT-агентство, а также поделимся полезными примерами и лайфхаками.

🔗 Ссылка на статью
👏21😢1