{"id":14285,"url":"\/distributions\/14285\/click?bit=1&hash=346f3dd5dee2d88930b559bfe049bf63f032c3f6597a81b363a99361cc92d37d","title":"\u0421\u0442\u0438\u043f\u0435\u043d\u0434\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f","buttonText":"","imageUuid":""}

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

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

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

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

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

Подорожание сервисов

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

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

Мы собрали необходимые сервисы в пакет с фиксированной стоимостью, который теперь входит в договор с Initlab.

Состав и выгоды такого пакета мы опишем ниже.

«Аренда» нужных сервисов для эффективной работы

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

Допустим, вас предупредили об этом, но вы не хотите доплачивать за условную шлифовальную машину (мы не сильны в ремонте, нам важна сама аналогия). В таком случае выхода два:

  • бригада отказывается, потому что для качественной работы им просто нужно привычное оборудование;
  • бригада соглашается на ручную шлифовку, но берёт за это втрое больше денег, т.к. стало сложнее и дольше, а время специалиста с опытом не бесплатное.

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

Также у нашей команды есть ряд сервисов, которые мы разработали сами. Иногда нас не устраивают аналоги или подходящего продукта просто нет. Здесь их стоимость раскладывается на две составляющие:

  • время разработчиков на улучшение и поддержку. Потому что хороший продукт нельзя просто сделать — его нужно всё время дорабатывать силами лучших специалистов;
  • место на сторонних серверах, которое мы арендуем под наши разработки. К сожалению, с серверами на текущий момент в стране тоже трудности, поэтому и хранение также подорожало.

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

Работа с сервисами клиента: сложности переключения и оплата полной занятости

Продолжим по нашей аналогии: клиент не хочет, чтобы мы работали со шлифовальной машиной и предлагает наждачку. Иными словами: «Зачем нам отдельный сервис для задач — я могу сбрасывать их на почту». Мы согласны на условную наждачку, когда оплачен полный день разработчика и он занят только одним проектом на месяцы вперёд. В этом случае клиент может предложить инструменты, к которым подключена его команда.

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

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

Какие сервисы входят в пакет?

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

Список сервисов и для чего они служат:

Резервное копирование. Если вирус повредит файлы сайта или его базу данных, злоумышленники получат к нему доступ или кто-то удалит важные данные, у нас должна быть возможность восстановить сайт с любого нужного момента, например, до внедрения функции, которая привела к поломке. Для этого делаются резервные копии сайта — бэкапы. Бэкапы нужно хранить в надёжном месте, чтобы мы могли спокойно «откатиться» и возродить ваш сайт.

1. Копия сайта в Amazon S3 или Яндекс S3 до 50 Гб. Важнейший сервис для соблюдения закона о хранении персональных данных. Наш сервис автоматически создаёт бэкап сайта на стороннем сервере, который очень трудно взломать. Мы разработали свою систему бэкапов, т.к. ни один существующий вариант нас не устраивал:

  • бэкап можно делать на том же сервере, что и сайт, но тогда при взломе копию можно удалить или повредить вместе с оригиналом;
  • бэкап может предоставить хостер, но такой вариант обычно примитивен и хранит слишком мало версий сайта. Например, он делает копии условно три раза в месяц, а наш сервис делает это каждый день. При этом в случае серьёзной аварии у хостера бэкап становится недоступен — в облаке таких проблем нет.

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

Мы предоставляем два варианта облака: Яндекс S3 для российских клиентов и Amazon S3 для зарубежных.

Мониторинг. Мы арендуем отдельный сервер для всех разработанных нами сервисов мониторинга. Некоторые из наших детищ мониторят сайты по сотням параметров и для этого нужны определённые мощности.

2. Доступности сайтов. Сервис ежедневно и круглосуточно обходит страницы сайта, мониторит их исправность. Если сайт/страница недоступны или нужная страница пустая/не выводит текст — об этом узнает не наш клиент, который вложил деньги в рекламу и не может понять, почему нет заявок, а наша служба поддержки. Нам упадёт тикет с неисправностью, которую мы оперативно устраним.

