Mobiliosioms ir žiniatinklio programoms paprastai reikia vidinio serverio. Žiniatinklio programoms reikia žiniatinklio serverio, kad būtų galima pateikti turinį. Programose taip pat reikia saugoti vartotojų profilius ir laikmenas, tokias kaip vaizdai ir vaizdo įrašai. Ryšys tarp programos ir serverio dažnai atliekamas naudojant API, kuri paprastai yra REST.
Programos koduojamos įvairiomis kalbomis. „IOS“ programa yra parašyta „Swift“ arba „Objective-C“. „Android“ programos yra parašytos „Java“ arba „Kotlin“. Žiniatinklio programos rašomos HTML, CSS, „JavaScript“ ir dažnai sudėtingose sistemose, tokiose kaip „Angular“ arba „React“. Front-end kūrėjai turi mokėti atitinkamas kalbas ir su jomis susijusias kūrimo priemones.
Vidiniai serveriai yra parašyti įvairiomis kalbomis, įskaitant „Go“, „Java“, PHP ir „Python“. Kiekviena iš šių kalbų turi savo bibliotekų komplektą, kad būtų lengviau rašyti sudėtingas programas.
Daugelis kūrėjų laiko save front-end arba back-end kūrėjais. „Full-stack“ kūrėjai, kurie išmano abu vaidmenis, yra gana reti.
Programinės įrangos serverio valdymas ir priežiūra turi savų iššūkių. Serverius reikia kurti, atnaujinti ir kurti atsargines jų kopijas. Serveriai taip pat turi būti apsaugoti, kad būtų išvengta atsitiktinio ar kenkėjiško duomenų praradimo ar prieigos prie neskelbtinų duomenų. Be to, serveriuose turi būti priskirti prieglobos vardai ir IP adresai, kad juos būtų galima prijungti.
„Firebase“ prasidėjo kaip mobiliojo susirašinėjimo architektūra, kurią įsigijo „Google“. Nuo to laiko jis tapo daugiau nei 25 komponentų, kurie sąveikauja su „Google Cloud Platform“ .
„Firebase“ sudaro programinės įrangos kūrimo rinkiniai (SDK), kurie leidžia mobiliesiems ir interneto kūrėjams paprasčiausiai, saugiai ir patikimai pasiekti debesies funkcijas. Jie automatiškai kompensuoja prastą tinklo ryšį. Yra „Firebase“ žiniatinklio konsolė, skirta komponentams įgalinti, administruoti ir apsaugoti. Taip pat yra komandinės eilutės įrankių ir REST API, kad būtų galima išsamiau naudotis.
Kai kurie „Firebase“ komponentai yra geriau žinomi nei kiti. Tarp komponentų yra mažai priklausomybių, o tai leidžia palaipsniui pritaikyti funkcionalumą. „Firebase“ autentifikavimas ir analizė yra plačiausiai naudojami.
„Firebase“ tapo platforma, leidžiančia mobiliųjų telefonų ir žiniatinklio front-end kūrėjams kurti išsamias programas, nereikalaujant vidinių serverių. Naujausi patobulinimai labai palengvino sprendimus be serverių, kurie yra perspektyvi, keičiama ir ekonomiška alternatyva „Cloud Virtual Machine“ serverio sprendimams.
Pagrindinis „Firebase“ atsiskaitymo planas, vadinamas „Spark“, yra nemokamas. Debesų išteklių naudojimui yra ribų, tačiau jos yra gana dosnios. Paleisti pagrįsto dydžio programą galima nemokant jokių mokesčių.
Pagal „Spark“ planą gali būti priglobta svetainė, kurioje yra iki 1 GB turinio ir kurios pervedimai yra mažesni nei 10 GB / mėn. „Firestore“ leidžia iki 1 GB duomenų, o tinklo srautas - iki 10 GB / mėn. Debesies saugyklos apribojimai yra iki 5 GB duomenų, o atsisiuntimai - iki 1 GB per dieną.
Jei programai reikia daugiau išteklių, reikia mokamo atsiskaitymo plano, pvz., „Pay as you go“. Vis dar galioja „Spark“ plano nemokamos ribos. Apmokestinamieji mokesčiai yra gana maži. Kainas galite rasti svetainėje „Firebase“ kainų puslapis .
Debesyje veikiančios virtualios mašinos, kol jos nenaudojamos, turi mokėti, kol jos veikia. „Firebase“ be serverio sprendimai keičiami iki nulio. Tai reiškia, kad ištekliai efektyviai veikia tik tada, kai jie yra naudojami, ir už juos nereikia mokėti, kai jie nenaudojami. Tai idealiai tinka sezoninio verslo įmonėms, tokioms kaip atostogų nuoma ar periodiški renginiai, pavyzdžiui, koncertai. Būtų daug veiklos, po kurios būtų neveikimas mėnesiais.
El. Pašto paskyra reikalinga tapatybei patvirtinti. Pageidautina naudoti „Google“ pašto paskyrą. Jie gali būti sukurti adresu https://mail.google.com .
Taip pat reikalinga „Google Cloud Platform“ (GCP) paskyra. Galima nemokamai išbandyti čia . Tai suteikia jums 300 USD kreditą, kurį galite gauti metams. Kredito kortelė reikalinga kaip asmens tapatybę patvirtinantis dokumentas. „Google“ gali imti 1 USD ir grąžinti. Kredito kortelė bus nurašoma kas mėnesį, jei įgalinamas atsiskaitymas ir naudojami atsiskaitymo ištekliai. Taip pat yra „Google“ teikėjų kompanijų, kurios veikia kaip tarpinės sąskaitos. Mokate paslaugų teikėjui už naudojimąsi debesimis, o jie - „Google“. Jie turi savo atsiskaitymo planus ir gali pasiūlyti nemokamą bandomąją versiją.
Svarbu dažnai stebėti debesų konsolės atsiskaitymo skyrių, kad būtų galima stebėti naudojimą. Lengva išlaikyti tokius resursus kaip saugykla, kai to nereikia, o tai laikui bėgant gali patirti didelių išlaidų.
„Firebase“ projektai taip pat yra GSP projektai. Galite sukurti GCP projektą ir importuoti jį į „Firebase“, arba sukurti „Firebase“ projektą, kuris taip pat sukurs GCP projektą. „Firebase“ konsolė yra čia .
Skirtingo tipo programoms reikalinga kitokia sąranka. Pagrindinės yra „Android“, „iOS“ ir žiniatinklio programos. Sąrankos instrukcijas galite rasti oficialiame puslapyje „Firebase“ vadovai .
Kai kurioms operacijoms atlikti reikalingi „Firebase“ komandų eilutės sąsajos (CLI) įrankiai. Tam reikia Node.js
ir npm
įrankis yra įdiegtas. Jei veikia „MacOS“ arba „Linux“, npm
komandą reikės paleisti su sudo
.
sudo npm install -g firebase-tools
„Firebase“ autentifikavimas yra bene plačiausiai naudojamas „Firebase“ komponentas. Vartotojai gali pasirinkti vieną ar kelis iš daugelio autentifikavimo mechanizmų. Tai yra el. Pašto adresas ir slaptažodis, telefono numeriai ir federaliniai tapatybės teikėjai „Google“, „Facebook“, „Twitter“ ir „GitHub“. Galima įjungti bet kokį autentifikavimo mechanizmų skaičių.
„Firebase“ vartotojo sąsaja ragina naudotoją naudoti šį mechanizmą:
„Firebase“ teikia autentifikavimui skirtas vartotojo sąsajas, kurias galima iškviesti iš kelių kliento pusės kodo eilučių. Taip pat yra API, leidžiančios atlikti autentifikavimą rankiniu būdu. Sėkmingai tapatinant, sugeneruojamas tapatybės ženklas, kurį galima naudoti tikrinant galinę dalį.
API leidžia administravimo vartotojams valdyti vartotojus programiškai. Operacijos apima:
Dauguma mobiliųjų ir žiniatinklio programų nori, kad prie jų programų prisijungtų daug vartotojų. Pvz., Kiekvienas, turintis „Google Mail“ paskyrą, gali patvirtinti save bet kurioje programoje, leidžiančioje „Google“ tapatybę. Norint apriboti prieigą prie programos tam tikriems vartotojams, reikalinga leidimo forma. Tai galima lengvai padaryti saugant asociacijas tarp el. Pašto adresų ir prieigos vaidmenų duomenų saugykloje. Sėkmingai patvirtinus el. Pašto adresą ieškoma duomenų saugykloje. Jei vartotojas egzistuoja su teisingais vaidmenimis, prieiga suteikiama; priešingu atveju vartotojas yra priverstas atsijungti.
„Firebase“ priegloba leidžia statinį žiniatinklio turinį, įskaitant „JavaScript“, priglobti debesyje, nereikia žiniatinklio serverio. Turinys laikomas talpykloje pasaulinio turinio pristatymo tinklo (CDN) pakraščiuose. Tai leidžia greitai pasiekti turinį iš bet kurios pasaulio vietos.
Vieną ar daugiau svetainių galima priglobti jas pridedant prie „Firebase“ pulto „Firebase“ projekto skyriaus Hostingas. Turinys pateikiamas per SSL ir suteikiami du formos URL, https://site-name.web.app ir https://site-name.firebaseapp.com , kur site-name
yra projekto pavadinimas arba vartotojo nurodytas svetainės pavadinimas.
Labai lengva turėti svetainę iš savo domeno pavadinimo, jei galite pakeisti domeno DNS įrašus. Domeno vardą įtraukiate į „Firebase Console“ svetainę. Tada jums bus suteiktas DNS TXT įrašas, kurį turėsite pridėti prie savo domeno DNS, kad įrodytumėte „Google“, kad jūs turite domeną. Kai TXT įrašas bus matomas, galite gauti svetainės DNS A įrašus. SSL sertifikatas automatiškai suteikiamas svetainei. Pateikus sertifikatą, svetainė pasiekiama visame pasaulyje. Iš esmės gali prireikti kelių valandų, kol bus atnaujinti DNS ir parengti sertifikatus. Praktiškai procesą galima užbaigti per 20 minučių.
Norėdami pridėti turinio prie prieglobos, pirmiausia sukurkite svetainės katalogą ir cd
į ją iš komandinės eilutės. Tada prisijunkite prie „Firebase“ ir inicijuokite projekto katalogą.
firebase login firebase init
Būsite paraginti pasirinkti projektą ir reikalingas klientų paslaugas. Paslaugas visada galima pridėti vėliau ir jų nereikia pasirinkti šiame etape.
Sukurkite failą pavadinimu firebase.json
, kuris apibrėžia svetainės šakninį katalogą ir failus, kuriuos norite išskirti. Jums taip pat reikės .gitignore
failas, jei norite pašalinti failus iš versijų valdymo.
{ 'hosting': { 'public': 'public', 'ignore': [ 'firebase.json', '**/.*', '**/node_modules/**' ] } }
Tada nukopijuokite statinį turinį į viešąjį katalogą. Galiausiai įdiekite svetainę į debesį.
firebase deploy
Norėdami pakeisti žiniatinklio turinį, tiesiog pakeiskite turinio failus ir išduokite diegimo komandą. Kiekvienas diegimas „Firebase Console“ rodomas kaip versija. Vienu paspaudimu galite grįžti į ankstesnę versiją.
„Firebase“ priegloba taip pat gali perrašyti URI į failus, „Cloud Functions“ ir „Cloud Run“. Tai labai supaprastina reikalus, nes nebūtina šioms paslaugoms priskirti domeno. Perrašymai apibrėžiami pridėjus perrašymo skyrių prie „firebase.json“ prieglobos skyriaus. Prieglobos diegimas nepavyks, jei paslaugos nėra.
{ 'hosting': { 'public': 'public', 'rewrites': [ { 'source': '/xxx', 'destination': '/profile.html' }, { 'source': '/yyy', 'function': 'profile' }, { 'source': '/api{,/**}', 'run': { 'serviceId': 'cloud-api', 'region': 'europe-west1' } } ] } }
„Firebase“ teikia kliento API, kad būtų galima pasiekti debesų duomenų saugyklą. Yra trys saugojimo tipai:
Tai leidžia mobiliojo ir interneto klientams saugoti ir gauti duomenis be serverio.
„Realtime Database“ yra debesyje priglobta „NoSQL“ duomenų bazė. Duomenys realiuoju laiku duomenų bazėje realiu laiku automatiškai sinchronizuojami su visais prijungtais įrenginiais. Tai veikia tarp platformų, skirtų „Android“, „iOS“ ir žiniatinkliui. Duomenys saugomi kaip JSON medžio struktūra. Saugumo taisyklės gali būti nustatytos norint kontroliuoti skaitymo ir rašymo prieigą prie duomenų.
Kiekvienas įrenginys saugo vietinę duomenų bazės kopiją. Tai reiškia, kad duomenys yra prieinami neprisijungus prie tinklo. Prisijungus iš naujo, sinchronizuojamos vietinės ir debesų duomenų kopijos.
Duomenis nuskaito programos, naudodamosi klausytoju. Klausytojas klausosi mazgo JSON medyje. Kiekvieną kartą, kai duomenys keičiami konsolėje ar kitam vartotojui, iškviečiamas klausytojo atgalinis skambutis su nauja duomenų reikšme. Realaus laiko duomenų bazė taip pat palaiko užklausas. Kiekviena užklausa pateikia mazgą ir visus antrinius mazgus.
Pagal numatytuosius nustatymus saugos taisyklės neleidžia pasiekti duomenų. Taisyklės gali būti pridėtos visame pasaulyje arba prie atskirų JSON objekto mazgų. Saugos taisyklės kontroliuoja duomenų skaitymo ir rašymo prieigą ir gali atlikti patvirtinimą.
Realaus laiko duomenų bazė geriausiai tinka mažiems duomenų gabalams, kuriems nereikia giliai įdėtos duomenų struktūros. Nemokama riba yra 1 GB duomenų.
„Cloud Firestore“ laikoma „Realtime“ duomenų bazės pakaitalu. Tai išplečia „Realtime Database“ funkcionalumą. Duomenys yra ne JSON medyje, o hierarchiniame dokumentų rinkinyje. Kiekvieną dokumentą sudaro raktų ir verčių porų rinkinys ir pasirinktiniai subdokumentai. Užklausos leidžia sudėtingesnį filtravimą ir rūšiavimą ir grąžina tik visus dokumentus. Užklausos negrąžina subdokumentų.
„Cloud Firestore“ netrukus pakeis „Cloud Datastore“. Jį galima paleisti „Datastore“ arba „native“ režimu. Visos „Datastore“ programos bus automatiškai perkeltos į „Cloud Firestore“.
„Cloud Firestore“ geriausiai tinka palyginti mažiems duomenims. Tai gali turėti giliai įdėtą duomenų struktūrą. Nemokama riba yra 1 GB duomenų.
„Cloud Storage“ skirta failams, pvz., Atvaizdams ir vaizdo įrašams, saugoti. Mobilieji ir žiniatinklio klientai gali naudoti „Firebase“, norėdami įkelti ir atsisiųsti failus tiesiai į debesį ir iš debesies, nereikalaujant vidinio serverio. Nemokama riba yra 5 GB duomenų.
Debesies funkcijos yra svarbi technologija kuriant programas be serverių. Debesies funkciją galima parašyti „JavaScript“, „TypeScript“, „Python“ arba „Go“, kurie yra įdiegti tiesiai į „Google“ debesį. Funkciją suaktyvina HTTP užklausa arba įvykis debesyje, pavyzdžiui, rašymas į „Cloud Storage“.
„Cloud Function“ funkcija vienu metu gali apdoroti tik vieną užklausą, tačiau debesis automatiškai keičia funkciją, ją atkartodamas. „Cloud“ funkcija, parašyta „Python“, naudoja „Flask“ biblioteką HTTP užklausoms tvarkyti. Funkcija ima užklausos objektą kaip parametrą ir grąžina atsakymo tekstą.
Paprastai „Python Cloud“ funkcijai reikalingas darbinis katalogas, o įvesties taškas eina į failą main.py
def simple_cloud_function(request): return 'It worked'
Priklausomybės tvarkomos pip ir pereinama į failą pavadinimu requirements.txt
.
Flask==1.0.2
Funkcija diegiama naudojant gcloud
komandinės eilutės įrankis. Jame nurodomas funkcijos pavadinimas, kalba ir aktyviklis.
gcloud functions deploy simple_cloud_function --runtime python37 --trigger-http
Funkcijos URL rodomas diegiant ir jį galima rasti paleidus komandą aprašyti.
gcloud functions describe simple_cloud_function Url: https://europe-west1-project-id.cloudfunctions.net/simplecloud_function
„Debesies“ funkcijos gali paskambinti „Google Cloud“ ir „Firebase“ API, kad būtų teikiamos galinės funkcijos. Jie teikia registravimo informaciją apie vykdymo paleidimą ir vykdymo laiką. Lengvai galima pridėti papildomą medienos ruošą. Žurnalus galima peržiūrėti „Stackdriver Logging“ vartotojo sąsajoje ir per gcloud
komandinės eilutės įrankis.
gcloud functions logs read simple_cloud_function
Funkcijas galima peržiūrėti ir ištrinti „Google Cloud Console“.
Debesų funkcijas geriausiai naudoti operacijoms, kurios vyksta palyginti retai. Naudojimo pavyzdys yra sukurti miniatiūrą, kai vaizdas yra įkeltas į „Cloud Storage“. Nemokamas limitas yra 125 000 iškvietimų per mėnesį.
„Cloud Run“ yra neseniai pridėta funkcija, kuri labai palengvina programas be serverių. Tai leidžia „Docker“ konteinerius paleisti debesyje, nereikalaujant sudėtingos infrastruktūros sąrankos. Jis gali veikti valdomuoju režimu, kuriame naudojamas „Knative“ vykdymo laikas, sukurtas „Kubernetes“. Jis taip pat gali veikti su „Anthos“, kuris taip pat pastatytas ant „Kubernetes“, tačiau leidžia konteinerius paleisti per debesis ir net jūsų pačių duomenų centre. Nereikia nustatyti ir tvarkyti „Kubernetes“ sankaupos, nes visa tai atliekama automatiškai.
Bet kurią programą, kurią galima integruoti į „Docker“ vaizdus, galima valdyti naudojant „Cloud Run“. Jis automatiškai keičia konteinerių skaičių pagal paklausą. Ji taip pat sumažėja iki nulio, kai paslauga nenaudojama. Nepanaudotoms paslaugoms nereikia mokėti.
„Docker“ talpykloms reikia paleisti žiniatinklio serverį, jei jie nori atsakyti į HTTP užklausas. „Python“ tarnyba naudos kolbą. Įėjimo taškas bus app.py
from flask import Flask, request app = Flask(__name__) @app.route(’/api/profile’) def profile(): page = ’’’ Page content ’’’ return page
Programai reikia Dockerfile
sukurti vaizdą.
FROM python ENV APP_HOME /app WORKDIR $APP_HOME COPY . . ENV PORT 8080 RUN pip install Flask gunicorn firebase-admin CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 app:app
„Cloud Run“ konteineriai yra išdėstyti tiesiai į debesį.
gcloud run deploy --image=image_name --platform=managed --region=europe-west1 --allow-unauthenticated
Jei paslaugos pavadinimas, platforma, regionas ar tai, ar norite leisti neneautentifikuoti, nėra apibrėžti projekto konfigūracijoje arba pateikiami komandinėje eilutėje, jie bus paraginti. Kai diegimas bus baigtas, bus rodomas paslaugos URL. URL taip pat galima gauti naudojant komandą „gcloud“.
gcloud run services list SERVICE REGION URL LAST DEPLOYED BY LAST DEPLOYED AT cloud-api europe-west1 https://cloud-api-h42ifbxkyq-ew.a.run.app [email protected] 2020-02-05T10:53:30.006Z
URL yra atsitiktinis skaičius, kurį sunku valdyti. Čia naudingiausios tampa „Firebase Hosting“ perrašymo taisyklės.
Paslaugas galima peržiūrėti ir ištrinti „Google Cloud Console“.
„Cloud Run“ idealiai tinka REST API talpinimui. Mėnesio nemokami apribojimai yra 180 000 procesoriaus sekundžių, 360 000 GB sekundžių atminties, 2 milijonai užklausų ir 1 GB tinklo išėjimo. Laisvo tinklo išėjimo riba taikoma tik tuo atveju, jei paslauga yra dislokuota Šiaurės Amerikos regione.
Pagal numatytuosius nustatymus „Cloud Functions“ ir „Cloud Run“ sudėtiniai rodiniai yra vieši ir prie jų gali prisijungti bet kas internete. Naudojant „Cloud Console“ IAM taisykles, paslaugos gali būti teikiamos tik projekto nariams, „Google“ grupėms ir individualiems el. Pašto adresams.
Jei yra apribojimų, neleistina prieiga draudžiama. Norint įgalinti prieigą, prie užklausos antraščių reikia pridėti tapatybės ženklą. Tapatybės ženklą galite gauti naudodami komandą „gcloud“ arba „Firebase“ autentifikavimo proceso metu.
gcloud auth print-identity-token
Būtina autorizacijos antraštė.
Authorization: Bearer id-token
„Google Cloud Platform“ ir „Firebase“ siūlo daugybę produktų, kurie labai palengvina mobiliųjų ir žiniatinklio programų kūrimą. Galinio serverio poreikį galima visiškai panaikinti leidžiant klientams tiesiogiai pasiekti debesies funkciją arba diegiant vidinį kodą į debesį naudojant „Cloud Functions“ arba „Cloud Run“.
Esamas programas galima palaipsniui perkelti į serverius. Tiesą sakant, technologijos vystymasis gali reikšti, kad tradicinių virtualių mašinų pagrindu sukurtų serverių sprendimų nebereikės.
Programos, kurioms reikalingas vartotojo autentifikavimas, duomenų saugojimas, pranešimų siuntimas ir naudojimo statistika.
Ne, jis taip pat gali būti naudojamas žiniatinklio programoms ir administravimo programoms.
Tai suteikia paprastą ir paprastą naudoti funkcionalumą, kurio reikia daugeliui programų.
Jis sukurtas tam, kad mobiliųjų telefonų ir žiniatinklio front-end kūrėjai galėtų naudotis debesų serverio funkcijomis be serverio.
Apsvarstykite galimybę naudoti „Firebase“ kuriant naujas programas ar tobulinant esamas programas.