Как стать автором
Обновить
6
0
Павел Куделин @dnbstd

DevOps Инженер, Системный Администратор

Отправить сообщение

Как подойти к внедрению DWH, чтобы не было «больно»? Какие методологии использовать и какой стек выбрать?

Время на прочтение9 мин
Количество просмотров2.9K

В статье рассказываем о том, кому стоит задуматься о внедрении DWH, как сократить вероятность ошибок на этапе разработки проекта, выбрать стек, методологию и сэкономить ИТ-бюджеты. 

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

Что такое Charmed Kubeflow?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.3K

Charmed Kubeflow - это готовая к производству сквозная платформа MLOps с открытым исходным кодом на базе нативных облачных технологий.

Charmed Kubeflow преобразует шаги Machine Learning в полноценные рабочие процессы, позволяя обучать, настраивать и отправлять модели Machine Learning (ML). Это позволяет автоматизировать рабочие процессы, повысить качество моделей и упростить развертывание рабочих нагрузок ML в производстве надежным способом.

Charmed Kubeflow удовлетворяет потребность в создании приложений ML структурированным и последовательным образом, способствуя повышению производительности и улучшению сотрудничества в командах Data Science.

Для Data Scientists и Machine Learning Engineers Charmed Kubeflow предоставляет расширенный набор инструментов для организации и масштабирования их работы.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Istio Ambient Mesh для начинающих

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.7K

Представляю вашему вниманию перевод статьи "Demystifying Istio Ambient Mesh for Total Beginners" автора Antonio Berben. В этом посте мы рассмотрим проблемы, возникающие в режиме sidecar, и то, как Istio Ambient Mesh изобретательно решает их, минимизируя использование прокси-серверов, упрощая масштабируемость и поддерживая безопасность. Давайте разберемся.

Читать далее
Всего голосов 2: ↑3 и ↓-1+4
Комментарии0

Лучшие практики для надёжной работы с RabbitMQ

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров19K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.

В первую очередь материал рассчитан на разработчиков, которым ещё не приходилось погружаться в тонкости работы с RabbitMQ или использовать его вообще. Более опытным читателям статья может пригодиться в качестве компактной и упорядоченной выжимки из уже знакомых статей, вебинаров и многочисленных страниц документации.

Следуй за белым кроликом
Всего голосов 58: ↑58.5 и ↓-0.5+59
Комментарии16

Практическое руководство по созданию Helm чарта или как избавиться от рутины при работе с YAML манифестами

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров16K

Бывало ли у вас такое, что вы совершали одни и те же действия из раза в раз и наконец-то решили избавиться от всей этой рутины? Но вы решили отложить это решение на некоторое время, в частности из-за занятости или лени. Но вот вы решаете взять себя в руки и всё изменить! Также было и со мной - и вот в конце концов я решился пойти на оптимизацию развертывания сервисов в Kubernetes при помощи Helm и написать об этом статью!

Я уже успел развернуть несколько приложений в Kubernetes. Но в последнее время взаимодействовать с ресурсами через kubectl становится невыносимо больно. Поэтому я решил осуществить свою давнюю затею - написать свой Helm чарт. Сегодня мы вместе с тобой, Хабрюзер, создадим свой чарт, который можно будет использовать для деплоя собственных приложений!

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии8

Распределённые транзакции

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров31K

На собеседованиях на позицию middle/senior разработчика часто задают вопросы по распределенным транзакциям в микросервисной архитектуре.

Мой коллега однажды посоветовал отличную статью со сравнением основных паттернов для решения проблем распределённых транзакций.

Я проработал статью и подготовил конспект простыми словами, местами дополнил информацией из других источников и полезными ссылками.

Перед тем как начать, делюсь ссылкой на мой блог в телеграм, где я раньше всего публикую материалы по java разработке и личной эффективности.

Читать далее
Всего голосов 26: ↑23 и ↓3+20
Комментарии1

Построение гибкой и распределенной архитектуры с использованием Kafka и Kafka Connect: Часть 2 — Получатель и Helm Chart

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров5K

Данная статья является продолжением статьи - Ивентная модель данных с использованием Kafka и Kafka Connect: Построение гибкой и распределенной архитектуры.

Добро пожаловать во вторую часть статьи о построении гибкой и распределенной архитектуры с использованием Apache Kafka и Kafka Connect! В первой части мы ознакомились с ивентной моделью данных, разработали сервис отправителя и настроили интеграцию с Kafka, чтобы асинхронно отправлять сообщения. Теперь настало время рассмотреть вторую часть этого увлекательного проекта.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Эволюция технологий виртуализации сети в Linux

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров20K

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

Читать далее
Всего голосов 43: ↑43 и ↓0+43
Комментарии14

Что происходит, когда запускаешь «Hello World» в Linux

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров27K

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.

print("hello world")

Вот как это выглядит в командной строке:

$ python3 hello.py
hello world

Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать дальше →
Всего голосов 98: ↑98 и ↓0+98
Комментарии10

Kubernetes: продолжаем говорить о контейнерах и архитектуре

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров5.3K

Каждый раз залипаю на анимацию работы Raft-протокола

В прошлый раз мы говорили о контейнерах, механизмах Namespace и о том, как это всё работает.

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

Попробуем немного отойти от классического «yaml-программирования» и заглянуть под капот.

Коснёмся CAP-теоремы, важности ETCD и причинах его устойчивости к split-brain-проблеме. А ещё посмотрим, почему Kubernetes API можно распределить на кучу инстансов, работающих одновременно, а Controller Manager может работать только в одном экземпляре за раз.

Вот о том, как всё это работает в Kubernetes, кто и зачем тыкает в API, мы сегодня и поговорим.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Разворачиваем веб-приложение в Kubernetes с нуля

Уровень сложностиПростой
Время на прочтение31 мин
Количество просмотров34K

Современные веб-приложения, даже простые на вид, часто подразумевают нетривиальную архитектуру, состоящую из многих компонент. В статье «Делаем современное веб-приложение с нуля» я рассказал, как она может выглядеть, и собрал для демонстрации простейшую реализацию на стеке из нескольких популярных технологий. В неё вошёл бэкенд, фронтенд, воркер для асинхронных задач и аж два хранилища данных — MongoDB как основная база и Redis как очередь задач. В «Делаем поиск в веб-приложении с нуля» я показал, как можно добавить полнотекстовый поиск, и подключил третье хранилище — Elasticsearch.

Всё это время для простоты разработки и отладки компоненты приложения запускались локально через Docker Compose. Но как развернуть такое приложение в настоящем продакшн-окружении? Как обеспечить горизонтальное масштабирование? Как раскатывать новые релизы без простоя? 

В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube. Мы поднимем виртуальный кластер прямо на рабочем ноутбуке, разберёмся с основными сущностями Kubernetes, запустим и соединим между собой компоненты демо-приложения и обсудим, какие ещё возможности Kubernetes пригодятся нам в суровом энтерпрайзе. Если вы занимаетесь разработкой и слышали о Kubernetes, но ещё не имели возможности пощупать его руками — добро пожаловать под кат!

Скорее к YAML-инженерии
Всего голосов 38: ↑38 и ↓0+38
Комментарии10

Kubernetes для сетевых инженеров

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров5.4K

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Kubernetes AppArmor

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.6K

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

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Родительский helm chart для проектов + werf

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4K

Имеем микросервисную архитектуру в k8s, где крутятся и деплоятся сервисы на пхп, го, js ... Под каждый микросервис создается отдельный репозиторий, который содержит помимо исходников кода набор кубернетис ресурсов (deployment, configMap, Secret, Job...)

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии5

Поднимаем Kubernetes с нуля

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров46K

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

Читать далее
Всего голосов 36: ↑33 и ↓3+30
Комментарии55

Разворачиваем Kubernetes-кластер на bare metal под управлением Deckhouse и создаем в нем виртуальные машины

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров5.8K

В новом релизе Kubernetes-платформы Deckhouse v1.43 появилась система виртуализации, основанная на современных технологиях: KubeVirt, Cilium, LINSTOR. Она позволяет в удобном и привычном для пользователя платформы режиме запускать виртуальные машины и управлять их жизненным циклом.

В статье мы рассмотрим это на практике: развернем Deckhouse на bare metal-сервере, запустим в нем виртуальную машину и протестируем, как обеспечивается связь между компонентами кластера с помощью магии Cilium.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии5

Эфемерные контейнеры в Kubernetes

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6.3K
image

Предисловие


С версии Kubernetes 1.16 была добавлена возможность запуска эфемерных контейнеров (Ephemeral Containers). Эта функция позволяет запускать временные контейнеры в рамках существующих Pod'ов, чтобы помочь в диагностике и отладке проблем, а также для выполнения различных задач в рамках существующего окружения.

Эфемерные контейнеры не заменяют существующие контейнеры в Pod'ах, а запускаются рядом с ними в рамках того же сетевого пространства и с теми же точками монтирования. Это означает, что эфемерные контейнеры могут легко получить доступ к ресурсам Pod'а, таким как файловая система или сетевые интерфейсы.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии2

Цикл постов про Keycloak. Часть первая: Внедрение

Время на прочтение18 мин
Количество просмотров50K

Цикл постов про Keycloak (часть 1): Внедрение.

О чем речь?

Это первая часть серии статей о переходе на Keycloak в качестве SSO в условиях кровавого enterprise.

Читать далее
Всего голосов 29: ↑27 и ↓2+25
Комментарии6

Kyverno — замена PodSecurityPolicy или нечто большее?

Время на прочтение6 мин
Количество просмотров3.7K

Привет, хабравчане!

Слышали ли вы, что такое Kyverno и зачем он нужен? В этой статье расскажу и покажу на примерах, что это такое и как мы его используем.

Отправляемся!
Всего голосов 14: ↑13 и ↓1+12
Комментарии3

Distroless контейнеры

Время на прочтение3 мин
Количество просмотров15K

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

Читать далее
Всего голосов 32: ↑31 и ↓1+30
Комментарии18

Информация

В рейтинге
Не участвует
Откуда
Симферополь, Республика Крым, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

DevOps
Lead
Python
Git
Linux
PostgreSQL
Docker
High-loaded systems
RabbitMQ
Golang
Kubernetes
Nginx