3. Обновлений безопасности. Мы написали скрипты, которые автоматически проверяют выход обновлений безопасности Drupal, его модулей, vendor-библиотек и всех компонентов веб-сервера. Они интегрированы с трекером задач, а значит наша команда получит автоматическое уведомление, внедрит любое обновление и протестирует его. Если не делать этого вовремя и регулярно, на сайте будут копиться уязвимости, что может «помочь» хакерам: зашифровать сервер и вымогать деньги, шантажировать удалением сайта или использовать сайт в DDoS атаках. Наш сервис не позволит сайту находиться в уязвимом состоянии.

4. Автоматический мониторинг PageSpeed. Сайт может замедлиться по множеству причин: устаревшая оптимизация, новые файлы, проблемы с кодом и т.д. Современный пользователь не любит долго ждать, поэтому крайне важно обеспечить быструю загрузку всех страниц сайта. Мониторинг PageSpeed автоматически находит замедление работы сайта и ухудшение пользовательского опыта, отправляет нам задачу и мы оперативно исправляем показатели скорости загрузки.

Конечно, PageSpeed можно мониторить вручную. Но как быть с сайтом в тысячи страниц? Сможет ли заниматься мониторингом живой сотрудник каждый час, как это делает наш сервис? Мы работаем ради того, чтоб всё было как в песне: вкалывают роботы, а не человек.

Безопасность. Мы заботимся о конфиденциальности данных клиентов, поэтому храним все доступы к сайтам в зашифрованном виде.

5. Хранение доступов. На текущий момент мы работаем с менеджером паролей Passpack. Это сторонний сервис, который шифрует доступы к сайтам клиентов и допускает к ним только специалистов, работающих над проектом.

Разработка. В этот раздел включено всё, что относится к ускорению и упрощению рабочих процессов разработчика.

6. Управление репозиториями программного кода (GITLAB). Это основа совместной разработки. Благодаря сервису контроля версий программного кода разработчики могут одновременно править несколько участков кода, что значительно ускоряет работу. Он позволяет внедрять код на сайт так, чтоб ничего не ломалось: когда придёт время вносить исправления на сайт, сервис не даст разным участкам кода, которые писали разные программисты, конфликтовать между собой. А в крайнем случае даст откатиться к любой предыдущей рабочей версии. GIT помогает улучшать код сайта после каждого завершённого этапа работы.

7. Копия сайта для разработки (до 1 Гб). Своеобразный черновик вашего сайта, который защищает от ошибок и поспешных решений. Копия, расположенная на нашем сервере, где разработчики внедряют изменения, прежде чем перенести их на основной сайт. Здесь проводится сдача и приёмка работ заказчиком. Если речь идёт о копии больше 1 Гб, она, как правило расположена на сервере заказчика. В наш пакет включена копия среднего размера.

8. Сервис постановки и контроля задач (трекер). Обязательный сервис, на котором завязано большинство рабочих процессов. Он отвечает за постановку задач по e-mail, здесь разработчики отмечают затраченное на работу время, а на основании отчёта этого сервиса выставляется биллинг. Здесь мы распределяем приоритеты по задачам и общаемся с клиентами. А ещё этот сервис интегрирован со всеми системами мониторинга — любые зафиксированные автоматикой проблемы с сайтом приходят сюда в виде задач, которые максимально оперативно решают наши разработчики.

Пока мы писали статью, трекер Easy Redmine сначала взвинтил цену по 25$ на сотрудника, а затем вовсе отказался работать с российскими пользователями. В связи с этим мы разработали свой аналог с тем же функционалом. В нынешней ситуации этот вариант можно считать более надёжным и по цене, и по доступности.

