Давайте избавимся от LAMPового рабства

Не знаю как вы, а я регулярно сталкиваюсь с ситуацией - предлагаешь кому-то сделать проект на современном стеке технологий, а он говорит - "Да я лучше установлю Wordpress". Думаю, многие мало-мальски опытные программисты, ненавидят вордпресс. Но почему заказчики предпочитают его?

Да, можно сказать, что для него есть куча готовых плагинов, что многие программисты его знают (пусть и ненавидят). Но в то же время даже заказчики понимают, что вордпресс очень быстро превращает в тормозящую свалку из плагинов разной степени глючности. Но почему они все-таки его предпочитают?

Мне кажется я нашел ответ. Этот ответ - хостинги.

Точнее, виртуальные LAMP-хостинги. Те самые, по 100 рублей сайт. Они не меняются последние лет 20. И они действительно очень удобны для простых людей.

Почему? Потому что там все есть. Панель управления, где есть кнопка "Создать сайт на Wordpress/Drupal/MediaWiki с таким-то адресом". Ты нажимаешь, и сайт создан. Всё. Для заказчиков это куда важнее любой технологичности.

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

Это docker-образы.

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

И вот представьте себе такую картинку. Допустим, есть веб-хостинг, который так же удобен, как LAMP-хостинг. Где вместо каталога с Вордпрессом и Друпалом есть по сути каталог с Docker Hub. Где, к примеру, для каждого docker-образа есть стандартизированный язык описания интерфейса настроек, который генерирует веб-форму настроек этого образа, понятную даже бухгалтеру. Допустим, там будет разделение на "простые" и "расширенные" настройки. Так же, как у формы для создания Wordpress-сайта могут быть параметры "Название сайта" и "Домен".

И если такое будет, то по сути заказчики смогут создавать себе сайт на любом стеке технологий нажатием одной кнопки. Выбрав готовый движок из docker-каталога или получив архив с docker-образом, который ему разработал программист. И всё. Сайт заработал. Не сложнее, чем Wordpress.

Я попробовал найти подобные хостинги, но не нашел. Мне кажется, их действительно нет.

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

Надо просто наконец сделать такие хостинги.

@freehabr
04.10.2022 22:48 UTC
Первоисточник

Комментарии

@StraNNicK
04.10.2022 17:58 UTC
+13

Тут видите какое дело.
Мало-мальски опытные программисты ненавидят не только вордпресс, но и чужой код.
Вот написали вы заказчику что-то своё. А потом вас автобус сбил и где искать того, кто ваш код поддерживать будет?
Ну и с докером тоже не всё так просто. Я вот пробовал человеку не в теме объяснить, как им пользоваться.
Это совсем не так просто, как кажется.

@nkgrig
04.10.2022 19:42 UTC
+14

Непонимание 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 посмотреть, а удобного инструмента нет :/

04.10.2022 19:52 UTC
+1

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

04.10.2022 20:52 UTC
+4

Наверное, к этим игрушкам надо подходить с осознанной необходимостью. А то вот придёшь в команду, с уже настроенной инфраструктурой, и не поймёшь что откуда начинается вообще

05.10.2022 05:24 UTC
0

День потерять, потом за 5 минут долететь? Возможно, но иногда дня нет и это надо поддерживать квалифицированным человеком. Что несколько сложнее, чем 1 click install WP

05.10.2022 06:37 UTC
+1

Ваш коммент полезнее статьи! Внес в OneNote себе, хотя большинством вещей пользуюсь. Возможно вы найдете время и развернете свой коммент в статью - многим будет полезно.

05.10.2022 22:30 UTC
+3

OneNote -> Joplin

05.10.2022 14:09 UTC
0

интеллектуальная слабость

Интересный термин. Возьму на заметку

05.10.2022 16:56 UTC
+1

А с докером docker up и всё работает. 

Зависит от удачи и от того, кто писал конфиги. Можно напороться на несовместимость версий пакетов (особенно если кто-то прописал тег latest вместо фиксированной версии), ключи шифрования репозитория могли попросту устареть за 5 лет, неясные зависимости от окружения у предыдущего разработчика, и так далее, и тому подобное.

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

