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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии (27)


  1. StraNNicK
    04.10.2022 20:58
    +12

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


    1. nkgrig
      04.10.2022 22:42
      +13

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


      1. zartdinov
        04.10.2022 22:52
        +1

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


      1. hard2018
        04.10.2022 23:52
        +4

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


      1. entze
        05.10.2022 08:24

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


      1. codecity
        05.10.2022 09:37
        +1

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


        1. aim
          06.10.2022 01:30
          +1

          OneNote -> Joplin


      1. 0x131315
        05.10.2022 17:09

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

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


      1. Rive
        05.10.2022 19:56

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

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

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


      1. Wendor
        06.10.2022 13:38

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


      1. marsdenden
        06.10.2022 13:43

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


      1. sergyalosovetsky
        07.10.2022 00:04

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

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

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


  1. inkvizitor68sl
    04.10.2022 21:21
    +10

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


  1. MikUrrey
    04.10.2022 21:48

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


  1. in_heb
    04.10.2022 21:58
    +10

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

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

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


  1. zartdinov
    04.10.2022 22:37

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


  1. alcanoid
    05.10.2022 00:20
    +7

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

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


  1. IgorPie
    05.10.2022 03:54
    +4

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


  1. IKStantin
    05.10.2022 06:40
    +13

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

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

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

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


  1. s207883
    05.10.2022 09:08
    +7

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

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

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

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

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


    1. antimind
      05.10.2022 16:06
      +1

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

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


  1. JordanCpp
    05.10.2022 13:20
    +1

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

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

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


  1. codeby
    05.10.2022 13:22
    +4

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

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

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


  1. 1Tiger1
    05.10.2022 19:50
    +1

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

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


  1. LolaBola
    06.10.2022 12:30

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


  1. marsdenden
    06.10.2022 13:40

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


  1. Araki_Satoshi
    07.10.2022 08:27

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