16 innowacji w chmurze, którym nie sposób się oprzeć

Za modelem cenowym pay-as-you-go, chmura publiczna roi się od najnowszych i najwspanialszych narzędzi deweloperskich, devops i AI do szybszego budowania lepszych i inteligentniejszych aplikacji.

16 innowacji w chmurze, którym nie sposób się oprzeć

Deyan Georgiev / Shutterstock

Kiedy myślimy o chmurze publicznej, często pierwszą kwestią, która przychodzi nam do głowy, są finanse: przeniesienie obciążeń z centrów danych o bliskiej wydajności do chmury zmniejsza wydatki kapitałowe (CapEx), ale zwiększa wydatki operacyjne (OpEx). To może, ale nie musi, być atrakcyjne dla dyrektora finansowego, ale nie jest to dobry pomysł dla programistów, operatorów lub tych, którzy łączą te dwie rzeczy jako devops. Z ich punktu do widzenia cloud computing oferuje wiele możliwości, które po prostu nie są dostępne, gdy nowe usługi oprogramowania wymagają zakupu nowego sprzętu serwerowego lub pakietów oprogramowania dla przedsiębiorstw. To, czego wdrożenie trwa sześć miesięcy w siedzibie firmy, może czasami zająć 10 minut w chmurze. To, co wymaga podpisów na trzech poziomach zarządzania w celu utworzenia w siedzibie firmy, może być obciążone kartą kredytową w chmurze.

To nie tylko kwestia czasu i wygody. Chmura umożliwia również większą szybkość rozwoju oprogramowania, co często prowadzi do skrócenia czasu wprowadzenia produktu na rynek. Chmura może również pozwolić na więcej eksperymentów, co często prowadzi do wyższej jakości oprogramowania.

Ponadto, w chmurze pojawiają się prawdziwe innowacje, które mogą przynieść natychmiastowe korzyści i rozwiązać długotrwałe problemy z przetwarzaniem w siedzibie firmy. Poniżej omawiamy 16 fascynujących możliwości chmury.

Instancje obliczeniowe na żądanie

Potrzebujesz nowej bazy danych na własnym serwerze w siedzibie firmy? Ustaw się w kolejce i przygotuj się na czekanie przez miesiące, jeśli nie lata. Jeśli możesz tolerować posiadanie maszyny wirtualnej (VM) zamiast serwera fizycznego, a Twoja firma korzysta z VMware lub podobnych technologii, oczekiwanie może potrwać tylko kilka tygodni. Ale jeśli chcesz utworzyć instancję serwera w chmurze publicznej, możesz mieć ją dostarczoną i uruchomioną w ciągu około 15 minut - i będziesz mógł dostosować jej rozmiar do swoich potrzeb, a także wyłączyć ją, gdy jej nie używasz.

Gotowe obrazy maszyn wirtualnych

Możliwość uruchomienia maszyny wirtualnej z wybranym systemem operacyjnym jest wygodna, ale potem trzeba jeszcze zainstalować i licencjonować potrzebne aplikacje. Możliwość uruchomienia maszyny wirtualnej z wybranym systemem operacyjnym i aplikacjami gotowymi do pracy jest bezcenna.

Usługi bezserwerowe

„Bezserwerowy” oznacza, że usługa lub fragment kodu będzie działać na żądanie przez krótki czas, zwykle w odpowiedzi na zdarzenie, bez potrzeby posiadania dedykowanej maszyny wirtualnej, na której będzie działać. Jeśli usługa jest bezserwerowa, to zazwyczaj nie trzeba się w ogóle martwić o bazowy serwer; zasoby są przydzielane z puli utrzymywanej przez dostawcę chmury.

Usługi bezserwerowe, obecnie dostępne na każdej głównej chmurze publicznej, zazwyczaj charakteryzują się automatycznym skalowaniem, wbudowaną wysoką dostępnością i modelem rozliczeniowym pay-for-value. Jeśli chcesz mieć aplikację bezserwerową, nie będąc zamkniętym na żadną konkretną chmurę publiczną, możesz użyć neutralnego dla dostawców frameworka bezserwerowego, takiego jak Kubeless, który wymaga jedynie klastra Kubernetes (dostępnego jako usługa w chmurze).