06.10.2022 10:38 UTC
+1

Если честно, призыв в статье и комментарии вижу, а решаемых проблем - нет. Какова цель? Чем не угодил LAMP? Кто хочет запилит проект в докерах, кому лень/дорого/etc - на хостинге за 100р.

06.10.2022 10:43 UTC
0

Посмотрим, как после 50 будете обучаться... Согласно пруфам...

06.10.2022 21:04 UTC
0

обожаю такие комментарии!

часто гораздо полезнее самой статьи для саморазвития

Еще в список обязательного нужно включить Sentry

@inkvizitor68sl
04.10.2022 18:21 UTC
+9

Это называется "managed kubernetes" и продаётся в тысячах компаний уже.

@MikUrrey
04.10.2022 18:48 UTC
0

Кажется еще лет 10 назад видел на хостинге каталог "Установи сайт в один клик", в списке Джумла, Друпал, Вордпресс, Буллетинборд и даже, не побоюсь этого слова, Битрикс. Не пользовался, но замысел, судя по всему, тот же.

@in_heb
04.10.2022 18:58 UTC
+10

>Выбрав готовый движок из docker-каталога или получив архив с docker-образом, который ему разработал программист. И всё. Сайт заработал. Не сложнее, чем Wordpress.

смысл LAMP-хостингов по 100 рублей в месяц в том что там максимально эффективно шарятся ресурсы (одни и те же php-воркеры обрабатывают разные запросы для разных сайтов). в случае с докером уже нельзя посадить 100500 клиентов на один сервер - память раньше закончится, нужно больше места и т.д.

ну а вообще кроме LAMP-хостинга и VPS (который нужно "настраивать") есть куда более простое решение в виде hosted wordpress, hosted mediawiki, да практически всё популярное давно продается как SaaS.

@zartdinov
04.10.2022 19:37 UTC
0

Пользовался DigitalOcean App Platform, просто выбираешь образ (или репу), ресурсы, кол-во инстансов, домен, порт, но сейчас за него не заплатить толком. Managed Kubernetes добавляет лишних действий просто, ты предлагаешь лишить работы многих DevOps'ов.

@alcanoid
04.10.2022 21:20 UTC
+7

Где вместо каталога с Вордпрессом и Друпалом есть по сути каталог с Docker Hub.

Какая разница? Всё равно придётся держать и образ с Вордпрессом внутри, потому что клиенты его потребуют.

@IgorPie
05.10.2022 00:54 UTC
+4

Нет никакого рабства. Просто бабло побеждает зло. А перенести wp/landing раз в 5 лет на новый хостинг через ftp или файл-архив - руки не отсохнут.

@IKStantin
05.10.2022 03:40 UTC
+13

Это про какие современные инструменты речь? WP и подобные CMS предназначены для быстрого создания простых сайтов непрограммистами. И простота установки тут не причем. Проблема в скорости и простоте разработки и поддержки.

Создать визитку, форум, простой интернет-магазин на ВП или опенкарт - задача на несколько дней в одно недорогое лицо. Наполнять контентом может любой студент.

В случае проблем все решается за копейки любым фрилансеров.

А с этими вашими реактами и прочими лаварелями и разработка, и поддержка дороже минимум в 10 раз. А то и в 100. А уровень дырявости вообще непредсказуем.

@Yuukari
20.10.2022 20:10 UTC
0

Что-бы вам поддерживали проект на WP нужно тоже найти человека, который делает это качественно.

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

Особенно это касается сайтов с WooCommerce или сложных проектов. Мне в свое время посчастливилось поработать с такими, и порой страшно вспоминать, что там можно было увидеть.

21.10.2022 00:27 UTC
0

Разработка и поддержка WP даже топовым профессионалом будет стоить в минимум в 10 раз дешевле, чем самописный сайт. Никаких особых проблем с woocommerce также нет.

И про какого "специалиста для проекта с нуля" вы имеете в виду? Вы хоть немного представляете во что обойдется разработка нормального сайта с нуля с нормальной админкой, дружелюбным редактором страниц, товаров?

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

