Построение процессов CI/CD
Построение процессов CI/CD
Автоматизируем {
- разработку
- запуск
- эксплуатацию }
#
Об услугеВнедряем и поддерживаем конвейеры для сборки и автоматического развёртывания вашего приложения в тестовые и продуктивные среды.
Помогаем с тестированием, мониторингом, масштабированием приложения по мере его развития.
#
Наши возможностиНаписание кода
Наводим порядок
в системе разработки
Единообразный код
Подберем и внедрим линтеры для анализа стилистики
и соответствия кода лучшим практикам.
Чистый код
Внедрим инструменты сканирования кода на наличие чувствительных данных.
Сборка кода
Повышаем стабильность
и скорость сборки
Эффективный процесс сборки
Автоматизируем создания окружений сборки. Снижаем
размер артефактов. Распараллеливаем процесс сборки.
Унифицированные окружения
Стандартизируем управление окружениями с помощью систем хранения секретов и хранилищ артефактов (s3, registry и т.д.)
Тестирование
Тестируем приложение
Минимум ошибок
Внедряем статический анализатор кода и систему покрытия кода тестами.
Дополняем конвейеры нагрузочным, функциональным
и юнит-тестированием.
Развёртывание в прод
Обеспечиваем контролируемое развёртывание
Эффективный процесс развёртывания
Автоматизируем развёртывание приложения в прод.
Минимальное влияние на пользователей
Подбираем стратегию выкатки (canary, blue-green и т.д.) для вашего приложения.
Подготавливаем автоматические сценарии отката изменений (rollback).
Эксплуатация
Выявляем и решаем
проблемы прода
Минимум ошибок при эксплуатации
Автоматизируем работу с продуктивной средой.
Производительная инфраструктура
Анализируем узкие места в производительности вашей инфраструктуры и избавляемся от них.
Минимум простоя в случае отказа компонентов прода
Внедряем процесс регулярного тестирования прода (Chaos Monkey).
Мониторинг
Показываем целостную картину
Быстрая диагностика
Внедряем мониторинг, алертинг и логирование для всех компонентов прода.
Контролируемый уровень сервиса
Помогаем определить SLI и SLO для вашего сервиса .
#
Как мы работаемОпределение задачи и поиск решения
Обсуждаем вашу задачу
Обследуем инфраструктуру разработки
Предлагаем решение, озвучиваем сроки и стоимость
Определение задачи и поиск решения
Обсуждаем вашу задачу
Обследуем инфраструктуру разработки
Предлагаем решение, озвучиваем сроки и стоимость
Проработка решения
Подписываем договор
Создаем прототипы конвейера для сборки и конвейера для автоматического развёртывания
На основе работающих прототипов уточняем детали
Внедрение решения
Создаем стабильные версии обоих конвейеров
Производим тонкую настройку и адаптируем конвейеры к новым требованиям
Передаем знания о внедренном решении
Эксплуатация
в случае необходимостиОказываем техническую поддержку
Внедряем мониторинг, логирование и оповещения
Решаем проблемы масштабирования
#
СтоимостьВ основном зависит от желаемого уровня автоматизации и особенностей вашего приложения, калькулятор ниже поможет получить примерную стоимость наших услуг.
Окончательную стоимость мы сможем озвучить после обсуждения задачи и обследования вашей инфраструктуры
стоимости построения процессов CI/CD
Малый проект
Средний проект
Большой проект
Ваш проект
Кол-во модулей приложения
на языках
Пример:
Изначально приложение было написано PHP и состояло из 15 модулей. Со временем часть кода переписали на Go для ускорения отдельных частей и оно стало состоять из 12 модулей на PHP и 3 модулей на Go. Затем понадобилась специфическая функция (типа распознавания изображений), выбрали готовую библиотеку на Python (из-за минимальных трудозатрат на внедрение) и теперь приложение состоит из 12 модулей на PHP, 3 модулей на Go и 2 модулей на Python.
Виды окружений
На старте создания приложения может быть достаточно только окружения разработки, для большого проекта окружений может быть более 10-тка.
Именование окружений:
Prod — окружение рабочего развёртывания с которым непосредственно взаимодействуют пользователи.
Dev — окружение разработки.
Stage — окружение промежуточного развёртывания между Dev и Prod. Обычно является зеркалом Prod`а, но без пользовательской нагрузки и используется для предварительного просмотра новых функций и нагрузочного тестирования.
Test/QA — тестовое окружение для автоматических и ручных проверок.
Integration — Основа для построения CI или для тестирования сайд-эффектов разработчиком
Инфраструктура
В калькуляторе для расчета используются трудозатраты построения сервисов в неотказоустойчивом (некластерном) варианте развёртывания. Расчет высокодоступных и отказоустойчивых вариантов производится индивидуально под конкретные требования:
- размер домена отказа: ВМ, хост, стойка, машзал, ЦОД, провайдер;
- RTO и RPO (допустимое время простоя сервиса в случае сбоя и допустимый объем возможных потерь данных в случае сбоя соответственно);
- требуемая производительность сервиса.
Наводим порядок в системе разработки
Повышаем стабильность и скорость сборки
Тестируем приложение
В калькуляторе для расчета используются трудозатраты внедрения SonarQube CommunityEdition с параметрами «по умолчанию» и настройки базовых проверок:
- кода на баги и уязвимости;
- ошибки в конструкциях кода (code smells);
- покрытие кода тестами;
- дублировании кода.
Обеспечиваем контролируемое развёртывание
на пользователей
Подготавливаем автоматические сценарии отката изменений (rollback).
Выявляем и решаем проблемы прода
Показываем целостную картину
S
M
L
Кол-во модулей приложения
на языках
Пример:
Изначально приложение было написано PHP и состояло из 15 модулей. Со временем часть кода переписали на Go для ускорения отдельных частей и оно стало состоять из 12 модулей на PHP и 3 модулей на Go. Затем понадобилась специфическая функция (типа распознавания изображений), выбрали готовую библиотеку на Python (из-за минимальных трудозатрат на внедрение) и теперь приложение состоит из 12 модулей на PHP, 3 модулей на Go и 2 модулей на Python.
На старте создания приложения может быть достаточно только окружения разработки, для большого проекта окружений может быть более 10-тка.
Именование окружений:
Prod — окружение рабочего развёртывания с которым непосредственно взаимодействуют пользователи.
Dev — окружение разработки.
Stage — окружение промежуточного развёртывания между Dev и Prod. Обычно является зеркалом Prod`а, но без пользовательской нагрузки и используется для предварительного просмотра новых функций и нагрузочного тестирования.
Test/QA — тестовое окружение для автоматических и ручных проверок.
Integration — Основа для построения CI или для тестирования сайд-эффектов разработчиком
В калькуляторе для расчета используются трудозатраты построения сервисов в неотказоустойчивом (некластерном) варианте развёртывания. Расчет высокодоступных и отказоустойчивых вариантов производится индивидуально под конкретные требования:
- размер домена отказа: ВМ, хост, стойка, машзал, ЦОД, провайдер;
- RTO и RPO (допустимое время простоя сервиса в случае сбоя и допустимый объем возможных потерь данных в случае сбоя соответственно);
- требуемая производительность сервиса.
код
кода
В калькуляторе для расчета используются трудозатраты внедрения SonarQube CommunityEdition с параметрами «по умолчанию» и настройки базовых проверок:
- кода на баги и уязвимости;
- ошибки в конструкциях кода (code smells);
- покрытие кода тестами;
- дублировании кода.
Подготавливаем автоматические сценарии отката изменений (rollback).
прода
диагностика
Ваш проект
на языках
Пример:
Изначально приложение было написано PHP и состояло из 15 модулей. Со временем часть кода переписали на Go для ускорения отдельных частей и оно стало состоять из 12 модулей на PHP и 3 модулей на Go. Затем понадобилась специфическая функция (типа распознавания изображений), выбрали готовую библиотеку на Python (из-за минимальных трудозатрат на внедрение) и теперь приложение состоит из 12 модулей на PHP, 3 модулей на Go и 2 модулей на Python.
На старте создания приложения может быть достаточно только окружения разработки, для большого проекта окружений может быть более 10-тка.
Именование окружений:
Prod — окружение рабочего развёртывания с которым непосредственно взаимодействуют пользователи.
Dev — окружение разработки.
Stage — окружение промежуточного развёртывания между Dev и Prod. Обычно является зеркалом Prod`а, но без пользовательской нагрузки и используется для предварительного просмотра новых функций и нагрузочного тестирования.
Test/QA — тестовое окружение для автоматических и ручных проверок.
Integration — Основа для построения CI или для тестирования сайд-эффектов разработчиком
В калькуляторе для расчета используются трудозатраты построения сервисов в неотказоустойчивом (некластерном) варианте развёртывания. Расчет высокодоступных и отказоустойчивых вариантов производится индивидуально под конкретные требования:
- размер домена отказа: ВМ, хост, стойка, машзал, ЦОД, провайдер;
- RTO и RPO (допустимое время простоя сервиса в случае сбоя и допустимый объем возможных потерь данных в случае сбоя соответственно);
- требуемая производительность сервиса.
В калькуляторе для расчета используются трудозатраты внедрения SonarQube CommunityEdition с параметрами «по умолчанию» и настройки базовых проверок:
- кода на баги и уязвимости;
- ошибки в конструкциях кода (code smells);
- покрытие кода тестами;
- дублировании кода.
на пользователей
Подготавливаем автоматические сценарии отката изменений (rollback).
По вопросу стоимости вашего проекта или другим вопросам, пожалуйста, свяжитесь с нами.
#
КонтактыПрофессиональные практики DevOps
Профессиональные
практики DevOps