Kontenery na żądanie

Kontener to lekka wykonywalna jednostka oprogramowania, znacznie lżejsza od maszyny wirtualnej. W kontenerze pakowany jest kod aplikacji i jego zależności, takie jak biblioteki. Kontenery współdzielą jądro systemu operacyjnego maszyny głównej. Kontenery mogą działać na silniku Docker Engine lub na usłudze Kubernetes. Uruchamianie kontenerów na żądanie ma wszystkie zalety uruchamiania maszyn wirtualnych na żądanie, z dodatkowymi korzyściami w postaci mniejszego zapotrzebowania na zasoby i niższych kosztów.

Wstępnie zbudowane obrazy kontenerów

Kontener Docker jest wykonywalną instancją obrazu Docker, który jest określony przez plik Dockerfile. Plik Dockerfile zawiera instrukcje dotyczące budowania obrazu i często jest oparty na innym obrazie. Na przykład, obraz zawierający Apache HTTP Server może być oparty na obrazie Ubuntu. W rejestrze Dockera można znaleźć predefiniowane pliki Dockera, można też zbudować własne. Obrazy Dockera można uruchamiać w lokalnej instalacji Dockera lub w dowolnej chmurze z obsługą kontenerów. Podobnie jak w przypadku gotowych obrazów maszyn wirtualnych, plik Docker może szybko uruchomić pełną aplikację, ale w przeciwieństwie do obrazów maszyn wirtualnych, pliki Docker są niezależne od producenta.

Orkiestracja kontenerów Kubernetes

Kubernetes (K8s) jest systemem open source do automatyzacji wdrażania, skalowania i zarządzania skonteneryzowanymi aplikacjami. K8s został oparty na wewnętrznej technologii „Borg” Google. Klastry K8s składają się z zestawu maszyn roboczych, zwanych węzłami, które uruchamiają skonteneryzowane aplikacje. Węzły robotnicze hostują strąki, które zawierają aplikacje; płaszczyzna kontrolna zarządza węzłami robotniczymi i strąkami. K8s działa wszędzie i skaluje się bez ograniczeń. Wszystkie główne chmury publiczne posiadają usługi K8s; można również uruchomić K8s na własnej maszynie deweloperskiej.

Autoskalowanie serwerów

Nie trzeba konteneryzować swoich aplikacji i uruchamiać ich pod Kubernetes, aby automatycznie skalować je w chmurze. Większość chmur publicznych pozwala na automatyczne skalowanie maszyn wirtualnych i usług w górę (lub w dół) w zależności od wykorzystania, albo poprzez dodawanie (lub odejmowanie) instancji, albo zwiększanie (lub zmniejszanie) rozmiaru instancji.

Globalne bazy danych

Główne chmury publiczne i kilku dostawców baz danych wdrożyło rozproszone bazy danych o skali planety z takimi podstawami, jak tkaniny danych, redundantne połączenia i algorytmy konsensusu rozproszonego, które umożliwiają im wydajną pracę i niezawodność na poziomie pięciu dziewiątek (99,999% czasu pracy). Przykłady specyficzne dla chmury obejmują Google Cloud Spanner (relacyjny), Azure Cosmos DB (wielomodelowy), Amazon DynamoDB (wartości kluczowe i dokumenty) oraz Amazon Aurora (relacyjny). Wśród dostawców można wymienić CockroachDB (relacyjny), PlanetScale (relacyjny), Fauna (relacyjny/bezserwerowy), Neo4j (grafowy), MongoDB Atlas (dokumentowy), DataStax Astra (szerokokolumnowy) i Couchbase Cloud (dokumentowy).

Usługi hybrydowe

Firmy z dużymi inwestycjami w centra danych często chcą rozszerzyć swoje istniejące aplikacje i usługi na chmurę, zamiast zastępować je usługami w chmurze. Wszyscy główni dostawcy usług chmurowych oferują obecnie sposoby realizacji tego celu, zarówno poprzez wykorzystanie określonych usług hybrydowych (na przykład baz danych, które mogą obejmować centra danych i chmury), jak i serwerów lokalnych oraz zasobów chmur brzegowych, które łączą się z chmurą publiczną, często nazywanych chmurami hybrydowymi.

