Czy ekscytuje Cię idea technologii bezserwerowej? Planujesz rozpocząć nowy projekt, ale nie wiesz, od czego zacząć?
Przygotowaliśmy dla Ciebie przegląd najpopularniejszych frameworków bezserwerowych, które mogą Ci w tym pomóc!
Przetwarzanie bezserwerowe zyskuje na popularności wśród entuzjastów, którzy doceniają możliwość mniejszego zarządzania infrastrukturą, a jednocześnie większego skupienia na tworzeniu. Choć technologia ta jest stosunkowo nowa, wielu programistów i inżynierów aktywnie pracuje nad tworzeniem innowacyjnych rozwiązań dla przyszłości operacji bezserwerowych.
Jak zapewne wiesz, termin „serverless” (bezserwerowy) nie oznacza całkowitego braku serwerów. Chodzi raczej o zredukowanie ich liczby i zwiększenie roli funkcji. Jeśli szukasz niezawodnej platformy FaaS (funkcje jako usługa) dla swojego kolejnego przedsięwzięcia, zachęcamy do zapoznania się z naszym wcześniejszym opracowaniem dotyczącym najlepszych platform obliczeniowych bezserwerowych.
Mając to na uwadze, przyjrzyjmy się dostępnym frameworkom. Podsumujemy kilka ciekawych projektów, które rozwijają się w sferze bezserwerowej, więc koniecznie czytaj dalej!
Potęga AWS Amplify
Z AWS Amplify szybko stworzysz skalowalne aplikacje bezserwerowe dla sieci i urządzeń mobilnych, zyskując nieograniczoną elastyczność. Konfiguruj swoje backendy bezserwerowe z danymi, pamięcią masową, uwierzytelnianiem i wieloma innymi funkcjami, korzystając z inteligentnych przepływów pracy.
Połącz swoje aplikacje mobilne i webowe z istniejącymi lub nowymi zasobami AWS, pisząc przy tym mniej kodu. Za pomocą kilku kliknięć możesz hostować i wdrażać jednostronicowe aplikacje internetowe, aplikacje renderowane po stronie serwera oraz strony statyczne. Ponadto umożliwia on łatwe zarządzanie treścią i użytkownikami Twojej aplikacji.
AWS Amplify wspiera programistów front-end, mobilnych i webowych, umożliwiając im szybsze tworzenie aplikacji typu full-stack w AWS oraz dostosowywanie ich do aktualnych potrzeb. Amplify obsługuje wiele platform internetowych, takich jak React, Angular, JavaScript, Vue.js, Next.js, a także platformy mobilne: iOS, Ionic, Flutter, Android i React Native.
Możesz skorzystać z licznych komponentów interfejsu użytkownika Amplify, aby przyspieszyć tworzenie aplikacji. Uzyskaj dostęp do wielu funkcji i narzędzi, takich jak uwierzytelnianie, interakcje, funkcje, DataStore, zarządzanie użytkownikami, API (REST, GraphQL), analityka, przewidywania AI/ML, przechowywanie, PubSub, powiadomienia push i inne. Dodatkowo otrzymujesz zarządzany hosting, podgląd PR, CI/CD, niestandardowe domeny i monitorowanie wdrożeń.
Midway
Wykorzystaj platformę bezserwerową Node.js do budowy tradycyjnych aplikacji po stronie serwera, mniejszych programów, mikrousług oraz usług bezserwerowych za pomocą Midway. Został on napisany w TypeScript i wykorzystuje mechanizm wstrzykiwania IoC, aby oddzielić logikę aplikacji i ułatwić tworzenie rozbudowanych aplikacji Node.js w bardziej naturalny sposób.
Midway może korzystać z Express, EggJS lub Koa jako bazowych frameworków. Oferuje podstawowe rozwiązania takie jak GRPC, Dubbo.js, RabbitMQ i Socket.io do samodzielnego użytku. Co więcej, Midway stanowi bezserwerową platformę internetową Node.js dla programistów full-stack i front-end.
Midway umożliwia tworzenie aplikacji nowej generacji, które działają w kontenerach, na maszynach wirtualnych, w chmurze Alibaba Cloud, AWS i Tencent Cloud. Możesz go również łatwo zintegrować z Vue i React. Znajdziesz tutaj wiele przydatnych funkcji, takich jak:
- Skalowalne i grupowe wtyczki
- Zaawansowana kompatybilność i architektura Middleware
- Możliwość rozdzielania i warstwowania
- Nowoczesne doświadczenie programistyczne
- Wsparcie dla middleware Koa i wtyczek Egg.
Webiny
Z Webiny, czyli bezserwerowym frameworkiem aplikacji, zyskujesz wszystko, czego potrzebujesz do projektowania, wdrażania i tworzenia aplikacji bezserwerowych. Jest on przeznaczony do różnorodnych zastosowań. Możesz modyfikować architekturę, stack technologiczny i dostosowywać go do potrzeb swojej organizacji i konkretnego projektu.
Twórz witryny internetowe i aplikacje biznesowe oparte na SEO, routingu, pre-renderingu, zabezpieczeniach, wdrażaniu i innych funkcjonalnościach. Buduj wewnętrzne i zewnętrzne interfejsy API, wyodrębniając resolvery GraphQL. Nie ograniczaj się do jednej aplikacji; twórz aplikacje korzystające z różnych baz danych. Możesz wykorzystać sterowniki baz danych NodeJS do interakcji z zewnętrznymi bazami.
Webiny zapewnia mechanizmy łączenia kodu, IaC, wdrażania i organizacji projektów. Szybko wprowadź produkt na rynek i oferuj SaaS na całym świecie. Chroń część lub całość aplikacji za pomocą ACL, dzięki wbudowanemu AWS Cognito i frameworkowi bezpieczeństwa.
Możesz dodać obsługę Auth0, OKTA i innych platform. Otrzymasz bezgłowy CMS, kreator stron, kreator formularzy, menedżer plików i wiele innych narzędzi. Generuj standardowy kod za pomocą wtyczek CLI, od funkcji lambda po nowe API GraphQL.
Interfejs administratora Webiny zawiera ponad trzydzieści różnych komponentów React. Zyskasz także ochronę przed atakami DDoS, CDN i trwałość danych. Webiny oszczędza Twój czas spędzony na metodzie prób i błędów oraz badaniach.
AWS Chalice
Szukasz frameworka do tworzenia aplikacji bezserwerowych w Pythonie?
Wypróbuj AWS Chalice, który umożliwia budowanie i wdrażanie aplikacji za pośrednictwem AWS Lambda.
Chalice udostępnia narzędzie wiersza poleceń do tworzenia, wdrażania i zarządzania aplikacją, bazując na dekoratorach API do integracji z Amazon S3, Amazon API Gateway, Amazon SQS, Amazon SNS i innymi usługami AWS.
Umożliwia on tworzenie API REST, wykonywanie zadań uruchamianych okresowo, łączenie funkcji lambda ze zdarzeniami S3 i kolejką SQS oraz innymi zasobami AWS. Po napisaniu kodu Chalice pozwoli Ci na szybkie uruchomienie i wdrożenie aplikacji. Chalice wspiera każdą wersję Pythona obsługiwaną przez AWS Lambda, w tym Python 2.7, 3.6, 3.7 i 3.8.
Skonfiguruj wszystkie poświadczenia przed wdrożeniem aplikacji. Jeśli jednak masz już konfigurację dla AWS CLI lub boto3, możesz pominąć ten krok. Po wdrożeniu możesz wprowadzać modyfikacje w dowolnym momencie i ponownie wdrażać zmiany. Zapoznaj się z samouczkami, tematami i odniesieniami API, aby poszerzyć swoją wiedzę.
Zappa
Zappa to bezserwerowa platforma do tworzenia aplikacji w Pythonie. Ułatwia ona proces tworzenia i wdrażania aplikacji bezserwerowych i opartych na zdarzeniach w Pythonie na API Gateway i AWS Lambda. Wykorzystaj ją, aby cieszyć się zerową konserwacją, zerowym czasem przestoju i nieograniczoną skalowalnością przy minimalnych kosztach wdrożenia.
Przed instalacją i konfiguracją upewnij się, że masz zainstalowanego Pythona w wersji 3.x, konto AWS oraz poprawnie skonfigurowane poświadczenia AWS. Zappę możesz łatwo zainstalować za pomocą pip.
Zappa automatycznie konfiguruje ustawienia wdrożenia. Po prawidłowym skonfigurowaniu ustawień wdrożysz swoją aplikację na środowisko produkcyjne za pomocą jednego polecenia. Jeśli potrzebujesz szablonu API Gateway CloudFormation, użyj polecenia „template”. Wdróż Zappę w niestandardowych subdomenach i nazwach domen za pomocą certyfikatów SSL, AWS Certificate Manager i Let’s Encrypt.
Zabezpiecz punkty końcowe w API Gateway, wykorzystując klucze API, zasady uprawnień, autoryzatory lambda API Gateway, autoryzator puli użytkowników Cognito i zasady zasobów API Gateway. Dodatkowo możesz ustawiać zmienne środowiskowe, np. dla środowiska lokalnego, zdalnego AWS i zdalnego z użyciem pliku S3.
Architect
Twórz, wdrażaj i utrzymuj infrastrukturę bezserwerową AWS nowej generacji, opartą na funkcjach w chmurze, z pełnymi przepływami pracy lokalnej, offline i innymi.
Jest to dosyć zaawansowany projekt, dlatego zalecamy dokładne zapoznanie się z filozofią projektu oraz dokumentacją.
Up
Up to platforma, która pomaga wdrażać aplikacje bezserwerowe o nieograniczonym potencjale skalowalności. Up możesz także wykorzystać do wdrażania statycznych stron internetowych, interfejsów API i nie tylko. Daje Ci to swobodę w pracy nad tym, co naprawdę ma dla Ciebie znaczenie.
Co ważne, Up wdraża tradycyjne instancje serwera HTTP, więc nie musisz uczyć się nowych protokołów. Zamiast tego użyj swojego ulubionego frameworka, takiego jak Django lub Express, aby zacząć.
Claudia.js
Claudia.js umożliwia programistom przesyłanie projektów opartych na Node.js do systemów Lambda i API. Claudia automatyzuje zadania wdrożeniowe i konfiguracyjne, a także automatycznie konfiguruje Twoje środowisko JavaScript do nowoczesnego programowania.
Co to oznacza dla Ciebie? Dzięki Claudii możesz przyspieszyć swoją podróż z mikrousługami w ciągu kilku minut. W efekcie masz znacznie mniej do przemyślenia i więcej czasu na skupienie się na rozwiązywaniu rzeczywistych problemów.
Główne zalety korzystania z Claudii to:
- Wdrażaj, aktualizuj i zarządzaj instancjami za pomocą jednego polecenia
- Bezproblemowa praca z pakietami NPM
- Zintegrowana struktura umożliwia skupienie się na wykonywanych zadaniach.
- Zarządzanie wersjami, które pozwala na pracę na wielu wersjach jednocześnie.
- Niewielka krzywa uczenia się
Jets
Lubisz Ruby?
W takim razie z pewnością spodoba Ci się Jets – framework bezserwerowy dla Ruby do tworzenia i wdrażania mikrousług. Ten framework zawiera wszystkie niezbędne narzędzia, które pomogą Ci w generowaniu struktur API i wdrażaniu ich do Lambda.
Jets działa również przy pisaniu oddzielnych funkcji, które możesz wykorzystać do łączenia różnych usług i zasobów dostarczanych przez AWS.
Działanie Jets polega na konwersji istniejącego kodu na funkcje dla Lambda i innych usług AWS. Dzięki temu możesz zrezygnować z aspektów związanych z wdrażaniem i udostępnianiem, poświęcając więcej czasu na pisanie funkcjonalnego kodu.
Pulumi
Pulumi zapewnia bezproblemowy pakiet SDK, który umożliwia tworzenie i wdrażanie oprogramowania na dowolnej platformie opartej na chmurze. Zestaw SDK obsługuje kontenery, usługi hostowane, podstawową infrastrukturę i kontenery.
Możesz pisać kod w dowolnym języku. Pulumi udostępni i będzie zarządzał Twoimi zasobami u dostawców usług takich jak GCP, AWS, Kubernetes i Azure.
Serverless
Pewnie myślisz: „Ktoś miał szczęście zdobyć domenę Serverless.com i po prostu zarabia na tym!” Muszę Cię jednak uspokoić, nie o to chodzi.
Środowisko Serverless ma imponującą liczbę 30 000 gwiazdek na GitHubie, co czyni go jedną z najpopularniejszych platform bezserwerowych.
Co możesz zrobić dzięki temu frameworkowi? Przede wszystkim, możesz tworzyć aplikacje, które wykorzystują mikrousługi jako sposób reakcji na zdarzenia. Na przykład, aplikacje reagują tylko wtedy, gdy występuje wywołanie, a ich skala dostosowuje się do zapotrzebowania. W efekcie możesz zaoszczędzić sporo pieniędzy, które w innym przypadku zostałyby wydane na utrzymanie bezczynnych usług.
Framework wykorzystuje nowoczesne usługi obliczeniowe sterowane zdarzeniami, takie jak AWS Lambda, Google Cloud Functions i inne. Jest to narzędzie wiersza poleceń, które zapewnia tworzenie szkieletów aplikacji, automatyzację przepływu pracy i wsparcie w zakresie najlepszych praktyk podczas projektowania i wdrażania architektury bezserwerowej. Jest także w pełni rozszerzalny za pomocą wtyczek.
Sigma
Sigma to nowe środowisko IDE oparte na chmurze, które zostało zaprojektowane z myślą o rozwoju bezserwerowym. To nie tylko podstawowy edytor tekstu z kilkoma dodatkowymi funkcjami, ale w pełni funkcjonalne IDE, które umożliwia pisanie kodu i publikowanie go jako działającej aplikacji w czasie rzeczywistym.
Sigma IDE może komunikować się z wybraną platformą bezserwerową (FaaS), wymagając jedynie pliku konfiguracyjnego. Dzięki temu zaoszczędzisz mnóstwo czasu spędzonego na monotonnych zadaniach.
Co więcej, w przeciwieństwie do innych narzędzi, które starają się osiągnąć podobny rezultat, Sigma sama w sobie jest bezserwerowa. IDE działa całkowicie w przeglądarce i nie wymaga obsługi zaplecza dla większości funkcji. Zaplecze jest potrzebne głównie do uwierzytelniania użytkowników i zbierania danych analitycznych.
To narzędzie jest warte uwagi i zdecydowanie powinieneś je wypróbować.
Auth0
Jeśli interesujesz się koncepcją serverless, prawdopodobnie słyszałeś o Serverless Framework – o którym wspomnieliśmy wcześniej.
Auth0 podjęło wysiłek, aby stworzyć Webtask, czyli efektywny dodatek dla wszystkich użytkowników Serverless Framework. Jego stronę domową można znaleźć tutaj.
Webtask może być używany do tworzenia aplikacji bez obaw o infrastrukturę. Wystarczy napisać logikę po stronie serwera i wdrożyć wszystkie funkcje za pomocą interfejsu wiersza poleceń dostarczonego przez Webtask. Następnie możesz komunikować się z zapleczem za pomocą protokołu HTTP.
Aktualizacja: Strona Webtask została zamknięta.
Przykłady bezserwerowe
O platformie Serverless Framework wspominaliśmy wcześniej. Jest to również źródło, które prezentuje wiele różnych przypadków użycia dla Serverless Framework.
Mimo że przykłady te są ściśle związane z jednym konkretnym frameworkiem, mogą być przydatne w procesie przyswajania nowych koncepcji bezserwerowych.
Przykłady są dostępne dla platform takich jak AWS, Azure, Kubeless, Google Cloud i OpenWhisk. Ponadto istnieje wsparcie dla sześciu różnych języków: nodeJS, Python, Go, Java, PHP i Swift.
Sprawdź niektóre z popularnych przykładów, takie jak bot do żartów na Twitterze oraz API Dropbox OAuth.
Jeśli preferujesz praktyczną naukę, sprawdź ten kurs online.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.