image


Чем бы дитя ни тешилось, лишь бы по FTP не деплоило и не масштабировало свои продукты, перекачивая образы виртуальных машин. Респект и хвала умным парням и девушкам, которые знают, что такое CI, CD и активно их используют в своем продакшне. Cust Dev по России показал, что все очень плохо. Увы.

Крик души


Соблюдаем анонимность и надеемся никого не обидеть. На вопрос “Как вы работаете и доставляете свой продукт в продакшн?” мы услышали уйму различных ответов. Вот некоторые тезисы из самых популярных ответов:
  1. Я не пользуюсь ide, все делаю через админку вордпресса, ручками открывая файлы с фтпшника в саблайме.
  2. Разворачиваем новые экземпляры своего SaaS, копируя целиком виртуалки. За ночь копируется нормально.
  3. Как-как? По ftp, а git используем для резервных копий.
  4. Мы планировали использовать git, но как-то не получилось. Сейчас все руками.
  5. У меня все настроено с помощью капистрано.
  6. Все через пулл-реквесты, потом суровый код-ревью, потом CI подтягивает все в прод.


Это не сферические кони в вакууме, а реальные люди из реальных студий и агентств России из крупных и мелких городов. На удивление различия в относительных долях того или иного ответа в зависимости от региона оказались несущественными. Быть может, для небольшого и несерьезного проекта, типа сайта-одностраничника, подобный подход вполне себе вменяемый, но если ты ответственный за DevOps в более-менее крупной веб-студии, для безболезненного масштабирования просто жизненно-необходимо придерживаться git workflow и использования ряда CI/CD инструментов.

SaaS масштабирование


Боль у каждого своя, и как использовать тот или иной инструмент решает каждый сам. Если вы — счастливый обладатель SaaS решения (системы мониторинга, CRM, CMS, в общем, все, где нужно масштабироваться быстро по горизонтали) и вы до сих пор клонируете виртуалки, то бог вам в помощь мы вас ждем. Пишите нам в саппорт, и мы предложим вам выгодные условия использования нашей платформы для обеспечения быстрого масштабирования. Небольшое демо такого прикладного использования нашей системы



Использование системы не по назначению, перманентное хранилище и FTP


Есть то, что есть, и работать приходится именно с этим. Особенности работы Docker образов и контейнеров включают в себя определенные ограничения для файловых операций внутри контейнера, а именно — неперсистентность результата их выполнения после перезапуска процесса веб-сервера (что порождает пересоздание контейнера) или перебилда image вашего приложения. Мы, хоть и косвенно, но являемся Shared CaaS решением. Наше предложение — хранилище с FTP доступом из вне. Папка монтируется в контейнер при билде и запуске приложения.

Для любителей писать на шаблонизаторе php систем эта проблема наиболее актуальна, ибо 90% написанных решений безбожно творят уйму операций с файлами, сохраняют туда данные, конфиги, темы, настройки и пр. Если взять пример запуска веб-сервера, совместимого с большинством php-систем (наличие апача для многих является просто необходимым) https://github.com/dokkur/php-common/blob/master/Procfile, то мы в самом простейшем варианте даем возможность закинуть все необходимое содержимое в примонтированную папку через FTP. Для этого нужно:
  1. Зарегистрироваться у нас
  2. Нажать кнопку + справа вверху
  3. Ввести имя приложения, выбрать датацентр
  4. Выбрать нужный темплейт — Any PHP
  5. Дождаться окончания создания приложения, перейти в п.меню Storage
  6. Кликнуть на строку /app/www и получить данные для подключения: Host, Username, Password. Если изменения DNS еще не настигли ваш узел связи или у вас закешировано там что-то другое, то советуем использовать доменное имя инстанса, на котором создано ваше приложение: п.меню Settings, посмотреть на git url и прочитать хостнейм — то, что между символами “@” и ”:”.

Подчеркну, что мы далеки от такого подхода в разработке, поэтому будем крайне призательны вам за фидбек по этому флоу — что нужно, что не нужно.

Что делать и кто виноват?


Виноваты все по чуть-чуть никто не виноват и что делать решает каждый сам для себя.

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

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

