Рассказываем, как DevOps команда помогла обеспечить 2ГИС корректную работу сервиса для показа движения транспорта и ситуации на дорогах на крупном форуме, и с какими проблемами столкнулась при подготовке.
Для локализации причин зависания ПО конвейера 2010 года, лишившегося поддержки, был настроен мониторинг с использованием Zabbix v.6. Интеграция с SLES 2013, Oracle 10g и Python 2.6 решена через статические исполняемые файлы.
Мы разработали систему автоматизированных релизов для регулярного обновления утилит в прошивке устройств, сократив время сборки и снизив риски ошибок, что улучшило поддержку клиентов.
В текущих условиях, компании и команды часто сталкиваются с проблемами сборки проекта - часть зависимостей может скачиваться достаточно долго или быть временно недоступно для загрузки. Проблему недостаточно решить одному сотруднику - если нет подходящего механизма, каждый человек в команде будет решать проблему самостоятельно.
Мы помогаем решить эту проблему в проектах с maven, gradle, npm, yarn, nuget, pipi - мы помогаем развернуть и настроить кэширующий сервер артефактов, что позволяет многократно уменьшить количество проблем, а так же позволяет централизовано решить проблему недоступности какой-то зависимости для всей команды целиком.
Данное решение позволяет хранить копии библиотек в подконтрольной вам сети с доступом, который не будет зависеть от внешних факторов. Интеграция кэша с системами CI/CD также позволит ускорить сборку проектов и сделать её гораздо предсказуемее.
Ошибки при скачивании пакетов библиотек для сборки приложений на популярных языках: Java, NodeJS, Ruby, Python, C#, Go и других;
Лимиты на частоту скачиваний и доступности для образов на Docker Hub;
Скорость сборки ваших приложений в CI контуре - сервер находится в том же окружении, меньше зависимости от стабильности работы Internet;
Упрощение локализации проблем с сборкой - один сервер, опционально с доступом из корпоративной сети, позволяет сократить количество причин отказа, помогая команде поддержки;
Сохранение хрупких зависимостей проектов. Много библиотек при устаревании становятся недоступны для скачивания, а обновление проекта может быть экономически нецелесообразно.
Потому что проблема масштабируется с командой:
один разработчик чинит зависимости → ок
Команда разработчиков делают это одновременно → потеря дней
CI падает, следовательно блокируются и откладываются релизы
Мы разворачиваем внутренний кэширующий сервер артефактов, который:
хранит копии зависимостей и проксирует внешние репозитории
кэширует все скачанные библиотеки
обеспечивает единый источник зависимостей для всей команды
Разработчик или CI запрашивает зависимость
Сервер либо отдает её из кэша либо скачивает один раз и сохраняет
Все последующие запросы идут уже из локальной сети
То есть внешние проблемы перестают влиять на команду
Снижение количества падений сборок
Ускорение CI/CD
Независимость от внешних репозиториев
Предсказуемость релизов
Разработчики занимаются разработкой фич, а не решением проблем с загрузкой зависимостей
on-premise (внутри вашей сети)
в облаке
в существующей инфраструктуре (например, рядом с CI)
Да, и это ключевой сценарий:
Jenkins / GitLab CI / GitHub Actions и др.
все сборки могут использовать кэш
уменьшается нагрузка и время пайплайнов
Развернут и настроен сервер на базе Nexus;
Подготовлены настройки авторизации, кэширования;
Подготовлены настройки для интеграции с системами сборки, рабочими местами разработчиков.
Обсудить проект _
Если у вас есть ИТ-проблема , оставьте свои контакты, и мы поможем правительству спланировать ее решение . Обещаем не рассылать спам.