Официальное контейнерное окружение для Битрикс от вендора

от автора

Друзья! Мы долго и напряженно работали и теперь нам, уже честно, нравится то, что получилось. А получилось просто, удобно и понятно, для всех и везде. Вся конфигурация сложного и мощного Битрикс серверного окружения (серверы приложений, реалтайм-чаты, кэши, системы хранения и др.) из дюжины контейнеров и микросервисов описана полностью декларативно исключительно в форматах Dockerfile, Docker-compose и .env-файлов — нет никаких скриптов с кодом настройки, многоуровневых меню и императивщины. Мы выложили результат нашего труда в официальный git-репозиторий вендора и залили официальные образы контейнеров в официальное хранилище предсобранных образов (docker images). Смело качайте, устанавливайте «Управление сайтом» и «Битрикс24» любой редакции за «пару-тройку» (С) минут (хоть самую «навороченную» редакцию «энтерпрайз») где хотите, от рабочего стола разработчика до мощного кластера серверов (включая оркестраторы типа «кубернетес») и наслаждайтесь прозрачной и быстрой работой системы в контейнерах!

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

Что такое «контейнеры»?

Сложно объяснить, особенно если не разбираешься в теме — легко. А вот объяснить просто — сложно! 🙂

«Контейнеры» — это самый современный и быстрый способ распространения простых и сложных программ, позволяющий быстро запустить их где угодно — от рабочего стола разработчика и тестировщика, до кластера кубернетес. «Контейнеры» на порядки снижают сложность и время развертывания, кратно увеличивая качество решения для конечного пользователя. Не нужно больше тратить, иногда, дни и недели на развертывание — запуск Битрикс из контейнеров даже в самой сложной конфигурации «энтерпрайз» с Postgres и «всеми наворотами» занимает несколько минут.

Персональный совет: приходите к любому вендору с первым и главным вопросом «вы поддерживаете контейнеры?», как с лакмусовой бумагой. Если вендор современный и продвинутый, он их поддерживает в своих продуктах или планирует поддержать в ближайшее время. Запомните, практически весь самый популярный и полезный в мире софт доставляется в «контейнерах». Отлично, идем дальше по вопросам!

Сколько может быть «контейнеров» в приложении?

Простые приложения могут распространятся в виде одного «контейнера», который создается из одного «образа» — например nginx или mysql. Сложные приложения, типа Apache Superset, могут содержать в себе 2-3 и более контейнеров для разных микросервисов. Битрикс содержит дюжину контейнеров и микросервисов (их число постоянно добавляется, следите за новостями), в зависимости от конфигурации дистрибутива и редакции.

Внутри нашей сборки есть одобренные и протестированные вендором образы «nginx», «php», «mysql», «postgres» и множество других. Все эти образы «контейнеров» тщательно описаны нами в Dockerfiles, куда при сборке кладутся подготовленные наши и легко читаемые простыми смертными конфигурационные файлы.

А можно запустить «контейнеры» на нескольких серверах?

По умолчанию, Битрикс запустит все свои контейнеры и микросервисы на одном сервере (или рабочем столе разработчика, тестировщика, администратора, безопасника) так, как описано в декларативном Docker-compose. Но легко можно разделить систему на части и некоторые контейнеры и микросервисы можно, при желании, запустить на выделенных серверах, например контейнеры для MySQL, Postgres, Sphinx. Еще нередко выносят на отдельные серверы контейнеры и микросервисы для чатов и быстрых коммуникаций.

А можно запустить «контейнеры» Битрикс в Kubernetes?

Легко! Обычно достаточно одного вечера и хорошо заваренного чайника с зеленым чаем, чтобы из имеющихся и тщательно подготовленных нами Dockerfiles и Docker-compose подготовить конфигурационные файлы Pods, Deployments и Ingress-Controllers для развертывания системы в Kubernetes. Ведь самое сложное в развертывании в Kubernetes — это подготовить качественные образы «контейнеров» и конфигурационные файлы, что мы уже и сделали для вас и будем поддерживать их в актуальном состоянии, как вендор (шепчу на ухо: активно пользуйтесь этим преимуществом).

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

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

А что такого сложного в самостоятельной сборке образа контейнера PHP, Nginx или NodeJS для запуска Битрикс?