Ок. Давайте проще. Как вы считаете, сколько стоит написать с нуля (или на любом фреймворке) сайт с интернет-магазином не хуже woocommerce. Чтобы любая секретарша могла страничку там создать (как в Gutenberg или Elementor), редактировать товары и т.п. И сколько будет стоить поддержка этого хозяйства в месяц? Я полагаю, что порядок цен - 5-10 млн руб. и год работы. Может быть дешевле, если у фирмы-разработчика есть свое готовое решение.

А на wp или opencart это стоит 20-100 тыс руб. за разработку и 3-5 тыс в месяц за техподдержку.

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

@s207883
05.10.2022 06:08 UTC
+8

Ненавидеть какую-то технологию может только человек с гладким мозгом. Особенно с такими доводами.

Создание сайта на wp можно провернуть вообще не зная программирования. От блога до личного магазина за пару кликов. Сам как-то пробовал сделать, хотя до того ни разу не wp не трогал и оно просто начало работать.

Альтернатива? Набрать штат дармоедов, которые сделают тоже самое, но с нуля, зато на реакте и в докере с ci/cd, бест практисами прочим энтерпрайщитом.

Зачем условному заказчику тратить деньги на целый it отдел и месяцы работы, если на фрилансе за 3 копейки тебе все сделают в лучшем виде?

На reg.ru есть докер хостинг, но надо написать клешнями docker-compose.yml и запустить его.

@antimind
05.10.2022 13:06 UTC
+1

>Альтернатива? Набрать штат дармоедов, которые сделают тоже самое, но с нуля, зато на реакте и в докере с ci/cd, бест практисами прочим энтерпрайщитом.
Зачем условному заказчику тратить деньги на целый it отдел и месяцы работы, если на фрилансе за 3 копейки тебе все сделают в лучшем виде?

Это вы несколько погорячились. Типовой сайтик, магазин с десятком товаров и парой покупателей - да, это действительно путь к CMS и фрилансерам. В таком случае энтерпрайзшит ни к чему. Но вот когда потребуется что-то небанальное, то без штата дармоедов, уже не обойтись.

@JordanCpp
05.10.2022 10:20 UTC
+1

Вы хотите сказать, что если LAMP работает и работал без докера, технология является простой и обкатанной. Следует все закатать в докер, так как аборигены LAMP не понимают своего счастья? И в конце получить + одну технологию для поддержки в проекте.

С тем же успехом, вы можете написать статью где бы вы рассказывали аборигенам С++, требуется переходить на Rust. Так как они не понимают своего счастья.

О systemD слышали? Примерно так это и работает. Половина счастлива, вторая не понимает зачем такой оверхед, для загрузки дистра. Скорее всего правы все. Но как говорится, есть нюанс:)

@codeby
05.10.2022 10:22 UTC
+4

Смешно. Заказчику надо ехать, а не шашечки. ВордПресс даёт быстро это реализовать. Всё остальное лирика.

Ну и по расходам посчитайте вот что выльется сделать проект с нуля на модном фреймворке и на ВордПресс.

Я уже молчу про поддержку.

@1Tiger1
05.10.2022 16:50 UTC
+2

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

ну и чисто профессиональный вопрос - а как LAMP связан с друпалом? почему в статье это одно и то же?

@LolaBola
06.10.2022 09:30 UTC
+1

Смотри кароче, супер стек придумал, пишешь сайт на html и css, без всяких вуе, реактов, срактов, без админки, льешь на простой хостинг, без всяких дауничных впсов - и все, готово)) все довольны, все видят сайт, пишут, звонят, хотят такой же, разве я не гений?

@marsdenden
06.10.2022 10:40 UTC
0

Сорри за политику, но как-то напомнило "давайте избавимся от зависимости от газа". А в докере что? В 99% тот же lamp, но уже через ж...

@Araki_Satoshi
07.10.2022 05:27 UTC
0

Я просто леплю Cyberpanel на VPS и WordPress через него. Просто, бесплатно, с litespeed (это хорошо, наверное).