• Вконтакте
  • Instagram
  • Telegram
  • Google Plus
Краснодар, Красная 155/2, 7 этаж
8 800 222-4-604
Заказать звонок
Digital Agency Nuts
Компания
  • О компании
  • Отзывы клиентов
  • Реквизиты
  • Технологии разработки
  • Вакансии
Услуги
  • Разработка сайта
    • Landing Page
    • Интернет-магазины
  • Настройка рекламы
    • Контекстная реклама
    • Таргетированная реклама
    • Медийная реклама
    • Programmatic реклама
  • Продвижение сайта
    • SEO оптимизация
    • Продвижение в Google
    • Аудит сайта
    • Продвижение в Яндекс
  • Тех. поддержка
    • Информационная поддержка сайта
    • Техническая поддержка сайта
  • SMM
    • Ведение соцсетей под ключ
    • Посевы в социальных сетях
    • VK-Клипы
    • Ролики Дзен
  • IT-решения
    • IT-решения для застройщиков
Кейсы
  • Разработка
  • SMM
  • Реклама
  • SEO продвижение
Блог
Контакты
Ещё
    Digital Agency Nuts
    Меню  
    • Компания
      • О компании
      • Отзывы клиентов
      • Реквизиты
      • Технологии разработки
      • Вакансии
    • Услуги
      • Разработка сайта  
        • Landing Page
        • Интернет-магазины
      • Настройка рекламы  
        • Контекстная реклама
        • Таргетированная реклама
        • Медийная реклама
        • Programmatic реклама
      • Продвижение сайта  
        • SEO оптимизация
        • Продвижение в Google
        • Аудит сайта
        • Продвижение в Яндекс
      • Тех. поддержка  
        • Информационная поддержка сайта
        • Техническая поддержка сайта
      • SMM  
        • Ведение соцсетей под ключ
        • Посевы в социальных сетях
        • VK-Клипы
        • Ролики Дзен
      • IT-решения  
        • IT-решения для застройщиков
    • Кейсы
      • Разработка
      • SMM
      • Реклама
      • SEO продвижение
    • Блог
    • Контакты
    Заказать звонок
    8 800 222-4-604
    Digital Agency Nuts
    • Компания
      • Назад
      • Компания
      • О компании
      • Отзывы клиентов
      • Реквизиты
      • Технологии разработки
      • Вакансии
    • Услуги
      • Назад
      • Услуги
      • Разработка сайта
        • Назад
        • Разработка сайта
        • Landing Page
        • Интернет-магазины
      • Настройка рекламы
        • Назад
        • Настройка рекламы
        • Контекстная реклама
        • Таргетированная реклама
        • Медийная реклама
        • Programmatic реклама
      • Продвижение сайта
        • Назад
        • Продвижение сайта
        • SEO оптимизация
        • Продвижение в Google
        • Аудит сайта
        • Продвижение в Яндекс
      • Тех. поддержка
        • Назад
        • Тех. поддержка
        • Информационная поддержка сайта
        • Техническая поддержка сайта
      • SMM
        • Назад
        • SMM
        • Ведение соцсетей под ключ
        • Посевы в социальных сетях
        • VK-Клипы
        • Ролики Дзен
      • IT-решения
        • Назад
        • IT-решения
        • IT-решения для застройщиков
    • Кейсы
      • Назад
      • Кейсы
      • Разработка
      • SMM
      • Реклама
      • SEO продвижение
    • Блог
    • Контакты
    • 8 800 222-4-604
    Будьте на связи
    Краснодар, Красная 155/2, 7 этаж
    info@nuts-agency.ru
    • Вконтакте
    • Instagram
    • Telegram
    • Google Plus

    Непрерывная интеграция и доставка кода

    • Главная
    • Блог
    • Непрерывная интеграция и доставка кода
    21 Апреля 2020 17:00
    // Разработка

    Автоматизацией выпуска версий и их путешествия по сайтам занимаются специальные программы. Мы используем Docker, GitLab и Teamcity.


    Проблема

    Есть в разработке программ определённые трудности. Любая программа — это сложная система, все элементы которой связаны друг с другом, и изменения в одной части могут вызвать изменения в другой, порой фатальные. Как в фильме «Эффект бабочки», помните?

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

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

    Доставка

    Программисты решили эти проблемы весьма элегантно с помощью CI/CD (continuous integration, Continuous delivery) и юнит-тестирования.

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

    Задачи CI/CD проста:

    1) сборку деталей осуществлять как можно чаще, непрерывно, вместо сборки в конце

    2) обнаружить ошибку как можно раньше, желательно без усилий

    3) всё это максимально автоматизировать

    Как это работает

    • Берём сервер с основным сайтом, который доступен пользователям. «Боевой» или «продакшн», как больше нравится.
    • Берём ещё сервер, там располагаем полную копию основного. Это будет тестовый сайт.
    • Ещё одну копию отдадим программистам на растерзание, это будет сайт для разработки, «девелоперский».
    • Связываем все перечисленное системой контроля версий Git. Это инструмент для обновления кода до определенной версии, их сохранения всех версий с возможностью посмотреть разницу и быстро вернуться к любой существующей.

    Процесс

    Кроме правильной настройки трёх серверов нужен ещё и правильный процесс поставки готового кода.

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

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

    Всё в порядке? Код обновляется до этой версии на «боевом сайте» и ещё раз проверяется.

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


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

    Автоматизация

    Подождите, а где же автоматизация? Носить версии туда-сюда и постоянно проверять требует времени! Где непрерывность?

    Для завершения настройки CI/CD потребуется автоматизировать создание версий, и тестировать мелкие и средние задачи и их влияние на другие функции без участия человека. При объемных изменениях совсем без тестировщика не обойтись.

    Автоматизацией выпуска версий и их путешествия по сайтам занимаются специальные программы. Мы используем Docker, GitLab и Teamcity.

    Проверяем код с помощью модульного тестирования, или UNIT-тестов.

    gitlab-logo-gray.pnglogo_TeamCity.png

    UNIT-тесты

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

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

    Результат

    CI/CD даёт возможность разработчику комфортной синхронной и быстрой работы над проектом, а сайту — стабильность работы и возможность восстановления любой версии за пару минут.



    Оформите заявку на сайте, мы свяжемся с вами в ближайшее время и ответим на все интересующие вопросы.
    Заказать проект
    Поделиться
    Назад к списку
    Категории
    • SMM2
    • Продвижение6
    • Разработка3
    • Реклама0
    • Управление проектами1
    Это интересно
    • Интеграция сайта с 1С
      Интеграция сайта с 1С
      10 Декабря 2019
    • Фронтенд и бэкенд: доступным языком
      Фронтенд и бэкенд: доступным языком
      19 Ноября 2019
    Наши специалисты ответят на любой интересующий вопрос по услуге
    Задать вопрос
    Компания
    О компании
    Отзывы клиентов
    Реквизиты
    Технологии разработки
    Вакансии
    Услуги
    Разработка сайта
    Настройка рекламы
    Продвижение сайта
    Тех. поддержка
    SMM
    IT-решения
    Кейсы
    Разработка
    SMM
    Реклама
    SEO продвижение
    Наши контакты


    8 800 222-4-604
    info@nuts-agency.ru
    Краснодар, Красная 155/2, 7 этаж
    © 2025 © Digital Agency Nuts - разработка и продвижение сайтов. Все права защищены.
    Политика конфиденциальности
    • Вконтакте
    • Instagram
    • Telegram
    • Google Plus