Od kilku dni testuje Divshot. Narzędzie, które zostanie wykorzystane przy deploymencie aplikacji podczas zbliżającego się hackathon-u 2015.staticshowdown.com.
Deployment moich czysto webowych aplikacji polegał na wykorzystaniu GitHub-a. Czyżby czas na zmianę?
GitHub
Często do swoich aplikacji wykorzystuje GitHub Pages aby kod aplikacji upublicznić.
Deployment aplikacji jest bardzo prosty wystarczy wgrać zmiany na origin/gh-pages i po chwili (Cache GitHub-a) mamy naszą aplikację na tzw. produkcji.
Divshot
Ciekawość mnie zżera na czym może polegać hosting Front-end-owy. Przecież bez hosting silnie wiąże się częścią aplikacji po stronie serwera. Zobaczmy czym się charakteryzuje taki hosting.
Wady i zalety
| GitHub | Divshot | |
|---|---|---|
| Hosting z 3 trybami dostępu: dla developera, staging (czyli taka preprodukcja) oraz produkcja | - | + |
| Blokowanie dostępu za pomocą HTTP Authentication | + (poprzez plik w projekcie) | + (wyklikujemy przy danej trybie dostępu lub divshot
protect [env] [user:pass]) |
| Automatycznie tworzy się subdomena | + (github.io) | + (divshot.io) |
| Zarządzanie wersjami | + (Tak jak zarządzanie rewizjami w projekcie. Niby jest, ale ma bardzo mocny wpływ na kod w repozytorium.) | + (Bardzo ładne zarządzani releasami. Możliwość rollback-a do poprzedniej wersji.) |
| Możliwości konfiguracji projektu | + (_config.yml) | + (divshot.json) |
| Potrzebny dodatkowy soft | + (Tylko Git) | - (node, npm, divshot-cli) |
| Dodatkowe gałęzie w projekcie | - (Branch: gh-pages) | + (Nic nie trzeba) |
| Customowa domena | + (Plik: CNAME) | + (Polecenie: divshot domains:add www.example.net) |
| URL z poprzednimi wersjami | - | + (Np.: v25.my-app-name.production.divshot.io) |
| Włączony HTTPS | + | - (Trzeba dokupić) |
| Współpracownicy | + (Bez limitu) | + (Bez limitu) |
| Webhooks | + (Polecenie: divshot hooks:add http://example.com/my/hook) | + (Długa lista predefiniowanych) |
| Jekyll | + | + |
Podsumowanie
Wygląda to tak, jeśli chcemy wypchnąć nasz projekt w świat, aby sobie leżał bez większego nakładu pracy w jego utrzymanie, to GitHub Pages będzie lepszym rozwiązaniem.
Jeśli jednak będziemy rozwijać ten projekt, albo jest on dla nas bardzo cenny z jakiegoś punktu widzenia i martwi nas jaka wersja jest obecnie na produkcji, a jaka na stagingu, to lepszym rozwiązaniem jest Divshot.