Скажу честно — в подготовку конфигурационных и Docker-файлов того же образа PHP нами вложено немало сил и тестирования совместимости. Очень, очень много тонкостей нам пришлось учесть, чтобы Битрикс работал у вас с этой контейнерной конфигурации как новенький iPhone работает с новенькими AirPods. Аналогично, непросто было делать и тестировать в разных редакциях и условиях образ с специализированными модулями для Nginx, предназначенными для максимально быстрой работы Битрикс. Дам совет — если хотите снизить технологические риски и получить максимально быструю работу Битрикс — берите наши образы и конфиги контейнеров, иначе что-то может потом работать не так или не так быстро.

А как дела с информационной безопасностью?

ИБ — это важно. Мы уделили особое внимание вопросам обеспечения информационной безопасности контейнерной сборки, фанатично проработав с внутренним отделом информационной безопасности Dockerfiles и защитив все потоки данных в продукте внутри контейнерной сборки. Но, тем не менее, мы настоятельно рекомендуем, для разворачивания контейнерной сборки «на проде» собрать внутреннее совещание с вашими системными администраторами и безопасниками, просмотреть глазами все конфигурационные файлы контейнерной сборки еще раз, все «понять и простить» (С) и только когда все потоки данных и настройки будут понятны, переходить к переносу контейнерной конфигурации «на бой». Обратите внимание, в нашем официальном репозитории — очень, очень подробная документация, и ее нужно всю прочитать (и перечитать). Если же вам требуется гибкое управление микросервисами и автоматическое восстановление после падения серверов, я рекомендую потратить еще один вечер и аккуратно портировать наши конфигурационные файлы контейнеров в конфигурационные файлы Pods и Deployments кубернетес и запуститься там — вам понравится опыт и, поверьте, обратно в Docker-compose вы больше не вернетесь! 🙂

«Полюбит, не полюбит»?

Контейнерную сборку Битрикс, я уверен, полюбят разработчики, т.к. теперь, чтобы запустить «Управление сайтом» или «Битрикс24» на рабочем столе, потребуется пара минут (я серьезно, проверьте прямо сейчас). У разработчика все многочисленные контейнеры и микросервисы «Управление сайтом» и «Битрикс24» теперь перед глазами — видны все логи, метрики использования процессора, памяти, сети, диска, все теперь совершенно ясно, не нужно «делать доступ к логам на сервер» и ждать его две недели и не дождаться.

Новую официальную контейнерную сборку, я убежден, полюбят и тестировщики. Все контейнеры и микросервисы тестируемого веб-сайта теперь у тестировщика перед глазами на рабочем столе и/или внутри Docker-Desktop. Видны все ошибки и предупреждения в логах. Все то, что запущено у тестировщика на рабочем столе, будет один к одному запущено «на бою». «У меня работало, а у клиента — нет» (С), останется в прошлом. Качество тестирования увеличится в разы, это проверено моей личной практикой не раз.

Контейнерную сборку беззаветно полюбят безопасники. Теперь у них весь «Битрикс24» перед глазами — видны все логи всех контейнеров и потоки данных. Все пароли и конфиги. Не нужно договариваться с системными администраторами и ждать неделю доступ к логам и конфигам на серверы (и не дождаться) — все можно оперативно проверить на рабочем столе и практически все то же самое будет и «на бою».

Обычно контейнерные сборки тепло воспринимают и продакты. Вы легко сможете показать продакту или бизнес-менеджеру развернутый за минуты на рабочем столе (или сервере) веб-проект на «Управлении сайтом» или «Битрикс24», наполненный контентом, с работающими админками, чатами, звонками и уведомлениями. Это сильно снижает риски внедрения и поощряет эксперименты с добавлением других популярных контейнеров с полезным открытым софтом, поверьте мне.

А вот кто реально затаит на вас обиду, так это наши любимые бесценные системные администраторы (я, конечно, шучу!). Ведь теперь любой сможет за 2 минуты запустить у себя на рабочем столе перед совещанием «Битрикс24-энтерпрайз» с Postgres и Sphinx и проверить, как в нем работает реал-тайм поисковая индексация сообщений в живой ленте. Но героических сисадминов ждут впереди новые и интересные вызовы — нужно учиться эффективно обновлять контейнеры, перезапускать при необходимости, управлять их логами, выделять им необходимое количество ресурсов и учиться дергать глазом, когда разработчики передадут им не Docker-compose, а полноценный Helm Chart с глубоко кастомизированным Ingress-Controller — но это уже совсем другая история! 🙂 (не пугайтесь, я одной ногой сисадмин, поэтому все что написано выше — чистая неправда)

Итого

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

Задавайте, пожалуйста, побольше вопросов и удачных вам проектов!


ссылка на оригинал статьи https://habr.com/ru/articles/917124/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *