Learme

    Услуга: Модернизация портала, DevOps услуги (CI/CD)

    Отрасль: СМИ

    Описание компании: информационно-аналитический портал
    Услуга: техническая поддержка портала образовательной платформы, CI/CD

    Отрасль: образовательный портал

    Описание компании: платформа для онлайн-обучения
    Проблема клиента
    Не справлялись с нагрузкой, требовалось масштабировать технические решения.

    Также была необходимость исключить человеческий фактор потери данных и настроить резервное копирование.
    Поиск решения
    Обратились в Git in Sky по рекомендации одного из существующих клиентов компании.
    Почему выбрали Git in Sky
    Коллеги быстро вникли в задачу и сразу стали помогать.
    Что было сделано для решения проблемы
    Был установлен мониторинг, проведен аудит инфраструктуры. После сбора данных было сделано предложения по описанию инфраструктуры средствами автоматической поддержки конфигураций (Ansible). Реализована отказоустойчивая и безопасная система резервирования-восстановления данных, с хранением на независимых серверах (на трех нодах).

    После реализации описания инфраструктуры кодом Ansible и внедрения системы резервного копирования было предложено реализовать CI/CD.

    Основная проблема и боль разработчиков ПО — это скорость выкладки версий.

    На первоначальных этапах развития проекта по разработке самая простая схема может быть вполне рабочей и адекватной:
    1. Написание кода разработчиком
    2. Сборка кода вручную на машине разработчика
    3. Ручной запуск всех скриптов и бинарников
    4. Обработка ошибок и предупреждений
    5. Отладка кода исходя из полученных ошибок и предупреждений
    6. Отправка на тестирование

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

    Однако есть явные минусы:
    • процесс компиляции — ресурсоемкий, отнимает время, нагружает компьютер разработчика
    • для сборки нужно вручную запускать множество скриптов, может сыграть человеческий фактор — по какой-либо причине можно забыть запустить какой-либо скрипт или не собрать какой-либо кусок кода
    • в случае возрастания сложности и объемов разработки — потери времени на компиляцию сильно возрастают, сложность отладки увеличивается, вероятность ошибок в сборке также растет

    Внедрение Continuous Integration/Deployment
    Самый популярный инструмент для внедрения Continuous Integration — это автоматизация Ansible, но кроме этого может использоваться и Jenkins.

    Как это работает?
    • сборка кода осуществляется на специально выделенном сервере или на отдельных ресурсах, поэтому потери времени и ресурсов разработчика исключены
    • процесс компиляции происходит гораздо быстрее, т. к. мощность сервера выше мощности компьютера разработчика
    • сборка всегда происходит одинаково, скрипт не может «забыть» собрать какой-либо кусок кода или подгрузить бинарник
    • тестирование также всегда происходит одинаково по заложенным правилам
    • отчет по сборке с перечнем ошибок и предупреждений может отправляться разработчику или в QA любым удобным способом, например на электронную почту

    Результат:
    1. В корне изменилась концепция программирования: раньше сборка кода требовала много времени, поэтому разработчики работали над крупными частями кода, отправляя их по мере готовности. С внедрением CI разработка идет короткими кусками кода, которые отправляются на сборку несколько раз в течение дня.
    2. Работа идет короткими итерациями, поэтому отлаживать и работать над ошибками/предупреждениями стало гораздо проще и быстрее. Разобраться с ошибками на коротком куске кода можно более оперативно.
    3. Компиляция и тестирование не отнимает время и ресурсы разработчиков, в это время они могут заняться чем-либо другим, а результат тестирования получить по готовности на почту.

    Таким образом, CI значительно экономит ресурсы, а также повышает эффективность и качество разработки.
    На простом языке наша задача звучала так: «Мы хотим, чтобы сайт не падал, и чтобы ни при каких условиях (сбой, человеческий фактор, наводнение и т.п.) данные наших пользователей не пропали».

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

    Также стоит отметить доступность коллег и быстрый отклик, а особенно — наличие "аварийного" чата, где всегда кто-то дежурит и где можно рассчитывать на оперативную поддержку.
    Олег Баша, генеральный директор, Learme
    Что нравится в работе с Git in Sky?
    Проактивность в решении задач.
    Готовы обсудить ваш проект
    Наш специалист свяжется с вами для детального обсуждения задачи

    Не пропустите последние новости. Подписывайтесь!