Näin pienennät sovelluksesi hosting-kuluja
Hosting-kulujen pienentämiseksi selvitä, mikä oikeasti on käynnissä ja miksi, ja anna sitten kaiken nukkua, kun kukaan ei käytä sitä. Palveluissa, jotka skaalautuvat nollaan, käyttämätön sovellus ja nukkuva tietokanta maksavat hyvin vähän, joten suurimmat säästöt tulevat yleensä siitä, että poistetaan se, mikä pitää ne hereillä – useimmiten koodi, joka tarkistaa tietokannan muutaman sekunnin välein – ja sen jälkeen kaistankäytön pienentämisestä ja sovellusten poistamisesta, joita kukaan ei käytä.
Suurimmalla osalla pieniä sovelluksia ei ole liikenneongelmaa. Niillä on "jokin on aina päällä" -ongelma. Tämä opas näyttää, miten se löydetään ja korjataan, ja antaa kehotteita, joita voit antaa tekoälypohjaiselle sovellusrakentajalle.
Mistä oikeasti maksat
Pienten sovellusten hosting-laskut koostuvat muutamasta asiasta. Kun tiedät, mikä on suuri, tiedät mistä katsoa.
| Kulu | Mikä sitä ajaa | Tavallinen korjaus |
|---|---|---|
| Laskenta (palvelin) | Kuinka suuri kone on ja kuinka monta tuntia se käy | Anna sen nukkua; mitoita oikein |
| Tietokanta | Sen koko ja kuinka kauan se on hereillä | Lopeta jatkuvat kyselyt, jotta se voi nukkua |
| Kaistankäyttö | Kuinka paljon dataa kävijät lataavat | Pakkaa kuvat, välimuistita tiedostot |
| Tallennus | Tiedostot ja data, jotka säilytät | Poista vanhat lataukset, lokit ja varmuuskopiot, joita et tarvitse |
| Kolmannen osapuolen API:t | Kutsut tekoälymalleihin, karttoihin, sähköpostiin, tekstiviesteihin | Välimuistita tulokset, aseta rajat |
Monet nykyaikaiset palvelut, Mythex mukaan lukien, skaalautuvat nollaan: kun kukaan ei käytä sovellusta, palvelin pysähtyy eikä maksa laskentaa, ja herää seuraavalla vierailulla. Tämä muuttaa kysymyksen "kuinka iso palvelimeni on?" muotoon "miksi palvelimeni on hereillä?"
Vaihe 1: Katso, minne rahat menevät
Ennen kuin muutat mitään, avaa palvelusi käyttösivu ja selvitä:
- Mikä projekti maksaa eniten. Usein yksi sovellus on suurin osa laskusta.
- Mikä kategoria – laskenta, tietokanta, kaistankäyttö vai tallennus.
- Milloin se kuluttaa. Tasainen viiva yön yli, kun sinulla ei ole käyttäjiä, on vihje siitä, että jokin pitää sovelluksen hereillä.
Mythexissä Käytön tiedot näyttää viimeiset 30 päivää jaettuna Build-osaan (tekoälyagentti) ja Run-osaan (hosting, kaistankäyttö, tietokanta ja tiedostotallennus), erittelyllä projekteittain.
Vaihe 2: Anna käyttämättömien sovellusten ja tietokantojen nukkua
Tämä on useimmille pienille sovelluksille todellinen vipu. Tietokanta, joka nukkuu käyttämättömänä ja herää seuraavalla pyynnöllä, maksaa lähes ei mitään hiljaisina tunteina. Tietokanta, jota kysellään muutaman sekunnin välein, ei koskaan jää käyttämättömäksi, joten maksat siitä koko päivän.
Mythexin hosting-rajat kertovat, miten tämä toimii julkaistuille sovelluksille: nukkuva sovellus ei kuluta laskentaa lainkaan, ja tietokanta käynnistyy pienimmällä koollaan, kasvaa kiireisenä, nukahtaa 5 minuutin käyttämättömyyden jälkeen ja sitä veloitetaan koon ja hereillä olon ajan tulona. Eli sovellus, joka kysyy tietokantaansa edes kerran muutamassa minuutissa päivät ja yöt, laskutetaan kuin se olisi aina kiireinen – kun taas sama sovellus ilman taustakohinaa maksaa hyvin vähän.
Yleisiä asioita, jotka pitävät sovelluksen hereillä:
- Kysely. Sivu, joka kysyy palvelimelta "onko uutta?" joka 2–5 sekunti. Jos jätät tuon välilehden auki yhdelle kannettavalle, tietokanta ei koskaan nuku.
- Automaattisesti päivittyvät hallintanäkymät, jotka lataavat dataa ajastimella, vaikka kukaan ei katso.
- Käyttökatkomonitorit, jotka pingaavat sovellusta joka minuutti.
- Taustasilmukat palvelinkoodissa –
setInterval, joka siivoaa tai synkronoi dataa ikuisesti. - Ajastetut "keep-alive"-pyynnöt, jotka joku lisäsi välttääkseen hitaan ensimmäisen vierailun – ne toimivat estämällä nukkumisen, ja juuri se maksaa rahaa.
Pyydä tekoälyä löytämään ne:
Käy koodi läpi ja etsi kaikki, mikä ajetaan ajastimella tai kysyy tietokantaa toistuvasti: kysely, setInterval, automaattinen päivitys, taustasilmukat. Listaa jokainen, kuinka usein se ajetaan ja ajetaanko se, kun kenelläkään ei ole sivua auki. Älä muuta vielä mitään.
Sitten korjaa ne yksi kerrallaan:
Hallintanäkymä kysyy /api/orders-osoitetta 3 sekunnin välein. Muuta se päivittymään vain silloin kun selaimen välilehti on näkyvissä, ja 60 sekunnin välein 3 sekunnin sijaan. Lisää manuaalinen Päivitä-painike.
Jos sovelluksesi todella tarvitsee reaaliaikaisia päivityksiä (chat, live-tulostaulu), kysy, voiko se työntää päivitykset vain kun jotain muuttuu, sen sijaan että kysyisi jatkuvasti. Monille sovelluksille riittää "päivitä, kun käyttäjä palaa välilehdelle".
Vaihe 3: Mitoita palvelin oikein
Suuremmat koneet maksavat enemmän tunnilta. Monet tekoälyllä rakennetut sovellukset alkavat oletuskoossa, joka riittää; ongelmat tulevat siitä, että pyydetään "lisää tehoa" hitauteen, joka oli oikeasti hidas kysely.
- Pidä pienin koko, joka palvelee liikenteesi ilman virheitä.
- Jos näet muistikaatoja, kysy ensin tekoälyltä, lataako sovellus liikaa muistiin (koko taulu yhden tulossivun sijaan).
- Lisää koneita vain, jos olet mitannut liikenteen, joka niitä tarvitsee.
Mythexissä koneen koko valitaan julkaisussa sovelluksen tarpeen mukaan, ja lisäkoneet käynnistyvät vain raskaan liikenteen aikana ja menevät takaisin nukkumaan, kun liikenne laskee. Kustannus seuraa kokoa, joten pyydä chatissa pienempää kokoa, jos epäilet sen olevan liian suuri.
Vaihe 4: Pienennä kaistankäyttöä
Kaistankäyttö on se, minkä kävijät lataavat. Kuvat ovat yleensä suurin osa.
- Pakkaa kuvat ja tarjoa modernit muodot, kuten WebP tai AVIF.
- Muuta kuvien kokoa siihen kokoon, jossa ne näytetään. 4 000 pikselin valokuva, joka näkyy 400 pikselin pienoiskuvana, tuhlaa suurimman osan ladatusta datasta.
- Lataa kuvat laiskasti, kun ne ovat näkyvän alueen alapuolella.
- Välimuistita staattiset tiedostot (skriptit, tyylit, kuvat), jotta palaavat kävijät eivät lataa niitä uudelleen. Katso mitä välimuisti on.
- Älä anna sovelluksen jakaa suuria tiedostoja joka sivunlatauksella.
Tarkista jokainen kuva sovelluksessa. Muuta niiden koko suurimpaan näytettävään kokoon, muunna ne WebP-muotoon ja lataa laiskasti kaikki ensimmäisen näkymän alapuolella oleva. Kerro kokonaiskoko ennen ja jälkeen.
Nopeammat sivut ja pienempi kaistankäyttö kulkevat yleensä käsi kädessä – katso kuinka tehdä verkkosivustosta nopeampi.
Vaihe 5: Siivoa se, mitä kukaan ei käytä
- Poista vanhoja sovelluksia julkaisusta – testijulkaisut, valmiit kokeilut, viime vuoden tapahtumasivu.
- Poista vanhat lataukset, lokit ja viennit, joita et tarvitse.
- Poista jaetut esikatselulinkit, joita et enää käytä. Mythexissä esikatselulinkin avaaminen herättää projektin ja käyttää krediittejäsi, joten unohdettu linkki, jota joku avaa jatkuvasti, maksaa edelleen.
- Poista käyttämättömät palvelut – palvelin tai työntekijä, jota sovellus ei enää kutsu.
Vaihe 6: Harkitse staattista sivustoa
Jos sivustollasi ei ole kirjautumisia, tallennettua käyttäjädataa eikä palvelinlogiikkaa – markkinointisivu, portfolio, ruokalista – siitä voi tehdä staattisen sivuston: pelkkiä tiedostoja CDN:stä. Ei ole palvelinta eikä tietokantaa, jota pitäisi pitää käynnissä. Mythexissä staattiset sivustot eivät käytä krediittejä, kun ne vain ovat paikallaan.
Tällä sivustolla ei ole kirjautumisia eikä tallennettua dataa. Voidaanko se rakentaa uudelleen staattisena sivustona ilman palvelinta? Mitä menettäisimme?
Vaihe 7: Seuraa maksullisia API-kutsuja
Sovelluksille, jotka kutsuvat tekoälymalleja, karttoja tai tekstiviestipalveluja, kolmansien osapuolien laskut voivat ylittää hostingin moninkertaisesti.
- Vaadi kirjautuminen kaikelle, mikä maksaa kutsua kohden.
- Lisää käyttäjäkohtainen raja (katso mitä nopeusrajoitus on).
- Välimuistita vastaukset, jotka eivät muutu, kuten saman osoitteen geokoodaus.
- Aseta kulutusrajat tai hälytykset jokaisessa palveluntarjoajassa.
Yleisimmät virheet
- Arvaaminen mittaamisen sijaan. Tarkista ensin käyttöerittely; kallis osa on usein muu kuin odotit.
- Suuremman palvelimen ostaminen hitauteen. Puuttuva tietokantaindeksi tai liian suuren datamäärän lataaminen on yleensä todellinen syy.
- Kaiken kysyminen. Jokainen muutaman sekunnin ajastin on syy, miksi tietokanta pysyy hereillä.
- Sovelluksen pingaaminen, jotta se pysyy "lämpimänä". Se poistaa säästön, jonka skaalaus nollaan antaa. Hyväksy lyhyt herääminen ensimmäisellä vierailulla tai maksa tarkoituksella jatkuvasta käynnistä.
- Vanhojen julkaisujen unohtaminen. Käyttämättömät sovellukset tietokantoineen ja taustatöineen kertyvät hiljaa.
- Pakkaamattomat kuvat. Usein pienten sivustojen suurin yksittäinen kaistankäyttökulu.
Tarkistuslista
- Tiedän, mikä projekti ja mikä kategoria (laskenta, tietokanta, kaistankäyttö, tallennus) maksaa eniten.
- Mikään ei kysele tietokantaa muutaman sekunnin välein, kun kukaan ei katso.
- Hallintanäkymät päivittyvät järkevällä välillä tai vain kun välilehti on näkyvissä.
- Mikään käyttökatkomonitori tai taustasilmukka ei pidä sovellusta hereillä ilman syytä.
- Palvelin on pienin koko, joka toimii.
- Kuvat on muutettu kokoon, pakattu ja ladataan laiskasti; staattiset tiedostot on välimuistitettu.
- Vanhat sovellukset on poistettu julkaisusta, vanhat tiedostot poistettu ja käyttämättömät esikatselulinkit poistettu.
- Sivustot ilman dataa tai kirjautumisia ovat staattisia.
- Maksullisilla API:illa on kirjautuminen, käyttäjäkohtaiset rajat ja palveluntarjoajan kulutushälytykset.
Kulujen pienentäminen Mythexissä
Mythexissä on yksi krediittisaldo sekä rakentamiseen että hostingiin, joten hosting-säästöt jättävät enemmän krediittejä rakentamiseen. Muutama Mythex-kohtainen seikka:
- Julkaistut sovellukset ja niiden tietokannat nukkuvat käyttämättöminä ja heräävät seuraavalla vierailulla. Tietokanta nukahtaa 5 minuutin käyttämättömyyden jälkeen, joten jatkuvan kyselyn poistaminen on yleensä suurin voitto.
- Pro maksaa puolet Free-hinnasta hostingista, tietokannoista, kaistankäytöstä, tiedostotallennuksesta ja esikatseluhiekkalaatikosta; tekoäly maksaa samaa molemmilla paketeilla. Katso Krediitit.
- Saat sähköpostin ennen kuin alhainen saldo pysäyttäisi julkaistun sovelluksen, ja pysäytetyt sovellukset säilyttävät tietokantansa ja tiedostonsa.
Laajempi kuva käyttökuluista: katso paljonko sovelluksen rakentaminen maksaa ja mitä web-hosting on.
Kysymykset
Miksi hosting-laskuni on korkea, vaikka sovelluksellani on vähän käyttäjiä?
Yleensä jokin pitää sen hereillä. Koodi, joka tarkistaa tietokannan muutaman sekunnin välein, käyttökatkomonitori, joka pingaa minuutin välein, tai unohtunut taustasilmukka voi pitää palvelimen ja tietokannan käynnissä ympäri vuorokauden, vaikka kävijöitä ei olisi.
Maksaako nukkuva sovellus rahaa?
Palveluissa, jotka skaalautuvat nollaan, nukkuva sovellus kuluttaa vähän tai ei lainkaan laskentaa; tallennetusta datasta maksat yleensä silti. Mythexissä nukkuva julkaistu sovellus ei kuluta laskentaa lainkaan, ja sen tietokanta nukahtaa 5 minuutin käyttämättömyyden jälkeen ja sitä veloitetaan vain siitä ajasta, jonka se oli hereillä.
Onko kysely huono hosting-kustannuksille?
Kysely muutaman sekunnin välein tarkoittaa, että tietokannalla ei koskaan ole käyttämätöntä jaksoa, joten se ei voi nukkua. Kysy harvemmin, vain silloin kun joku katsoo sivua, tai työnnä päivitykset sen sijaan, että pyytäisit niitä.
Onko staattinen sivusto halvempi majoittaa kuin verkkosovellus?
Yleensä kyllä. Staattinen sivusto on pelkkiä tiedostoja, jotka tarjoillaan CDN:stä, ilman palvelinta tai tietokantaa, jota pitäisi pitää käynnissä. Jos sivustollasi ei ole kirjautumisia tai tallennettua dataa, sen rakentaminen staattisena on yksi suurimmista käytettävissä olevista säästöistä.