09 июня 2018

Рассказываем, как делать успешные проекты еще быстрее

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

В таком сложном режиме перед командой разработки стоит цель поддерживать одновременно в актуальном и правильном состоянии много разных процессов. На помощь приходит автоматизация процессов разработки. Её организует DevOps. DevOps (акроним от англ. development и operations) представляет собой набор операций и задач, которые помогают программному обеспечению быть максимально продуктивным.

Разделение программных окружений

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

В нашей компании принято создавать минимум 3 рабочих окружения:

  • окружение разработки. В нем происходит основной процесс создания функционала. Оно максимально адаптировано для быстрой и удобной работы. А время программиста  — один из самых важных и дорогих ресурсов при разработке. Окружение отличается скоростью сборки, разворачивания проектов для быстрого подключения нового специалиста, дополнительной функциональностью в проекте, которая существенно увеличивает скорость работы и незрима для клиента.
  • окружение тестирования. В этом окружении работают наши QA-специалисты. Оно разворачивается на тестовых серверах (или, как мы их называем, стендах). QA-специалисты создают обширные коллекции данных с целью проверить максимальное количество возможных кейсов использования проекта. Окружение характеризует возможность быстрой генерации и сброса тестовых записей. Доступ к этим стендам имеют только QA-специалисты, разработчики, а также заказчики по желанию. Это окружение гарантирует качественное и быстрое тестирование проектов.
  • продакшн окружение. Самое важное и ответственное в работе DevOps-специалиста - настроить правильно продакшн-окружение. Главная его задача  обеспечение максимальной защиты от взлома и гарантия целостности, консистентности данных. Продакшн-окружение  — это то самое место, куда будут “стучаться” реальные пользователи, в котором стабильность работы стремится к бесконечности. Каждый хороший DevOps-специалист знает методы настройки продакшн-окружения на “боевых” серверах.

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

Почему это важно? 

Год назад популярнейший сервис для размещения проектов GitLab фактически из-за плохой настройки окружений потерял продакшн базу проекта. Специалисты восстановили её, но сервис не был доступен несколько часов: огромный удар по репутации проекта. 

Что произошло?

Настройка окружений предполагает предоставление соответствующих доступов специалистов к тем или иным файлам, командам или серверам. Логично, что правильная настройка продакшн окружения не должна позволять удалять простой командой базу данных. Этого у GitLab предусмотрено не было. В итоге программист случайно ввёл команду на удаление базы данных и части проекта. В случае, если бы настройка на невозможность удаления БД присутствовала в окружении, введённая программистом команда не привела к таким последствиям.

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

Системы интеграции

Continuous delivery & Continuous integration (CD & CI) — две аббревиатуры, которые могут напугать заказчиков во время обсуждения работы над проектом, а молодых разработчиков-во время собеседования. На самом деле, в них нет ничего страшного.

CI & CD —это инструментарий и зона ответственности DevOps-инженера. Что это такое? Фактически, это среды реализации заранее запланированных задач, выполняемые в фоновом режиме. В рамках каждого стека технологий существует определённый набор действий, который требуется для качественной разработки. CI и CD позволяют автоматизировать эти действия.

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

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

Например, чтобы QA-специалист смог проверить работу проекта на тестовых стендах, которые имеют окружение тестирования, обновлённый код проекта следует загрузить на этот стенд и “собрать проект”. С этой задачей самостоятельно справляется CD.

CI&CD позволяют программисту сосредоточиться на быстром и качественном создании ПО. Они берут на себя всю рутину, связанную с разработкой и позволяют существенно сократить время реализации проекта.

DevOps одно из слагаемых успеха программного продукта. Он делает возможным автоматизировать “ручной труд”, позволяя специалистам сосредоточиться на повышении качества и скорости релиза создаваемого проекта.

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

Другие статьи

Вебинар “Анализировать нельзя разрабатывать. Лекарство от хаоса в разработке”
05 апреля 2024
SimbirSoft и Синара Лаб – партнеры по внедрению коробочного решения «Цифровой рубль»
04 апреля 2024
Вебинар «Красиво vs Качественно. Какие метрики вашего бизнеса зависят от Frontend-разработки?»
12 марта 2024
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Middle Fullstack QA Engineer (Mobile)
  • Java-разработчик
  • Angular-разработчик
  • PHP-разработчик
  • Системный аналитик
  • QA Engineer Fullstack (Python)
  • C#-разработчик
  • Инженер по нагрузочному тестированию
  • Golang-разработчик
  • DevOps-инженер
  • 1С-аналитик
  • 1C QA Engineer
  • Юрист
  • Разработчик на C++
  • UI/UX дизайнер
  • 1С-разработчик
  • DWH-разработчик
  • Менеджер по сопровождению бизнес-процессов
  • Маркетолог
  • Менеджер по продажам IT SaaS
  • QA Engineer Fullstack (Java/Kotlin)
  • C# /.NET-разработчик
  • Бизнес-аналитик
  • Аналитик DWH
  • Team Lead Java
  • Менеджер проектов 1С
  • Руководитель отдела Backend
  • SDET (Java)
  • Менеджер по продажам IT продуктов на иностранное направление
  • Менеджер по продажам IT продуктов
  • Team Lead Python
  • SAP-аналитик
  • Middle Golang разработчик (Teamlead)
  • SDET (JavaScript)
  • Fullstack-аналитик
  • element
  • element
  • element
  • element
  • element
  • element
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.