Уход на уровне байта
Примечание
В настоящее время в этом репозитории существует 14 рабочих процессов GitHub .
Как жить с нулевыми проблемами с помощью полного контроля.
- Анализировать поставщиков услуг, прежде чем вы выберете один
- Следите за поставщиками услуг
- Тесно сотрудничать с вашими поставщиками услуг
- Знайте все программные работы на вашем сервере и его авторе; удалить все, что не нужно
- Следите за каждым процессом на вашем сервере с помощью функциональных тестов, а не только пингов
- Запустите инструменты QA на каждом байте ваших репозитории GIT
- Знайте свои зависимости (пакеты) и их авторов
- Развернуть 100% автоматически
- Запустить производственную среду без вмешательства человека
- Будьте консервативны с версиями программного обеспечения при обновлении
См. Специальная инфраструктура для веб -приложений
Поддержите мою работу
Пожалуйста, рассмотрите возможность поддержать мою работу, если вы получите выгоду от этих знаний.
Спасибо!
CI
Как разработать и реализовать непрерывную интеграцию.
Вы находите полный рабочий процесс CI в этом репозитории.
- Запустить в готовом контейнере или установить пакеты ОС
- Отображать информацию о среде
- Установите учетные данные доступа
- Управление версией
- GIT Commiteter
- Комплект сообщения
- PR название
- Кэш ОС и библиотеки языка программирования
- Проверьте язык программирования и совместимость с фреймворной версией
- Проверьте конфигурацию управления пакетом (проверка и нормализация)
- Проверьте устаревшие пакеты и известные уязвимости безопасности
- Код сборки
- Настройка приложения
- 0 байтового уровня
- Проверьте бит режима файла Execute
- Ищите персонажей не ASCII (неанглийские алфавиты, персонажи для управления, управляющие персонажи)
- 1⃣ Синтаксические ошибки
- Проверьте исходный код на наличие синтаксических ошибок
- Проверьте файлы шаблонов на предмет синтаксических ошибок
- 2⃣ запустить единицу и функциональные тесты
- 3⃣ Статический анализ
- Запустите статический анализ: Phpstan
- Детектор магического числа
- Детектор копирования вставки
- 4⃣ стандарты кодирования
- Проверьте стиль кодирования
- Придерживаться редактора
- Измерьте покрытие кода
- Проверьте методы маршрута (контроллеры маршрутов)
- Проверьте список распределенных файлов
- Проверьте правописание: опечатки
- Пользовательские проверки и предупреждения
- Отображение журналов в выводе CI или журналах загрузки в качестве артефактов
- Начать компакт-диск от SSH-ING для собственного сервера (
restrict,command в Authorized_Keys и DenyUsers в SSHD.Conf) - Протрите конфиденциальные данные
Диск
Как проектировать и реализовать непрерывную доставку.
- Возможные ограничения:
- Успешные тесты
- Не бегите на PR-S
- Наш репо
- конкретная ветвь
- Теги в сообщении Commit
[deploy:prod] - развернуть только заем
- Необязательный ручной старт (Gitlab Manual Daties)
- Не бегайте как пользователь root
- Продолжайте развернуть конфигурацию в файле
- Войдите в систему каждый вывод в файл, запустите и заканчивайте в Syslog
- Ограничение времени выполнения много трудоемких шагов (тайм-аут)
- При желании резервное копирование файлов проекта перед началом развертывания
- Создайте пользователя бота на сервере для GIT Access с SSH -ключом (
@companybot ) - Перечислить изменения в текущих файлах проекта
- Проверьте режим обслуживания, включите режим технического обслуживания
php artisan down покрывая статический ресурс, Page, Ajax и API -запросы - Очистить кэши (конфигурация, маршруты, приложение, шаблон и т. Д.)
- Подождите, чтобы закончить и отключить рабочие места и фоновых работников после очистки кэша (электронная почта в программе)
- Определите репозиторий GIT и ветвь
- Оформление заказа с помощью хэша Commit (не от Branch Head)
- По крайней мере, наполните исходный код
- Не развертывайте тестирующие пакеты
- Включить оптимизацию производства в менеджере пакетов
- Код сборки
- Запустите миграции базы данных
- Отключить режим обслуживания
- Заполнительные кэши (приложение, opcache,
wp rewrite flush ) - Запустите как минимум 1 базовый функциональный или модульный тест (например, входите в систему или отображение панели панели)
- Проверьте выход HTML
- Специальная конфигурация SUDO для перезагрузки PHP-FPM или Cachetool
- Предупреждение о неудаче
- "Был в течение X секунды"
- Отправить уведомление по электронной почте, Slack, Trello или Google Hangouts
Статический анализ с Phpstan
- Расширения
-
phpstan/phpstan-strict-rules -
phpstan/phpstan-deprecation-rules -
dave-liddament/sarb -
ekino/phpstan-banned-code -
tomasvotruba/type-coverage -
pepakriz/phpstan-exception-rules -
canvural/larastan-strict-rules -
schlndh/maria-stan - Хранилистые репозитории