Skalowalne szkolenie i przewidywanie w zakresie uczenia maszynowego

Szkolenie w zakresie uczenia maszynowego, zwłaszcza głębokiego uczenia, często wymaga znacznych zasobów obliczeniowych przez wiele godzin do tygodni. Z drugiej strony, predykcja z uczeniem maszynowym wymaga zasobów obliczeniowych na poziomie sekund na predykcję, chyba że wykonujesz predykcje wsadowe. Korzystanie z zasobów chmury jest często najwygodniejszym sposobem realizacji szkolenia i predykcji modelu.

Układy GPU, TPU i FPGA w chmurze

Głębokie uczenie z dużymi modelami i bardzo dużymi zbiorami danych potrzebnymi do dokładnego wytrenowania może często trwać znacznie dłużej niż tydzień na klastrach jednostek CPU. Układy GPU, TPU i FPGA mogą znacząco skrócić czas szkolenia, a ich dostępność w chmurze ułatwia korzystanie z nich w razie potrzeby.

Wstępnie wytrenowane usługi AI

Wiele usług AI może być dobrze wykonywanych przez wstępnie wytrenowane modele, na przykład tłumaczenie języków, zamiana tekstu na mowę i identyfikacja obrazów. Wszystkie główne usługi w chmurze oferują wstępnie wytrenowane usługi AI oparte na solidnych modelach.

Dostosowywane usługi AI

Czasami wstępnie wytrenowane usługi AI nie spełniają dokładnie tego, co jest potrzebne. Uczenie transferowe, w ramach którego trenuje się tylko kilka warstw sieci neuronowej na istniejącym modelu, może zapewnić dostosowaną usługę stosunkowo szybko w porównaniu do szkolenia modelu od podstaw. Ponownie, wszyscy główni dostawcy usług w chmurze oferują uczenie transferowe, chociaż nie wszyscy nazywają je tą samą nazwą.

Usługi monitorowania

Wszystkie chmury obsługują co najmniej jedną usługę monitorowania i ułatwiają konfigurowanie usług w chmurze do monitorowania. Usługi monitorowania często pokazują graficzny pulpit nawigacyjny i mogą być skonfigurowane tak, aby powiadamiać o wyjątkach i nietypowych wskaźnikach wydajności.

Usługi rozproszone

Bazy danych nie są jedynymi usługami, które mogą odnieść korzyści z działania w sposób rozproszony. Problemem jest opóźnienie. Jeśli zasoby obliczeniowe znajdują się daleko od danych lub od zarządzanych procesów, wysyłanie i odbieranie instrukcji i informacji trwa zbyt długo. Jeśli opóźnienie jest zbyt duże w pętli sprzężenia zwrotnego, pętla może łatwo wymknąć się spod kontroli. Jeśli opóźnienie jest zbyt duże pomiędzy uczeniem maszynowym a danymi, czas potrzebny na przeprowadzenie szkolenia może być zbyt długi. Aby rozwiązać ten problem, dostawcy usług w chmurze oferują połączone urządzenia, które mogą rozszerzyć swoje usługi na centra danych klienta (chmura hybrydowa) lub w pobliżu hal fabrycznych klienta (przetwarzanie brzegowe).

Obliczenia brzegowe (edge computing)

Potrzeba przeniesienia analizy i uczenia maszynowego geograficznie blisko maszyn i innych obiektów świata rzeczywistego (Internet Rzeczy, lub IoT) doprowadziła do powstania wyspecjalizowanych urządzeń, takich jak miniaturowe urządzenia obliczeniowe z procesorami graficznymi i czujnikami, oraz architektur wspierających je, takich jak serwery brzegowe, platformy automatyzacji i sieci dostarczania treści. Ostatecznie, wszystkie te urządzenia łączą się z powrotem do chmury, ale możliwość wykonywania analiz na krawędzi może znacznie zmniejszyć ilość danych wysyłanych do chmury, jak również zmniejszyć opóźnienia.

Quod errat demonstrandum. Każda z omawianych przez nas innowacji w chmurze może uzasadniać jej wykorzystanie. Czyż korzyści te nie są naprawdę nieodparte?

Źródło: InfoWorld

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200