Принципы шардинга реляционных баз данных

Когда ваша база данных небольшая (10 ГБ), вы можете легко добавить больше ресурсов и таким образом масштабировать ее. Однако, поскольку таблицы растут, нужно подумать и о других способах масштабирования базы данных. С одной стороны шардинг — лучший способ масштабирования. Он позволяет линейно масштабировать ресурсы базы данных, памяти и диска, дробя базу данных […]

Оптимизация баз данных под высокую доступность

Для важных платформ, ориентированных на клиента, высокая доступность — первоочередная задача. Однако доступность — постоянно движущаяся цель. Чем больше используется платформа, тем доступнее она должна быть, обеспечивая согласованную производительность и правильное выполнение задачи. Я расскажу вам о стратегии дизайна, уникальной для платформ, требующих как высокой масштабируемости, так и высокой доступности. Эта стратегия проектирования предусматривает сокращение баз […]

Kured — демон перезагрузки Kubernetes

Kured (KUbernetes REboot Daemon) — это демон Kubernetes, который выполняет безопасные автоматические перезагрузки узлов. Он запускается системой управления пакетами базовой ОС. По сути Kured: Следит за наличием напоминания о перезагрузке, например, /var/run/reboot-required. Использует блокировку на сервере API, чтобы обеспечить одновременную перезагрузку только одного узла. Опционально отменяет перезагрузку при наличии активных предупреждений Prometheus. Выполняет […]

Конфигурация Ingress в Kubernetes с использованием Azure Container Service

В посте о запуске приложения .NET Core 2 в Kubernetes я создам Service, чтобы открыть доступ к .NET Core 2 Webapi. Service получит публичный IP-адрес. Конфигурация выглядит так: apiVersion: v1 kind: Service metadata: name: myapiservice spec: ports: — port: 80 selector: app: mywebapi type: LoadBalancer Схема выглядит так:

Статус ядра Linux, Meltdown и Spectre

Все знают, что что-то «крупное» ожидается от компьютерной безопасности. И когда даже Daily Mail публикует статьи о уязвимостях Meltdown и Spectre, вы знаете, ситуация настораживает… В любом случае я не собираюсь вдаваться в подробности публикуемых Daily Mail проблем, но укажу на замечательно написанный материал Project Zero, посвященный обсуждаемым вопросам. Им нужно выдать […]

Хватит зацикливаться на командах

Речь идет о Scrum-командах. Функциональных командах. Каждая команда нуждается в PO. Самоорганизующаяся команда. Командные мероприятия / ритуалы. Помогите команде. Служите команде! Защитите команду. Фокусируйтесь локально! Будьте shit umbrella! Звучит знакомо? В этом посте я расскажу, почему не нужно фокусироваться на «командах», пока не будут созданы условия дляэффективных команд.

Введение в современную балансировку сетевой нагрузки и проксирование

Не так давно я услышал, что существует недостаток вступительных образовательных материалов о современной балансировке сетевой нагрузки и проксировании. И я подумал: как это возможно? Балансировка нагрузки — одна из основных концепций, необходимых для построения надежных распределенных систем. Разумеется, должна быть доступна качественная информация. К сожалению, это не так. Я искал и обнаружил, […]

Как в Kubernetes создать конвейерную обработку CI/CD с автодеплоем c использованием Gitlab и Helm

Недавно я начал работать над несколькими микросервисами Golang. Я решил прокешировать gitlab и разделить работу на несколько шагов для лучшей обратной связи в пользовательском интерфейсе. Вот некоторые изменения, появившиеся в моем файле .gitlab-ci.yaml: нет docker-in-docker; использование кеша для программных пакетов вместо готового изображения с зависимостями; разбиение на шаги; автодеплой с помощью […]

Мониторинг с помощью Prometheus

Мониторинг приложений и серверов приложений — важная часть DevOps-культуры. Вы наверняка хотите постоянно мониторить состояние приложения и серверов, загрузку центрального процессора, потребление памяти, дисковую утилизацию и т.д. Также вы наверняка хотите получать уведомления, если у сервера заканчивается доступная память или приложение перестает отвечать на запросы, что позволит предотвратить проблемы.