(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-native-branding');

Хостинг для сайтов на opensource, или как начать жить после VMmanager и ISPmanager

Свобода - это право каждого гражданина строить инфраструктуру бесплатно и безболезненно

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

1. Почему мигрируем в сторону свободного софта

Как известно, цифровая трансформация - это способ повысить экономическую эффективность при существенном, на порядки, снижении затрат.

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

Но расширение спектра предоставляемых нами платформ для бизнес-задач наших клиентов, которые все чаще внедряют Docker, Kubernetes, LXC, а также повсеместный Bitrix, привело нас к интересному выбору - либо продолжать оставаться в рамках прежней диктатуры, либо же вернуться к своим истокам - Opensource.

2. Стек технологий

Не секрет, что гибкость и возможность миграции между кластерами и физическими машинами - это важная характеристика. Поэтому мы используем уже много лет сразу несколько провайдеров. Это наш любимый Селектел, и конечно же MCS mail.ru/VK, облако Reg.ru, а еще платформу Ростелекома для госструктур.

Все это раньше было обвязано кластеризацией VMmanager, но сегодня мы переводим это на кластеры Кубернетес.

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

А продакшен-сайты разворачиваем в Proxmox с поднятными уже в нем центосами, на которых плавно мигрируем из ISPmanager в CyberPanel, которая так же умеет в докер.

Появился отдельный сегмент для макос, около 10 физических машинок.

С удивлением обнаружили преимущества апача над нгинском в некоторых сценариях.

От центоса решили не отказываться, пока с интересом смотрим на Oracle 8, хотя есть у него преимущества, и есть некоторая недоспелость. В общем, в основе все равно старая надежная как пулемет семерка Centos 7.

3. Решенные задачи

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

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

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

4. Задачи на ближайший переход

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

Облачные инфраструктуры премущественно оставляем на откуп платформам операторов, хотя вот например SAP HANA уже разрабатываем на своем внутреннем облаке, первоначально использовали облако от IBM, оно довольно таки удобное и быстрое.

Все, что можно, пока храним в CEPH.

Оптимизируем веб-приложения для OpenLiteSpeed.

5. Первые результаты

Время выхода на рынок для продуктов как в сегменте MVP, так и для продакшена ускорилось в десятки раз. Теперь бутстрапить можно все проекты целиком, а не по компонентам, как раньше.

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

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

Комплексные ИТ-продукты, которые используем для построения next-gen инфраструктуры, включают в себя много универсальных средств, существенно расширяющих способность решать рутиные задачи, на которые раньше уходило много времени.

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

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

Сейчас инфраструктура для недокеризированных приложений выглядит очень просто:

1. Proxmox вместо VMmanager

2. Контейнеры с центосами для CyberPanel, куда переехали сайты из ISPmgr

3. VM с центосами для Битрикса

4. VM с центосами для ISPmanager 5 с вечными лицензиями в качестве бэкапа сайтов

5. Бэкап-серверы с VMmanager

Есть ли жизнь без ISPsystem?

Несмотря на вывод из продакшена решений ISPsystem, на бэкапе они остаются, в случае необходимости вся инфраструктура запускается оттуда.

Например, в результате временного сбоя в работе Let's Encrypt, который продлился, похоже, все новогодние праздники, то есть десять дней нового 2022 года, мы полностью работали на связке VMmgr+ISPmgr.

После восстановления работоспособности LE мы переткнули сеть в связку Proxmox+CT+VM, и точно так же продолжили работу.

Когда Опенсорс не лучший выбор

Об этом можно писать бесконечно, но упомянутый голый опенсорс проигрывает связке VMmgr+BILLmgr+ISPmgr, когда вам необходимо биллить услуги через банки и карточные сервисы в России.

Или когда необходима безопасная инфраструктура с более-менее понятными сроками устранения уязвимостей и выхода обновлений. Известно, что cyberpanel не самая лучшая с точки зрения ИБ. А проксмокс ведет себя порой удивительно. Докер нуждается в тщательной настройке. А время на Кубернетес иногда слишком дорого.

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

(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-article-footer');
0
1 комментарий
Александр Филиппенко

К сожалению сколько юзал cyberpanel могут неожиданно и часто падать хосты, нашёл более стабильное решение. Это keyweb.

Ответить
Развернуть ветку
1 комментарий
null