Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

«Stateful-приложения в 2020 году» — meetup 7 декабря

Конференции Олега Бунина (Онтико)*nixDevOpsKubernetes
7 декабря с 16:00 до 21:00 МСК пройдёт наш совместный со Слёрмом митап «Stateful-приложения в 2020 году». Слёрм обучает инженеров лучшим практикам DevOps, SRE и некоторым другим технологиям (Kubernetes, Docker, Ceph, Kafka и другие).

Конечно, говорить будем о базах данных. О том, как с ними работать, что с ними делать, какие перспективы и тренды нас ждут. Будет два доклада и большой круглый стол в конце.

Ведущий митапа — Антон Черноусов, developer Advocate в Yandex.Cloud и автор подкаста «The Art Of Programming».

Спикеры:

  • Марсель Ибраев. CTO Слёрм
  • Андрей Квапил. Cloud Architect и DevOps Engineer в WEDOS Internet a.s.

Полная информация о митапе по ссылке.

До встречи на митапе!

Всего голосов 5: ↑5 и ↓0 +5
Просмотры726
Комментарии 0

Операторы для Kubernetes: как запускать stateful-приложения

Флант*nixСерверное администрированиеDevOpsKubernetes

Проблема stateful-приложений в Kubernetes


Конфигурация, запуск и дальнейшее масштабирование приложений и служб осуществляются просто, если речь идёт о случаях, классифицируемых как stateless, т.е. без сохранения данных. Такие сервисы удобно запускать в Kubernetes, пользуясь его стандартными API, потому что всё происходит «из коробки»: по стандартным конфигурациям, без привлечения какой-либо специфики и магии.

Проще говоря, для запуска в кластере из контейнеров ещё пяти копий бэкенда на PHP/Ruby/Python требуется лишь 5 раз поднять новый сервер и скопировать исходники. Поскольку и исходники, и init-скрипт лежат в образе, масштабирование stateless-приложения становится совсем элементарным. Как хорошо известно любителям контейнеров и микросервисной архитектуры, сложности начинаются для приложений категории stateful, т.е. с сохранением данных, таких как базы данных и кэши (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra…). Это касается как софта, самостоятельно реализующего кворумный кластер (например, Percona XtraDB и Cassandra), так и софта, требующего отдельных управляющих утилит (такого, как Redis, MySQL, PostgreSQL…).

Сложности возникают по той причине, что исходников и запуска сервиса становится не достаточно — нужно выполнить еще некоторые действия. Как минимум — скопировать данные и/или присоединиться к кластеру. А если точнее, то эти сервисы требуют понимания, как их правильно масштабировать, обновлять и переконфигурировать без потери данных и их временной недоступности. Учёт этих потребностей и называется «эксплуатационными знаниями» (operational knowledge).
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры27.3K
Комментарии 6

Пишем оператора для Kubernetes на Golang

ФлантOpen sourceGoKubernetes
Перевод
Прим. перев.: Операторы (operators) — это вспомогательное ПО для Kubernetes, призванное автоматизировать выполнение рутинных действий над объектами кластера при определённых событиях. Мы уже писали об операторах в этой статье, где рассказывали об основополагающих идеях и принципах их работы. Но если тот материал был скорее взглядом со стороны эксплуатации готовых компонентов для Kubernetes, то предлагаемый теперь перевод новой статьи — это уже видение разработчика/DevOps-инженера, озадаченного реализацией нового оператора.



Этот пост с примером из реальной жизни я решил написать после своих попыток найти документацию по созданию оператора для Kubernetes, прошедших через изучение кода.

Пример, который будет описан, таков: в нашем кластере Kubernetes каждый Namespace представляет окружение-песочницу какой-то команды, и мы хотели ограничить доступ к ним так, чтобы команды могли играть только в своих песочницах.
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры10.7K
Комментарии 4

Представляем shell-operator: создавать операторы для Kubernetes стало ещё проще

ФлантOpen sourceСистемное администрированиеDevOpsKubernetes
В нашем блоге уже были статьи, рассказывающие про возможности операторов в Kubernetes и о том, как написать простой оператор самому. На этот раз хотим представить вашему вниманию наше Open Source-решение, которое выводит создание операторов на суперлёгкий уровень, — познакомьтесь с shell-operator!

Зачем?


Идея shell-operator довольно проста: подписаться на события от объектов Kubernetes, а при получении этих событий запустить внешнюю программу, предоставив ей информацию о событии:

Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры7K
Комментарии 6

Kubernetes Operator на Python без фреймворков и SDK

