Описание процесса разворачивания проекта на площадке АС Фабрика Сайтов
Содержание
Описание процесса разворачивания проекта на площадке АС Фабрика Сайтов#
Подготовка технического задания и сопроводительной документации#
В рамках технического задания описываются функциональность и архитектура проекта, необходимый стек технологий.
На основе данных по ожидаемой пиковой нагрузке производится расчёт аппаратных требований для обеспечения стабильной работы сервисов проекта на площадке АС Фабрика Сайтов.
Также на данном этапе формируется документация по развёртыванию проекта.
Необходимые организационные требования#
Требования обсуждаются с Product Owner — сотрудником банка, под чьей ответственностью будет активность.
Important
ПДн хранить, обрабатывать на Фабрике Сайтов мы не можем, на это нет разрешения.
Необходимые технические требования#
Подключение к системе защиты от DDoS атак (проект работает через неё или уже может работать).
Оценка необходимости использования CDN, имеются нужные настройки.
Доступ к интерфейсу администрирования может изменяться через настройки конфигурации.
Предоставление схемы взаимодействия компонентов.
Предоставление списка внешних сервисов, интегрированных через межсервисное взаимодействие, взаимодействие браузера клиента и внешнего сервиса, указаны протоколы передачи и состав данных (Google Recaptcha, Dadata, и пр.).
Предоставление необходимых SSL сертификатов.
Предоставление конфигурационных файлов, необходимых для публикации проекта на фронтальном сервисе nginx АС Фабрика Сайтов.
Правило реверс прокси не конфликтует с приложением
location ~* (\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist|git|.docker.config)|~)$ {return 403;}.Предоставление макета web-страницы для ошибок сервера (5xx) и для проведения профилактических работ на проекте.
Логирование контейнеров настроено корректно (например, для nginx — access.log, error.log), в соответствии с рекомендациями Docker (STDOUT, STDERR).
Предоставление инструкции для
docker stack deploy(yaml файл с описанием сервисов).Приложение и поставляемые контейнеры рассчитаны на работу в режиме SWARM, общее хранилище данных (кеш, шаблоны, сессии) спроектировано с учётом масштабируемости.
Настройка кода проекта и промежуточного ПО на получение IP клиента из заголовка
X-Forwarded-For.Конфигурация проекта вынесена и достаточна (например, в переменные окружения,
docker config).Убедиться что DevOps не управляет конфигурацией, которой может (должен) управлять контент-менеджер.
В исходном коде выключен режим отладки, пользователю не выводятся сообщения с stacktrace или другими debug данными.
В контейнерах настроен healthcheck, основанный на бизнес логике.
Образы (images) для развёртывания внутри области проекта доступны на registry подрядчика или ином внешнем ресурсе.
Подготовка инфраструктуры для фазы промежуточного тестирования (preproduction / staging)#
На АС Фабрика Сайтов в соответствии с необходимыми требованиями технического задания и предоставленной документацией разворачивается комплексная облачная инфраструктура preproduction-окружения. Настраивается необходимый стек технологий, используемый данным проектом.
Основное назначение preproduction-окружения — тестирование всех сценариев установки/конфигурации/перемещения приложений и процедур, прежде чем они будут применены в production-окружении. Это гарантирует, что все существенные и незначительные обновления production-окружения будут завершены качественно, без ошибок и в минимальные сроки.
Preproduction-окружение также является платформой для выполнения этапа проведения испытаний.
Разворачивание проекта в preproduction-окружении#
Проведение комплекса работ по разворачиванию проекта с использованием предоставленной документации и необходимого программного обеспечения.
На данном этапе также настраивается мониторинг метрик проекта в preproduction-окружении для предоставления статистических данных при проведении цикла тестирования, выявления отклонений в штатной работе системы и проверки доступности сервисов проекта.
Предоставление доступа к системе логирования. TODO…
Проведение испытаний#
Для обеспечения комплексной проверки функционирования системы необходимо реализовать цикл тестирования, состоящий из следующих упорядоченных этапов.
Корректировка ошибок/проблем выявленных на каждом из этапов тестирования. TODO…#
Выполняется на каждом из этапов испытаний. Требует обязательного исправления до перехода к следующему этапу испытаний.
Функциональное тестирование#
Выполнение этого вида тестирования производится после настройки соответствующей функциональности и заканчивается, когда каждая часть настройки функционирует в соответствии с задокументированными требованиями.
Первое интеграционное тестирование (опционально)#
Интеграционное тестирование позволяет обнаружить дефекты, возникающие при взаимодействии систем. Для этого могут быть использованы как ручные, так и автоматизированные тесты.
На этом этапе тестирования спроектированный прототип системы впервые проверяется целиком. Наивысший приоритет имеют работы по исправлению выявленных ошибок: одни ошибки могут блокировать прохождение сценария и идентифицировать другие ошибки. По окончании первого интеграционного тестирования производится оценка выполнимости перехода в продуктивную эксплуатацию результатов проекта.
Второе интеграционное тестирование (опционально)#
Note
Выполняется после устранения всех ранее выявленных проблем и ошибок.
В завершение этой фазы необходимо проверить, было ли запущено приёмочное тестирование конечными пользователями. В то же время имеет смысл задержать приёмочные тесты, если есть основания полагать, что качество системы не соответствует изначально установленным требованиям.
Note
Практика показывает: обнаружение большого числа ошибок в течение циклов приёмочных испытаний значительно снижает вероятность принятия системы заказчиком.
Первое пользовательское тестирование (опционально)#
Этому этапу цикла тестирования предшествует устранение ранее выявленных ошибок, обеспечение доступа пользователей к среде тестирования, объяснение тестерам всех процедур. Для обеспечения оперативного решения проблем и непрерывного отслеживания хода тестирования стоит организовать данное тестирование в одном месте.
По итогам этого цикла тестирования необходимо:
сформировать окончательное заключение о результатах;
задокументировать все запросы на изменения;
убедиться, что все тестовые сценарии утверждены;
произвести окончательную оценку возможности перехода к продуктивной эксплуатации.
На основе информации, полученной по итогам первого приёмочного тестирования, а также зарегистрированных запросов на изменения, производится окончательная настройка системы и утверждение изменений. Корректная обработка этого этапа значительно упрощает процесс приёмки, так как в систему были внесены изменения для обеспечения большего соответствия требованиям и уже имеющейся практике.
Второе пользовательское приёмочное тестирование (опционально)#
Это заключительный раунд тестирования функционала системы: все тестовые сценарии, которые ещё не были пройдены, должны быть пройдены и подтверждены. После успешного завершения этого цикла должен быть утверждён переход к продуктивной эксплуатации.
Тестирование уязвимостей (pentest)#
Цель тестирования — обнаружить возможные уязвимости и недостатки, способные привести к нарушению конфиденциальности, целостности и доступности информации, спровоцировать некорректную работу системы или привести к отказу от обслуживания, а также спрогнозировать возможные финансовые потери и экономические риски.
Нагрузочное тестирование#
Производится сбор показателей, определение производительности и времени отклика системы в ответ на внешние запросы с целью установления соответствия требованиям, предъявляемым к данной системе в рамках технического задания.
Important
Организация цикла тестирования производится со стороны руководителя/владельца проекта.
По результатам выполнения этапа тестирования производится корректировка требований технического задания и документации, если это необходимо.
Подготовка инфраструктуры для фазы эксплуатации (production)#
На АС Фабрика Сайтов в соответствии с требованиями технического задания и предоставленной документацией разворачивается комплексная облачная инфраструктура production-окружения. Настраивается необходимый стек технологий, используемый данным проектом.
Разворачивание проекта в production-окружении#
Проведение комплекса работ по разворачиванию проекта с использованием предоставленной документации и необходимого программного обеспечения.
Настройка мониторинга в соответствии с рекомендациями/моделью разработчика системы осуществляется при его непосредственном участии.
Реализация процессов поддержки — выпилить#
На данном этапе настраивается мониторинг метрик проекта в production-окружении для выявления отклонений в штатной работе системы и проверки доступности сервисов проекта.
Уточняются детали по необходимым end-point веб-сервиса…