Hosting GIT dla freelancera


Korzystacie z GIT? Jeśli nie, to ten wpis nie jest dla was. Jeśli tak, to poniżej opisuję moje doświadczenia z CodeCommit, czyli hostingiem GIT w ramach oferty firmy Amazon.

Hosting git – Wymagania

Każdy z nas oczekuje czegoś innego od repozytorium gita, poniżej zebrałem moje wymagania:

  • Nieograniczona ilość repozytoriów. Mam kilka projektów hobbystycznych, czasami robię coś na zlecenie. Jak już wykonam zlecenie, to zdarza się, że po roku klient się odzywa, aby coś dorobić i chcę na każdy taki projekt mieć dedykowane repozytorium. Żadna oferta z limitem 10 repozytoriów mi nie odpowiada.
  • Projekty są prywatne. Za moją pracę płaci zleceniodawca i to on decyduje, czy upublicznić kod. Niedopuszczalne jest, aby repozytorium było otwarte.
  • W repo trzymam nie tylko kod, ale też wymagania, ustalenia z klientem. Całą dokumentację. To wszystko potrzebuje miejsca. Oferta musi mieć korzystną cenę za 1GB / miesiąc.
  • Od czasu do czasu chcę któremuś użytkownikowi dać uprawnienia do jakiegoś repozytorium. Potrzebuję mieć możliwość dokładnego zdefiniowania, jakie uprawnienia ma user – gdzie ma prawa tylko do odczytu, a gdzie może comitować.
  • Dobrze by było, jakby razem z Gitem był gerrit.
  • Rozsądna cena – rozumiem przez to, że 5$ miesięcznie jest OK. Cenę 10$ mogę rozważyć, ale 100$ to już przesada.
  • Szybkość działania – serwer w USA jest akceptowalny, choć wolałbym coś bliżej.

Moje doświadczenia z XP-Dev.com

Przez długi czas korzystałem z usług https://xp-dev.com,  oferta ciekawa. Nieograniczona ilość projektów, do każdego projektu system zarządzania bugami (track). Wszystko działało prawidłowo i dopóki nie znalazłem alternatywy, to płaciłem im zgodnie z cennikiem:

  • Pro Small, 2Gb – $5/miesiąc
  • Pro MSmall, 5Gb – $10/miesiąc
  • Pro Medium, 10Gb – $15/miesiąc
  • Pro Large, 20Gb – $30/miesiąc

Przesiadka na AWS CodeCommit

Pierwotny hosting działał prawidłowo i byłem szczęśliwy aż do momentu, gdy zobaczyłem, że mogę mieć prawie to samo w zamian za kilkanaście dolarów miesięcznie mniej. I kilka dni później korzystałem już z Amazon CodeCommit. Poniżej moja subiektywna lista wad i zalet CodeCommit.

Zalety

  • Dobrze zintegrowany z pozostałymi usługami w ramach AWS.
  • Brak limitu ilości repozytoriów.
  • Pierwszych pięciu użytkowników gratis – potem 1$ miesięcznie za użytkownika.
  • 50 GB miesięcznie gratis.
  • Możliwość automatyzacji zadań, np. po udanym ‚push’ automatycznie kopiujemy repo na S3. O tym niedługo będzie osobny wpis.

Wady

  • Brak możliwości zrobienia publicznego repozytorium – to akurat nie problem, bo jak chcemy coś hostować publicznie, to korzystamy z GitHub.
  • Brak wbudowanych systemów zarządzania bugami.
  • Dla osób niekorzystających z infrastruktury AWS, pierwsza konfiguracja może wydawać się skomplikowana.
  • Usługa dostępna tylko w lokalizacji US East (N. Virginia).
  • Słaby repo explorer w consoli AWS.

Jestem bardzo zadowolony z CodeCommit, łącznie mam ok. 30 repozytoriów i poniżej 50GB danych, tak wiec jak do tej pory rachunek za omawianą usługę wyniósł mnie $0.

Hosting GIT CodeCommit

Konfiguracja repozytorium GIT na AWS