ФлантСистемное администрированиеPythonDevOpsKubernetes
Tutorial


Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как:

  1. Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK.
  2. На Go написаны такие «перевернувшие игру» приложения, как Docker и Kubernetes. Писать свой оператор на Go — говорить с экосистемой на одном языке.
  3. Высокая производительность приложений на Go и простые инструменты для работы с concurrency «из коробки».

NB: Кстати, как написать свой оператор на Go, мы уже описывали в одном из наших переводов зарубежных авторов.

Но что, если изучать Go вам мешает отсутствие времени или, банально, мотивации? В статье приведен пример того, как можно написать добротный оператор, используя один из самых популярных языков, который знает практически каждый DevOps-инженер, — Python.
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Просмотры7.6K
Комментарии 2

Миграция Cassandra в Kubernetes: особенности и решения

ФлантСистемное администрированиеАдминистрирование баз данныхDevOpsKubernetes


С базой данных Apache Cassandra и необходимостью её эксплуатации в рамках инфраструктуры на базе Kubernetes мы сталкиваемся регулярно. В этом материале поделимся своим видением необходимых шагов, критериев и существующих решений (включая обзор операторов) для миграции Cassandra в K8s.
Читать дальше →
Всего голосов 41: ↑39 и ↓2 +37
Просмотры7.2K
Комментарии 16

Postgres-вторник №5: «PostgreSQL и Kubernetes. CI/CD. Автоматизация тестирования»

ФлантPostgreSQLАдминистрирование баз данныхDevOpsKubernetes


В конце минувшего года состоялся очередной прямой эфир российского PostgreSQL-сообщества #RuPostgres, в рамках которого его сооснователь Николай Самохвалов поговорил с техническим директором «Фланта» Дмитрием Столяровым про эту СУБД в контексте Kubernetes.

Мы публикуем стенограмму основной части этой дискуссии, а на YouTube-канале сообщества опубликована полная видеозапись:
Читать дальше →
Всего голосов 43: ↑43 и ↓0 +43
Просмотры8.8K
Комментарии 1

Одна история с оператором Redis в K8s и мини-обзор утилит для анализа данных этой БД

ФлантNoSQLАдминистрирование баз данныхDevOpsKubernetes


Что будет, если использовать всем известное in-memory-хранилище ключей и значений в качестве персистентной базы данных, не используя TTL? А если оно запущено с помощью надёжного, казалось бы, оператора в Kubernetes? А если в процессе увеличения реплик Redis мы внесём ещё одно маленькое и безобидное изменение?.. Отвечая на эти вопросы в данной статье, мы попутно расскажем, какие утилиты помогут найти пути к оптимизации размеров большой БД в Redis.

Проблемный кейс


Redis у нас используется внутри кластера Kubernetes в разных проектах. Для удобства управления и применения единых практик в рамках компании мы остановились на операторе от Spotahome. По нашему опыту, это наиболее стабильный вариант, хотя и у него есть свои проблемы, некоторые из которых будут затронуты далее в статье.
Читать дальше →
Всего голосов 46: ↑46 и ↓0 +46
Просмотры8.5K
Комментарии 7

Определяем подходящий размер для кластера Kafka в Kubernetes

ФлантМессенджерыСистемное администрированиеDevOpsKubernetes
Перевод
Tutorial
Прим. перев.: В этой статье компания Banzai Cloud делится примером использования её специальных утилит для облегчения эксплуатации Kafka в рамках Kubernetes. Приводимые инструкции иллюстрируют, как можно определить оптимальный размер инфраструктуры и настроить саму Kafka для достижения требуемой пропускной способности.



Apache Kafka — распределённая стриминговая платформа для создания надёжных, масштабируемых и высокопроизводительных потоковых систем реального времени. Её впечатляющие возможности можно расширить с помощью Kubernetes. Для этого мы разработали Open Source-оператор Kafka и инструмент под названием Supertubes. Они позволяют запускать Kafka в Kubernetes и использовать её различные функции, такие как тонкая настройка конфигурации брокера, масштабирование на основе метрик с ребалансировкой, rack awareness (осведомлённость об аппаратных ресурсах), «мягкое» (graceful) выкатывание обновлений и т.д.
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры9.1K
Комментарии 3

Наш опыт миграции Cassandra между Kubernetes-кластерами без потери данных

ФлантСистемное администрированиеАдминистрирование баз данныхDevOpsKubernetes


Последние ~полгода для работы с Cassandra в Kubernetes мы использовали Rook operator. Однако, когда нам потребовалось выполнить весьма тривиальную, казалось бы, операцию: поменять параметры в конфиге Cassandra, — обнаружилось, что оператор не обеспечивает достаточной гибкости. Чтобы внести изменения, требовалось склонировать репозиторий, внести изменения в исходники и пересобрать оператор (конфиг встроен в сам оператор, поэтому ещё пригодится знание Go). Всё это занимает много времени.

