Что нужно сделать
Для каждого из доменов (Collaboration, Build, Test, Deploy, Run) подберите пул инструментов, которые вы внедрили бы у себя в компании при необходимости.
Насчет инструментов, недоступных пока в РФ
Я не стал учитывать недоступность на данный момент в РФ некоторых инструментов.
Не думаю, что это критично — в любом случае, для почти каждого такого инструмента есть обходной путь (или очень похожий аналог), который позволит продолжать его использовать в текущих условиях 😁.
Toolset
Строить тулсет буду для условной небольшой команды, разрабатывающей небольшое веб-приложение с бэкендом на Go и фронтом на htmx (ибо опыта и широкого представления о больших командах с большим продуктом не имею).
Domains
Collaborate
Subdomain | Tool | Explained |
---|---|---|
Application lifecycle management (ALM) | Trello | Я думаю, простого корпоративного канбана вполне хватит для небольшой команды разработчиков. |
Communication | Slack | Slack вполне отвечает всем требованиям корпоративного мессенджера. |
Knowledge sharing | Notion | Notion выбран как самое простое решение для создания и управления статьями в команде. |
Build
Subdomain | Tool | Explained |
---|---|---|
SCM/VCS | GitLab | Выбран из-за встроенного GitLab CI/CD, который, в свою очередь, выбран как инструмент в поддомен CI. |
CI | GitLab CI/CD | Простой достаточно инструмент, который позволит легко собрать веб-приложение в рамках одно из этапов пайплайна. |
Build (optional) | --- | Доп. инструмент для сборки, получается, не нужен, раз всё может спокойно собираться в пайплайне GitLab CI/CD. |
Test
Выбор инструментов тестирования
Инструменты тестирования выбраны так, чтобы легко встроиться в GitLab CI/CD Pipeline как один из этапов (stages).
Tool | Explained |
---|---|
Zed Attack Proxy (ZAP) | Т.к. разрабатывается веб-приложение, то проверять его на уязвимости будет хорошей практикой. |
Selenium | Selenium позволит автоматически тестировать функционал WebUI. |
Стандартный пакет testing в Go | Пакет testing из стандартной библиотеки Go позволит написать тесты и запустить их в пайплайне. |
JMeter | JMeter должен помочь с нагрузочным тестированием разрабатываемого веб-приложения. |
Deploy
Subdomain | Tool | Explained |
---|---|---|
Config management/provision | Terraform / Ansible | Terraform здесь поможет поднять и базово настроить сервера. Ansible же подготовит окружение на серверах для последующего деплоя веб-приложения. |
Deployment | GitLab Runner + SSH | Раз используется GitLab CI/CD, то поднятый GitLab Runner на одном из серверов позволить задеплоить веб-приложение, например, с помощью SSH соединения. |
Artifact management (optional) | --- | Здесь менеджер/репозиторий артефактов тоже, думаю, будет излишним. |
Run
Subdomain | Tool | Explained |
---|---|---|
Cloud | Yandex Cloud | Я уже пару раз работал с Yandex Cloud, поэтому разворачивал бы там. Это облако полностью покроет все нужды проекта. |
Orchestrator | --- | Оркестратор для такого небольшого проекта, думаю, не нужен. |
Monitoring | Prometheus + Grafana + Loki | Базовый стек инструментов для мониторинга. |