16 lut 20226 min czytania
Robert Krajewski
Współzałożyciel i CEO Ideamotive. Przedsiębiorca, mentor i doradca startupów.
Budowanie aplikacji w 2023 roku jest bez wątpienia ekscytujące, choć wymaga kompleksowego planowania. Żeby Twoje oprogramowanie było trwałe i wciąż aktualne, świetnym punktem wyjścia jest wybór nowoczesnych technologii, które płynnie odpowiadają celom i wymaganiom projektu. Ta strategiczna decyzja może okazać się kluczem do stworzenia trwałych i wartościowych rozwiązań.
Mikroserwisy i serverless to obecnie dwie główne koncepcje w chmurze obliczeniowej. Dobrze wpływają na efektywność aplikacji oraz sprawiają, że zmiany i skalowanie są znacznie łatwiejsze i szybsze.
Dowiedz się więcej o architekturze mikroserwisowej i serverless: kiedy używać której, do jakiego rodzaju oprogramowania pasują, jakie mają zalety i wady oraz jak wpływają na produkt jako całość.
Mikroserwis to zdecentralizowany wzorzec architektoniczny, w którym aplikację dzieli się na szereg niezależnych funkcji (usług), które mogą działać i komunikować się ze sobą przez API. Każdy mikroserwis ma własną bazę danych, biblioteki i szablony, a testuje się je osobno.
Często porównuje się je do architektury monolitycznej. W tej drugiej wszystkie funkcje stanowią jedność: są bardzo mocno powiązane i działają jako jeden byt. W mikroserwisach każdy komponent jest mniej lub bardziej niezależny i nie musisz uruchamiać całej aplikacji dla jednej funkcji.
Weźmy na przykład serwisy streamingowe z muzyką: tworzenie profilu, wyszukiwanie muzyki, tworzenie playlist i odtwarzanie to osobne funkcje, które możesz zamienić w szereg mikroserwisów. Jeśli potrzebujesz nowej funkcji (choćby trybu karaoke), po prostu tworzysz nowy mikroserwis i podłączasz go do reszty systemu.
Serverless to model, w którym zewnętrzny dostawca chmury sam zajmuje się serwerem. Programiści muszą martwić się tylko o kod, a całą resztę robi dostawca serwera - łatki bezpieczeństwa, równoważenie obciążenia, zarządzanie pojemnością, skalowanie, logowanie i monitoring. W modelu serverless możesz uruchomić całą aplikację albo jej część.
Serwer jest wykorzystywany tylko wtedy, gdy używa się aplikacji: gdy tylko kod aplikacji zostanie wywołany, serwer przydziela mu zasoby i odbiera je, gdy aplikacja przestaje być aktywna. Właściciel aplikacji płaci wyłącznie za czas jej działania.
Dostawcy chmury oferują albo Backend-as-a-Service (BaaS), albo Function-as-a-Service (FaaS). BaaS daje gotowe funkcje, dzięki czemu programista zajmuje się wyłącznie frontendem. Używa się go rzadko, bo daje ograniczoną kontrolę i możliwości dostosowania. FaaS jest natomiast bardziej elastyczny: programiści piszą backend i frontend, a potem po prostu uruchamiają je na zdalnym serwerze.
FaaS pozwala zbudować aplikację jako zestaw funkcji. Każda funkcja ma swój cel i wyzwalacz, który ją uruchamia. Funkcja jest zwykle krótkotrwała i wyłącza się, gdy tylko przestaje być używana - nie może działać w sposób ciągły.
Najważniejsza różnica jest taka, że mikroserwisy to sposób projektowania aplikacji, a serverless to sposób jej uruchamiania (albo uruchamiania jej części). Mikroserwisy możesz hostować w modelu serverless.
Jeśli porównamy mikroserwis z funkcją serverless, różnice będą następujące:

Przy tworzeniu oprogramowania na mikroserwisach największą częścią pracy jest planowanie. Musisz ustalić, jakie mikroserwisy stworzyć, jakie mają pełnić funkcje i jak będą się ze sobą komunikować przez API. Będzie Ci do tego potrzebny architekt oprogramowania.
Jeśli chodzi o zespół, musisz znaleźć programistów i testerów, którzy naprawdę znają mikroserwisy. Język i framework nie mają większego znaczenia, bo mikroserwisy zbudujesz w dowolnej technologii. Najczęściej powstają jednak w takich technologiach jak JS/TypeScript, Java, .NET, i Python. Przy takich projektach zwykle wymagane jest też doświadczenie z projektami danych i z chmurą. Przy mikroserwisach programistom lepiej pracuje się w małych, interdyscyplinarnych zespołach.
Według strategów biznesowych, koszty mikroserwisów są wyższe na etapie wytwarzania, ale niższe w dłuższej perspektywie. W porównaniu z architekturą monolityczną utrzymanie kosztuje mniej, bo nowe funkcje dodajesz szybciej i bez kłopotu, a gdy jeden mikroserwis padnie, reszta aplikacji działa dalej - inaczej niż w monolicie.
Projekty mikroserwisowe zajmują zwykle mniej czasu niż monolityczne, bo małe zespoły mogą jednocześnie i niezależnie pracować nad różnymi funkcjami.
Jeśli mówimy o serverless, musisz znaleźć dobrego dostawcę usługi (najbardziej znani to AWS Lambda, Google Cloud Functions, Microsoft Azure Functions i Cloudflare Workers), wybrać między BaaS a FaaS oraz rozpisać wszystkie funkcje i ich wyzwalacze.
Jeśli chodzi o zespół, musisz znaleźć ludzi, którzy potrafią pracować z wybranym dostawcą usługi i mają solidne umiejętności w JavaScripcie lub Pythonie.
Jeśli chodzi o koszty wytworzenia, hostowanie aplikacji lub jej części na zdalnym serwerze jest zwykle tańsze - i o to właśnie chodzi. Koszty wytworzenia są znacznie niższe, niż przywykłeś.
Tempo wytwarzania również należy do najszybszych: wiele firm sięga po tę technologię właśnie po to, by błyskawicznie wypuścić nowe aplikacje.
Nie ma jednej odpowiedzi na pytanie, co jest lepsze - mikroserwisy czy serverless - bo każdy projekt jest inny. Co więcej, można je też łączyć.
Przyjrzyjmy się bliżej zastosowaniom obu.
Mikroserwisy są szeroko stosowane przez takie potęgi jak Netflix, Uber czy Airbnb. Pozwalają im szybko skalować się, a te firmy cały czas rosną. Jeśli chodzi o startupy, konsultanci ds. finansowania twierdzą, że to nie najlepszy pomysł: koszty początkowe są zbyt duże, a mikroserwisy stosuje się głównie w dużych aplikacjach, które robią się trudne w utrzymaniu. Małe i lekkie aplikacje bez problemu utrzymasz jako monolit.
Serverless to świetna okazja na tworzenie aplikacji webowych i mobilnych w startupach - jest tanie i doskonale sprawdza się przy lekkich aplikacjach. Firmy klasy enterprise powinny natomiast podchodzić do serverless ostrożniej, bo jego zastosowania są ograniczone.
Niestety nie ma jednej idealnej technologii - w przeciwnym razie świat byłby szczęśliwym, ultrarozwiniętym miejscem. Każda technologia ma zalety, które możesz wykorzystać w projekcie, i wady, które musisz być gotów tolerować. Przyjrzyjmy się jednym i drugim.
Choć obie technologie są stosunkowo nowe, przyciągnęły już wiele firm. W końcu trudno powiedzieć „nie” szybkiemu wytwarzaniu i skalowaniu.


Serverless i mikroserwisy to świetne technologie, jeśli chcesz szybko skalować, błyskawicznie dodawać nowe funkcje i obniżyć koszty. Serverless sprawdzi się w startupach i średnich firmach, a mikroserwisy w dużych organizacjach. Jeśli jednak połączysz oba podejścia, użyjesz ich także na poziomie enterprise.
Chcesz zbudować swoją kolejną aplikację w tych dwóch technologiach? Śmiało odezwij się do Ideamotive! Pomożemy Ci znaleźć doświadczonych specjalistów od serverless i mikroserwisów, żebyś mógł ruszyć z miejsca.
Robert jest współzałożycielem Ideamotive. Przedsiębiorca, który z pasją szerzy cyfrową rewolucję w całym internecie. Mentor i doradca w akceleratorach startupów. Uwielbia się uczyć i odkrywać nowe modele biznesowe.
Zobacz wszystkie wpisy autoraPopularne artykuły
21 inspirujących projektów UI aplikacji mobilnych na 2023 rok
Michał Pruciak 7 min czytania
MedTech vs HealthTech vs BioTech: jakie są różnice?
Michał Pruciak 7 min czytania
10 biznesowych zastosowań sieci neuronowych (z przykładami!)
Michał Pruciak 4 min czytania
10 przykładów dobrych praktyk w web designie na 2023 rok
Adam Kozłowski 7 min czytania
28 znanych aplikacji webowych napisanych w PHP
Dawid Karczewski 14 min czytania
Białoruś • Polska • Rumunia • Ukraina
Czytaj terazJakich usług programistycznych szukasz?
W naszej sieci czekają sprawdzeni programiści, projektanci, menedżerowie i konsultanci biznesowi.
Dane rejestrowe:
Firma
Usługi
Najczęściej poszukiwani specjaliści
Ocena 4,8 / 5,0 od klientów z różnych branż i lokalizacji.