Обзор существующих операторов мы уже делали, и на сей раз остановились на CassKop от Orange, который поддерживает нужные возможности, а в частности — кастомные конфиги и мониторинг из коробки.
Читать дальше →
Всего голосов 36: ↑35 и ↓1 +34
Просмотры2.8K
Комментарии 5

Удаляем устаревшую feature branch в Kubernetes кластере

Open sourceСистемное администрированиеПрограммированиеDevOpsKubernetes

Привет! Feature branch (aka deploy preview, review app) — это когда деплоится не только master ветка, но и каждый pull request на уникальный URL. Можно проверить работает ли код в production-окружении, фичу можно показать другим программистам или продуктологам. Пока вы работаете в pull request'е, каждый новый commit текущий deploy для старого кода удаляется, а новый deploy для нового кода выкатывается. Вопросы могут возникнуть тогда, когда вы смерджили pull request в master ветку. Feature branch вам больше не нужна, но ресурсы Kubernetes все еще находятся в кластере.

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры1.3K
Комментарии 7

Простое создание Kubernetes-операторов с shell-operator: прогресс проекта за год

ФлантOpen sourceСистемное администрированиеDevOpsKubernetes


Kubernetes-операторы — удобный механизм для расширения возможностей этой контейнерной платформы, по праву снискавший широкое признание в среде инженеров эксплуатации и им сочувствующих. О том, как они устроены и работают, мы рассказывали в уже далёком 2017-м. А в апреле прошлого года мы представили Open Source-проект shell-operator, который значительно упростил процесс создания Kubernetes-операторов.

Для этого был разработан фреймворк, позволяющий запускать произвольные скрипты (на Bash, Python и т.п.) в случае наступления определённых событий в K8s-кластере.

За минувшее время shell-operator обрёл свою пользовательскую базу (см. подробности в конце статьи) и, конечно, новые возможности. По случаю недавнего релиза v1.0.0-beta.11 (о бета-статусе см. дальше) мы решили рассказать о том, к чему проект пришёл за время своего существования, с момента анонса первой публичной версии.
Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Просмотры3.6K
Комментарии 2

Как собрать гибридное облако с помощью Kubernetes, которое может заменить DBaaS

Mail.ru GroupMySQLОблачные вычисленияMongoDBKubernetes
Меня зовут Петр Зайцев, я генеральный директор, основатель Percona и хочу рассказать:

  • как мы от open source-решений пришли к Database as a Service;
  • какие существуют подходы к развертыванию баз данных в облаке;
  • как Kubernetes может заменить DBaaS, устранив зависимость от вендора и сохранив простоту СУБД как сервиса.

Статья подготовлена на основе доклада на @Databases Meetup by Mail.ru Cloud Solutions & Tarantool. Если не хотите читать, можно посмотреть:


Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры2.9K
Комментарии 3

