Jeżeli tworzysz aplikacje lub gry przeznaczone dla systemów iOS, Android czy też gotowe do uruchomienia z poziomu przeglądarki internetowej, to pewnie znany Ci jest zestaw narzędzi kryjący się pod nazwą Firebase. Jedną z kluczowych usług dostępnych pod płaszczykiem Firebase jest Firestore, czyli usługa baz danych NoSQL.
Coraz częściej twórcy aplikacji decydują się na przechowywanie ich danych w chmurze. Powodów jest wiele. Poczynając od potrzeby dzielenia się nimi przez użytkowników ze swoimi znajomymi czy też chęcią korzystania z danych na więcej niż jednym urządzeniu. Pomimo, że przechowywanie danych w chmurze wydaje się dość proste, to jednak pod powierzchnią kryje się kilka mielizn, o których warto wiedzieć.
Tworzenie własnego zestawu serwerów, które będą zapewniały ciągły dostęp do danych konsumuje sporo czasu oraz pieniędzy. Inną bolączką jest obawa przed możliwymi atakami, czyli konieczność czuwania nad bezpieczeństwem tych danych. Wreszcie, z czasem, kiedy aplikacja stanie się popularna, koniecznym może okazać się wyskalowanie serwerów. To również może spędzać sen z powiek. Na szczęście jest Firestore.
Czym jest Firestore?
Firestore jest, jak już wiemy, jedną z usług dostępnych w ramach platformy Firebase. To baza NoSQL zaprojektowana do przechowywania, synchronizowania i udostępniania danych w czasie rzeczywistym pomiędzy klientem i serwerami.
O funkcjach Firestore powiemy jeszcze trochę, ale warto pamiętać, że dzięki niemu zarządzanie danymi jest łatwiejsze, możliwe jest automatyczne skalowanie w zależności od obciążenia, a wsparcie dla synchronizacji dostępne jest w czasie rzeczywistym.
Benefity korzystania z Firestore
Firestore pozwala szybciej uruchamiać aplikacje. Dzieje się tak dzięki wbudowanej synchronizacji w czasie rzeczywistym, wsparciu offline oraz transakcjom ACID, czyli zbiorowi właściwości gwarantujących poprawne przetwarzanie transakcji w bazach danych i będącego akronimem słów atomicity, consistency, isolation oraz durability.
Kolejną korzyścią jest łatwe skalowanie dzięki któremu łatwiej sprostać dużym wahaniom ruchu, lub też jego ustaniu. Firestore skaluje się automatycznie. Zarówno w górę, jak i w dół. Jest to proces bezobsługowy zapewniający dostępność na bardzo wysokim poziomie 99,99 – 99,999%.
Podobnie jak większość narzędzi i usług dostępnych w ramach Google Cloud, Firestore działa na zasadzie pay-as-you-go. Nie musisz obawiać się wydatków ponoszonych z góry, czy też niewykorzystanych zasobów.
Kto korzysta z Firestore?
Jedną z firm, dla których Firestore okazał się rozwiązaniem szytym na miarę jest Forbes, jeden z najważniejszych gigantów medialnych działających w obszarze biznesu, inwestowania, technologii, przedsiębiorczości i stylu życia. Forbes przeniósł swoją bazę danych przetwarzania statycznego do Firestore, co pozwoliło na uzyskanie bardziej elastycznego systemu opartego na chmurze.
Ze względu na model współpracy z bazą ponad 2500 autorów, publikujących na łamach Forbes’a nawet 400 artykułów dziennie, firma szukała sposobu na zmodernizowanie swojego serwisu i przejście do chmury. Pomógł w tym nie tylko Firestore, ale również inne usługi oferowane przez chmurę Google, takie jak BigQuery, hurtownie danych czy Google Analytics.
To, co w opinii klienta okazało się największą zaletą skorzystania z Firestore było zmniejszenie długu technologicznego dzięki rezygnacji ze skrojonej na miarę, ale skomplikowanej i mało elastycznej infrastruktury na rzecz rozwiązania prostszego. Firestore, baza danych NoSQL zmniejszyła konieczność prac konserwacyjnych i poprawiła komfort użytkowania autorom treści. Brak konieczności konfiguracji i zarządzania, chmurowa natywność oraz efektywność kosztowa w połączeniu z niskimi opóźnieniami w przesyłaniu danych okazały się wystarczającym argumentem.
Kluczowe funkcje Firestore
Do najważniejszych funkcji Firestore należą: serverless, synchronizacja w trybie na żywo oraz offline, wykorzystanie prężnego silnika zapytań (query engine), dostępności bibliotek dla popularnych języków programistycznych oraz oczywiście duże bezpieczeństwo danych.
Serverless
Jako w pełni zarządzana, bezserwerowa baza danych, Firestore jest usługa, którą można skalować zarówno w górę, jak i w dół bez najmniejszego wysiłku. Oznacza to brak przestojów (downtime) oraz czasu wyjętego na potrzeby konserwacji (maintenance windows).
Synchronizacja w czasie rzeczywistym i tryb offline
Jest to szczególnie istotna funkcja skierowana do wielu współdziałających użytkowników aplikacji czy urządzeń typu IoT. Firestore jest wybierany do obsługi obciążeń (workloads) w czasie rzeczywistym, śledzenia aktywności, dlatego też sprzyja wykorzystaniu w sytuacjach, w których mamy do czynienia ze społecznościami użytkowników aplikacji lub gier.
Potężny silnik zapytań
Wspomniane już zaawansowane transakcje ACID dają większą elastyczność w sposobie strukturyzowania danych, z których Firestore skrzętnie korzysta.
Biblioteki popularnych języków
Firestore pozwala użytkownikowi skupić się na tym co istotne, czyli tworzeniu aplikacji. Umożliwia to bogaty zestaw bibliotek dostępnych po stronie klienta przeznaczonych zarówno do sieci web, jak i iOS, Android, Flutter, C++ oraz Unity. Firestore obsługuje również tradycyjne biblioteki programistyczne wykorzystująć Node.js, Java, Go, Ruby oraz PHP.
Bezpieczeństwo
W ważnym zagadnieniu bezpieczeństwa Firestore współpracuje z Firebase Authentication oraz Identity Platform. Zapewnia customizowaną kontrolę dostępu opartą na tożsamości oraz umożliwia sprawdzanie poprawności danych za pomocą języka konfiguracji.
Replikacja multi-regionalna
Automatyczna replikacja w wielu regionach w połączeniu z silną spójnością danych sprawia, że Twoje dane są nie tylko bezpieczne, ale również dostępne na poziomie sięgającym nawet 99,999 proc, a co istotne, nawet w przypadku awarii.
Tryb Datastore
Jeżeli korzystasz z Datastore ro nie musisz wprowadzać żadnych zmian w aplikacjach, a w zamian możesz oczekiwać tych samych parametrów odnośnie wydajności oraz kosztów, które ponosiłeś przy używaniu Datastore.
Ile kosztuje Firestore?
Jak w przypadku wielu usług chmurowych, cennik uzależniony jest od wielu elementów i warunków, które należy spełnić. Aby wycenić najbardziej optymalny finansowo wariant skorzystania z Firestore polecamy kontakt z certyfikowanym architektem chmurowym FOTC. Uzyskasz odpowiedzi nie tylko na zagadnienia związane z ceną, ale również otrzymasz pomoc w konfiguracji tej usługi.
Cena, jaką musisz zapłacić za Firestore uzależniona jest od liczby dokumentów, pozycji indeksu dopasowanych przez zapytania agregujące, ilości pamięci używanej przez bazę danych czy też wykorzystywanej przepustowości sieci.
Podobnie jak przy innych usługach Google Cloud, dostępny jest pakiet free tier. O szczegóły zapytaj eksperta FOTC.