🚶🚶Slack уходит из России: чем заменить зарубежный сервис
Аналоги Slack и других зарубежных сервисов, которые больше недоступны в России.
Читать статью
Аналоги Slack и других зарубежных сервисов, которые больше недоступны в России.
Читать статью
👍4🥰4❤1❤🔥1👏1
#дайджест перед выходными
☑️ Летний ProIT Fest — интерактивные форматы на стыке отделов, которые интересны как Senior-ам, так и джунам
☑️ Руководство по обнаружению сервисов с помощью Prometheus Operator — как использовать Pod Monitor, Service Monitor и Scrape Config
☑️ 4 шаблона проектирования контейнеров для Kubernetes — рассматривается применение четырех паттернов: Ambassador, Adapter, Sidecar и Init
☑️ Замена 3-way merge на Server-Side Apply — как werf 2.0 решает проблемы Helm 3
☑️ Сетевые политики на защите рабочих нагрузок в кластере Kubernetes — подробный процесс настройки сетевых политик через фронтенд, бекенд и БД
☑️ Летний ProIT Fest — интерактивные форматы на стыке отделов, которые интересны как Senior-ам, так и джунам
☑️ Руководство по обнаружению сервисов с помощью Prometheus Operator — как использовать Pod Monitor, Service Monitor и Scrape Config
☑️ 4 шаблона проектирования контейнеров для Kubernetes — рассматривается применение четырех паттернов: Ambassador, Adapter, Sidecar и Init
☑️ Замена 3-way merge на Server-Side Apply — как werf 2.0 решает проблемы Helm 3
☑️ Сетевые политики на защите рабочих нагрузок в кластере Kubernetes — подробный процесс настройки сетевых политик через фронтенд, бекенд и БД
❤🔥12🔥2👏2🥰1
🙈🙉 Автоматизация мартышкиного труда с помощью Xdotool и Ansible
В этой небольшой статье опиcывается простой способ, как можно автоматизировать 10 000+ кликов мышкой на нескольких удаленных Linux-машинах (Xserver + SDDM).
Допустим, есть некоторый парк машин, на которых нужно проделать руками очень долгую и однотипную рутину, состоящую из примитивных действий с клавиатурой и мышкой.
Задача облегчается наличием доступа по VNC, если машин хотя бы меньше 50 и клацать не так уж и много. А если нет?
Продолжение тут
#гайд
В этой небольшой статье опиcывается простой способ, как можно автоматизировать 10 000+ кликов мышкой на нескольких удаленных Linux-машинах (Xserver + SDDM).
Допустим, есть некоторый парк машин, на которых нужно проделать руками очень долгую и однотипную рутину, состоящую из примитивных действий с клавиатурой и мышкой.
Задача облегчается наличием доступа по VNC, если машин хотя бы меньше 50 и клацать не так уж и много. А если нет?
Продолжение тут
#гайд
❤11👍2❤🔥1🥰1
eks-node-viewer — это инструмент для визуализации динамического использования нод в кластере. Первоначально он был разработан как внутренний инструмент AWS для демонстрации консолидации с помощью Karpenter.
#софт
#софт
❤12🔥3🥰2
Forwarded from Библиотека собеса по DevOps | вопросы с собеседований
Из каких компонентов состоит k8s и каково их назначение?
Kubernetes (K8s) включает в себя плоскость управления и плоскость данных.
Плоскость управления — это уровень управления, который работает на узлах, называемых главными узлами, и может работать в конфигурации с одним главным узлом или несколькими главными узлами.
Плоскость управления включает в себя:
— ETCD: хранилище конфигурации кластера
— Kubernetes API: предоставляет API для взаимодействия между компонентами K8s и клиентами внутри и вне кластера
— Kubernetes controller manager: реализует контроллеры, управляющие основными сущностями кластера, такими как контроллер узлов, контроллер задач и контроллер срезов конечных точек
— Kubernetes scheduler: выбирает узлы, на которых будут запускаться POD
— cloud controller manager: используется для реализации функций, специфичных для работы с облаком (если кластер K8s работает в облачной среде)
Плоскость данных состоит из компонентов, работающих на каждом узле:
— kubelet: отслеживает изменения конфигурации узла, применяет изменения конфигурации, выполняет проверки контейнера, сообщает о статусе контейнера, работает с плагином CRI и обеспечивает функции запуска и остановки контейнера
— kube-proxy: отвечает за сетевой компонент, работает с плагином CNI и обеспечивает работу сущности «сервис» на своем узле.
Kubernetes (K8s) включает в себя плоскость управления и плоскость данных.
Плоскость управления — это уровень управления, который работает на узлах, называемых главными узлами, и может работать в конфигурации с одним главным узлом или несколькими главными узлами.
Плоскость управления включает в себя:
— ETCD: хранилище конфигурации кластера
— Kubernetes API: предоставляет API для взаимодействия между компонентами K8s и клиентами внутри и вне кластера
— Kubernetes controller manager: реализует контроллеры, управляющие основными сущностями кластера, такими как контроллер узлов, контроллер задач и контроллер срезов конечных точек
— Kubernetes scheduler: выбирает узлы, на которых будут запускаться POD
— cloud controller manager: используется для реализации функций, специфичных для работы с облаком (если кластер K8s работает в облачной среде)
Плоскость данных состоит из компонентов, работающих на каждом узле:
— kubelet: отслеживает изменения конфигурации узла, применяет изменения конфигурации, выполняет проверки контейнера, сообщает о статусе контейнера, работает с плагином CRI и обеспечивает функции запуска и остановки контейнера
— kube-proxy: отвечает за сетевой компонент, работает с плагином CNI и обеспечивает работу сущности «сервис» на своем узле.
❤13👍2❤🔥1🥰1
🏛️🏛️ DbGate — open-source менеджер SQL и NoSQL БД
Это кроссплатформенный менеджер БД. Разработан, чтобы быть простым в использовании и эффективным при работе с несколькими базами одновременно.
Также имеет множество дополнительных функций, таких как сравнение схем, визуальный конструктор запросов, визуализация графиков или пакетный экспорт и импорт.
Поддерживает MySQL, PostgreSQL, SQL Server, MongoDB, SQLite.
Работает под Windows, Linux, Mac и как веб-приложение.
Исходники тут
#софт
Это кроссплатформенный менеджер БД. Разработан, чтобы быть простым в использовании и эффективным при работе с несколькими базами одновременно.
Также имеет множество дополнительных функций, таких как сравнение схем, визуальный конструктор запросов, визуализация графиков или пакетный экспорт и импорт.
Поддерживает MySQL, PostgreSQL, SQL Server, MongoDB, SQLite.
Работает под Windows, Linux, Mac и как веб-приложение.
Исходники тут
#софт
❤13👍8❤🔥5👏2🥰1
🧑🔬🧑🔬 Опыты в домашней лаборатории: собственный Let's Encrypt в OpenWRT
Приведенные ниже шаги довольно инвазивны и не гарантируют успех; возможно, сначала стоит их протестировать на виртуальном OpenWrt роутере. Автор начинает сразу после настройки динамических обновлений DNS зон в OpenWRT, но этот гайд самодостаточен, если у вас уже есть контроль над разрешением имен в вашей сети.
Продолжение тут
#гайд
Приведенные ниже шаги довольно инвазивны и не гарантируют успех; возможно, сначала стоит их протестировать на виртуальном OpenWrt роутере. Автор начинает сразу после настройки динамических обновлений DNS зон в OpenWRT, но этот гайд самодостаточен, если у вас уже есть контроль над разрешением имен в вашей сети.
Продолжение тут
#гайд
❤13🔥1🥰1
Очередной #дайджест для DevOps-ов
➕ Миграция в облако быстро и без ошибок — часть 3: миграция кластера Kubernetes
➕ Overmind CLI — мощный инструмент для анализа влияния изменений Terraform в режиме реального времени
➕ Уменьшение нагрузки с помощью node_systemd_unit_state — решение не устраняет проблему полностью, но уменьшает ее в 5 раз, что более чем достаточно для большинства практических целей.
➕ Гайд по деплою web-приложений для новичков — в статье пошагово рассматривается самый простой вариант деплоя приложения на хостинг
➕ Попрощайтесь с простоями — простое обновление PostgreSQL с 14 до 16 с помощью pg_upgrade
➕ Миграция в облако быстро и без ошибок — часть 3: миграция кластера Kubernetes
➕ Overmind CLI — мощный инструмент для анализа влияния изменений Terraform в режиме реального времени
➕ Уменьшение нагрузки с помощью node_systemd_unit_state — решение не устраняет проблему полностью, но уменьшает ее в 5 раз, что более чем достаточно для большинства практических целей.
➕ Гайд по деплою web-приложений для новичков — в статье пошагово рассматривается самый простой вариант деплоя приложения на хостинг
➕ Попрощайтесь с простоями — простое обновление PostgreSQL с 14 до 16 с помощью pg_upgrade
❤🔥12🥰4👍2
Forwarded from Библиотека собеса по DevOps | вопросы с собеседований
Допустим, у вас есть YAML-файл, в котором описаны deployment и service. Вы вводите команду kubectl create -f file.yaml . Как можно подробнее опишите, что произойдёт после нажатия клавиши Enter.
В начале операции утилита kubectl будет искать и анализировать kubeconfig, извлекая оттуда данные о адресе Kubernetes API, сертификатах для проверки, и ключе доступа. Затем она отправит запрос.
API Kubernetes будет обрабатывать запрос, аутентифицировать пользователя, учитывая его права, и, в случае соответствия правам, сохранять информацию о новом развёртывании (deployment) и сервисе (service) в ETCD.
Контроллер Kubernetes узнает о созданном deployment и, используя Kubernetes API, запишет информацию в ETCD о replicaset и создаст необходимое количество PODов. В этот момент могут быть задействованы admission controller’ы для проверки корректности PODов или их преобразования.
Контроллер Kubernetes будет обнаруживать новые POD'ы и автоматически распределять их по узлам, учитывая их параметры, необходимые ресурсы, специфические требования к узлам (nodeSelector), а также другие настройки, такие как taints/tolerations, podAntiAffinity и т.д.
Kubelet, просматривая изменения в конфигурации ноды через Kubernetes API, начнет вносить изменения: запустит контейнеры через CRI, настроит сеть через kube-proxy, выполнит пробы и, по прохождении проб, изменит статус POD’а в ETCD на Ready через Kubernetes API.
Контроллер Kubernetes увидит готовые PODы, соответствующие service, и создаст записи о новых Endpoint’ах для соответствующих PODов.
Kubelet’ы на всех нодах кластера увидят изменения в конфигурации и вызовут kube-proxy для создания Endpoint’ов.
Kube-proxy вызовет CNI-плагины, которые реализуют Endpoint’ы на уровне инфраструктуры.
При обращении к сервису трафик будет направлен на новые поды.
В начале операции утилита kubectl будет искать и анализировать kubeconfig, извлекая оттуда данные о адресе Kubernetes API, сертификатах для проверки, и ключе доступа. Затем она отправит запрос.
API Kubernetes будет обрабатывать запрос, аутентифицировать пользователя, учитывая его права, и, в случае соответствия правам, сохранять информацию о новом развёртывании (deployment) и сервисе (service) в ETCD.
Контроллер Kubernetes узнает о созданном deployment и, используя Kubernetes API, запишет информацию в ETCD о replicaset и создаст необходимое количество PODов. В этот момент могут быть задействованы admission controller’ы для проверки корректности PODов или их преобразования.
Контроллер Kubernetes будет обнаруживать новые POD'ы и автоматически распределять их по узлам, учитывая их параметры, необходимые ресурсы, специфические требования к узлам (nodeSelector), а также другие настройки, такие как taints/tolerations, podAntiAffinity и т.д.
Kubelet, просматривая изменения в конфигурации ноды через Kubernetes API, начнет вносить изменения: запустит контейнеры через CRI, настроит сеть через kube-proxy, выполнит пробы и, по прохождении проб, изменит статус POD’а в ETCD на Ready через Kubernetes API.
Контроллер Kubernetes увидит готовые PODы, соответствующие service, и создаст записи о новых Endpoint’ах для соответствующих PODов.
Kubelet’ы на всех нодах кластера увидят изменения в конфигурации и вызовут kube-proxy для создания Endpoint’ов.
Kube-proxy вызовет CNI-плагины, которые реализуют Endpoint’ы на уровне инфраструктуры.
При обращении к сервису трафик будет направлен на новые поды.
👍10😁4😢3🥰1👾1
Привет, друзья! 👋
Мы готовим статью о влиянии страха ошибок на работу программистов и хотим услышать ваше мнение! 💻🤔
🔍 Как вы справляетесь со страхом совершить ошибку в коде?
🛠️ Какие инструменты или практики в вашей команде помогают уменьшить страх перед внесением изменений в код?
🌱 Как вы превращаете свои ошибки в возможности для роста и развития?
💬 Поделитесь своим опытом! Ваши ответы могут помочь другим разработчикам! Лучшие идеи войдут в нашу статью.
Мы готовим статью о влиянии страха ошибок на работу программистов и хотим услышать ваше мнение! 💻🤔
🔍 Как вы справляетесь со страхом совершить ошибку в коде?
🛠️ Какие инструменты или практики в вашей команде помогают уменьшить страх перед внесением изменений в код?
🌱 Как вы превращаете свои ошибки в возможности для роста и развития?
💬 Поделитесь своим опытом! Ваши ответы могут помочь другим разработчикам! Лучшие идеи войдут в нашу статью.
🥰2
Forwarded from Библиотека собеса по DevOps | вопросы с собеседований
Как объединить две метрики?
В Prometheus объединение двух метрик можно выполнить с помощью функции *join()*. Функция *join()* объединяет два или более временных ряда на основе значений их меток. Она принимает два обязательных аргумента: *on* и *table*. Аргумент on указывает метки для объединения *on*, а аргумент *table* указывает временной ряд для объединения. На картинке пример того, как объединить две метрики с помощью функции join().
В Prometheus объединение двух метрик можно выполнить с помощью функции *join()*. Функция *join()* объединяет два или более временных ряда на основе значений их меток. Она принимает два обязательных аргумента: *on* и *table*. Аргумент on указывает метки для объединения *on*, а аргумент *table* указывает временной ряд для объединения. На картинке пример того, как объединить две метрики с помощью функции join().
🥰6
Шпаргалка по удалению томов в Docker
❤13🎉4🌚2🔥1
Мы пишем статью о способах измерения личностного роста программистов и нам нужна ваша помощь! 🚀
📊 Какие метрики вы используете для оценки своего прогресса?
🤔 Как вы понимаете, что выросли профессионально?
💡 Есть ли у вас свои уникальные способы отслеживания развития?
💬 Поделитесь вашим опытом в комментариях! Лучшие идеи попадут в нашу статью!
📊 Какие метрики вы используете для оценки своего прогресса?
🤔 Как вы понимаете, что выросли профессионально?
💡 Есть ли у вас свои уникальные способы отслеживания развития?
💬 Поделитесь вашим опытом в комментариях! Лучшие идеи попадут в нашу статью!
❤3🥰1