Bitbucket - популярная облачная платформа для хостинга репозиториев Git и коллективной разработки ПО. В этой статье подробно рассматриваются основные возможности Bitbucket и даются практические советы как эффективно ими пользоваться.
Зачем нужен Bitbucket и где его использовать
Bitbucket - это инструмент контроля версий и управления жизненным циклом ПО на основе распределенной системы Git. Ключевыми возможностями Bitbucket являются:
- Хостинг неограниченного числа приватных и публичных репозиториев Git/Mercurial
- Управление доступом и правами пользователей
- Визуализация diff, просмотр истории коммитов
- Потоки работы на основе pull request и code review
- Бесшовная интеграция с Jira, Trello, Visual Studio и другими популярными сервисами
- Автоматизация сборки, тестирования и доставки ПО
- Масштабируемая и надежная инфраструктура облачного хостинга
Основные области применения Bitbucket:
- Командная разработка ПО
- DevOps и непрерывная поставка ПО
- Публикация открытых проектов с поддержкой сообщества
- Корпоративные решения для разработки и сопровождения ПО
По данным официального сайта, сейчас на Bitbucket размещено более 35 млн проектов, которыми пользуются компании из Fortune 500 и миллионы разработчиков по всему миру.
Регистрация и настройка аккаунта в Bitbucket
Для работы с Bitbucket необходимо зарегистрировать аккаунт. Рассмотрим основные шаги создания и настройки учетной записи:
- Зайти на сайт Bitbucket и нажать на кнопку "Зарегистрироваться"
- Указать адрес электронной почты и придумать надежный пароль
- Подтвердить регистрацию по ссылке в письме, отправленном на почту
- Заполнить данные профиля пользователя: имя, фамилия, никнейм
- Перейти в настройки профиля и настроить уведомления
- Добавить и подтвердить актуальные контакты восстановления пароля и включить двухфакторную авторизацию для повышенной защиты аккаунта
После регистрации аккаунта можно приступать к созданию репозиториев, управлению проектами, настройке интеграций с другими системами и использованию других возможностей Bitbucket.
Организация репозиториев в Bitbucket
Репозиторий (repo) - это единица хранения в Bitbucket, представляющая собой набор файлов проекта и журнал всех изменений в коде. Одним из преимуществ Bitbucket является то, что здесь можно создавать неограниченное число бесплатных приватных репозиториев с небольшими ограничениями по размеру.
Рассмотрим как можно организовать репозитории в Bitbucket:
- Создать новый пустой репозиторий
- Импортировать существующий репозиторий из GitHub, GitLab, SVN
- Объединять связанные репозитории в группы - проекты
- Использовать метки, вики и задачи для описания репозиториев
- Настраивать права доступа к репозиториям
Также в Bitbucket есть удобный поиск, который позволяет быстро находить нужные репозитории по имени, описанию, принадлежности к группам, пользователям и другим критериям.
Управление доступом и правами в Bitbucket
Bitbucket предоставляет гибкие возможности настройки прав доступа к репозиториям и проектам. Можно выделить несколько уровней управления доступом в Bitbucket:
- Глобальные права на уровне организации
- Права доступа к отдельным проектам
- Права для конкретных репозиториев в проекте
- Права для групп и отдельных пользователей
Основные роли пользователей в Bitbucket:
- Администраторы - полный доступ и управление на уровне организации
- Разработчики - доступ на чтение и запись к репозиториям
- Смотрители - только просмотр содержимого репозиториев
- Кураторы сообществ - ограниченный доступ на модерацию
Также в Bitbucket есть возможность создания групп (команд) пользователей для упрощения назначения одинакового набора прав сразу для всех участников группы.
Таким образом, в Bitbucket можно детально настраивать доступ внутри организации, создавая иерархии групп и назначая различные роли конкретным пользователям и группам.
Работа с кодом в репозиториях Bitbucket
После того как репозиторий создан в Bitbucket, можно приступать к работе с кодом проекта. Рассмотрим основные возможности:
- Клонирование репозитория на локальный компьютер
- Добавление, коммит и отправка изменений
- Ветвление и слияние веток
- Запросы на слияние кода (pull request)
- Использование хуков для автоматизации
Для начала работы репозиторий необходимо склонировать командой git clone
на локальную машину. После внесения изменений в код их можно зафиксировать коммитом и отправить в удаленный репозиторий командами git commit
и git push
.
Ветвление и слияние
Одной из ключевых возможностей Git является ветвление кода. Bitbucket позволяет удобно создавать и управлять ветками разработки прямо из веб-интерфейса.
Преимущества разработки в ветках:
- Разделение основной и дополнительной логики приложения
- Одновременная разработка нескольких участков кода
- Возможность отмены или отката изменений
Инструменты для работы с Bitbucket
Помимо веб-интерфейса, для работы с Git репозиториями в Bitbucket можно использовать различные клиентские приложения:
- Десктоп клиенты: SourceTree, GitKraken, SmartGit
- IDE и редакторы кода: Visual Studio, VS Code, Atom
- Мобильные клиенты для iOS и Android
SourceTree
SourceTree - популярный графический клиент Git от Atlassian. Это удобный инструмент для работы с репозиториям Bitbucket: просмотр веток, визуальное сравнение, стейджинг изменений, управление коммитами и многое другое.
Интеграции и расширение возможностей
Bitbucket реализует открытые API, которые позволяют интегрировать его с другими системами.
Основные варианты интеграции Bitbucket:
- Связка с Jira для управления задачами и багами
- Интеграция с СИ/ИД средствами Bitbucket Pipelines
- Аутентификация через GitHub или GitLab
- Разработка собственных приложений с помощью API Bitbucket
Bitbucket Pipelines позволяет настроить CI/CD процессы для автоматической сборки, тестирования и развертывания приложений.
Администрирование Bitbucket
Для администраторов Bitbucket доступен отдельный раздел настроек для управления организацией на уровне хостинга:
- Мониторинг активности пользователей
- Управление лицензиями организации
- Настройки хранилища и резервного копирования данных
- Операции миграции или архивации проектов
Мониторинг активности
В административной панели Bitbucket доступен раздел мониторинга активности пользователей. Здесь можно просматривать статистику по:
- Количеству активных пользователей
- Числу коммитов и pull request
- Объемам хранилища
- Времени отклика сервера
Мониторинг помогает отслеживать загрузку ресурсов, оперативно обнаруживать и решать возникающие проблемы.
Управление лицензиями
Для компаний и крупных проектов в Bitbucket предусмотрены платные тарифы с расширенными квотами по хранилищу, количеству пользователей и дополнительным функциям.
В разделе лицензий администратор может:
- Просматривать текущий тарифный план
- Менять тариф при необходимости
- Приобретать дополнительные лицензии
Хранилище данных
Bitbucket позволяет гибко управлять хранилищем для репозиториев и других данных проектов.
Возможности по управлению хранилищем данных:
- Мониторинг использования дискового пространства
- Настройка квот для групп проектов
- Включение резервного копирование данных
- Архивация или удаления неактивных репозиториев
Миграция данных
Bitbucket позволяет мигрировать репозитории из Bitbucket Server, GitHub, GitLab и других систем хостинга Git.
Чтобы импортировать данные можно использовать:
- Встроенный импорт репозиториев
- Инструменты командной строки
- Сторонние решения
Также реализован экспорт данных из Bitbucket в GitHub или GitLab.
Резервное копирование данных
Для защиты от потери данных, Bitbucket позволяет настроить автоматическое резервное копирование репозиториев.
Резервное копирование включает:
- Ежедневный бэкап метаданных репозиториев
- Еженедельный бэкап исходного кода
- Резервирование бэкапов в течение 3 месяцев
Также для повышенной надежности можно реплицировать репозитории на нескольких серверах или уровнях хранения данных.
Архивация репозиториев
Со временем в Bitbucket накапливается большое количество неактивных репозиториев, которые занимают место и ресурсы сервера.
Чтобы освободить место, администратор может:
- Выявить и удалить неактивные старые репозитории
- Архивировать старые репозитории с сохранением доступа только для чтения
- Установить политики автоархивации репозиториев по времени бездействия
Масштабирование Bitbucket
При росте команды разработчиков и увеличении количества репозиториев, может потребоваться расширение ресурсов сервера Bitbucket.
Варианты масштабирования Bitbucket:
- Увеличение выделенных ресурсов на существующем сервере
- Добавление узлов и настройка распределенного кластера
- Переход на более мощный облачный тарифный план
Мониторинг производительности
При масштабировании инфраструктуры Bitbucket важно отслеживать производительность и время отклика серверов.
Для этого в административной панели доступны графики мониторинга:
- Загрузки ЦП и оперативной памяти серверов
- Сетевого трафика
- Времени ответа сервера на запросы
Анализируя метрики, можно выявить узкие места и оптимизировать конфигурацию серверов Bitbucket.
Высокая доступность
Чтобы избежать простоев сервиса, архитектура Bitbucket может быть реализована с избыточностью и резервированием.
Подходы к организации высокой доступности Bitbucket:
- Аппаратное резервирование критически важных узлов - балансировщиков нагрузки, СУБД
- Георепликация и распределение трафика между разными ЦОД
- Асинхронная репликация данных между несколькими серверами
Облачный хостинг Bitbucket
Наиболее просто начать пользоваться Bitbucket на базе полностью управляемого облачного хостинга от Atlassian:
- Не требуется закупка и настройка серверов
- Гибкое масштабирование под нужный объем хранилища и нагрузку
- Высокая доступность и отказоустойчивая инфраструктура
Облачный сервис Bitbucket позволяет быстро начать пользоваться преимуществами Git, не отвлекаясь на администрирование системы.