Jak brzmieć jak ekspert w chmurze
Opublikowany: 2022-03-10Twój kod jest napisany, a projekt wygląda świetnie. Nowy projekt jest prawie gotowy do uruchomienia, gdy klient pyta: „Czy powinien działać w chmurze?”
Oblewa cię zimny pot. Pytanie jest ogromne. Regiony i strefy , wysoka dostępność , równoważenie obciążenia — chmura ma swój własny język.
Nie martw się; masz to. Z tego artykułu dowiesz się, jak podejmować mądre decyzje dotyczące chmury i odpowiedzieć na pytania klientów dotyczące chmury.
Cztery wielkie pytania
Zanim Ty i Twój klient będziecie wiedzieć, jakiego rodzaju chmury chcesz, musisz omówić cztery pytania:
- Jak złożone jest oprogramowanie, które musisz uruchomić?
- Ile trzeba skalować?
- Jak ważne jest to, że nigdy nie spada?
- Jak szybko musi działać dla użytkowników na całym świecie?
Ten artykuł zawiera tło i informacje potrzebne do odpowiedzi na te pytania i brzmi jak ekspert w chmurze.
Zaczynajmy.
- Czym jest chmura?
- Dlaczego Twój klient dba o chmurę
- Czym różni się chmura od usługi hostingowej?
- Dlaczego maszyny wirtualne są tak ważne
- Porozmawiajmy trochę o networkingu
- Różne rodzaje chmur
- Podstawowe elementy chmury
- Pytania, które mogą zadać Twoi klienci
Czym jest chmura?
Kiedy mówimy o przetwarzaniu w chmurze , tak naprawdę mamy na myśli możliwość wypożyczenia części komputera od kogoś innego. To wszystko.
Firmy takie jak Amazon i Google mają wiele komputerów i chętnie wypożyczają Ci ich części. Wypożyczanie od nich komputerów jest opłacalne, ponieważ nie musisz budować własnych centrów danych ani zatrudniać własnego personelu ekspertów do ich obsługi.
Kiedy wynajmujesz część komputera, musisz wyglądać jak cały komputer, aby móc uruchamiać dowolne oprogramowanie. Dlatego dostawcy oferują maszynę wirtualną (VM) — oprogramowanie, które sprawia, że wygląda na to, że pracujesz na własnym, oddzielnym komputerze.
Dlaczego Twój klient dba o chmurę
Zanim dowiesz się więcej o chmurze, ważne jest, aby zrozumieć, dlaczego to obchodzi Twojego klienta. Nie lekceważmy uroku modnych słów; chmura jest teraz naprawdę modna. Twój klient może po prostu pytać, ponieważ robią to wszystkie fajne dzieciaki, ale są powody , dla których te fajne dzieciaki to robią.
Zacznijmy od podstaw. Prowadzenie własnego centrum danych byłoby uciążliwe. Będziesz musiał martwić się zużyciem energii, aktualizacją sprzętu, zatrudnieniem zespołu ekspertów do jego obsługi i tysiącem innych problemów, które nie mają nic wspólnego z Twoją firmą. Co by się stało, gdyby prąd zgasł, była powódź lub zawalił się dach? To wszystko powody, aby nie hostować swojej witryny na serwerze działającym w Twoim salonie.
Nie tylko możesz przekazać wszystkie bóle głowy komuś innemu, ale posiadanie przez niego obsługi centrum danych daje trzy duże korzyści:
- Chmury są globalne .
Istnieją w centrach danych na całym świecie, w tym w pobliżu Twojego klienta. To oznacza prędkość . Nie chcesz, aby klienci w Chinach czekali na wczytanie danych ze Stanów Zjednoczonych. Kiedy wchodzę na Google.com, dostaję inne centrum danych w Bostonie niż w Chicago czy LA, a to tylko w USA. To w dużej mierze sprawia, że prędkość Google jest możliwa. - Chmury rosną i kurczą się .
Jeśli kupię serwer, mam jeden serwer; nawet jeśli moja aplikacja nie potrzebuje całego komputera, nadal muszę płacić za ten serwer. Kiedy moja aplikacja staje się naprawdę popularna, muszę szybko kupić więcej serwerów. Chmura tak nie działa. Wypożyczanie udziałów serwerów oznacza, że mogę zmienić to, ile wypożyczam: mogę skalować zamówienie, gdy jestem zajęty, i zmniejszać, gdy nie potrzebuję tak dużo. - Chmury nigdy nie spadają .
Nigdy nie mów nigdy… ale prawie nigdy. Dostawcy usług w chmurze mówią o „pięciu dziewiątkach” — oznacza to wzrost w 99,999% czasu (z zaledwie 5,26 minutami przestoju rocznie). Możesz to jeszcze zmniejszyć dzięki usługom takim jak równoważenie obciążenia i przełączanie awaryjne.
To wszystko powody, dla których chmury mogą być fajne, ale niektóre z nich możesz uzyskać z prostej usługi hostingowej. Jeśli Twój klient pyta o chmurę, musisz znać różnicę.
Czym różni się chmura od usługi hostingowej?
Mam osobistą stronę internetową w usłudze hostingowej o nazwie Media Temple. Moja witryna korzysta z WordPressa, więc potrzebuje kilku rzeczy:
- Katalog do umieszczenia moich plików
- Serwer HTTP
- Baza danych
- PHP
Mój katalog działa na Linuksie, mój serwer HTTP to Apache, moja baza danych to MySQL, a wszystko działa na PHP; dlatego nazywają to stosem LAMP (Linux-Apache-MySQL-PHP). To może brzmieć jak wiele kawałków, ale są one ograniczone. Na przykład nie mogę zainstalować nowego oprogramowania. Jeśli chcę uruchomić swoją bazę danych na PostgreSQL, nie mam szczęścia. Nie umiem uruchamiać innych języków, takich jak Python czy Go; Nie potrafię pisać własnych osobnych programów. Dostaję tylko bardzo ograniczony, wstępnie skonfigurowany zestaw rzeczy, które wolno mi robić.
Moja strona również działa tylko na jednym serwerze w jednym miejscu. Gdzie jest ten serwer? Nie mam pojęcia. Myślę, że jest gdzieś w Stanach Zjednoczonych, ale poza tym nie wiem i nie obchodzi mnie to. Dostawca hostingu udostępnia mi jeden serwer, wpisuję adres URL i pojawia się moja witryna (przez większość czasu).
Dostawcy hostingu zapewniają prostotę. Niektóre z nich obsługują inne stosy, a niektóre pozwalają na nieco większą konfigurację, ale zawsze jest to pakiet ustawiony.
Podstawową różnicą między usługą hostingową a chmurą jest maszyna wirtualna. Usługa hostingowa daje mi tylko część istniejącego systemu operacyjnego. Maszyna wirtualna daje mi cały system operacyjny tylko dla mnie.
Dlaczego maszyny wirtualne są tak ważne
Maszyna wirtualna działa jak prawdziwa maszyna. Może działać w systemie Linux lub Windows i może zrobić wszystko, co może zrobić normalny komputer. Apple nie pozwala na uruchamianie OS X na maszynie wirtualnej (chociaż kilka osób sprawiło, że to działało, tworząc „Hackintosh”).
Kiedy masz maszynę wirtualną, masz pełną kontrolę. Możesz tam uruchomić wszystko, co chcesz — bazy danych, serwery poczty e-mail, szyfrowanie, a nawet wyszukiwanie istot pozaziemskich. Maszyna wirtualna pozwala robić wszystko, co chcesz.
Posiadanie całego systemu operacyjnego tylko dla siebie jest naprawdę potężne, ale zanim będziesz mógł zrobić coś użytecznego, musisz uzyskać dostęp do maszyny wirtualnej.
Porozmawiajmy trochę o networkingu
Maszyny wirtualne są bezużyteczne, jeśli nie możesz się do nich dostać. Potrzebujesz sieci, chociaż sieci mogą być trochę skomplikowane.
Ale te podstawy dadzą ci to, czego potrzebujesz, aby zacząć. Zacznijmy od przykładu, który znasz. Prawdopodobnie działa teraz w twoim domu.
Mam Comcast w domu. Comcast daje mi modem kablowy z adresem IP takim jak 10.0.0.89
. Chociaż daje mi tylko jeden adres IP, mam dwa laptopy, iPada i telefon; moja żona i córka mają jeszcze więcej urządzeń. Aby to zadziałało, mam router bezprzewodowy, który łączy się z modemem kablowym. Mój router bezprzewodowy nadaje każdemu urządzeniu, które posiadam, adres IP, taki jak 192.168.0.100
, 192.168.0.101
i tak dalej, ale te adresy są prywatne w mojej sieci.
Termin techniczny określający te adresy prywatne jest nieroutowalny . Istnieje kilka adresów skonfigurowanych do użytku prywatnego; większość zaczyna się od 10.
lub 192.168
, jako znak dla routerów internetowych, że te adresy nie są dozwolone na wolności. Używam tych specjalnych adresów, ponieważ można ich używać wielokrotnie.
Każdy adres IP musi być unikalny w danej sieci; w przeciwnym razie router nie wiedziałby, z którym komputerem chcę się połączyć. Istnieje 4 294 967 296 możliwych adresów IP. Chociaż projektanci sieci myśleli, że to dużo, kiedy to wszystko się zaczęło w latach 70., teraz nam się kończy. Istnieje kilka innych protokołów, takich jak IPv6, które mogą rozwiązać ten problem w przyszłości, ale dzisiaj rozwiązujemy ten problem za pomocą translatora adresów sieciowych (NAT). Pokażę ci, jak to działa.
Urządzenia w moim domu mają adresy, które są unikalne w moim domu, ale nie na całym świecie. Kiedy chcę się połączyć z Internetem, potrzebuję routera bezprzewodowego, który przetłumaczy je za mnie. Za każdym razem, gdy klikam łącze, mój laptop komunikuje się z routerem bezprzewodowym, aby wysłać żądanie za mnie; z kolei router bezprzewodowy rozmawia ze światem w moim imieniu, ale używając własnego adresu. Wtedy mój modem kablowy robi to samo, gdy komunikuje się z Comcast, a Comcast robi to samo na znacznie większą skalę, gdy wysyła moją prośbę do ogólnego Internetu. Każdy router tłumaczy adres IP z poprzedniego. Wszystko to oznacza, że wiele komputerów może ponownie używać adresu IP, takiego jak 192.168.0.101
, i wszystko działa bez konfliktów.
Więc jaki jest mój prawdziwy adres IP w prawdziwym Internecie? W tej chwili mój prawdziwy adres IP to 66.30.118.150
, a mój prywatny adres IP to 192.168.0.103
.
Skąd pochodził adres 66.30.118.150
? Jest to adres IP, którego właścicielem jest Comcast. To wyjaśnia, że jestem w Cambridge, Massachusetts, w północno-wschodnich Stanach Zjednoczonych. nie potrzebuję szczegółów; wszystko, co muszę wiedzieć, to to, że jest to prawdziwy adres publiczny, którym zarządza dla mnie Comcast. Comcast prawdopodobnie używa tego samego adresu dla setek lub tysięcy innych osób.
Cała ta translacja adresów robi coś jeszcze bardzo ważnego. Daje mi pojedynczy punkt dostępu, który kontroluje wszystko, co trafia do mojej sieci domowej. Nikt z zewnątrz nie ma dostępu do 192.168.0.103
; dla nich to inny adres. Kontrolując ruch, który może przychodzić i wychodzić, zapewniam dużo bezpieczeństwa. Mój router bezprzewodowy to punkt, w którym mogę kontrolować, co się dzieje.
Większość chmur działa tak samo jak moja sieć domowa. Komputery są wirtualne, sieci nazywane są podsieciami , a router bezprzewodowy bramą , ale to wszystko to samo. Mają maszyny wirtualne z prywatnymi adresami i bramami, które tłumaczą je na adresy publiczne. Mają też przestrzeń adresów, z której mogą korzystać tak samo, jak z mojego routera bezprzewodowego w domu. Lubię to:
To może wydawać się skomplikowane, ale nie jest zbyt trudne. Chmura to dla mnie sposób na wypożyczenie komputerów od kogoś innego i skonfigurowanie ich tak, aby wyglądały jak moja sieć domowa.
Najważniejsze rzeczy do zapamiętania to:
- Prywatne adresy IP są dostępne tylko w Twojej sieci prywatnej;
- Publiczne adresy IP są dostępne w Internecie;
- NAT pozwala, aby prywatne adresy IP wyglądały jak publiczne adresy IP.
To nie wszystko, co dzieje się w przypadku sieci w chmurze, ale to w zupełności wystarczy, aby uruchomić i uzyskać dostęp do chmury. Teraz musisz zdecydować, jakiego rodzaju chmurę chcesz.
Różne rodzaje chmur
Chmura to termin amorficzny — ludzie używają go w znaczeniu wielu różnych rzeczy. Tak naprawdę istnieją trzy różne kategorie chmur.
Chmury infrastrukturalne
Maszyna wirtualna i sieć to elementy składowe chmury infrastruktury , znanej również jako infrastruktura jako usługa ( IaaS ). Zapewniają zwirtualizowaną infrastrukturę, nad którą masz pełną kontrolę. Ty decydujesz o systemie operacyjnym i wszystkim, co na nim działa.
Zyskujesz elastyczność i kontrolę, ale jesteś odpowiedzialny za zarządzanie i obsługę wszystkiego, co instalujesz.
Chmury infrastruktury są statyczne lub elastyczne . Statyczna chmura działa jak moja sieć domowa: mam zestaw maszyn wirtualnych, na których działa to, do czego ich potrzebuję. Żyją w sieci prywatnej z publiczną bramą, która zapewnia im dostęp do Internetu. Chmury statyczne doskonale nadają się do przetwarzania danych, mają dodatkową moc obliczeniową lub hostują bardziej złożoną witrynę, niż może obsłużyć dostawca usług hostingowych. Możesz także replikować swoją statyczną chmurę do innych centrów danych na całym świecie.
Chmury elastyczne działają jak chmury statyczne, ale są dynamiczne. Zamiast stałego zestawu serwerów wirtualnych masz zestaw, który może się powiększać lub zmniejszać w zależności od Twoich potrzeb. Twoja chmura rozszerza się, gdy masz duże zapotrzebowanie na swoją witrynę lub usługę, i kurczy się z powrotem do normalnego rozmiaru, gdy tego nie masz. Wszystkie rozszerzanie i kurczenie się oszczędza pieniądze. Oddajesz moc obliczeniową, której nie potrzebujesz, gdy jej nie potrzebujesz.
Netflix używa IaaS. Amazon Web Services zapewnia infrastrukturę, a Netflix wdraża cały swój system na górze; napisał własne oprogramowanie, aby zapewnić wysoce spersonalizowaną obsługę strumieniowego przesyłania treści w wysokiej rozdzielczości. Innym przykładem jest The Weather Company — działa na szczycie chmury IBM Cloud.
Platformowe chmury
Chmura platformy , znana również jako platforma jako usługa ( PaaS ), to specjalistyczna chmura, która zapewnia bloki konstrukcyjne dla Twojej aplikacji, podczas gdy dostawca chmury zarządza za Ciebie infrastrukturą i stosem oprogramowania.
Na przykład, jeśli potrzebujesz aplikacji internetowej, PaaS może dostarczyć Ci waniliowego WordPressa lub Drupala do użycia. Jeśli potrzebujesz bazy danych, możesz wybrać MySQL lub PostgreSQL. Jeśli potrzebujesz narzędzi programistycznych, możesz wybrać Node, Java lub PHP. Nie musisz się martwić, jaki system operacyjny jest uruchomiony ani czy trzeba zastosować poprawkę bezpieczeństwa MySQL — dostawca chmury zajmie się tym za Ciebie.
Heroku to chmura PaaS. Zawiera oprogramowanie pod spodem, a na dodatek po prostu piszesz, co chcesz. Zapewnia pewną elastyczność, ale zapewnia znacznie więcej funkcji zarządzania niż chmura IaaS.
Chmury oprogramowania
Chmura oprogramowania , znana również jako oprogramowanie jako usługa ( SaaS ), to bardzo wyspecjalizowany rodzaj chmury, który zapewnia dobrze zdefiniowaną usługę online. Dostawcy hostingu to szczególny rodzaj chmury SaaS pod osłonami; działają w bardzo ograniczony sposób.
Wix to kolejny przykład SaaS. Zapewnia kompletną usługę hostingu aplikacji internetowych ze świetnym edytorem, obsługą logowania użytkowników i płatności oraz szeroką gamą szablonów do wyboru. Wix skupia się tylko na jednej pracy. Jest bardzo ograniczony pod względem funkcjonalności, ale także łatwiejszy w użyciu.
Podstawowe elementy chmury
Rozmawialiśmy o różnych rodzajach chmur i dlaczego ich potrzebujesz. Zanim naprawdę będziesz mógł brzmieć jak ekspert w dziedzinie chmury, musisz znać różne składniki, które składają się na chmurę.
Wirtualne maszyny
Maszyna wirtualna to oprogramowanie, które działa jak sprzęt, działając jak prawdziwa maszyna, bez konieczności posiadania osobnego serwera w dowolnym miejscu. Z maszyną wirtualną możesz robić, co chcesz, a przejdzie ona test kaczki — chodzi i kwaka jak prawdziwy serwer. Twoje oprogramowanie nigdy nie dostrzeże różnicy.
Ta elastyczność ma swoją cenę. Jesteś odpowiedzialny za utrzymanie swojej maszyny wirtualnej. Dostawca chmury upewni się, że sprzęt jest w najlepszym stanie, ale będziesz musiał wybrać swój system operacyjny i wszystko, co na nim działa — poprawki bezpieczeństwa, aktualizacje oprogramowania, konfigurację. To wszystko na ciebie.
A jeśli nie korzystasz z elastycznej chmury, lepiej pamiętaj o wydaniu wszelkich maszyn wirtualnych, których już nie potrzebujesz. Dostawca naliczy opłatę za to, czy maszyna wirtualna działa, czy nie.
Podsieci
Omówiliśmy już sieci w chmurze. Podsieci to sieci działające w chmurze.
Prywatne i publiczne adresy IP
Sieć w chmurze przypisze nieroutowalny adres IP do maszyn wirtualnych w podsieci. Są one znane jako prywatne adresy IP, ponieważ są prywatne w mojej sieci. Gdy maszyna wirtualna wysyła żądania do Internetu, brama publiczna przetłumaczy te żądania. Nazywa się to ruchem wychodzącym przez dostawców chmury.
Tak jak nie mogę uzyskać dostępu do drukarki domowej z kawiarni, w chmurze potrzebuję publicznego adresu IP, aby uzyskać dostęp do maszyny wirtualnej.
Do maszyn wirtualnych można przypisać publiczne adresy IP, aby umożliwić ruch przychodzący (ruch przychodzący z Internetu kierowany do maszyn wirtualnych). To ważne, ponieważ dostawcy usług w chmurze będą naliczać różne opłaty za ruch przychodzący i wychodzący.
Klucze SSH
Klucz SSH to prywatna informacja, która umożliwia dostęp do chmury. Składa się z dwóch plików. Istnieje klucz publiczny, który wygląda tak:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5b8xmtjUd1taP4svy9FM/WZc/n5gkqKVkhIsqW27hw2WuhfTVNLA6IBBOs9+br+HlqGYwgYB3DSh0Zm/3Bok1uQhinH77FmKsrPGDpvtJv16weIvGiTMVp+Mct8DVKl48KZxvQKa0Hp6MxEc7cQ9WPvzWn9BPLHERSkSNwXSUobqpFBgIPy9UBWr5DsI2Li5HeMgMgTcbuVVdO/8I/rhKoIyTqkhY4CZcyssmWhMvPmk6+9IcOr0O4SyW9TL+CZgDH1mW2dUypT+1j6HgFjr9H8NfJ4EKnWnFkQXo8HZ4oh6lSTaIfDQfnbrjVUO14N7FW9ZgXbL9cJVx5FLw3ny9 [email protected]
A jest klucz prywatny, który wygląda tak:
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAuW/MZrY1HdbWj+LL8vRTP1mXP5+YJKilZISLKltu4cNlroX0 1TSwOiAQTrPfm6/h5ahmMIGAdw0odGZv9waJNbkIYpx++xZirKzxg6b7Sb9esHiL xokzFafjHLfA1SpePCmcb0CmtB6ejMRHO3EPVj781p/QTyxxEUpEjcF0lKG6qRQY CD8vVAVq+Q7CNi4uR3jIDIE3G7lVXTv/CP64SqCMk6pIWOAmXMrLJloTLz5pOvvS HDq9DuEslvUy/gmYAx9ZltnVMqU/tY+h4BY6/R/DXyeBCp1pxZEF6PB2eKIepUk2 iHw0H52641VDteDexVvWYF2y/XCVceRS8N58vQIDAQABAoIBAHU7UKW+m2X55Dui zf0SqW5rXUtDwhOq6qTZhoGIvFjOBwKGfXosjRyyGJ0o6jyqvM1L4Q7ZUDXzg5fT CwXIhAYKrFprRXvHcypnS2hHsKW27k3yZ6tkIX+XW+VT5fzdhCXUyKks3jcRBHtJ ux7BI0kLGR02e6MSHYkowp47p1Auukx1saRkFTwvy+znABgqVETvtHBxAiElXndL JfQntaQacgWWDjl2qUj+06IB/Qzd9/Mo1Vtdb8SUZxv/Qc2raSi3LL0N4aSJGLGU pq395ggv9NdhUQf+DN9uGaOC4hYeGdO8gm27yysZ4rTT5iln5wOaCAcMTMrGL4+k GoU/nKECgYEA7AP/Mh9sUi9AX/17a3A/zxNAO1ZrvM+Caj/X/t/pt3HEOhqLz7o5 z3g8/Z+H0CJLZNiP9XbMak2wvOiqRj0y+FihX/ESll6XgIEPTBUcFSirWMe4f9og FltrnelUjHG9MTDW0P4jmmp1E5V8RgnCCv2VjN40ulP5zHPXXdU2FP8CgYEAySNs /qlFL7DTB/A851y6cUzQC5kiKlr/T8aUtOHeBo626jlnHDy/VY9vIJ0ttsYyHCdM OSdqZh5wRwvshr94tpOBQNnDTI4Xv7t2couHl7q2xTOYeWViwGyZaatNYlWWFh/u YSCTd2jn6cvBZOZP3BAiWoF9nzLcsjfpNLdzAkMCgYAx8TaTOKsHSRBqP41aUspt 2zkAVW0+6vpB2Xivalpegyhu0yc6scGB8YOWd6eZl2g00s7DtnvTEtWPY/yEGHcs rjSXxL+WKjYM70J5aw4iPBTmGH0mMNYRZQ8Ev1cw0PCj9B3A48ZM6rITjtJZT79L 7BU1Vd/6fcKiTPEJ3hAvqQKBgBKOQBnmR8m0iGNtGFFHzrNxIKhRQkOiDXewnDtr su3r8Jf/H7INMKGWD+x0U6lO84SBY5jKOBifqkADq5hqxZoiVYREEq5XVX2Mr8q1 cJbg1MewkNpyLgAOhMCo2wS9XJFB9N3lAXW8qdh5waerT6a/nku3Mn2jVZTjb5I7 clK9AoGAZLuvLAJpFOf/mweajULV+oFMGzIArvbk1c+cGySeI5uZwfQ9lv2MOb0N DuFTXZt6QpKV9Nix/8KgBIP2Vac6gSAeF6kIXk2+nV6gXm5tojYrf6gG1jY8ceRD IFSeGlnBhYVrFcQ79fYwJtSQgGde4PtNF1yq9ipluAyLuy1cLUc= -----END RSA PRIVATE KEY-----
Używasz tych dwóch plików razem zamiast hasła.
Uwierzytelnianie za pomocą klucza publicznego SSH to niezawodny sposób logowania się do systemu zdalnego, bezpieczniejszy niż standardowa nazwa użytkownika i hasło. (SSH oznacza „bezpieczną powłokę”). Prawdopodobnie widziałeś już wcześniej klucze SSH w postaci swojego klucza Github.
Klucze SSH opierają się na kryptografii klucza publicznego i uwierzytelnianiu typu wyzwanie-odpowiedź, aby zapobiegać atakom siłowym i innym zagrożeniom.
Te klucze zapewniają, że tylko Ty masz dostęp do swoich maszyn wirtualnych, i świetnie współpracują ze skryptami i innymi zautomatyzowanymi zadaniami.
Centra danych
Centrum danych to duży budynek pełen komputerów. Dostawcy usług w chmurze wynajmują Ci ich części.
Komputery są potężnymi serwerami, z których każdy może obsługiwać wiele maszyn wirtualnych jednocześnie. Serwery te zużywają dużo energii i generują dużo ciepła, a ponadto muszą być fizycznie blisko siebie, aby sieć była szybka. Tak więc centrum danych to obiekt, w którym dostawca chmury przechowuje cały fizyczny sprzęt obsługujący część jego chmury. Centrum danych wymaga odpowiedniego chłodzenia, nadmiarowego zasilania, ogromnej przepustowości sieci, kontrolowanego dostępu i wykwalifikowanego personelu, aby wszystkie maszyny działały.
Centrum danych może obsłużyć duże obciążenia, ale znajduje się tylko w jednym miejscu. Globalny dostawca chmury musi rozmieścić centra danych na całym świecie, aby zapewnić klientom na całym świecie akceptowalne opóźnienia dostępu do sieci na swoich serwerach.
Regiony i strefy
Dostawca chmury musi zorganizować swoje centra danych, aby zapewnić, że będzie mógł spełniać żądania podczas przerw w dostawie prądu, powodzi, huraganów i innych katastrof. Dostawcy nazywają to Quality of Service , a wszystko to jest częścią zapewnienia, że chmura nigdy nie przestanie działać.
Region to obszar geograficzny z określonym opóźnieniem sieci w obie strony (odkąd dokąd?). Regiony mają nazwy takie jak Dallas, Tokio czy Frankfurt. Masz gwarancję, że uzyskasz opóźnienie w sieci, za które płacisz w tym obszarze.
Region składa się z co najmniej jednej strefy. Strefy to izolowane centrum danych w regionie z niezależną infrastrukturą elektryczną, mechaniczną i sieciową, zaprojektowaną tak, aby gwarantować brak wspólnego pojedynczego punktu awarii między innymi strefami. Umożliwia to tworzenie wysoce dostępnych aplikacji odpornych na awarie poprzez wdrażanie ich w wielu strefach w regionie. Region może działać dalej, jeśli strefa ulegnie awarii, ale jest naprawdę źle, gdy wszystkie strefy ulegną awarii.
W centrum danych znajduje się strefa. Wiele centrów danych jest zgrupowanych razem, tworząc region wielostrefowy. Strefy mają nazwy takie jak us-południe-1, us-południe-2 i us-południe-3. Mały region może być obsługiwany przez jedno solidne centrum danych, podczas gdy zaludniony region może wymagać wielu centrów danych, aby sprostać wymaganiom sieciowym i obliczeniowym.
Odzyskiwanie po awarii, wysoka dostępność i tolerancja na błędy
Te koncepcje sprawiają, że pocą się nawet najwybitniejsi architekci IT. Nie śpią w nocy, zastanawiając się, jak sprawić, by chmura nigdy nie opadła.
Ale masz to! Chmura (prawie) nigdy nie spada, a jeśli tak się stanie, łatwo jest zapewnić sobie ochronę. Przeanalizujmy te koncepcje jeden po drugim:
Odzyskiwanie po awarii (DR) to zestaw zasad i procedur szczegółowo opisujących, co należy zrobić podczas i po poważnym incydencie. Zaprojektuj swój system tak, aby działał z wdziękiem (co oznacza, że Twoi użytkownicy zrozumieją, że coś jest nie tak, ale masz to pokryte), a po incydencie będziesz wiedział, jak przywrócić go tak szybko, jak to możliwe. Potrzebujesz DR, gdy cały region ulegnie awarii, Twoja usługa jest poddawana atakom cybernetycznym lub jest podatna na ataki i musisz ją wyłączyć.
Wysoka dostępność (HA) to tylko cel — „pięć dziewiątek”, o których mówiliśmy wcześniej. Chcesz, aby Twoja aplikacja była odporna na awarie. Jest to prawie niemożliwe, jeśli uruchomisz serwer w swoim salonie, ale jest to wykonalne w chmurze. Osiągasz cel wysokiej dostępności, opierając się na odpornej na awarie infrastrukturze chmury — wszystko jest załatwione za Ciebie.
Infrastruktura odporna na awarie to projekt, który zapewnia, że kopia zapasowa przejmie kontrolę, jeśli coś ulegnie awarii. Chmura to system odporny na błędy. Jeśli jedna strefa w regionie ulegnie awarii, pozostałe strefy zapewnią ciągłość usług. Musisz skorzystać z tej odporności na uszkodzenia, używając komponentów, takich jak systemy równoważenia obciążenia.
Systemy równoważenia obciążenia
Wysoka dostępność wynika z uruchamiania wielu instancji Twojej aplikacji w tym samym czasie. System równoważenia obciążenia to urządzenie, które przekieruje ruch od użytkowników do jednej działającej i sprawnej instancji; pobiera żądania i wysyła je do następnego zdrowego serwera.
Moduł równoważenia obciążenia monitoruje kondycję maszyn wirtualnych i może uwzględniać różne parametry. Może wykryć awarię maszyny wirtualnej lub aplikacji, ale może również sprawdzić opóźnienie sieci, określone dane w nagłówkach żądań i wiele więcej.
Pytania, które mogą zadać Twoi klienci
Twoja aplikacja działa świetnie, ale Twój klient myśli o korzystaniu z chmury. Czy jesteś na to gotowy? Oto typowe pytania, na które powinieneś być w stanie odpowiedzieć, aby brzmieć jak ekspert w chmurze.
Kiedy potrzebuję więcej niż dostawcę usług hostingowych?
Twój klient może z pełną prędkością zająć się migracją wszystkich usług do chmury. Dzięki większej elastyczności, odporności i geograficznie rozproszonej obecności chmura ułatwia ekscytację.
Ale chociaż chmura jest szybsza, bardziej elastyczna i niezawodna, jest również droższa; może nawet wymagać dodatkowego wsparcia IT, aby utrzymać działanie systemu klienta. Chmura nie jest dla wszystkich.
Jeśli system Twojego klienta działa obecnie u dostawcy hostingu, czy powinieneś przenieść się do chmury?
Zastanów się nad obecnymi i przyszłymi potrzebami: jeśli Twój klient szuka wysokiej dostępności, aby zachować zgodność z przepisami, przejdź do chmury. Jeśli Twój klient jest skierowany do odbiorców na całym świecie, przenieś się do chmury. Jeśli spodziewane są drastyczne wzrosty popytu w ciągu roku, przenieś się do chmury.
Jeśli system będzie dostępny głównie dla użytkowników lokalnych w określonej lokalizacji lub jeśli nie ma kluczowego znaczenia dla Twojego klienta, nie przenoś się do chmury.
Ważny wniosek: jeśli system Twojego klienta działa dobrze u dostawcy hostingu, powinieneś rozważyć istniejące oferty SaaS, które zapewnią odporność i wydajność chmury, jednocześnie izolując klienta od niepotrzebnych wydatków na IT. Istnieją tradycyjni dostawcy hostingu, tacy jak Bluehost, oferujący usługi oparte na chmurze, a niektórzy dostawcy usług w chmurze oferują usługi hostingowe.
Jakiego typu chmury powinienem użyć?
Znalezienie odpowiedniego typu chmury może być przytłaczające, ponieważ każdy dostawca oferuje szeroką gamę usług i opcji. Pierwszą rzeczą do rozważenia jest złożoność stosu oprogramowania klienta i sprzętu, na którym aktualnie pracuje.
Jeśli cały stos jest wysoce dostosowany za pomocą przekompilowanych bibliotek open-source, dostosowanych jąder Linuksa lub specjalnych optymalizacji pamięci masowej, powinieneś najpierw przyjrzeć się IaaS. Niektórzy dostawcy pozwolą Twojemu klientowi mieszać i dopasowywać, używając IaaS do wysoce niestandardowych komponentów, jednocześnie wybierając PaaS dla innych części.
Jeśli jednak potrzeby Twojego klienta są w większości oparte na gotowych bibliotekach, PaaS jest najprawdopodobniej lepszym punktem wyjścia; dostawca chmury zapewni, że kod Twojego klienta będzie zawsze działał na podstawie aktualnych zależności.
Po zidentyfikowaniu odpowiedniego modelu chmury wymagania i kryteria oceny będą unikalne dla Twojego klienta. Ale zawsze warto zwracać uwagę na wymagania niefunkcjonalne: Czy Twój klient musi przestrzegać przepisów, certyfikatów lub standardów specyficznych dla danej domeny? Czy są uzależnieni od określonych dostawców lub współpracują z nimi?
Na koniec pomyśl o wsparciu migracji dostawcy chmury i uzależnieniu od dostawcy — jak trudno jest Twojemu klientowi przeprowadzić migrację do konkurencji po uruchomieniu systemu. Rozważ plan wyjścia, nawet jeśli Twój klient nie planuje się wyprowadzić.
Jak się upewnić, że moja witryna nigdy nie przestanie działać?
Załóżmy, że Twój klient pracuje w amerykańskiej branży opieki zdrowotnej. HIPAA wymaga, aby każda organizacja miała jakiś plan odzyskiwania po awarii, który obejmuje Twoją witrynę internetową. Firma Twojego klienta upadnie, jeśli witryna ulegnie awarii, więc potrzebujesz odporności chmury.
Chmura zapewnia narzędzia, których potrzebujesz, aby Twoja witryna nigdy nie ulegnie awarii. Będziesz potrzebować wielu instancji aplikacji działających w tym samym czasie oraz sposobu kontrolowania ruchu, aby Twoi użytkownicy nigdy nie mieli dostępu do złej instancji.
Jeśli Twój klient wdraża Twoją witrynę w chmurze IaaS, będziesz potrzebować wielu wystąpień aplikacji i modułu równoważenia obciążenia do kontrolowania ruchu. Jeśli Twój klient ma chmurę PaaS, po prostu upewnij się, że masz uruchomionych wiele instancji, ponieważ chmura automatycznie dostarczy część routingu.
Jeśli witryna korzysta z bazy danych, upewnij się, że chmura klienta jest skonfigurowana do obsługi koligacji sesji (nazywanych również sesjami przyklejonymi ), co jest sposobem na zapewnienie, że cały ruch użytkowników jest kierowany do tej samej maszyny wirtualnej.
Jak sprawić, by moja witryna była szybka dla wszystkich na świecie?
Jeśli Twój klient działa globalnie i wymaga, aby Twoja aplikacja zapewniała szybką obsługę użytkownikom końcowym na całym świecie, potrzebujesz elastyczności i zasięgu geograficznego chmury.
Mimo że chmura ma charakter globalny, instancje Twojej aplikacji muszą działać blisko miejsca, w którym znajdują się Twoi użytkownicy.
Współpracuj z klientem, aby określić, które regiony chmury najlepiej obsługują Twoją bazę użytkowników i gdzie Twój klient obsługuje interfejsy API obsługujące Twoją witrynę — Twoje instancje powinny znajdować się blisko obu. Możesz również omówić konfigurację globalnego serwera proxy, który kieruje ruch do różnych obszarów geograficznych na podstawie lokalizacji użytkownika.
Wniosek
Dostarczanie skalowalnych i odpornych usług rosnącej bazie klientów w Internecie jest bardzo złożone; ledwo zarysowaliśmy tu powierzchnię. Dlatego chcemy pozostawić szczegóły Amazonowi, Google i innym dostawcom chmury. Twoim zadaniem jest podejmowanie dobrych decyzji dotyczących korzystania z ich usług.
Pamiętaj, gdy Twój klient zapyta Cię, czy coś powinno działać w chmurze, musisz zadać cztery pytania:
- Jak złożone jest oprogramowanie, które musisz uruchomić?
- Ile trzeba skalować?
- Jak ważne jest to, że nigdy nie spada?
- Jak szybko musi działać dla użytkowników na całym świecie?
Zacznij od tych czterech prostych pytań, a będziesz brzmiał jak ekspert od chmury. Współpracuj ze swoimi klientami, aby zrozumieć, co oznaczają dla nich odpowiedzi na te pytania, biorąc pod uwagę różne rodzaje chmury, a będziesz mieć duży udział w rozwiązywaniu ich potrzeb.