Архив автора: Иван Кудрявцев

Настройка сервера Linux для Tornado в CentOS 7, Debian 9 Stretch, Ubuntu 18.04 Bionic

Tornado — популярный минималистичный фреймворк для разработки web-сервисов с помощью Python. Он часто применяется как для создания обычных сервисов с RESTful-интерфейсом, так и для реализации приложений, использующих Websocket, что идеально реализуется с помощью асинхронных функций языка.

Разработка фреймворка ведется на GitHub. На следующем изображении вы можете видеть, что Tornado активно разрабатывается сообществом:

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

Закончив чтение данного руководства, вы научитесь самостоятельно настраивать минималистичный сервер для для Tornado без лишних компонентов. Ваше приложение будет доступно по защищенному протоколу HTTPS с поддержкой бесплатного сертификата Let’s Encrypt, балансировка трафика между выполняющимися экземплярами приложения Tornado будет осуществляться с помощью Nginx.

Читать далее

Настройка высокодоступного, масштабируемого отказоустойчивого сайта с помощью Nginx, GlusterFS и MySQL Galera в Linux

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

Сайт без единой точки отказа становится де-факто требованием в мире, где большинство операций выполняются дистанционным образом. Простои обходятся дорого, особенно, если они происходят в неподходящее время — праздники, выходные, высокий сезон.

В этой статье мы рассмотрим как настроить высокодоступный сайт на трех узлах, которые могут быть как виртуальными так и аппаратными серверами. В ходе настройки мы будем использовать Nginx, СУБД MariaDB (MySQL), распределенную файловую систему GlusterFS, CDN CloudFlare, сертификаты Let’s Encrypt.

Читать далее

Настройка отказоустойчивого кластера MySQL с синхронной мульти-master репликацией с помощью Galera в Ubuntu, Debian и CentOS Linux

Синхронная мульти-master репликация в MySQL появилась сравнительно недавно, однако была востребована довольно давно. До этого момента пользователям приходилось использовать либо репликацию в режиме Master-Slave и переключать операции записи на ведомый сервер при отказе главного сервера, либо использовать довольно сложный вариант с Master-Master репликацией на основании двунаправленной Master-Slave репликации.

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

С появлением Galera все стало намного проще. Для надежной работы вам необходимо эксплуатировать нечетное количество серверов, например 3 или 5 для защиты от партиционирования, так, чтобы при ситуации, когда кластер «рассыпался» Galera могла принять обоснованное решение о том, является ли наблюдаемый сегмент кластера целостным.

Читать далее

Улучшение безопасности: новый генератор случайных чисел для VM Cloud2

Уважаемый пользователь, мы произвели улучшение, связанное с генерацией случайных чисел. Теперь в виртуальные машины передается устройство VirtIO RNG, которое может использоваться всеми машинами, которые умеют его определять, для генерации лучшей энтропии.

Показатель энтропии очень важен для быстрой работы многих криптографических функций, что может выражатся в медленной генерации ключей или задержке при установлении SSL/TLS соединений. Если энтропия низкая, эти операции могут работать медленно или блокироваться для ожидания накопления нужного количества энтропии.

Узнать текущий показатель энтропии для машины можно с помощью команды:

cat /proc/sys/kernel/random/entropy_avail
120

Если он низкий (меньше 250), то это может стать проблемой. Теперь вы можете решить эту проблему с помощью приведенных далее инструкций.

Linux

Установите пакет rng-tools для вашей системы:

# Ubuntu/Debian
sudo apt-get update && sudo 
apt-get install -y rng-tools

# CentOS 7
yum install -y rng-tools
systemctl start rngd
systemctl enable rngd

Зайдите в панель управления VM, выключите VM и включите ее снова. Убедитесь, что показатель энтропии вырос по сравнению с предыдущим замером:

cat /proc/sys/kernel/random/entropy_avail
3124