9. Continuous Integration и Continuous Delivery. Автоматизация переноса правок с чернового сайта на основной. Нужный функционал быстрее внедряется, что экономит часы разработки. Это помогает минимизировать ошибки и человеческий фактор при переносе, гарантирует надёжную работу внесённых на сайт изменений. Под этот сервис мы также арендуем сервер, который наши администраторы настроили и регулярно поддерживают.

10. Автоматизированное тестирование. После внесения изменений разработчик должен убедиться в том, что никакие элементы на сайте не «поехали» и не пропали. Т.к. вручную отследить всё это сложно, ему помогает наша разработка — сервис, который сообщает, всё ли окей с сайтом. Автоматизированное тестирование помогает сократить время на ручную проверку, поддерживать оптимальное состояние сайта и минимизировать затраты на часы тестирования. Этот сервис также требует места на сервере, поддержки и регулярных обновлений.

11. Работы DevOps инженера по CI/CD. Здесь у вас может возникнуть вопрос «Это же не сервис, за это платить зачем?». И вы совершенно правы. Если мы продолжим нашу аналогию, то будем считать, что это человек, который обслуживает один из самых сложных и затратных рабочих механизмов.

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

Все перечисленные сервисы направлены на следующие полезные действия:

Узнать как можно скорее и починить. Заказчик, а тем более посетители сайта, не должны находить ошибки или попадать на сломанные/медленные страницы. Проактивная поддержка работает на опережение: система обнаруживает проблемы и заводит задачи — команда наводит порядок. Конечно, можно не пользоваться ни одним мониторингом. Но когда посетители откликают рекламный бюджет и не смогут заказать ничего, потому что корзина не работала, расходы на сервисы покажутся копейками.

Ускорить и упростить работу. Программист — дорогой специалист. К сожалению, любые препятствия в его работе ведут к переплатам. Например, если заставить его переносить изменения вручную, к каждому часу работы прибавится в среднем по 10 минут + нет никаких гарантий, что человеческий глаз заметит всё что нужно. Множим 10 минут на количество часов/задач и понимаем, насколько дешевле будет передать это время на откуп автоматике. Именно поэтому важно обеспечить разработчику удобство, чтобы сэкономить его время и свой бюджет.

Сохранить и защитить. Обеспечение безопасности — это невидимая работа. Её важность можно осознать только если ей не заниматься. Когда сайт взломан, данные клиентов похищены, а на главной странице висят требования хакеров, обновления безопасности уже не кажутся прихотью разработчиков. Мы не хотим никого пугать, мы пытаемся сказать, что защита сайта — наша зона ответственности. И делаем максимум для того, чтобы безопасность части бизнеса клиента была на высшем уровне. Конечно, можно хранить пароли от сайта на почте. Но когда персональные данные пользователей утекут в сеть, прилетит штраф, а репутация свалится на дно, восстановление будет болезненным.

Производительность труда разработчика в час — это не только скорость его компьютера, опыт и софт — это ещё и сервисы, с которыми он работает.

Наш пакет мы копили, разрабатывали и внедряли годами. Это концентрат нашего опыта.

Отказ от части пакета

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

Сервисы подобраны так, чтобы поддерживать сайт в рабочем состоянии, оперативно находить и решать на нём проблемы. Невозможно отказаться от части из них, чтобы удешевить пакет.

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

Расширенный пакет сервисов

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

Например, кому-то достаточно 20 Гб для хранения бэкапов, а кому-то мало и обозначенных 50 Гб. Рабочих копий сайта может быть одна, две или целый сервер — особенно это касается нескольких доменных копий (сайтов на разных языках). Разумеется, все дополнительные расходы мы обсуждаем с заказчиком и включаем только по согласованию

Стоимость и выгода от пакета

Как мы сказали в самом начале, один из наших основных принципов — прозрачность. Мы не хотим втюхивать отдельные сервисы из пакета за фулл-прайс. Мы хотим, чтобы каждый клиент за минимальную стоимость получил эффективную разработку.

Наша цель не договор, полный звёздочек, а предоставление качественных услуг.

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

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

0
Комментарии
-3 комментариев
Раскрывать всегда