Mobiili- ja verkkosovellukset vaativat yleensä taustapalvelimen. Verkkosovellukset edellyttävät verkkopalvelinta sisällön toimittamiseksi. Sovellusten on myös tallennettava käyttäjäprofiileja ja mediaa, kuten kuvia ja videoita. Viestintä sovelluksen ja palvelimen välillä tapahtuu usein API: lla, joka on yleensä REST.
Sovellukset on koodattu useilla kielillä. IOS-sovellus on kirjoitettu Swiftillä tai Objective-C: llä. Android-sovellukset kirjoitetaan Java- tai Kotlin-kielellä. Verkkosovellukset kirjoitetaan HTML-, CSS-, JavaScript- ja usein monimutkaisissa kehyksissä, kuten Angular tai React. Käyttöliittymän kehittäjien on tiedettävä asiaankuuluvat kielet ja niihin liittyvät kehitystyökalut.
Taustapalvelimet on kirjoitettu useilla kielillä, mukaan lukien Go, Java, PHP ja Python. Jokaisella näistä kielistä on oma kirjastopaketti monimutkaisten sovellusten kirjoittamisen helpottamiseksi.
Useimmat kehittäjät pitävät itseään etu- tai taustakehittäjinä. Kummankin roolin taitavat täysikokoiset kehittäjät ovat suhteellisen harvinaisia.
Taustapalvelimen käyttämisellä ja ylläpidolla on omat haasteensa. Palvelimet on rakennettava, päivitettävä ja varmuuskopioitava. Palvelimet on myös suojattava vahingossa tapahtuvan tai haitallisen tietojen menetyksen tai arkaluontoisten tietojen käytön estämiseksi. Palvelimille on lisäksi määritettävä isäntänimet ja IP-osoitteet, jotta ne voidaan yhdistää.
Firebase alkoi mobiiliviestintäarkkitehtuurina, jonka Google hankki. Se on sittemmin kehittynyt yli 25 komponentin sarjaksi, joka toimii yhdessä Google Cloud Platform .
Firebase koostuu ohjelmistokehityspaketeista (SDK), joiden avulla mobiili- ja verkkokehittäjät voivat käyttää pilvitoimintoja yksinkertaisesti, turvallisesti ja luotettavasti. Ne kompensoivat heikon verkkoyhteyden automaattisesti. Komponenttien käyttöönottoa, hallintaa ja suojaamista varten on Firebase-verkkokonsoli. On myös komentorivityökaluja ja REST-sovellusliittymiä perusteellisempaan käyttöön.
Jotkut Firebase-komponentit tunnetaan paremmin kuin toiset. Komponenttien välillä on vain vähän riippuvuuksia, mikä mahdollistaa toiminnallisuuden asteittaisen käyttöönoton. Firebase-todennusta ja analytiikkaa käytetään eniten.
Firebase on kehittynyt alustaksi, jonka avulla mobiili- ja web-käyttöliittymän kehittäjät voivat kehittää täydellisiä sovelluksia ilman taustapalvelimia. Viimeaikaiset parannukset ovat helpottaneet suuresti palvelimettomia ratkaisuja, jotka tarjoavat toimivan, skaalautuvan, kustannustehokkaan vaihtoehdon Cloud Virtual Machine -palvelinratkaisuille.
Firebase-laskutuksen perussuunnitelma, nimeltään Spark, on ilmainen. Pilviresurssien käytöllä on rajoituksia, mutta ne ovat melko anteliaita. On mahdollista suorittaa kohtuullisen kokoinen sovellus ilman maksuja.
Spark-suunnitelman nojalla voidaan isännöidä verkkosivustoa, jossa on enintään 1 Gt sisältöä ja siirrot alle 10 Gt / kk. Firestore sallii jopa 1 Gt dataa ja verkkoliikenteen jopa 10 Gt / kk. Pilvivarastointirajoitukset ovat jopa 5 Gt dataa ja lataukset enintään 1 Gt / päivä.
Jos sovellus tarvitsee enemmän resursseja, vaaditaan maksettu laskutussuunnitelma, kuten palkkamaksu. Spark-suunnitelman ilmaiset rajoitukset ovat edelleen voimassa. Laskutettavat maksut ovat melko pieniä. Hinnoittelu löytyy osoitteesta Firebase-hinnoittelusivu .
Pilvessä toimivat virtuaalikoneet aiheuttavat maksuja, kun ne ovat käynnissä, vaikka niitä ei käytettäisikään. Firebase-palvelimettomat ratkaisut skaalautuvat nollaan. Tämä tarkoittaa sitä, että resurssit käyvät käytännössä vain käytettäessä, eikä niistä peritä maksuja, kun niitä ei käytetä. Tämä on ihanteellinen sovelluksia kausiluonteisille yrityksille, kuten loma-asunnoille tai säännöllisiin tapahtumiin, kuten konsertteihin. Olisi paljon toimintaa, jota seuraisi kuukausien toimettomuus.
Todentaminen edellyttää sähköpostitiliä. Google-sähköpostitili on suositeltava. Ne voidaan luoda osoitteessa https://mail.google.com .
Tarvitaan myös Google Cloud Platform (GCP) -tili. Ilmainen kokeiluversio on käytettävissä tässä . Tämä antaa sinulle 300 dollarin hyvityksen, joka on käytettävissä vuodeksi. Luottokortti vaaditaan henkilöllisyyden todistamiseksi. Google voi veloittaa 1 dollarin ja hyvittää sen sitten. Luottokorttia veloitetaan kuukausittain, jos laskutus on käytössä ja laskutettavia resursseja käytetään. On myös Googlen palveluntarjoajayrityksiä, jotka toimivat välittäjinä laskutuksessa. Maksat palveluntarjoajalle pilvikäytöstä, ja he maksavat Googlelle. Heillä on omat laskutussuunnitelmansa ja he voivat tarjota ilmaisen kokeiluversion.
On tärkeää seurata pilvikonsolin laskutusosaa usein käytön seuraamiseksi. Resurssit, kuten varastointi, on helppo pitää aktiivisena, kun niitä ei tarvita, mistä voi aiheutua huomattavia kustannuksia ajan myötä.
Firebase-projektit ovat myös GCP-projekteja. Voit luoda GCP-projektin ja tuoda sen Firebaseen tai luoda Firebase-projektin, joka luo myös GCP-projektin. Firebase-konsoli on tässä .
Erilaiset sovellukset edellyttävät erilaista asetusta. Tärkeimmät niistä ovat Android-, iOS- ja verkkosovellukset. Asennusohjeet löytyvät virallisesta Firebase-oppaat .
Joissakin toiminnoissa tarvitaan Firebase Command Line Interface (CLI) -työkaluja. Nämä edellyttävät, että Node.js
ja npm
työkalu on asennettu. Jos käyttöjärjestelmä on macOS tai Linux, npm
komento on suoritettava sudo
.
sudo npm install -g firebase-tools
Firebase-todennus on ehkä yleisimmin käytetty Firebase-komponentti. Käyttäjät voivat valita yhden tai useamman todennusmekanismeista. Nämä ovat sähköpostiosoite ja salasana, puhelinnumerot sekä yhdistetyt henkilöllisyyden tarjoajat Google, Facebook, Twitter ja GitHub. Mikä tahansa määrä todennustapoja voidaan ottaa käyttöön.
Firebase-käyttöliittymä pyytää käyttäjää käyttämään mekanismia:
Firebase tarjoaa käyttöliittymiä todennusta varten, jotka voidaan kutsua muutamasta asiakasrivin koodirivistä. On myös sovellusliittymiä todennuksen tekemiseen manuaalisesti. Onnistuneen todennuksen yhteydessä luodaan henkilöllisyystunnus, jota voidaan käyttää back-end-tarkistukseen.
API: t antavat järjestelmänvalvojan käyttäjien hallita käyttäjiä ohjelmallisesti. Toimintoja ovat:
Useimmat mobiili- ja verkkosovellukset haluavat, että suuri määrä käyttäjiä kirjautuu sovelluksiinsa. Esimerkiksi kuka tahansa, jolla on Google Mail -tili, voi todentaa itsensä mihin tahansa sovellukseen, joka sallii Google-todennuksen. Lupamuoto tarvitaan rajoittamaan pääsy sovellukseen tietyille käyttäjille. Tämä voidaan tehdä helposti tallentamalla assosiaatioita sähköpostiosoitteiden ja käyttöoikeusroolien välille tietovarastoon. Onnistuneen todennuksen jälkeen sähköpostiosoite haetaan tietojen tallennustilasta. Jos käyttäjällä on oikeat roolit, käyttöoikeus myönnetään; muuten käyttäjä pakotetaan kirjautumaan ulos.
Firebase-hosting sallii staattisen verkkosisällön, joka sisältää JavaScriptin, isännöinnin pilvessä ilman verkkopalvelinta. Sisältö on välimuistissa globaalin sisällön toimitusverkon (CDN) reunoilla. Tämä mahdollistaa nopean pääsyn sisältöön mistä päin maailmaa tahansa.
Yhtä tai useampaa verkkosivustoa voidaan isännöidä lisäämällä ne Firebase-konsolin Firebase-projektin Hosting-osioon. Sisältö toimitetaan SSL: n kautta ja sille annetaan kaksi lomakkeen URL-osoitetta, https://sivustonimi.web.app ja https://site-name.firebaseapp.com , missä site-name
on joko projektin nimi tai käyttäjän määrittämä sivuston nimi.
Sivuston isännöinti omasta verkkotunnuksestasi on erittäin helppoa, jos voit muuttaa verkkotunnuksen DNS-tietueita. Lisäät verkkotunnuksesi sivustoon Firebase Consolessa. Tämän jälkeen sinulle annetaan DNS TXT -tietue, joka sinun on lisättävä verkkotunnuksesi DNS: ään osoittaaksesi Googlelle, että omistat verkkotunnuksen. Kun TXT-tietue on näkyvissä, voit hankkia sivuston DNS A -tietueet. SSL-varmenne toimitetaan automaattisesti sivustolle. Kun varmenne on hankittu, sivusto on käytettävissä maailmanlaajuisesti. DNS-päivitysten ja varmenteiden valmistelu voi periaatteessa viedä useita tunteja. Käytännössä prosessi voidaan suorittaa loppuun 20 minuutissa.
Jos haluat lisätä sisältöä isännöintiin, luo ensin hakemisto sivustolle ja cd
siihen komentoriviltä. Kirjaudu seuraavaksi Firebaseen ja alusta projektihakemisto.
firebase login firebase init
Sinua pyydetään valitsemaan projekti ja tarvittavat asiakaspalvelut. Palvelut voidaan aina lisätä myöhemmin, eikä niitä tarvitse valita tässä vaiheessa.
Luo tiedosto nimeltään firebase.json
, joka määrittelee sivuston juurihakemiston ja suljettavat tiedostot. Tarvitset myös .gitignore
tiedosto, jolla tiedostot suljetaan pois versionhallinnasta.
{ 'hosting': { 'public': 'public', 'ignore': [ 'firebase.json', '**/.*', '**/node_modules/**' ] } }
Kopioi sitten staattinen sisältö julkiseen hakemistoon. Ota lopuksi sivusto pilveen.
firebase deploy
Voit muuttaa verkkosisältöä yksinkertaisesti vaihtamalla sisältötiedostot ja antamalla käyttöönottokomennon. Jokainen käyttöönotto näkyy versiona Firebase Consolessa. Voit palata edelliseen versioon yhdellä napsautuksella.
Firebase Hosting voi myös kirjoittaa URI: t tiedostoihin, pilvitoimintoihin ja pilvipalveluun. Tämä yksinkertaistaa huomattavasti asioita, koska verkkotunnusta ei tarvitse määrittää näille palveluille. Uudelleenkirjoittaminen määritetään lisäämällä uudelleenkirjoittamisosio firebase.jsonin isäntäosioon. Hostin käyttöönotto epäonnistuu, jos palvelua ei ole.
{ 'hosting': { 'public': 'public', 'rewrites': [ { 'source': '/xxx', 'destination': '/profile.html' }, { 'source': '/yyy', 'function': 'profile' }, { 'source': '/api{,/**}', 'run': { 'serviceId': 'cloud-api', 'region': 'europe-west1' } } ] } }
Firebase tarjoaa asiakkaan sovellusliittymiä pilvipohjaisen tietovaraston käyttöön. Tallennustiloja on kolme:
Tämä antaa matkapuhelin- ja verkkoasiakkaille mahdollisuuden tallentaa ja noutaa tietoja ilman palvelinta.
Reaaliaikainen tietokanta on pilvipalvelema NoSQL-tietokanta. Reaaliaikaisen tietokannan tiedot synkronoidaan automaattisesti reaaliajassa kaikkien liitettyjen laitteiden kanssa. Se toimii eri alustoilla Androidiin, iOS: ään ja verkkoon. Tiedot tallennetaan JSON-puurakenteena. Suojaussäännöt voidaan asettaa hallitsemaan tietojen luku- ja kirjoitusoikeuksia.
Jokainen laite pitää paikallisen kopion tietokannasta. Tämä tarkoittaa, että tiedot ovat käytettävissä, kun niitä ei ole kytketty verkkoon. Yhteyden muodostamisen yhteydessä tietojen paikalliset ja pilvipohjaiset kopiot synkronoidaan.
Sovellukset lukevat tiedot kuuntelijan avulla. Kuuntelija kuuntelee JSON-puun solmua. Aina kun tietoja muutetaan konsolissa tai joku toinen käyttäjä, kuuntelijan takaisinsoittoon kutsutaan uusi data-arvo. Reaaliaikainen tietokanta tukee myös kyselyitä. Jokainen kysely palauttaa solmun ja kaikki sen alisolmut.
Suojaussäännöt eivät oletusarvoisesti salli tietojen käyttöä. Sääntöjä voidaan lisätä yleisesti tai JSON-objektin yksittäisiin solmuihin. Suojaussäännöt valvovat tietojen luku- ja kirjoitusoikeuksia ja voivat suorittaa vahvistuksen.
Reaaliaikainen tietokanta sopii parhaiten pieniin tietoihin, jotka eivät vaadi syvällisesti sisäkkäistä tietorakennetta. Vapaa raja on 1 Gt dataa.
Cloud Firestore nähdään reaaliaikaisen tietokannan korvikkeena. Se laajentaa reaaliaikaisen tietokannan toiminnallisuutta. Tiedot eivät ole JSON-puussa, vaan hierarkkisessa kokoelmassa asiakirjoja. Jokainen asiakirja koostuu joukosta avainarvopareja ja valinnaisia alidokumentteja. Kyselyt mahdollistavat monimutkaisemman suodatuksen ja lajittelun ja palauttavat vain täydelliset asiakirjat. Kyselyt eivät palauta ala-asiakirjoja.
Cloud Firestore korvaa pian Cloud Datastoren. Se voidaan suorittaa Datastore-tilassa tai natiivitilassa. Kaikki Datastore-sovellukset siirretään automaattisesti Cloud Firestoreen.
Cloud Firestore soveltuu parhaiten suhteellisen pieniin tietoihin. Sillä voi olla syvälle sisäkkäinen tietorakenne. Vapaa raja on 1 Gt dataa.
Pilvitallennus on tarkoitettu tiedostojen, kuten kuvien ja videoleikkeiden, tallentamiseen. Matkapuhelin- ja verkkoasiakkaat voivat Firebasen avulla ladata ja ladata tiedostoja suoraan pilvestä ja pilvestä ilman taustapalvelinta. Vapaa raja on 5 Gt dataa.
Pilvitoiminnot ovat tärkeä tekniikka palvelimettomien sovellusten luomisessa. Pilvitoiminto voidaan kirjoittaa JavaScriptillä, TypeScriptillä, Pythonilla tai Go: lla, joka on otettu käyttöön suoraan Google-pilveen. Toiminnon laukaisee HTTP-pyyntö tai pilvessä tapahtuva tapahtuma, kuten kirjoittaminen Cloud Storage -palveluun.
Pilvitoiminto voi käsitellä vain yhtä pyyntöä kerrallaan, mutta pilvi skaalaa toiminnon automaattisesti toistamalla sen. Pythonissa kirjoitettu pilvitoiminto käyttää Flask-kirjastoa HTTP-pyyntöjen käsittelemiseen. Funktio ottaa pyyntöobjektin parametriksi ja palauttaa vastauksen rungon.
Yksinkertainen Python Cloud -toiminto vaatii työhakemiston, ja alkupiste menee tiedostoon main.py
.
def simple_cloud_function(request): return 'It worked'
Riippuvuuksia hallitaan pip: llä ja siirretään tiedostoon nimeltä requirements.txt
.
Flask==1.0.2
Toiminto otetaan käyttöön gcloud
-toiminnolla komentorivityökalu. Se määrittää toiminnon nimen, kielen ja laukaisimen.
gcloud functions deploy simple_cloud_function --runtime python37 --trigger-http
Toiminnon URL-osoite näkyy käyttöönoton yhteydessä ja se löytyy suorittamalla kuvaus-komento.
gcloud functions describe simple_cloud_function Url: https://europe-west1-project-id.cloudfunctions.net/simplecloud_function
Pilvitoiminnot voivat kutsua Google Cloud- ja Firebase-sovellusliittymiä tarjoamaan taustatoimintoja. Ne tarjoavat lokitietoja suorituksen käynnistämisestä ja suorituksen ajasta. Ylimääräinen kirjaaminen voidaan helposti lisätä. Lokeja voi tarkastella Stackdriver Logging -käyttöliittymässä ja gcloud
-sivun kautta komentorivityökalu.
gcloud functions logs read simple_cloud_function
Toimintoja voidaan tarkastella ja poistaa Google Cloud Consolessa.
Pilvitoimintoja voidaan parhaiten käyttää suhteellisen harvoin tapahtuviin toimintoihin. Esimerkkinä on pikkukuvan luominen, kun kuva ladataan Cloud Storage -palveluun. Vapaa raja on 125000 kutsua kuukaudessa.
Cloud Run on äskettäin lisätty toiminto, joka helpottaa suuresti palvelimettomia sovelluksia. Sen avulla Docker-kontteja voidaan ajaa pilvessä tarvitsematta tehdä monimutkaista infrastruktuurin määritystä. Se voi toimia hallitussa tilassa, joka käyttää Knative-ajonaikaa, joka on rakennettu Kubernetesille. Se voi toimia myös Anthosilla, joka on myös rakennettu Kubernetesille, mutta jonka avulla kontteja voidaan ajaa pilvien yli ja jopa omassa palvelinkeskuksessasi. Kubernetes-klusteria ei tarvitse asettaa ja hallita, koska kaikki tehdään automaattisesti.
Kaikkia Docker-kuviin sisäänrakennettuja sovelluksia voidaan hallita Cloud Run -sovelluksella. Se skaalaa konttien määrän automaattisesti kysynnän perusteella. Se skaalautuu myös nollaan, kun palvelua ei käytetä. Käyttämättömistä palveluista ei peritä maksuja.
Docker-säilöjen on suoritettava verkkopalvelin, jos ne haluavat vastata HTTP-pyyntöihin. Python-palvelu käyttää pulloa. Tulopiste tulee olemaan app.py
.
from flask import Flask, request app = Flask(__name__) @app.route(’/api/profile’) def profile(): page = ’’’ Page content ’’’ return page
Sovellus tarvitsee Dockerfile
kuvan luomiseksi.
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 -säilöt otetaan käyttöön suoraan pilveen.
gcloud run deploy --image=image_name --platform=managed --region=europe-west1 --allow-unauthenticated
Jos palvelun nimeä, alustaa, aluetta tai todennuksen sallimattomuutta ei ole määritelty projektikokoonpanossa tai toimitettu komentorivillä, niitä pyydetään. Kun käyttöönotto on valmis, palvelun URL-osoite tulee näkyviin. URL-osoite voidaan hankkia myös gcloud-komennolla.
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 sisältää satunnaisluvun, jota on vaikea hallita. Tässä Firebase Hosting -kirjoitussäännöt ovat hyödyllisimpiä.
Palveluja voidaan tarkastella ja poistaa Google Cloud Consolessa.
Cloud Run soveltuu erinomaisesti REST-sovellusliittymän isännöimiseen. Kuukausittaiset ilmaiset rajoitukset ovat 180 000 suorittimen sekuntia, 360 000 Gt sekuntia muistia, 2 miljoonaa pyyntöä ja 1 Gt verkon ulosmenoa. Vapaan verkon poistumisraja pätee vain, jos palvelu on otettu käyttöön Pohjois-Amerikan alueella.
Pilvitoiminnot ja Cloud Run -säilöt ovat oletusarvoisesti julkisia, ja kuka tahansa voi käyttää niitä Internetissä. IAM-sääntöjen avulla Cloud Consolessa palvelut voidaan rajoittaa projektin jäsenille, Google-ryhmille ja yksittäisille sähköpostiosoitteille.
Jos rajoituksia on voimassa, luvaton käyttö on kielletty. Pääsyn sallimiseksi tunnistetunnus on lisättävä pyynnön otsikoihin. Tunnistetunnuksen voi hankkia gcloud-komennolla tai Firebase-todennuksen aikana.
gcloud auth print-identity-token
Valtuutusotsikko vaaditaan.
Authorization: Bearer id-token
Google Cloud Platform ja Firebase tarjoavat laajan valikoiman tuotteita, jotka helpottavat huomattavasti mobiili- ja verkkosovellusten kehittämistä. Taustapalvelimen tarve voidaan poistaa kokonaan antamalla asiakkaiden käyttää suoraan pilvitoimintoja tai asentamalla taustakoodia pilveen pilvitoimintojen tai pilvipalvelun avulla.
Olemassa olevat sovellukset voidaan siirtää palvelimettomaksi asteittain. Itse asiassa tekniikan kehitys voi tarkoittaa, että perinteisiä virtuaalikoneisiin perustuvia palvelinratkaisuja ei enää tarvita.
Sovellukset, jotka edellyttävät käyttäjän todennusta, tietojen tallennusta, viestintää ja käyttötilastoja.
Ei, sitä voidaan käyttää myös verkkosovelluksissa ja hallintasovelluksissa.
Se tarjoaa käyttövalmiita, helppokäyttöisiä toimintoja, joita monet sovellukset vaativat.
Se on suunniteltu antamaan mobiili- ja web-käyttöliittymän kehittäjille pääsy pilvipohjaisiin palvelintoimintoihin ilman palvelinta.
Harkitse Firebasen käyttöä, kun kehität uusia sovelluksia tai parannat olemassa olevia sovelluksia.