Poniżej przedstawiam krok po kroku, jak utworzyć repozytorium korzystając  z konsoli AWS. Założeniem wstępnym jest posiadanie konta w systemie AWS.

  1. Naszym zadaniem jest utworzenie repozytorium, dodanie nowego usera, oraz nadanie mu odpowiednich uprawnień. Zaczynamy od ekranu głównego webowej nocsoli administracyjnej AWS. Hosting GIT CodeCommit
  2. Następnie wybieramy CodeCommit > Create new repository, gdzie podajemy nazwę i opis tworzonego repozytorium. Hosting GIT CodeCommit
  3. Repozytorium utworzone. Teraz musimy stworzyć użytkownika. Będąc na ekranie głównym przechodzimy do panelu usługi Identity and Access Management > UsersHosting GIT CodeCommit
  4. Klikamy Create New Users oraz określamy nazwę nowo tworzonego użytkownika, następnie powinniśmy zobaczyć poniższy panel. Hosting GIT CodeCommit
  5. Chcemy teraz określić, do czego uprawniony jest nowy użytkownik.  Nadajemy mu uprawnienie korzystania z klucza SSH. Wchodzimy w Attach Policy i wyszukujemy uprawnienie IAMUserSSHKeys.Hosting GIT CodeCommit
  6. Kolejnym krokiem jest nadanie uprawnień do repozytorium. Jeśli chcemy, aby użytkownik miał pełne prawo do wszystkich repo, to wystarczy w poprzednim kroku dodać Policy o nazwie  AWSCodeCommitFullAccess. Jeśli chcemy bardziej precyzyjnie określić przywileje użytkownika, wówczas musimy utworzyć swoją własną politykę praw dostępu. Z ekranu głównego praw użytkownika wybieramy Create User Policy. Hosting GIT CodeCommit
  7. Teraz możemy określić uprawnienia, jakie przydzielamy, np.
    1. Jeśli chcemy dać pełne prawa do wszystkich repozytoriów:
    2. Jeśli dajemy prawa tylko do odczytu dla dwóch wybranych repozytoriów:
    3. Możemy też ograniczyć prawo do kasowania repozytorium, tak aby zminimalizować ryzyko przypadkowego usunięcia danych:
  8. Nadaliśmy prawa, pora zdefiniować sposób autoryzacji. Chcemy, aby ten użytkownik autoryzował się tylko przy pomocy klucza SSH, wiec dodajemy klucz i usuwamy domyślnie utworzone aws credentials. Opis, jak wygenerować klucz SSH Hosting GIT CodeCommitUtworzyliśmy użytkownika i repozytorium oraz nadaliśmy mu stosowne uprawnienia. Teraz pora uzyskać dostęp zdalny do repozytorium.

Dostęp do utworzonego repozytorium

Aby dostać się do repo potrzebujemy URL oraz nazwy użytkownika. Nazwa użytkownika to ID naszego klucza SSH. Możemy połączyć je razem i ten adres wykorzystać do połączenia. Oczywiście pamiętając o podpięciu właściwego klucza prywatnego.

ssh://KEY_ID@git-codecommit.us-east-1.amazonaws.com/v1/repos/NAZWA_REPO

 

Hosting GIT CodeCommit

Hosting GIT CodeCommit

Hosting GIT CodeCommit

Odnośniki

 

 

6 thoughts on “Hosting GIT dla freelancera

    1. tez używam gitlaba na własnym serwerze do projektów wewnętrznych – dużo ludzi dużo grup dużo projektów, instalacja i utrzymanie banalnie proste – bajeczka 🙂

  1. Aaa czaje. Myślałem że potrzebujesz darmowego prywatnego hostingu i wtedy bitbucket jest świetny. Dlatego zastanawiałem się po co tyle się napracować z amazonem jeśli tu jest gotowe i za free 😉

    1. Bitbucket wykorzystywałem w korpo – w połączeniu z JIRA i fisheye jest super, natomiast prywatnie korzystam z Amazona i to jego właśnie chciałem opisać. Nie było moim zamiarem robienie zestawienia dostępnych usług.
      Na korzyść Amazona przemawia łatwość spięcia codecommit z pozostałymi usługami. Niedługo pojawi się wpis traktujący o automatycznym deploy z codecommit do S3 i lambda.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.