Pull to refresh

Облачный GIT хостинг

Reading time3 min
Views1.6K
Коллеги,
На днях в публичную бету был запущен проект облачного хостинга для Git: www.elasticgit.com

В этой статье — обзорной — расскажу о планах, архитектуре и технологиях.



GIT достаточно популярная система для управления исходными текстами и предположу, что большинство читателей с ней знакомы. Многие уже являются “счастливыми” пользователями, многие понимают что это такое благодаря многочисленным публикациям на хабре. И пожалуй подавляющее большинство знает о сайте GitHub.com — супер удобном хостинге многих open-source проектов.
Имея многолетний опыт работы с Git в корпоративном секторе в определенный момент накопилось достаточное количество in-house разработок, которые вполне можно превратить в публичный сервис. Итак, встречайте — elasticgit.com

Сражу расскажу о концепции; в перспективе предполагается три уровня сервиса

  • Для индивидуальных разработчиков, команд и компаний готовых хранить код у провайдера — самый стандартный вид сервиса — хостинг исходного текста.
  • Если вы хотите хранить код на вашем собственно сервере — мы предлагаем скачать наше программное обеспечение и установить его в вашем дата центре.
  • Пожалуй самое интересное: набор API для интеграции хостинга в ваше приложение или сервис. И сразу приведу пример — вы владелец веб сервиса для управления проектами. Путем простой интеграции ваши клиенты получат новую услугу — git хостиг. Разумеется весь интерфейс управления будет представлен на вашем сайте.


Но это все в планах — а на данный момент работает пункт номер один — облачный хостинг.

Давайте обсудим почему сервис “облачный”. Когда мы говорим об облаках — то, как правило, мы представляем себе наличие ресурсов не в качестве константы, а в качестве переменной — изменяемой в зависимости он нужд системы (нагрузки и тп).
ElasticGIT построен по этому принципу — у нас нет хостинговых пакетов: X репозиториев, Y пользователей. Совершенно не понятно, что делать скажем команде из 5 человек, но с 50ю репозиториями и 50 людям с 5ю репозиториями. Поэтому ElasticGIT работает на основе потребленных ресурсов: сколько репозиториев созданно, сколько дискового пространства и трафика использовано в месяц.
При этом мы не собираемся ставить ограничение на количество пользователей — так как если пользователь не работает с системой — то и никаких ресурсов он не потребляет.

Вообще вопрос о ценовой политике не проработан и поэтому я не могу предоставить много информации — но наши расчеты показывают что большинство команд буду оставаться в пределах 2х долларов в месяц.

На стадии Public Beta каждый эккаунт получает до 20ти репозиториев, 100 MB диска и 1GB трафика — хотя все лимиты можно менять при реальной необходимисти (правда пока это вряд ли будет оперативно).

Немного о самой платформе.
Архитектурно система состоит из нескольких уровней: front, hosting-master, farms.

Farm(ферма) это сервер на котором фактически сохраняются данные клиентов. Разумеется таких серверов много и их можно группировать в villages. Группы подобны пространствам имен — и делением клиентов мы можем оптимизировать политики по работе с репозиториями. С технической точки зрения все фермы одинаковые — их программное обеспечение умеет бэкапить и восстанавливать себя и также понимает команды от hosting-master.

Hosting-master это система учета “всего” — она доступна по API и управляет всеми villages+farms. Именно тут лежат данные по доступу, ключи и тп

Front наш публичный веб сервер. Фактически это обертка для удобного вызова API от hosting-master.

И еще немного деталей

1. Система живет в Amazon Web Services — хотя какой-то привязки именно к этому провайдеру нет.
2. Разработана своя версия SSH сервера — для оптимизации управления и поддержки системы
3. Разработана своя версия GIT (сервер). Разумеется это не накладывает каких-то ограничений на клиентов — совместимость по протоколу 100%
4. Front — это Drupal 7 + custom modules
5. Бизнес логика написана на java (j2ee)

Как я уже говорил система в режиме публичной беты — и ее уже можно начать использовать для некритичных проектов. На данный момент тестируется система автоматического резервирования, так что в случае потери диска на ферме не факт что мы сможем все восстановить. Иногда система может уходить в offline — следите за нашим twitter: @elasticGIT

Итак:
100MB
20 репозиториев
1GB траффика
Любое количество пользователей

Для начала работы нужно зарегистрироваться или войти через Google / openid. В шаге два добавить ваш public key и можно создавать репозитории.
Пути будут вида: test@source.elasticgit.com:myrepo.git и соответственно clone можно сделать:
git clone test@source.elasticgit.com:myrepo.git

Вопросы и предложения в support@elasticgit.com
И твиттер — в который мы будем вносить важнейшие апдейты

Если тема будет интересна, готов написать ряд статей по технологиям
Tags:
Hubs:
Total votes 60: ↑49 and ↓11+38
Comments72

Articles