Не знаю как вы, а я регулярно сталкиваюсь с ситуацией - предлагаешь кому-то сделать проект на современном стеке технологий, а он говорит - "Да я лучше установлю Wordpress". Думаю, многие мало-мальски опытные программисты, ненавидят вордпресс. Но почему заказчики предпочитают его?
Да, можно сказать, что для него есть куча готовых плагинов, что многие программисты его знают (пусть и ненавидят). Но в то же время даже заказчики понимают, что вордпресс очень быстро превращает в тормозящую свалку из плагинов разной степени глючности. Но почему они все-таки его предпочитают?
Мне кажется я нашел ответ. Этот ответ - хостинги.
Точнее, виртуальные LAMP-хостинги. Те самые, по 100 рублей сайт. Они не меняются последние лет 20. И они действительно очень удобны для простых людей.
Почему? Потому что там все есть. Панель управления, где есть кнопка "Создать сайт на Wordpress/Drupal/MediaWiki с таким-то адресом". Ты нажимаешь, и сайт создан. Всё. Для заказчиков это куда важнее любой технологичности.
И тут я задумался - а почему нет замены этому для современных веб-сервисов на современном стеке технологии? И нашел ответ, который меня поразил. Замена есть. Но ею никто не пользуется как заменой.
Это docker-образы.
Docker-образ - это буквально картридж для игровой приставки, который вставил в слот, и он сразу работает. Ну, несколько env-параметров укажи, и работает. Технологический стек при этом может быть любым. Docker для этого и нужен - абстрагировать технологический стек и все окружение от конечной эксплуатации.
И вот представьте себе такую картинку. Допустим, есть веб-хостинг, который так же удобен, как LAMP-хостинг. Где вместо каталога с Вордпрессом и Друпалом есть по сути каталог с Docker Hub. Где, к примеру, для каждого docker-образа есть стандартизированный язык описания интерфейса настроек, который генерирует веб-форму настроек этого образа, понятную даже бухгалтеру. Допустим, там будет разделение на "простые" и "расширенные" настройки. Так же, как у формы для создания Wordpress-сайта могут быть параметры "Название сайта" и "Домен".
И если такое будет, то по сути заказчики смогут создавать себе сайт на любом стеке технологий нажатием одной кнопки. Выбрав готовый движок из docker-каталога или получив архив с docker-образом, который ему разработал программист. И всё. Сайт заработал. Не сложнее, чем Wordpress.
Я попробовал найти подобные хостинги, но не нашел. Мне кажется, их действительно нет.
И это неправильно. Все устали от дихотомии - либо удобный, но устаревший на 20 лет LAMP-хостинг, либо VPS, который настраивай сам, ты же программист. Должно быть что-то такое же простое как первое и такое же функциональное, как второе. И все технологии для этого уже есть.
Надо просто наконец сделать такие хостинги.
Комментарии (27)
inkvizitor68sl
04.10.2022 21:21+10Это называется "managed kubernetes" и продаётся в тысячах компаний уже.
MikUrrey
04.10.2022 21:48Кажется еще лет 10 назад видел на хостинге каталог "Установи сайт в один клик", в списке Джумла, Друпал, Вордпресс, Буллетинборд и даже, не побоюсь этого слова, Битрикс. Не пользовался, но замысел, судя по всему, тот же.
in_heb
04.10.2022 21:58+10>Выбрав готовый движок из docker-каталога или получив архив с docker-образом, который ему разработал программист. И всё. Сайт заработал. Не сложнее, чем Wordpress.
смысл LAMP-хостингов по 100 рублей в месяц в том что там максимально эффективно шарятся ресурсы (одни и те же php-воркеры обрабатывают разные запросы для разных сайтов). в случае с докером уже нельзя посадить 100500 клиентов на один сервер - память раньше закончится, нужно больше места и т.д.
ну а вообще кроме LAMP-хостинга и VPS (который нужно "настраивать") есть куда более простое решение в виде hosted wordpress, hosted mediawiki, да практически всё популярное давно продается как SaaS.
zartdinov
04.10.2022 22:37Пользовался DigitalOcean App Platform, просто выбираешь образ (или репу), ресурсы, кол-во инстансов, домен, порт, но сейчас за него не заплатить толком. Managed Kubernetes добавляет лишних действий просто, ты предлагаешь лишить работы многих DevOps'ов.
alcanoid
05.10.2022 00:20+7Где вместо каталога с Вордпрессом и Друпалом есть по сути каталог с Docker Hub.
Какая разница? Всё равно придётся держать и образ с Вордпрессом внутри, потому что клиенты его потребуют.
IgorPie
05.10.2022 03:54+4Нет никакого рабства. Просто бабло побеждает зло. А перенести wp/landing раз в 5 лет на новый хостинг через ftp или файл-архив - руки не отсохнут.
IKStantin
05.10.2022 06:40+13Это про какие современные инструменты речь? WP и подобные CMS предназначены для быстрого создания простых сайтов непрограммистами. И простота установки тут не причем. Проблема в скорости и простоте разработки и поддержки.
Создать визитку, форум, простой интернет-магазин на ВП или опенкарт - задача на несколько дней в одно недорогое лицо. Наполнять контентом может любой студент.
В случае проблем все решается за копейки любым фрилансеров.
А с этими вашими реактами и прочими лаварелями и разработка, и поддержка дороже минимум в 10 раз. А то и в 100. А уровень дырявости вообще непредсказуем.
s207883
05.10.2022 09:08+7Ненавидеть какую-то технологию может только человек с гладким мозгом. Особенно с такими доводами.
Создание сайта на wp можно провернуть вообще не зная программирования. От блога до личного магазина за пару кликов. Сам как-то пробовал сделать, хотя до того ни разу не wp не трогал и оно просто начало работать.
Альтернатива? Набрать штат дармоедов, которые сделают тоже самое, но с нуля, зато на реакте и в докере с ci/cd, бест практисами прочим энтерпрайщитом.
Зачем условному заказчику тратить деньги на целый it отдел и месяцы работы, если на фрилансе за 3 копейки тебе все сделают в лучшем виде?
На reg.ru есть докер хостинг, но надо написать клешнями docker-compose.yml и запустить его.
antimind
05.10.2022 16:06+1>Альтернатива? Набрать штат дармоедов, которые сделают тоже самое, но с нуля, зато на реакте и в докере с ci/cd, бест практисами прочим энтерпрайщитом.
Зачем условному заказчику тратить деньги на целый it отдел и месяцы работы, если на фрилансе за 3 копейки тебе все сделают в лучшем виде?Это вы несколько погорячились. Типовой сайтик, магазин с десятком товаров и парой покупателей - да, это действительно путь к CMS и фрилансерам. В таком случае энтерпрайзшит ни к чему. Но вот когда потребуется что-то небанальное, то без штата дармоедов, уже не обойтись.
JordanCpp
05.10.2022 13:20+1Вы хотите сказать, что если LAMP работает и работал без докера, технология является простой и обкатанной. Следует все закатать в докер, так как аборигены LAMP не понимают своего счастья? И в конце получить + одну технологию для поддержки в проекте.
С тем же успехом, вы можете написать статью где бы вы рассказывали аборигенам С++, требуется переходить на Rust. Так как они не понимают своего счастья.
О systemD слышали? Примерно так это и работает. Половина счастлива, вторая не понимает зачем такой оверхед, для загрузки дистра. Скорее всего правы все. Но как говорится, есть нюанс:)
codeby
05.10.2022 13:22+4Смешно. Заказчику надо ехать, а не шашечки. ВордПресс даёт быстро это реализовать. Всё остальное лирика.
Ну и по расходам посчитайте вот что выльется сделать проект с нуля на модном фреймворке и на ВордПресс.
Я уже молчу про поддержку.
1Tiger1
05.10.2022 19:50+1а зачем это нужно бизнесу? не программистам, а бизнесу. причем с чисто представительскими залачами уровня лэндинг и пара текстовых страничек.
ну и чисто профессиональный вопрос - а как LAMP связан с друпалом? почему в статье это одно и то же?
LolaBola
06.10.2022 12:30Смотри кароче, супер стек придумал, пишешь сайт на html и css, без всяких вуе, реактов, срактов, без админки, льешь на простой хостинг, без всяких дауничных впсов - и все, готово)) все довольны, все видят сайт, пишут, звонят, хотят такой же, разве я не гений?
marsdenden
06.10.2022 13:40Сорри за политику, но как-то напомнило "давайте избавимся от зависимости от газа". А в докере что? В 99% тот же lamp, но уже через ж...
Araki_Satoshi
07.10.2022 08:27Я просто леплю Cyberpanel на VPS и WordPress через него. Просто, бесплатно, с litespeed (это хорошо, наверное).
StraNNicK
Тут видите какое дело.
Мало-мальски опытные программисты ненавидят не только вордпресс, но и чужой код.
Вот написали вы заказчику что-то своё. А потом вас автобус сбил и где искать того, кто ваш код поддерживать будет?
Ну и с докером тоже не всё так просто. Я вот пробовал человеку не в теме объяснить, как им пользоваться.
Это совсем не так просто, как кажется.
nkgrig
Непонимание Docker идёт от узости кругозора, а также от биологического нежелания тратить энергию на обучение.
Я сам одно время считал, что докер не нужОн.
Когда у вас пара языков и пара проектов, не проблем настроить это на компьютере один раз. И написать себе инструкцию, которая пригодится в случае если придётся переходить на другой сервер или переустанавливать систему, что случается не часто. Поэтому докер тут непонятно зачем. Учить долго, а выгода неочевидна. Но совершенно другое дело, когда требуется смотреть несколько проектов в день. Они написаны под разные языки, используют разные базы и элементы окружения и их версии. Без докера, настройка всего этого по инструкциям или даже баш скриптами превращается в ад. А с докером docker up и всё работает. То же самое с Ansible, его удобство понимаешь на десятом поднятом VPS. То же самое с Terraform. Он оказывается очень нужен, когда проходишь не первый переезд на другой хостинг или настройку большой системы.
Это, как сваи у дома или берега, одетые в гранит. Пока нет наводнения кажется, что не нужно.
Поэтому внедрение знаний о докере решается только двумя путями. Либо появлением у человека внутренней потребности расширить кругозор, либо выставлением условий - не пользуешься докером - с тобой не работаем.
Современный стек для web:
iOS + Android native или Flutter в зависимости от сложности приложения и бюджета
Фронт на React или Vue. Предпочитаю первое
Kuber для возможных задач роста, даже если сервер один
Terraform для поднятия VPS. Не руками же, как австралопитек
Ansible для первичной настройки VPS, например для установки того же Docker
Репозиторий с CI/CD скриптами, чтобы не залезать на сервер в консоль вообще, а также гонять тесты и делать сборки. Предпочитаю Gitea + Drone или GitHub + GitHub actions
Traefik для работы с поддоменами
Graylog или Logstash, не на сервере ж в консольке логи читать
VictoriaMetrics - улучшенный аналог Prometheus для сбора внутренних метрик
Пачка экспортеров для VictoriaMetrics
Grafana с пачкой дашбордов
SonarQube и линтеры для автоматической проверки качества кода
Kafka для очередей. Не синхронно же те же письма отправлять
Hugo и аналоги для генерации документации в HTML. Можно просто md хранить, но это неудобно читать. Можно Confluence, Wiki на своём сервере. Облака, тот же Notion - нет. Как с них бэкапы автоматически делать?
Jira и минимум дашбордов: сгорание денег, выполненные сторипоинты, информация о деполоях и релизах, баги открытые и закрытые, информация о бэклоге и его изменении, количество кода и тестов, подтягивание из репозитория. Иначе вы будете, как дикарь объяснять команде/начальнику/инвесторам/себе почему так долго, и что делали словами.
Google Analytics, Яндекс Метрика или self hosted решение
Бэкапы при помощи rsync или restic в зависимости от типа данных
Это база. Инструментов может быть больше, но без любого из этих инструментов вы лишаете себя либо надёжности либо удобства.
Плюсом, надо изучать современные инструменты разработки. Я до сих пор наблюдаю, как люди печатают, глядя на клавиатуру, не пользуются алиасами, не знают про git commit convention, сидят в bash, вместо zsh, пишут в Eclipse и так далее. Мозг сохраняет почти ту же скорость обучения в 50 лет, что и в 20. После 50 идёт снижение, но не критическое. За пруфами ищите графики синаптогенеза у взрослых. Так что не надо прикрывать возрастом нежелание учиться или интеллектуальную слабость.
Инфраструктура настраивается не один месяц. Да, это нужно делать даже для простых проектов. Да, это нужно делать даже если работаешь один.
По началу вам может казаться, что это избыточно. Но потом когда большая часть сконфигурирована, технологии знакомы и всё делается парой команд, вам даже сайт визитку некомфортно будет делать без обвязки. Захотите логи NGINX посмотреть, а удобного инструмента нет :/
zartdinov
Да сейчас уже многие умеют пользоваться, даже просто для какой-нить фигни поднимают образ, генерируют файлик и сносят без установки всякого мусора.
hard2018
Наверное, к этим игрушкам надо подходить с осознанной необходимостью. А то вот придёшь в команду, с уже настроенной инфраструктурой, и не поймёшь что откуда начинается вообще
entze
День потерять, потом за 5 минут долететь? Возможно, но иногда дня нет и это надо поддерживать квалифицированным человеком. Что несколько сложнее, чем 1 click install WP
codecity
Ваш коммент полезнее статьи! Внес в OneNote себе, хотя большинством вещей пользуюсь. Возможно вы найдете время и развернете свой коммент в статью - многим будет полезно.
aim
OneNote -> Joplin
0x131315
Интересный термин. Возьму на заметку
Rive
Зависит от удачи и от того, кто писал конфиги. Можно напороться на несовместимость версий пакетов (особенно если кто-то прописал тег latest вместо фиксированной версии), ключи шифрования репозитория могли попросту устареть за 5 лет, неясные зависимости от окружения у предыдущего разработчика, и так далее, и тому подобное.
В итоге docker способен создать едва ли не больше проблем, чем он их решает - особенно если проект старый и docker up долго не запускался никем.
Wendor
Если честно, призыв в статье и комментарии вижу, а решаемых проблем - нет. Какова цель? Чем не угодил LAMP? Кто хочет запилит проект в докерах, кому лень/дорого/etc - на хостинге за 100р.
marsdenden
Посмотрим, как после 50 будете обучаться... Согласно пруфам...
sergyalosovetsky
обожаю такие комментарии!
часто гораздо полезнее самой статьи для саморазвития
Еще в список обязательного нужно включить Sentry