Mogę się pochwalić nie używaniem (jeszcze) żadnej usługi chmurowej typu Azure, GCP, AWS etc.
Natomiast w okół są Dockerile
, docker-compose
, Docker-Swarm, Kubernetes baremetal, RKE, był K3s, Microk8s.
Do czego?
- Odpalanie internalowych aplikacji z Helma w RKE
- Stoi tam CI
- Kilka środowisk jednej aplikacji - dev, release, test i jakaś jeszcze jedna albo nawet dwie
- GIT
- Wewnętrzny Docker Registry
- Jedna spora aplikacja produkcyjna
- Monitoring
Ogólnie można wszystko i nie potrzeba do tego publicznych chmur. Jeżeli chcesz się wgryźć w ten temat to polecam nie zaczynać nauki od AWS i tym podobnych tworów, które mają wszystko opakowane i podane na tacy, a Ty tylko klikasz jak małpka. Rozsądniej jest zacząć od źródła, bo jak trafisz na środowisko w którym musisz sobie postawić koły klaster K8s, a będziesz obeznany z klikaniem go z GUI to zwyczajnie polegniesz na starcie.
Jeżeli programujesz w jakimś .NET / Java / Py / NodeJS / czymkolwiek to proponuję albo wziąć swój projekt, a jeśli takowego nie masz - github projektami stoi.
- Wyszukaj jeden średniej wielkości
- Trzaśnij do niego
Dockerfile
, a później przerób na docker-compose
- tak żeby działało oczywiście
- Najlepiej jakby aplikacja była oparta o mikroserwisy tak żeby można było mieć kilka gadających kontenerów
- Strzel sobie lokalnie jakiś klasterek możesz z K3s
- Upchnij tam tą aplikację z kontenera
- Później możesz sobie walnąć do tego helm
- Pobaw się skalowaniem tego, health-checkami (Liveness Readiness)
- Dopnij sobie z kontenera oczywiście jakiś monitoring całej aplikacji
Wszystko to przy założeniu, że ogarniasz Docker i K8s. Jak uda Ci się robić takie rzeczy z 'palca' to później obsługa chmury z GUI będzie tylko formalnością w postaci zapamiętania gdzie jest jaka opcja żeby ją kliknąć.