MS Windows

  • Зайдите в панель управления VM. Выключите VM и включите ее снова.
  • Установите драйверы VirtIO с ISO, который находится в списке доступных.
  • При необходимости перезагрузите операционную систему VM.

Настройка синхронизации файлов между серверами с помощью SyncThing

SyncThing — программное обеспечение, которое позволяет выполнять синхронизацию файлов между серверами по P2P протоколу. Очень важно, что в своей работе SyncThing опирается на подсистему inotify, которая позволяет мгновенно реагировать на операции над файлами и каталогами, чтобы обеспечить минимальную задержку синхронизации, что особенно важно при наличии большого количества файлов в каталоге.

Читать далее

Настраиваем распределенную файловую систему GlusterFS на трехузловом кластере под управлением Linux

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

Мы не рекомендуем использовать кластерные системы в задачах, где предполагается интенсивная запись данных, требующая высоких показателей IOPS и прогнозируемую задержку IO. Однако, для задач, в которых операции чтения значительно преобладают над операциями записи и нет требований к ультранизкой задержке IO, кластерные файловые системы вполне могут использоваться.

Читать далее

Шаблоны NetPoint для виртуальных машин Cloud2

На этой странице перечислены готовые шаблоны для быстрого развертывания виртуальных машин, которые наша команда поддерживает в актуальном состоянии для облака Cloud2. Здесь не перечислены шаблоны и ISO, которые загружены пользователями. Все шаблоны распределены по группам:

Читать далее

Выгрузка, загрузка и распространение образов контейнеров Docker в виде архива

Стандартный способ распространения образов Docker — использование репозиториев Docker, которые позволяют как опубликовать вновь созданные образы, так и скачать их для локального использования. Развернуть локальный реестр Docker можно за 1 минуту, однако, для полноценного использования требуется больше действий, например, установка SSL-сертификата и поддержка авторизации.

Бывают случаи, когда серверы, на которых планируется выполнять контейнеры, созданные из образов, полностью изолированы от сегмента сети и не могут скачать себе образ из реестра. В этом случае у разработчиков возникает необходимость каким-то образом сформировать образ контейнера на сервере. Команда docker build тоже часто не подходит, поскольку большинство образов при сборке скачивает зависимости и необходимые слои из сети. Если хост не имеет подключения к сети, то и скачать ничего не сможет.

К счастью, Docker предоставляет стандартный механизм для распространения образов без использования реестров с помощью импорта и экспорта. Далее в статье мы рассмотрим как воспользоваться этими возможностями для того, чтобы эффективно распространять образы на серверы, где подключение к интернет невозможно.

Читать далее

Сборка, настройка и запуск Spark Job Server для PySpark с использованием Docker

В этой статье мы рассмотрим, как собрать и использовать Spark Job Server в виде приложения для Docker. Spark Job Server — полезное дополнение Spark, которое позволяет загружать и выполнять задания Spark через Rest API.

Spark Job Server входит в состав популярных дистрибутивов для больших данных, таких как Cloudera CDH5 или Hortonworks, однако, установка полноценного кластера избыточна для целей обучения, разработки или малых вычислительных задач.

В данном руководстве вы узнаете как развернуть готовую среду для разработки, тестирования и продуктового использования Apache Spark без внешних зависимостей с использованием Spark Job Server.

Читать далее

Сравнение MariaDB и MySQL. Все, что вам нужно знать в 2019 году

MySQL является одной из наиболее широко используемых в мире СУБД. Это программное обеспечение бесплатно и распространяется с открытым исходным кодом. MySQL, разработанный на C/C ++, является одним из самых популярных вариантов баз данных.

СУБД была разработана шведской компанией «MySQL AB» в 1995 году. Позже MySQL AB была приобретена Sun Microsystems в 2008 году. Позже Sun Microsystems была приобретена Oracle в 2010 году. С тех пор MySQL поддерживается и управляется Oracle.

Читать далее