Проголосовало 260 человек. Воздержалось 113 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Поделиться с друзьями
-->

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


  1. i360u
    15.06.2016 21:27
    +7

    Разрываюсь между первым и последним пунктом опроса...


    1. Ernado
      15.06.2016 22:08
      +1

      Очевидно же, что последний!


      1. nochkin
        16.06.2016 05:22

        А обезьяны могут говорить «мяу»?


        1. Ernado
          16.06.2016 09:44
          -1

          Каждый имеет неотъемлемое право на свое Мяу!


  1. Olezkaya
    15.06.2016 22:23

    Все, конечно, мяукают, а я нет, потому что нахожусь в квантовой неопределенности, меня швыряет из стороны в сторону. Но одно могу сказать точно: статья написана хорошо.


    1. Temirkhan
      16.06.2016 00:28

      Мяу Шредингера?


  1. raidhon
    15.06.2016 22:27
    +1

    Мяу


    1. AdaStreamer
      15.06.2016 22:27
      -1

      Содержательно (:


  1. appsoft
    15.06.2016 22:58

    гав


  1. navion
    15.06.2016 23:15

    Наше предложение — хранищище с FTP доступом из вне.

    Глупый вопрос, а через NFS 4.1 это нельзя реализовать?


    1. atoshin
      15.06.2016 23:22
      +1

      Глупый ответ: для большинства пользователей настроить доступ по ftp гораздо проще, чем по NFS


      1. navion
        15.06.2016 23:48

        Топик вроде не о простоте, а по NFS можно подключить стандартный docker volume.


        1. AdaStreamer
          15.06.2016 23:58
          +1

          Вы, наверное, о разных вещах говорите. Тут речь идет о предоставлении доступа пользователям к папкам, примонтированным к контейнерам их приложений.


          1. navion
            16.06.2016 00:02

            Спасибо за пояснение, пропустил этот момент.


  1. adatheleader
    15.06.2016 23:17

    Ребят, а почему минусуете-то? Тут правда жизни написана. Все действительно очень плохо. Часто встречаются «программисты», которые про git только слышали, но делать ничего не хотят. Хотя в каком-то городе в Германии (или само правительство страны, не помню точно) использовали git для принятия законов.



  1. TrogWarZ
    16.06.2016 05:02

    А чем плохи пункты 5 и 6 из «крика души» (для малых и средних проектов)? Я про капистрано и деплой через пулл-реквесты в CI.


    1. onlinevik
      16.06.2016 05:04

      Ничем. Это пример того, как делать надо, одобряем. Просто таких людей крайне мало.


  1. Samouvazhektra
    16.06.2016 05:02
    +3

    ну так CI->развертывание тестовой среды->покрытие тестами это всё времязатраты->бабло которое очень многие не готовы платить, из вариантов Петя который делает проект за 3 недели и за 30 енотов и Вася который выдаст результат за 10 енотов и всего за неделю — предпочтут Васю, который еще как добрый парень объяснит — что он скромный честный и работящий, а другие просто впаривают ерунду и разводят неразумных клиентов на бабки, и портфолио у Васи солидное и отзывы хорошие — так как никто внутряк даже не открывал, а ошибки, если что быстренько по фтп поправятся, если найдутся… И такой расклад до достижения какого то определенного уровня многих устраивает. У нас к сожалению большой пласт бизнеса просто не воспринимает с должной степенью роль грамотной IT инфраструктуры и перспектив её планирования, и для реализации насущных потребностей предпочтёт обратиться не к профессиналам а к знакомому «компьютерщику», который хорошо «виндовс» переустанавливает. А на спрос всегда предложение найдётся


  1. ilyaplot
    16.06.2016 10:41

    Пост напомнил ранние сайты на юкозе. Заходишь, а там только регистрация.
    Опрос программистов надо было проводить среди тех, кто хотя бы слышал слово SaaS. Процент людей, использующих FTP в продакшене напоминал бы процент пользователей ie6 в 2023 году.


    1. AdaStreamer
      16.06.2016 12:34

      >>> Заходишь, а там только регистрация.
      Это как Тардис — больше внутри, чем снаружи :-)
      Подскажешь, где найти тех, кто слышал SaaS?


  1. thunderspb
    16.06.2016 12:12

    Узнал тут недавно, что одна крупная компания деплоится перловыми велосипедами… ужаснулся… Некоторые деплоятся ansible… Жуть…
    Почему не воспользоваться предназначенными для этого системами? Jenkins + Git/Perforce/SVN + Nexus + Docker (а можно еще туда kubernetes навернуть) творят просто чудеса… А если посмотреть в энтерпрайз решения, то там ваааще огромный выбор. Я работал с Anthill (к сожалению пару лет назад закрыли разработку) и ElectricCommander, там можно очень неплохую систему развернуть.


  1. Koen777
    16.06.2016 12:42
    +1

    Мне показалось, или это русский аналог openshift?)


    1. onlinevik
      16.06.2016 12:42
      +1

      Показалось) это русский аналог heroku


  1. errogaht
    16.06.2016 12:42

    фу, сколько пафоса и высокомерия


    1. onlinevik
      16.06.2016 12:43

      Какое высказывание вас задело больше всего?


  1. inf
    16.06.2016 13:10

    А что, капистрано уже не модно? Что теперь труЪ?


    1. AdaStreamer
      16.06.2016 14:44
      +1

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


    1. AdaStreamer
      16.06.2016 14:44
      +2

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


  1. RealFLYNN
    16.06.2016 16:58

    Что такое CD? (inb4: компакт-диск, азазазазаз)

    Сурьезно, если хотите, чтобы стало лучше, желательно давать расшифровку используемым аббревиатурам. Тем более, сами упоминаете, что не все знакомы с этими понятиями. То, что CI — это continuous integration, я, допустим, сообразил, а вот CD — даже погуглить не получится.


    1. adatheleader
      16.06.2016 17:17
      +1

      Почитайте Википедию


  1. Dreyk
    16.06.2016 17:27

    • У меня все настроено с помощью капистрано.
    • Все через пулл-реквесты, потом суровый код-ревью, потом CI подтягивает все в прод.



    что не так с этими пунктами?


    1. adatheleader
      16.06.2016 17:36
      +4

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


  1. AStek
    16.06.2016 18:47

    Ребята, вот поясните мне нубу. Я уже лет 5 как не пишу на php но до этого писал и деплоил по FTP. Альтернатив не было. Клиент присылает доступ к php-хостингу и ни чего лутше там нет. Сейчас что-то изменилось?


    1. AdaStreamer
      16.06.2016 19:23

      У кого как. Если говорить о превалирующем большинстве (особенно о клиентах особо технически не подкованных), то ничего не поменялось.