🧐🧐 Kubernetes Events
События генерируются различными компонентами Kubernetes, такими как планировщик, kubelet, контроллеры и т. д., для сбора информации, относящейся к нодам, подам и другим ресурсам.
События будут иметь запись о состоянии, если пода запланирована, контейнер выходит из строя или ноде не хватает места на диске.
Продолжение тут
#туториал
События генерируются различными компонентами Kubernetes, такими как планировщик, kubelet, контроллеры и т. д., для сбора информации, относящейся к нодам, подам и другим ресурсам.
События будут иметь запись о состоянии, если пода запланирована, контейнер выходит из строя или ноде не хватает места на диске.
Продолжение тут
#туториал
❤1👍1
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Какая особенность определений портов в модулях позволяет ссылаться на них в атрибуте targetPort сервиса в Kubernetes?
Anonymous Quiz
11%
IP-адресация
22%
Соглашения об именах
11%
Сетевые протоколы
56%
Сопоставление портов
🥰5❤1
Привет, друзья! 👋
Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬
1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬
1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
❤1👍1
#дайджест перед выходными
🛟 Установка Sentry в Kubernetes, отловы exception на бекенде, в браузере, на Android — сказ об инструменте для сбора exception, который помогает разработчикам быстро обнаруживать и устранять проблемы, сокращая время выхода новых релизов
🛟 Освоение NGINX — руководство для начинающих по созданию быстрого, безопасного и масштабируемого веб-сервера
🛟 РЕД АДМ — централизованное управление ИТ-инфраструктурой и плавная миграция с Microsoft AD
🛟 k8spacket — инструмент для сбора информации о трафике TCP и метаданных TLS-подключений в кластере Kubernetes с использованием eBPF и визуализации в Grafana
🛟 Введение в Istio для Kubernetes: основы и начальная настройка — мощная платформа, обеспечивающая сетевое взаимодействие, безопасность и наблюдаемость в кластере Kubernetes
🛟 Установка Sentry в Kubernetes, отловы exception на бекенде, в браузере, на Android — сказ об инструменте для сбора exception, который помогает разработчикам быстро обнаруживать и устранять проблемы, сокращая время выхода новых релизов
🛟 Освоение NGINX — руководство для начинающих по созданию быстрого, безопасного и масштабируемого веб-сервера
🛟 РЕД АДМ — централизованное управление ИТ-инфраструктурой и плавная миграция с Microsoft AD
🛟 k8spacket — инструмент для сбора информации о трафике TCP и метаданных TLS-подключений в кластере Kubernetes с использованием eBPF и визуализации в Grafana
🛟 Введение в Istio для Kubernetes: основы и начальная настройка — мощная платформа, обеспечивающая сетевое взаимодействие, безопасность и наблюдаемость в кластере Kubernetes
👍4❤2
WatchYourLAN
Легковесный сетевой IP-сканер с веб-графическим интерфейсом.
Особенности:
👉 Отправляет уведомления при обнаружении нового хоста
👉 Отслеживает историю хостов онлайн/оффлайн
👉 Сохраняет список всех хостов в сети
👉 Отправляет данные в InfluxDB2 для создания панели мониторинга Grafana
#софт
Легковесный сетевой IP-сканер с веб-графическим интерфейсом.
Особенности:
👉 Отправляет уведомления при обнаружении нового хоста
👉 Отслеживает историю хостов онлайн/оффлайн
👉 Сохраняет список всех хостов в сети
👉 Отправляет данные в InfluxDB2 для создания панели мониторинга Grafana
#софт
👏6❤1
🕸️🕸️ Сетевые плагины (CNI) в Kubernetes
CNI или Container Network Interface — это спецификация, разработанная CNCF (Cloud Native Computing Foundation) для стандартизации процесса подключения сетевых интерфейсов к контейнерам. CNI обеспечивает гибкость и адаптивность сетевой инфраструктуры, позволяя интегрировать различные сетевые решения в Kubernetes.
CNI применяется для настройки оверлейных и андерлейных сетей:
👉 Оверлейными сетями, называют сетевой трафик, который инкапсулируется с помощью виртуального интерфейса, такого как виртуальная расширяемая локальная сеть VXLAN.
👉 Андерлейные сети работают на физическом уровне, состоят из коммутаторов и маршрутизаторов.
Продолжение тут
#туториал
CNI или Container Network Interface — это спецификация, разработанная CNCF (Cloud Native Computing Foundation) для стандартизации процесса подключения сетевых интерфейсов к контейнерам. CNI обеспечивает гибкость и адаптивность сетевой инфраструктуры, позволяя интегрировать различные сетевые решения в Kubernetes.
CNI применяется для настройки оверлейных и андерлейных сетей:
👉 Оверлейными сетями, называют сетевой трафик, который инкапсулируется с помощью виртуального интерфейса, такого как виртуальная расширяемая локальная сеть VXLAN.
👉 Андерлейные сети работают на физическом уровне, состоят из коммутаторов и маршрутизаторов.
Продолжение тут
#туториал
❤2
Forwarded from Библиотека Go-разработчика | Golang
🏃 Самоучитель по 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. Конкурентность. Горутины. Каналы
В статье познакомимся с концепцией тестирования кода и её основными видами, изучим инструменты стандартного пакета 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 приемов для создания надежного кода
От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:
☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова
☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью
☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием
☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.
От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:
☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова
infer
.☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью
as
: при работе с объектами типа ключ-значения можно использовать as
для переименования ключей — это позволяет создавать производные типы с измененными именами свойств.☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием
unique symbol
: позволяют создавать типы, которые структурно похожи, но рассматриваются типовой системой как разные. ☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.
👍2❤1
Очередной #дайджест для DevOps-ов
🛟 GreptimeDB — опенсорсная система мониторинга all-in-one для метрик, журналов и событий
🛟 Redis 7.4 — добавили новые типы данных bfloat16 и float16, упростили использование вторичных индексов и удалили триггеры и функции на языке JavaScript
🛟 Может ли Postgres заменить Redis — действительно ли Postgres как кэш — хорошая идея? Может ли он действительно заменить Redis?
🛟 Kubernetes: GRPC или HTTP2 — балансировка нагрузки для GRPC и HTTP2 не работает из коробки на L4 прокси, но есть несколько способов улучшить ее
🛟 Запросы и лимиты в Kubernetes: разбираемся в деталях — как в Kubernetes организована работа с запросами и лимитами, как они используются для управления ресурсами
🛟 GreptimeDB — опенсорсная система мониторинга all-in-one для метрик, журналов и событий
🛟 Redis 7.4 — добавили новые типы данных bfloat16 и float16, упростили использование вторичных индексов и удалили триггеры и функции на языке JavaScript
🛟 Может ли Postgres заменить Redis — действительно ли Postgres как кэш — хорошая идея? Может ли он действительно заменить Redis?
🛟 Kubernetes: GRPC или HTTP2 — балансировка нагрузки для GRPC и HTTP2 не работает из коробки на L4 прокси, но есть несколько способов улучшить ее
🛟 Запросы и лимиты в Kubernetes: разбираемся в деталях — как в Kubernetes организована работа с запросами и лимитами, как они используются для управления ресурсами
👍2❤1🔥1
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Какая функция сервисов в Kubernetes позволяет предоставлять доступ к нескольким портам?
Anonymous Quiz
13%
Перенаправление порта
26%
Псевдонимы портов
31%
Несколько определений портов
30%
Динамическое распределение портов
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤1
Мы хотим провести большой розыгрыш и подарить победителю смартфон на выбор. Помимо iPhone, предлагаем вам выбрать, какой ещё смартфон вы бы хотели видеть среди призов.
Какой смартфон вам по душе:
Anonymous Poll
16%
OnePlus Open 5G
3%
OPPO Find N3
47%
Samsung Galaxy S24 Ultra на 1ТБ
19%
Xiaomi 14 Ultra 512 ГБ
2%
Vivo X100 Ultra
13%
Свой вариант (напишу в комментариях)
🌚4👍2❤1😁1
В предверии дня программиста проводим конкурс: решите нашу задачу на тему программирования — рандомно выберем победителя
Подробные условия:
Курсы на выбор:
Таймлайн:
11-12 сентября — принимаем ответы
⬇️
13 сентября — подводим итоги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Условие:
Даны две строки 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
Forwarded from Азбука айтишника
💼🤝 Как айтишнику найти работу через рекрутинговое агентство
Самостоятельный поиск работы — это, конечно, хорошо. Однако иногда возникают ситуации, когда нужна дополнительная помощь, поддержка и взгляд со стороны.
В нашей статье мы рассмотрим, как айтишнику искать (и найти работу) через рекрутинговое IT-агентство, а также поделимся полезными примерами и лайфхаками.
🔗 Ссылка на статью
Самостоятельный поиск работы — это, конечно, хорошо. Однако иногда возникают ситуации, когда нужна дополнительная помощь, поддержка и взгляд со стороны.
В нашей статье мы рассмотрим, как айтишнику искать (и найти работу) через рекрутинговое IT-агентство, а также поделимся полезными примерами и лайфхаками.
🔗 Ссылка на статью
👏2❤1😢1