Go? Bash! Встречайте shell-operator (обзор и видео доклада с KubeCon EU'2020)

ФлантСистемное администрированиеDevOpsKubernetes
В этом году главная европейская конференция по Kubernetes — KubeCon + CloudNativeCon Europe 2020 — была виртуальной. Впрочем, такая смена формата не помешала нам выступить с давно запланированным докладом «Go? Bash! Meet the Shell-operator», посвящённым нашему Open Source-проекту shell-operator.

В этой статье, написанной по мотивам выступления, представлен подход к упрощению процесса создания операторов для Kubernetes и показано, как с минимальными усилиями при помощи shell-operator'а можно сделать свой собственный.



Представляем видео с докладом (~23 минуты на английском, заметно информативнее статьи) и основную выжимку из него в текстовом виде. Поехали!
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Просмотры5.4K
Комментарии 4

Обзор операторов PostgreSQL для Kubernetes. Часть 1: наш выбор и опыт

ФлантPostgreSQLАдминистрирование баз данныхDevOpsKubernetes


Всё чаще от клиентов поступают такие запросы: «Хотим как Amazon RDS, но дешевле»; «Хотим как RDS, но везде, в любой инфраструктуре». Чтобы реализовать подобное managed-решение на Kubernetes, мы посмотрели на текущее состояние наиболее популярных операторов для PostgreSQL (Stolon, операторы от Crunchy Data и Zalando) и сделали свой выбор.

Эта статья — полученный нами опыт и с теоретической точки зрения (обзор решений), и с практической стороны (что было выбрано и что из этого получилось). Но для начала давайте определимся, какие вообще требования предъявляются к потенциальной замене RDS…
Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Просмотры12.3K
Комментарии 18

Обзор операторов PostgreSQL для Kubernetes. Часть 2: дополнения и итоговое сравнение

ФлантPostgreSQLАдминистрирование баз данныхDevOpsKubernetes


На прошлую статью, где мы рассмотрели три оператора PostgreSQL для Kubernetes (Stolon, Crunchy Data и Zalando), поделились своим выбором и опытом эксплуатации, — поступила отличная обратная связь от сообщества*.

Продолжая эту тему, мы добавили в обзор два других решения, на которые нам указали в комментариях: StackGres и KubeDB, — и сделали сводную таблицу сравнения. Также за время эксплуатации оператора от Zalando у нас появились новые интересные кейсы — спешим поделиться и ими.
Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Просмотры5.3K
Комментарии 5

Руководство по использованию Tarantool Cartridge в Kubernetes

Mail.ru GroupВысокая производительностьDevOpsKubernetesTarantool
Tutorial


Привет, меня зовут Иван, и сегодня я расскажу как управлять приложением Tarantool Cartridge в кластере Kubernetes при помощи Tarantool Operator. Мы пройдем полный цикл от разработки до эксплуатации:


  • Подготовим инструменты
  • Создадим тестовое приложение
  • Упакуем его в Docker
  • Установим приложение в kubernetes-кластер
  • Масштабируем приложение
  • Обновим версию приложения
  • Разберем возможные проблемы
  • Кастомизируем наш кластер
  • Разберемся с установкой в закрытом контуре
Читать дальше →
Всего голосов 47: ↑47 и ↓0 +47
Просмотры1.9K
Комментарии 1

Прогресс shell-operator и addon-operator: хуки как admission webhooks, Helm 3, OpenAPI, хуки на Go и многое другое

ФлантOpen sourceСистемное администрированиеDevOpsKubernetes

Shell-operator и addon-operator — Open Source-проекты компании «Флант» для администраторов Kubernetes, представленные в апреле 2019 года. Первый призван упростить создание K8s-операторов: для этого с ним достаточно писать простые скрипты (на Bash, Python и т.п.) или любые бинарники, которые будут вызываться в случае наступления определённых событий в Kubernetes API. Второй (addon-operator) — его «старший брат», цель которого — упростить установку Helm-чартов в кластер, используя для их настройки хуки shell-operator’а.

В последний раз мы рассказывали о возможностях shell-operator по состоянию на релиз v1.0.0-beta.11 (летом прошлого года), если не считать последовавшего доклада на KubeCon EU’2020, который знакомил с проектом тех, кто о нём ещё не знает. (К слову, этот доклад мы по-прежнему рекомендуем всем желающим разобраться, как shell-operator облегчает жизнь при создании операторов, и увидеть наглядные примеры его применения.)

За минувшее время и shell-operator, и addon-operator получили множество интересных новшеств, которым и посвящена эта статья.

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Просмотры1.7K
Комментарии 3

Эксплуатация MongoDB в Kubernetes: решения, их плюсы и минусы

ФлантСистемное администрированиеMongoDBDevOpsKubernetes

MongoDB — одна из самых популярных NoSQL/документоориентированных баз данных в мире веб-разработки, поэтому многие наши клиенты используют её в своих продуктах, в том числе и в production. Значительная их часть функционирует в Kubernetes, так что хотелось бы поделиться накопленным опытом: какие варианты для запуска Mongo в K8s существуют? В чем их особенности? Как мы сами подошли к этому вопросу?

Ведь не секрет: несмотря на то, что Kubernetes предоставляет большое количество преимуществ в масштабировании и администрировании приложений, если делать это без должного планирования и внимательности, можно получить больше неприятностей, чем пользы. То же самое касается и MongoDB в Kubernetes.

Читать далее
Всего голосов 40: ↑38 и ↓2 +36
Просмотры4.1K
Комментарии 2

shell-operator v1.0.0: долгожданный релиз нашего проекта для Kubernetes-операторов

ФлантOpen sourceСистемное администрированиеDevOpsKubernetes

Open Source-проект shell-operator был создан с целью упростить создание полноценных Kubernetes-операторов и представлен нами два года назад. За минувшее время он прошёл длинный путь, оброс интересными функциями и, как мы уже недавно писали, созрел для использования в production.

Несмотря на это, его версия, долгое время «блуждавшая» в диапазоне бета- и RC-релизов будущей v1.0.0, вносила смуту для сторонних наблюдателей (и пользователей). С этим финальным релизом shell-operator мы ликвидируем это недоразумение, ещё более официально объявляя о зрелости проекта, а заодно — принеся в него новые возможности.

Читать далее
Всего голосов 32: ↑32 и ↓0 +32
Просмотры2.6K
Комментарии 1
1