W tym artykule przedstawiamy opcje Google Cloud dla organizacji, które przeprowadzają wewnętrzną ocenę przeniesienia dwuwarstwowej aplikacji internetowej do chmury ## Typy aplikacji Dwuwarstwowe aplikacje internetowe składają się z serwera WWW, na którym działa aplikacja, oraz bazy danych do przechowywania danych aplikacji. Uruchamianie Linuksa, Apache, MySQL i PHPâÃÂÃÂpowszechnie określanych jako stos LAMP, jest typowym przykładem dwuwarstwowej aplikacji internetowej. Różnice w dystrybucji Linuksa, oprogramowaniu serwera WWW, bazie danych lub języku programowania wpływają na szczegóły techniczne każdej migracji, ale przegląd migracji i kroki są spójne ## Fazy migracji Migracje do chmury odbywają się w następujących czterech fazach Oszacowanie Zidentyfikuj wszystkie cechy swojego obciążenia, wymień zasoby potrzebne do jego uruchomienia w chmurze i przywołaj wszystkie kluczowe zależności i połączenia z innymi obciążeniami. Korzystając z pełnej listy cech, możesz zacząć planować, jakie aplikacje i obciążenia powinny zostać przeniesione iw jakiej kolejności W nowoczesnych przedsiębiorstwach istnieje wiele różnych rodzajów aplikacji, od aplikacji skierowanych do klientów, przez aplikacje zaplecza, narzędzia programistyczne, po aplikacje eksperymentalne. Przeniesienie wszystkich tych aplikacji w tym samym czasie iw ten sam sposób byłoby ryzykowne i nieefektywne Jednym z przykładów może być posortowanie aplikacji do następujących trzech szerokich kategorii: - Aplikacje, które można łatwo przenosić. Mają one mniej zależności, są nowsze, są pisane wewnętrznie, więc nie wymagają licencji i są bardziej odporne na skalowanie i obsługę wzorców projektowych w chmurze - Aplikacje, które są trudne do przenoszenia. Mają one więcej zależności, są mniej odporne na skalowanie, są trudne do uruchomienia z usługami w chmurze lub mają złożone wymagania licencyjne - Aplikacje, których nie można przenieść. Niektóre aplikacje, które mogą nie nadawać się do migracji, działają na specjalistycznym lub starszym sprzęcie, mają wymagania biznesowe lub prawne, które wymagają pozostania w centrum danych, lub mają złożone wymagania licencyjne, które nie Nie pozwól im przenieść się do chmury To tylko kilka przykładów sposobów sortowania aplikacji. Prawdopodobnie Twoje aplikacje mają o wiele więcej decydujących czynników, których możesz użyć do stworzenia macierzy priorytetów dla wszystkich aplikacji. Z tego rankingu możesz wybrać swoją pierwszą aplikację do przeniesienia i rozpocząć planowanie swojej podstawy Google Cloud Fundacja Zaprojektuj i zaplanuj konkretne szczegóły wdrożenia nowego środowiska chmurowego. Obejmują one: — Architektura chmury i model zabezpieczeń, aby zapewnić podstawę infrastruktury dla Twoich obciążeń Zasoby sieciowe umożliwiające bezpieczną i niezawodną komunikację między aplikacjami. Wymaga to szeroko zakrojonego planowania zarządzania tożsamością i dostępem (IAM), projektowania wirtualnej chmury prywatnej (VPC) oraz metod dostępu zewnętrznego Technologia stanu końcowego i narzędzia, na których będą działać Twoje obciążenia Uwzględnianie zarządzania zależnościami, terminów i metod przenoszenia danych Migracja Przenieś dane i wdróż usługi, infrastrukturę i kod do miejsca docelowego. Do obsługi tych operacji należy używać automatyzacji i narzędzi Optymalizacja Zweryfikuj, czy decyzje i założenia podjęte w fazie oceny i fundamentów odpowiadają rzeczywistości po fazie migracji. Identyfikujesz wszelkie zmiany, których możesz potrzebować. Zastanów się, jak zbadać inne opcje natywne w chmurze, takie jak przejście z infrastruktury jako usługi (IaaS) na platformę jako usługę (PaaS) lub skorzystanie z oferty usług zarządzanych. W zależności od wyniku fazy optymalizacji możesz rozpocząć cykl od nowa, aby zająć się zmianami lub modyfikacjami. Zawsze zaczynaj od fazy oceny i wykorzystuj swoje doświadczenie, aby z każdą iteracją zwiększyć wydajność ## Rodzaje migracji W poniższych sekcjach opisano trzy najczęstsze strategie migracji do przenoszenia aplikacji do chmury Podnieś i przesuń Posługiwać się * podnieś i przesuń *, gdy chcesz przenieść aplikacje podczas zmiany jako jak najmniej w sposobie ich funkcjonowania. Działa to najlepiej w przypadku aplikacji, które może działać niezmodyfikowany w chmurze, gdy szybkie przenoszenie aplikacji jest priorytet lub gdy firma nie ma apetytu lub potrzeby zmian. Ten migracja wymaga więcej pracy ze strony personelu infrastruktury i personelu operacyjnego wspierać fundamentalne zmiany w miejscu, w którym usługa będzie działać, i mniej pracy od programistów, ponieważ bardzo niewiele, jeśli w ogóle, kodu powinno wymagać zmiany Na przykład, jeśli obie warstwy aplikacji sieci Web są hostowane na maszynach wirtualnych, można je migrować bez zmian za pomocą narzędzia Migruj do maszyn wirtualnych. Gdy te maszyny wirtualne znajdują się w chmurze, możesz rozważyć uaktualnienie do bardziej natywnej platformy obliczeniowej w chmurze, aby uzyskać dodatkowe korzyści Popraw i ruszaj się Posługiwać się *ulepsz i przenieś*, gdy chcesz zmodernizować swoją aplikację w środowisku proces migracji do chmury. Jest to powszechnie używane, gdy aplikacja nie jest obsługiwana w chmurze w takiej postaci, w jakiej jest, ani w przypadku dużych aktualizacji oprogramowania lub sprzętu są już określone i zaplanowane. Ta migracja wymaga infrastruktury, operacji i programistów do współpracy w celu poprawy funkcji aplikacji w chmurze i pozwala aplikacji z niej korzystać korzyści związane z chmurą, takie jak większa przenośność, skalowalność i niezawodność Inną odmianą tej strategii jest ulepszanie i poruszanie się jednym ruchem. Jeśli obie warstwy Twojej aplikacji internetowej są hostowane na maszynach wirtualnych, możesz użyć narzędzia Migracja do kontenerów, aby automatycznie przenieść i przekonwertować te maszyny wirtualne na kontenery działające w Google Kubernetes Engine (GKE) Zerwij i wymień Posługiwać się *zgraj i zamień*, gdy chcesz zbudować nowe rozwiązanie w chmurze i wyłącz bieżącą wersję swojego rozwiązania lokalnego. Jest to powszechnie stosowane gdy mają zastosowanie następujące warunki: - Istniejąca aplikacja nie jest warta utrzymywania w chmurze ani pod względem technicznym, ani finansowym - Licencjonowanie oprogramowania w chmurze jest wygórowane lub niepraktyczne - Aplikacja całkowicie przestaje spełniać potrzeby biznesowe Ponieważ zgrywanie i zastępowanie wymaga przepisania aplikacji od podstaw, nie jest to omówione w tym przewodniku po migracji ## Faza oceny Zanim rozpocznie się jakakolwiek migracja, musisz dokładnie zrozumieć punkt wyjścia Wszelkie pytania bez odpowiedzi stanowią zagrożenie dla powodzenia migracji. Poświęcenie czasu na fazę oceny pomaga zapewnić płynną i bezproblemową fazę migracji. Poświęć jak najwięcej czasu na zebranie jak największej liczby istotnych informacji wspierających migrację Stos oprogramowania aplikacji Współpracuj ze swoją infrastrukturą, operacjami i zespołami deweloperskimi, aby określić następujące szczegóły: - System operacyjny: Dokładna dystrybucja, wersja, poprawki, zainstalowane pakiety - Serwer WWW: Dokładny pakiet oprogramowania, numer wersji, pakiety lub inne modyfikacje oprogramowania oraz wszystkie pliki konfiguracyjne i zasady dotyczące oprogramowania serwera WWW - Baza danych: Dokładna nazwa oprogramowania, wersja, schemat, strategia replikacji i harmonogram tworzenia kopii zapasowych - Środowiska wykonawcze: Dokładne wersje wszystkich środowisk backendowych i frontendowych Zasoby sprzętowe systemu W przypadku warstw serwera WWW i bazy danych odpowiedz na następujące pytania: - Ile serwerów działa teraz? — Jaki jest całkowity przydział procesorów, w tym generacja, typ architektury i szybkość? - Jaka jest pamięć RAM i miejsce na dysku przydzielone do każdego serwera? Czy używane są dyski twarde lub dyski SSD? NALOT? - Jakie jest bieżące wykorzystanie, średnie wykorzystanie i szczytowe wykorzystanie procesora, pamięci RAM i miejsca na dysku?Spójrz na swoją średnią i wartość szczytową w kontekście konkretnego zastosowania biznesowego.Na przykład firma obsługująca igrzyska olimpijskie może potrzebować spojrzenia dwa lata wstecz, aby zobaczyć, jak wygląda prawdziwy szczyt, podczas gdy inne aplikacje mogą mieć bardziej stabilną szybkość działania.Spójrz na najbardziej typową oś czasu przypadków użycia dla średniej i oś czasu najintensywniejszego użycia dla szczytu.Poszukaj również wzorców cyklicznego użytkowania, takich jak weekendy, wieczory i dni robocze— W przypadku bazy danych, jaka strategia tworzenia kopii zapasowych, replikacji lub dzielenia na fragmenty jest używana i w jaki sposób które mają wpływ na wymagania dotyczące miejsca na dysku i liczbę wymaganych serwerów?Zasoby sieciowePrzeanalizuj architekturę sieci, która umożliwia działanie Twojej aplikacji.Upewnij się, że dysponujesz dokładnymi i aktualnymi logicznymi i fizycznymi diagramami topologii sieci infrastruktury obsługującej Twoją aplikację.Diagramy muszą jasno przedstawiać wszystkie połączenia, zależności i usługi siecioweOdpowiedz na następujące pytania:- W jaki sposób klienci uzyskują dostęp do Twojej aplikacji?Przez przeglądarkę internetową?Bezpośrednio przez adres IP?Przez aplikację mobilną?Używasz połączenia z wirtualną siecią prywatną?- Czy masz listę wszystkich odpowiednich certyfikatów SSL/TLS i kluczy szyfrujących?- Gdzie są hostowane wszystkie odpowiednie certyfikaty SSL/TLS?Kiedy wygasają?Jak odnawiacie certyfikaty?Jak zdobywasz nowe certyfikaty?Czy masz dostęp do wszystkich aktualnych certyfikatów?- Czy masz listę wszystkich odpowiednich domen obsługujących aplikację?- Gdzie są hostowane te domeny?Kiedy wygasają?Jak je odnawiasz?Czy masz dostęp do kont kontrolujących rejestrację?- Gdzie jest hostowany i kontrolowany Twój DNS?- Czy masz dostęp do wszystkich systemów i narzędzi kontrolujących DNS?Jakie są aktualne mapowania CNAME na IP dla każdej domeny i czy masz kopię zapasową?- Jakie są ustawienia czasu wygaśnięcia DNS (TTL)?- Gdzie w architekturze mieszczą się zapory i inne urządzenia dostępu do sieci i kontroli?Jakie reguły zezwalają lub odrzucają ruch?Kto jest odpowiedzialny i jaka jest procedura zmiany lub aktualizacji tych zasad?- Czy korzystasz z zewnętrznych usług sieciowych?Na przykład dostawca sieci dostarczania treści (CDN) lub usługa ochrony przed rozproszoną odmową usługi (DDoS)?## Faza podstawGoogle Cloud oferuje wiele opcji uruchamiania obciążeń obliczeniowych i baz danych dla aplikacji wielowarstwowych, takich jak LAMP.W tej sekcji przedstawiono te opcje i wyjaśniono, dlaczego warto wybrać jedną z nichOpcje zorientowane na obliczeniaCompute EngineCompute Engine to IaaS oferta umożliwiająca uruchomienie maszyny wirtualnej (VM) w Google Cloud.Możesz zainstalować frameworki sieciowe, oprogramowanie serwerowe, bazy danych i dowolne inne oprogramowanie obsługiwane przez Twój system operacyjny.Jeśli uruchamiasz własną aplikację LAMP na komputerze fizycznym, maszynie wirtualnej, w centrum danych lub u innego dostawcy usług w chmurze, ta opcja może dokładnie, jeśli nie dokładnie, replikować istniejący serwer.Ta opcja zapewnia największą kontrolę nad konfiguracją systemu operacyjnego i ustawieniami oprogramowania serwera WWW.Compute Engine pozwala na głęboką kontrolę nad typami maszyn, grupami instancji, opcjami przechowywania, systemami równoważenia obciążenia i wieloma innymi szczegółami.Zapoznaj się z pełną dokumentacją Compute Engine, aby uzyskać więcej przewodników Szybki start, samouczków i nie tylkoPrzeniesienie aplikacji bezpośrednio do Compute Engine to najczęstsza migracja typu „lift-and-shift”.Aby uzyskać wskazówki dotyczące mapowania zasobów lokalnych na Compute Engine, zobacz Sprawdzone metody migracji maszyn wirtualnych do Compute EngineCloud Deployment ManagerGoogle Cloud Marketplace również oferuje prostą instalację LAMP za pomocą Menedżera wdrażania.Możesz uruchomić serwer z systemem Debian Linux, Apache, MySQL, PHP i phpMyAdmin już zainstalowanymi i skonfigurowanymi w domyślnej konfiguracji.W ciągu kilku minut otrzymasz w pełni działający serwer WWW i dane uwierzytelniające do instalacji MySQLGoogle Kubernetes EngineGKE to zarządzane, gotowe do produkcji środowisko do wdrażania aplikacji kontenerowych.Korzystając z GKE, przestajesz zarządzać systemem operacyjnym, umieszczając oprogramowanie serwera WWW w kontenerze.Na przykład serwery WWW Apache i NGINX są dostępne z każdego publicznego repozytorium kontenerów.Jeśli używasz kontenerów do uruchamiania zadań w swoim środowisku, GKE jest wydajną usługą do utrzymania podobnego procesu wdrażania i testowania podczas migracji zadań LAMP do Google Cloud.Jeśli nie korzystasz z kontenerów, rozważ korzystanie z GKE w celu szybszego wdrażania i odzyskiwania, większej efektywności wykorzystania zasobów oraz braku konieczności zarządzania bazowym systemem operacyjnym i maszyną wirtualnąDla więcej informacji na temat zarządzania aplikacjami kontenerowymi na dużą skalę można znaleźć w dokumentacji GKE, gdzie znajdują się przewodniki szybkiego startu, samouczki, koncepcje, poradniki i inne zasoby, które pomogą Ci rozpocząćPrzenoszenie lokalnej aplikacji LAMP do GKE to migracja typu „ulepsz i przenieś”, natomiast przejście z samozarządzanej infrastruktury opartej na kontenerach to migracja typu „lif and shift”App EngineApp Engine to bezserwerowa platforma do tworzenia wysoce skalowalnych aplikacji.W zależności od rodzaju używanej aplikacji App Engine może wyeliminować konieczność zarządzania serwerami, kontenerami lub wdrożeniami, pozwalając programistom skupić się na pisaniu kodu i upraszczając zarządzanie podstawową infrastrukturą.Nie wszystkie obciążenia są dobrymi kandydatami do przejścia na App Engine, ale te, które są, odnotowują redukcję kosztów i złożoności przy jednoczesnym zwiększeniu szybkości skalowania i odporności aplikacji pod obciążeniemApp Engine jest dostępny w dwóch odmianach: środowisko standardowe obejmuje różne języki (w tym PHP dla naszej aplikacji LAMP), a środowisko elastyczne umożliwia większe dostosowanie czasów działania, wydajności i infrastruktury.Zapoznaj się z dokumentacją wybranego języka, aby dowiedzieć się więcejOpcje bazy danych Samodzielne zarządzanie w Compute Engine W instancji Compute Engine możesz zainstalować MySQL, PostgreSQL lub dowolną inną bazę danych opartą na SQL. Zapewnia to ten sam poziom kontroli, jaki miałbyś podczas uruchamiania MySQL na stacji roboczej, na serwerze w centrum danych lub jako maszyna wirtualna u innego dostawcy chmury. Gdy uruchamiasz bazę danych na maszynie wirtualnej, Twoim obowiązkiem jest konfigurowanie, monitorowanie i utrzymywanie przełączania awaryjnego, replikacji, partycjonowania i wysokiej dostępności Możesz traktować bazę danych jako obciążenie obliczeniowe, biorąc pod uwagę procesor, pamięć RAM i miejsce na dysku, aby zapewnić wystarczającą ilość zasobów do niezawodnego działania aplikacji Podobnie jak przeniesienie obciążenia obliczeniowego do Compute Engine, to podejście stanowi migrację typu „lift-and-shift”. SQL w chmurze Cloud SQL to w pełni zarządzana usługa bazy danych, która przenosi instalację, konfigurację i konserwację bazy danych do Google Cloud. Automatyzuje tworzenie kopii zapasowych, replikację, poprawki i aktualizacje oraz pozwala skupić się na aplikacji. Z baz danych Cloud SQL mogą korzystać obciążenia działające w dowolnych usługach obliczeniowych Google, w tym Compute Engine, GKE i App Engine. O ile nie potrzebujesz głębokiej kontroli nad bazą danych MySQL, Cloud SQL to łatwa w konfiguracji iw pełni funkcjonalna opcja do obsługi obciążenia LAMP Cloud SQL może natywnie uruchamiać i obsługiwać MySQL i PostgreSQL. Jeśli przeprowadzasz migrację z jednej z tych baz danych do Cloud SQL, jest to migracja typu „lift-and-shift”. Jeśli poszukujesz nowych metod replikacji, strategii tworzenia kopii zapasowych lub prostoty zarządzania infrastrukturą, może to być migracja typu „ulepsz i przenieś” Inne opcje przechowywania Cloud Storage to skalowalny, w pełni zarządzany, wysoce niezawodny i ekonomiczny magazyn obiektów lub obiektów blob, idealny do przechowywania obrazów, zasobów statycznych i innych nieustrukturyzowanych danych. Cloud Storage może służyć do hostowania statycznej witryny internetowej, ale nie jest przeznaczony do przechowywania aktywnej zawartości bazy danych. Jest to również idealne miejsce do przechowywania obiektów kopii zapasowych i odzyskiwania po awarii oraz danych do wykorzystania w celu przesyłania strumieniowego Rozważ użycie Cloud Storage jako lokalizacji do przechowywania kopii zapasowych bazy danych podczas migracji i po jej zakończeniu Ognisko Firestore to w pełni zarządzana, bezserwerowa, natywna dla chmury baza danych dokumentów NoSQL, która upraszcza przechowywanie, synchronizowanie i wysyłanie zapytań do danych dla aplikacji mobilnych, internetowych i Internetu rzeczy (IoT) w skali globalnej. Biblioteki klienckie zapewniają synchronizację na żywo i obsługę offline, a funkcje bezpieczeństwa i integracje z Firebase i Google Cloud przyspieszają tworzenie prawdziwie bezserwerowych aplikacji. Jeśli Twoja aplikacja zawiera treści, które mogłyby skorzystać na formacie NoSQL, takie jak profile użytkowników, katalogi produktów lub stan gry, powinieneś zapoznać się z Firestore w fazie optymalizacji migracji Baza ogniowa Firebase to wszechstronna platforma programistyczna dla urządzeń mobilnych, która obejmuje opcje przechowywania i bazy danych. Jeśli Twoja aplikacja obsługuje obciążenia mobilne, w fazie optymalizacji należy wziąć pod uwagę platformę Firebase Klucz do chmury Spanner to globalnie dystrybuowana i wysoce spójna usługa bazy danych klasy korporacyjnej stworzona dla chmury. Łączy zalety relacyjnych struktur baz danych z poziomą skalowalnością nierelacyjnych baz danych. Jeśli Twoja aplikacja mogłaby skorzystać na ulepszonych możliwościach zarządzania, skalowalności i dużej spójności transakcji, rozważ migrację bazy danych do Spannera w fazie optymalizacji Google Cloud oferuje wiele innych opcji przechowywania do obsługi różnych obciążeń ## Faza migracji Po zakończeniu oceny i zaplanowaniu migracji możesz rozpocząć przenoszenie danych, usług i zasobów do Google Cloud. Każda aplikacja ma swoje własne potrzeby. W tej sekcji przedstawiono kilka przykładów, które pomogą zademonstrować, na czym polega ta faza Podnieś i przesuń: Compute Engine Pierwszym krokiem do rozpoczęcia migracji typu „lift-and-shift” jest ustanowienie zgodnej usługi wielowarstwowej w Compute Engine. Chociaż istnieje wiele podejść do tego; oto trzy najczęstsze: - Manualna instalacja. Uruchom maszynę wirtualną z wybranym systemem operacyjnym, a następnie ręcznie zaktualizuj repozytoria, zainstaluj i skonfiguruj oprogramowanie oraz ręcznie udostępnij i skonfiguruj bazę danych i środowisko wykonawcze. Takie podejście zapewnia wysoki poziom kontroli, ale zajmuje więcej czasu, jest bardziej podatne na błędy i mniej powtarzalne niż inne metody - Zautomatyzowane. Skorzystaj z opcji Migruj do maszyn wirtualnych, aby przeprowadzić migrację stosu maszyn wirtualnych (w określonej kolejności) z zasobów lokalnych na maszyny wirtualne odpowiedniej wielkości, automatycznie udostępniane i konfigurowane w Compute Engine - Rynek w chmurze. Uruchom wstępnie skonfigurowany stos LAMP w swoim projekcie Google Cloud. Pamiętaj, aby sprawdzić, czy dostarczony system operacyjny i wersje oprogramowania będą działać z Twoją aplikacją. Zapoznaj się z dokumentacją Cloud Marketplace, aby dowiedzieć się więcej - Zautomatyzowane wdrażanie. Twórz maszyny wirtualne gotowe do produkcji, korzystając z koncepcji ciągłej integracji / ciągłego wdrażania oraz różnych narzędzi do zarządzania konfiguracją (Chef, Puppet, Ansible, Salt), infrastruktury jako narzędzi kodu (Deployment Manager, Terraform) i struktur automatyzacji (Cloud Build). Zautomatyzowane wdrażanie zapewnia testowalne, powtarzalne i zautomatyzowane metody wdrażania maszyn wirtualnych i oprogramowania, które spełniają Twoje potrzeby w zakresie aplikacji i zarządzania Ulepsz i przenieś: GKE i Cloud SQLAby przejść na zarządzane rozwiązanie kontenerowe, musisz najpierw stworzyć podstawę dla swojego klastra i zarządzanego rozwiązania SQLUruchamianie klastra GKEUtworzenie klastra w GKE i zarządzanie tym klastrem to pierwsze kroki.Wykorzystaj informacje z fazy oceny i tworzenia, aby odpowiednio dopasować wielkość i konfigurację początkowego klastra oraz zastosować sprawdzone metody zwiększania bezpieczeństwaOpcje uruchamiania dla Cloud SQLUżywanie informacje o bazie danych uzyskane w fazie oceny i tworzenia, utwórz nową instancję Cloud SQL i postępuj zgodnie z innymi przewodnikami, aby zbudować bazę danych dla swojej aplikacji.Google udostępnia listę sprawdzonych metod Cloud SQL, przewodniki dotyczące konfigurowania wysokiej dostępności oraz inne samouczki dotyczące skalowania w poziomie.Poznaj opcje łączenia się z Google Kubernetes Engine do Cloud SQL i wybierz opcję, która pasuje do Twojej aplikacji i poziomu doświadczeniaUlepsz i przenieś bez serwera: App Engine i Cloud SQLJeśli zdecydujesz się przeprowadzić migrację aplikacji LAMP do środowiska bezserwerowego, może być konieczne zmodyfikowanie aplikacji w celu obsługi App Engine.Każda aplikacja jest inna i istnieje wiele strategii.Zacznij od przejrzenia następujących zagadnień:— Omówienie architektury mikrousług w App Engine— Dowiedz się, jak tworzyć i nazywać tworzenie, testowanie, zapewnianie jakości, przemieszczanie i środowisk produkcyjnych z mikrousługami w App Engine— Poznaj najlepsze praktyki projektowania interfejsów API do komunikacji między mikrousługami— Poznaj najlepsze praktyki dotyczące wydajności mikrousługW zależności od Twojego doświadczenia organizacyjnego i osobistego oraz znajomości obsługi kodu bezserwerowego, bezserwerowa strategia ulepszania i przenoszenia może zająć znacznie więcej czasu niż opcje podnoszenia i przesuwania.Jednak wykorzystanie tego, co najlepsze w rozwiązaniach bezserwerowych, może być ogromnym atutem Twojej organizacji## Faza optymalizacjiPo uruchomieniu aplikacji w Google Cloud, możesz zweryfikować swoje założenia i decyzje z poprzednich trzech faz.Pełne migracje mogą zająć dużo czasu, a wiele szczegółów może ulec zmianie w trakcie tego procesu.Optymalizacja obejmuje wiele obszarów, ale oto kilka typowych kategoriiOptymalizacja kosztówPrzejście z infrastruktury lokalnej do chmury zmienia sposób wydawania pieniędzy na aplikacje , usług i infrastruktury.Możesz przeprowadzić ocenę starszej usługi lokalnej i odkryć po migracji, że nowoczesny sprzęt, szybsza pamięć i nowsze architektury procesorów działają wydajniej.Może to oznaczać, że Twoje maszyny wirtualne są nadmiernie obciążone i marnują pieniądzeMożesz rozważyć użycie instancji maszyn wirtualnych z możliwością wywłaszczania w Compute Engine.Być może nie potrzebujesz tak wielu systemów równoważenia obciążenia, jak myślałeś, lub udało Ci się wyczyścić bazę danych podczas przeprowadzki i teraz masz miejsce, którego nie używasz.Znalezienie sposobów na zaoszczędzenie pieniędzy i obniżenie kosztów operacyjnych w chmurze może stać się pełnoetatową pracą, która się zwróci.Google Cloud oferuje szereg narzędzi do zarządzania kosztami, które mogą pomóc w zrozumieniu cen w chmurzeAutomatyzacjaPrawidłowa automatyzacja zadań obliczeniowych w chmurze może prowadzić do kosztówoszczędności i korzyści w zakresie wydajnościMenedżer wdrażaniato produkt Google Cloud, który pomaga tworzyćzasoby w chmurze za pomocą prostych szablonówTworzenie skryptów za pomocągcloudto opcja, jeśli wolisz pisać własne automatyzacje.Podczas gdykorzyści finansowe wiążą się z automatyzacją, inne zalety obejmują:- Standardowe i powtarzalne procesy w celu obniżenia poziomu błędów- Śledzenie z możliwością audytu w zakresie zgodności i zarządzania— Lepsze zrozumienie działania aplikacji, jej uszkodzeń i sposobów naprawyAutomatyzacja zwiększa dyspozycyjność, zmniejszając zależność od alertów i czasu reakcji człowieka, zmniejsza dług techniczny dzięki dokumentowaniu przepływu pracy i pozwala inżynierom mniej skupiać się na utrzymywaniu włączonego światła, a bardziej na tworzeniu lepszych produktów, narzędzi i usług.Te koncepcje leżą u podstaw inżynierii niezawodności witryny (SRE).Google Cloud oferuje bezpłatną książkę online na temat inżynierii niezawodności witryn, a także podręcznik SRE zawierający praktyczne przykłady i studia przypadkówOddzielenie infrastruktury od koduRozdzielasz usługi wiele razy w miarę rozwoju aplikacji.Rozdzielenie połączonych usług i wiedza o tym, jak je niezależnie skalować, poprawia dostępność i niezawodność aplikacji.Ten proces składa się zasadniczo z trzech etapów:— Wdrażanie infrastruktury jako kodu (IaC) wszędzie.Wdrażając procesy IaC i zarządzania konfiguracją, zyskujesz identyfikowalne, audytowalne i odtwarzalne elementy składowe do udostępniania i konfigurowania całej infrastruktury- Rozdzielenie istniejących usług na mikrousługi.Użyj zorientowanego na komunikaty oprogramowania pośredniego, takiego jak Pub/Sub, aby każda mikrousługa była własną domeną awarii— Rozpocznij migrację usług z infrastruktury jako usługi do platformy jako usługi , a nawet działa jako usługa lub bezserwerowo jako usługa.Podróż od „monolitycznego kodu i infrastruktury” do „oddzielonych mikrousług działających wydajnie w całym spektrum IaaS” to cenny cel, który będzie wymagał czasu, wysiłku i poświęceniaDostrajanie wydajnościDostrajanie wydajności może przynieść znaczne korzyści w zakresie wykorzystania systemu i skrócenia czasu reakcji.Każde obciążenie ma inną metodę dostrajania wydajności, od plików konfiguracyjnych oprogramowania po dostrajanie flag jądra.W przypadku aplikacji LAMP dostrajanie wydajności zwykle dzieli się na trzy kategorie:— Dostrajanie chmury, sieci i systemu operacyjnego: - 5 kroków do lepszej wydajności sieci Google Cloud pomoże Ci zrozumieć, jak najlepiej wykorzystać Google Cloud Networking - Optymalizacja TCP pod kątem wydajności sieci w Google Cloud może pomóc, jeśli masz określone wymagania dotyczące opóźnień TCP - Optymalizacja dysków trwałych i lokalnych dysków SSD może pomóc w zdobyciu wiedzy na temat projektowania architektury pod kątem dużych obciążeń IOPS – Poprawa wydajności Compute Engine może poprawić wydajność aplikacji API podczas interakcji z innymi interfejsami API i usługami Google Cloud - Strojenie serwera WWW: - Dostrajanie wydajności Apache i Dostrajanie wydajności NGINX lub ogólne wyszukiwanie w Google „dostrajanie wydajności serwera WWW” poprowadzi Cię we właściwym kierunku Strojenie bazy danych: ## Co dalej - Konfigurowanie LAMP w Compute Engine - Rozmieść stos LAMP - Dowiedz się więcej o uruchamianiu obciążeń obliczeniowych w Compute Engine lub GKE Połącz GKE z Cloud SQL Eksploruj migrację do maszyn wirtualnych i migrację do kontenerów Twórz wysoce skalowalne aplikacje na w pełni zarządzanej platformie bezserwerowej dzięki App Engine Dowiedz się więcej o opcjach bazy danych w Google Cloud Zapoznaj się z architekturami referencyjnymi, diagramami, samouczkami i sprawdzonymi metodami dotyczącymi Google Cloud. Zajrzyj do naszego Centrum architektury chmury.