Cloud Workstations, czyli stacje robocze w chmurze, są platformą zapewniającą zarządzane środowiska programistyczne w Google Cloud. Jak działają, co oferują i kto najbardziej z nich skorzysta? Przekonajmy się.
Jak działają Cloud Workstations?
Cloud Workstations oferują wbudowane zabezpieczenia i konfigurowalne środowiska programistyczne, do których można uzyskać dostęp za pośrednictwem IDE opartego na przeglądarce, lokalnych edytorów kodu, takich jak VSCode lub JetBrains IDE, lub przez SSH. Programiści nie muszą instalować oprogramowania ani uruchamiać skryptów instalacyjnych.
Stacje robocze działają na tymczasowych maszynach wirtualnych, które mogą być uruchamiane lub zatrzymywane w zależności od potrzeb w celu optymalizacji oszczędności. Gdy stacje robocze są zatrzymywane, maszyny wirtualne Compute Engine są usuwane, a wszystkie dane środowiska uruchomieniowego powiązane ze stacją roboczą są usuwane wraz z maszyną wirtualną.
W konfiguracji stacji roboczej administratorzy mają możliwość skonfigurowania trwałego katalogu domowego, który umożliwia przechowywanie danych zapisanych w katalogu domowym między sesjami. Ta trwała pamięć masowa jest zaimplementowana jako dysk trwały, który jest dołączony do maszyny wirtualnej stacji roboczej po rozpoczęciu sesji i odłączany po jej zakończeniu. Wszelkie zmiany wprowadzone w konfiguracji stacji roboczej są automatycznie stosowane do stacji roboczych przy następnym uruchomieniu.
Do zarządzania środowiskami, Cloud Workstations zezwala na korzystanie z następujących funkcji:
- Administratorzy tworzą klastry stacji roboczych. Klastry te definiują grupę stacji roboczych w określonym regionie i sieć VPC, do której są podłączone. Należy pamiętać, że klastry stacji roboczych nie są powiązane z klastrami Google Kubernetes Engine (GKE).
- Administratorzy mogą utworzyć jedną lub więcej konfiguracji stacji roboczych w każdym klastrze stacji roboczych, które służą jako szablony dla stacji roboczych. Konfiguracje te definiują szczegóły, takie jak typ instancji maszyny wirtualnej (VM), trwała pamięć masowa, obraz kontenera, IDE lub edytor kodu i inne.
- Reguły IAM mogą być wykorzystywane przez administratorów do przyznawania dostępu poszczególnym deweloperom lub zespołom.
- Deweloperzy mają możliwość tworzenia stacji roboczych, które definiują środowiska programistyczne, w tym Cloud IDE, narzędzia do obsługi języków programowania , biblioteki i inne funkcje.
Wykorzystanie obrazów kontenerów
Deweloperzy wchodzą w interakcję ze środowiskiem Cloud Workstations, które wykorzystuje obraz kontenera hostujący IDE i wszelkie powiązane narzędzia. Cloud Workstations zapewnia kilka wstępnie skonfigurowanych obrazów bazowych, które zawierają popularne IDE i narzędzia do obsługi języków programowania.
Ponadto użytkownicy mogą dostosowywać swoje środowiska, tworząc i określając niestandardowe obrazy kontenerów, które zawierają niezbędne narzędzia spełniające ich potrzeby programistyczne. Te obrazy kontenerów mogą rozszerzać obraz bazowy Cloud Workstations lub być całkowicie nowymi obrazami kontenerów Linux stworzonymi od podstaw. Niestandardowe obrazy kontenerów mogą również uruchamiać serwery SSH na dowolnym porcie.
Bezpieczeństwo Cloud Workstations
Cloud Workstations jest składnikiem rozwiązania Software Delivery Shield, które jest w pełni zarządzanym, kompleksowym rozwiązaniem bezpieczeństwa dla łańcuchów dostaw oprogramowania. Rozwiązanie Software Delivery Shield pomaga zwiększyć poziom bezpieczeństwa przepływów pracy i narzędzi programistów, zależności oprogramowania, systemów CI/CD używanych do tworzenia i wdrażania oprogramowania, a także środowisk uruchomieniowych, takich jak Google Kubernetes Engine i Cloud Run.
Edytor bazowy
Cloud Workstations zawiera domyślny edytor bazowy, który umożliwia deweloperom pisanie, kompilowanie, testowanie, debugowanie i uruchamianie aplikacji. Edytor bazowy jest zbudowany w oparciu o projekt open-source Code-OSS i obsługuje rozszerzenia IDE dostarczane z Open VSX Registry. Dodatkowo, rozszerzenie Cloud Code IDE jest preinstalowane z edytorem bazowym.
Edytor bazowy Cloud Workstations jest wyposażony we wstępnie skonfigurowany system kontroli wersji. System ten może działać z publicznymi, prywatnymi lub samodzielnie hostowanymi repozytoriami, o ile repozytoria są dostępne ze stacji roboczej.
Debugowanie aplikacji z Cloud Workstations
Cloud Workstations umożliwia debugowanie aplikacji Go, Node.js, Python i Java. Można tworzyć konfiguracje uruchamiania, ustawiać punkty przerwania i sprawdzać zmienne. Ponadto możliwe jest debugowanie aplikacji Kubernetes na lokalnym klastrze, takim jak minikube lub Docker Desktop, zdalnym klastrze w GKE lub u dowolnego innego dostawcy chmury.
Cloud Workstations zapewnia wstępnie skonfigurowane obrazy z IDE JetBrains, dodatkowo wstępnie skonfigurowane obrazy dla IntelliJ IDEA, PyCharm, GoLand, WebStorm, CLion, PhpStorm, Rider, RubyMine są dostarczane z preinstalowanym rozszerzeniem Cloud Code.
Korzyści z korzystania z Cloud Workstations
Cloud Workstations mają możliwość montowania instancji Filestore Network File System (NFS), które znajdują się w tej samej sieci VPC. Instancja Filestore może być jednocześnie dostępna dla wielu instancji Cloud Workstations.
Chrome OS to system operacyjny opracowany przez Google, który jest przeznaczony do użytku na laptopach Chromebook i innych urządzeniach. Z kolei GCP Cloud Workstation to oparte na chmurze środowisko wirtualnego pulpitu, które działa na platformie Google Cloud. Integrując Chrome OS z GCP Cloud Workstation, użytkownicy mogą uzyskać dostęp do środowiska wirtualnego pulpitu hostowanego na GCP ze swojego Chromebooka.
Pozwala to użytkownikom na uruchamianie aplikacji wymagających dużej ilości zasobów i pracę z dużymi zbiorami danych bez martwienia się o ograniczenia lokalnego sprzętu.
Integracja zapewnia również bezpieczne środowisko komputerowe, ponieważ wszystkie dane i aplikacje są hostowane na GCP.
Oznacza to, że nawet jeśli Chromebook użytkownika zostanie zgubiony lub skradziony, jego dane znajdujące się na cloud workstation pozostaną bezpieczne, ponieważ nie są przechowywane lokalnie. Integracja Chrome OS z GCP Cloud Workstation zapewnia użytkownikom wydajne, bezpieczne i wydajne środowisko komputerowe.
Najlepsze praktyki bezpieczeństwa Cloud Workstations
Usługa Cloud Workstations oferuje wstępnie skonfigurowane obrazy bazowe, które mogą być używane z usługą. Obrazy są aktualizowane co tydzień, aby zapewnić, że dołączone oprogramowanie zawiera najnowsze poprawki zabezpieczeń. Co więcej, usługa wykorzystuje domyślny ustalony limitu czasu działania, aby zagwarantować, że stacje robocze są automatycznie aktualizowane, a nieaktualne obrazy nie pozostają uruchomione.
Chociaż Google Cloud nie jest właścicielem wszystkich pakietów dołączonych do wstępnie skonfigurowanych obrazów, menedżerowie pakietów mogą nadawać aktualizacjom różne priorytety w zależności od tego, w jaki sposób błąd lub typowe luki i narażenia (CVE) wpływają na ich produkt. W niektórych przypadkach produkt może korzystać tylko z części biblioteki i może nie mieć wpływu na odkrycia w innych jej częściach. Pomimo istnienia ustaleń CVE wynikających ze skanowania obrazów pod kątem luk w zabezpieczeniach, Cloud Workstations nadal jest w stanie zapewnić bezpieczny produkt ze względu na te czynniki.
Cloud Workstations jest w stanie zapewnić bezpieczeństwo, ponieważ posiada system uwierzytelniania i autoryzacji, który zapewnia, że tylko wyznaczony programista ma dostęp do swojej stacji roboczej. Pomaga to zapobiegać nieautoryzowanemu dostępowi i zachować poufność pracy dewelopera.
Deweloperzy powinni stosować najlepsze praktyki podczas korzystania ze stacji roboczej w chmurze, tak jak w przypadku każdego środowiska programistycznego. Aby zapewnić maksymalne bezpieczeństwo, zaleca się, aby deweloperzy uruchamiali tylko zaufany kod, działali tylko na zaufanych danych wejściowych i uzyskiwali dostęp tylko do zaufanych domen. Odradza się również używanie stacji roboczych do hostowania serwerów produkcyjnych lub udostępniania jednej stacji roboczej wielu deweloperom.
Aby mieć większą kontrolę nad bezpieczeństwem obrazów stacji roboczych w organizacji, możliwe jest tworzenie własnych niestandardowych obrazów kontenerów. Pozwala to na dostosowanie obrazu do konkretnych potrzeb i wymagań bezpieczeństwa.
Oprócz wspomnianych wcześniej najlepszych praktyk, zaleca się również:
- Wyłączenie publicznych adresów IP na stacjach roboczych w chmurze i skonfigurowanie reguł zapory w celu ograniczenia dostępu do publicznych miejsc docelowych w Internecie, które nie są wymagane do codziennej pracy. Jeśli publiczne adresy IP zostaną wyłączone, należy skonfigurować Private Google Access lub Cloud NAT w swojej sieci. W przypadku korzystania z Private Google Access i używania private.googleapis.com lub restricted.googleapis.com dla Container Registry i Artifact Registry, należy się upewnić, że zostały skonfigurowane rekordy DNS dla domen *.gcr.io i *.pkg.dev.
- Aby jeszcze bardziej zwiększyć bezpieczeństwo, zaleca się ograniczenie bezpośredniego dostępu SSH do maszyn wirtualnych w projekcie hostującym stacje robocze w chmurze. Dostęp powinien być możliwy tylko za pośrednictwem bramy Cloud Workstations, gdzie egzekwowane są zasady zarządzania tożsamością i dostępem (IAM). Można także włączyć dzienniki przepływu VPC (VPC Flow Logs).
- Skonfigurowanie usługi VPC Service Controls może również zapewnić dodatkowe bezpieczeństwo dla stacji roboczych i pomóc zmniejszyć ryzyko eksfiltracji danych. Dodając projekty do obwodów usług, można chronić zasoby i usługi przed żądaniami pochodzącymi spoza obwodu. Wreszcie, ważne jest, aby ograniczyć interfejs API Compute Engine w obwodzie usługi za każdym razem, gdy ograniczany jest interfejs API Cloud Workstations, aby w pełni chronić Cloud Workstations.
Cloud Workstations zapewniają wstępnie skonfigurowane obrazy bazowe, które mają minimalne środowisko z IDE, podstawowy terminal Linux i obsługę języków programowania oraz serwer sshd.
Aby dostosować środowisko programistyczne, można utworzyć niestandardowe obrazy kontenerów które rozszerzają te obrazy bazowe o wstępnie zainstalowane narzędzia i zależności oraz uruchamiają skrypty automatyzacji.
Zaleca się skonfigurowanie potoku do automatycznej odbudowy niestandardowych obrazów i użycie narzędzia do skanowania kontenerów, takiego jak Container Analysis, w celu sprawdzenia dodatkowych zależności.
Użytkownik jest odpowiedzialny za utrzymanie i aktualizację niestandardowych pakietów i zależności dodanych do niestandardowych obrazów.
Możliwe jest użycie własnego obrazu kontenera lub zewnętrznych obrazów kontenerów, o ile są one oparte na systemie Linux i uruchamiają proces blokujący podczas uruchamiania kontenera.
Podczas dostosowywania obrazów Docker do konfiguracji stacji roboczych, można zainstalować IDE i wtyczki JetBrains, takie jak Cloud Code dla IntelliJ, w obrazie bazowym. Po utworzeniu i przetestowaniu niestandardowego obrazu kontenera lokalnie, należy “wypchnąć” go do rejestru kontenerów. Jeśli obraz jest hostowany w prywatnym repozytorium, należy upewnić się, że konfiguracja określa konto usługi z uprawnieniami “pull” do pobierania w repozytorium.
Korzystając z Cloud Workstations zwiększasz bezpieczeństwo swoich środowisk programistycznych, dodatkowo zwiększając produktywność. Aby dowiedzieć się o CLoud Workstations oraz innych rozwiązaniach chmury Google skontaktuj się z ekspertami FOTC.