Mega-bemutató lombik, 18. rész telepítése a heroku felhőben, a webes földön
Az előző cikkben a hagyományos tárhely változatát tekintettük. Láttunk két tényleges példát a kiszolgálón a Linux szervereken, először a CentOS-t futtató rendszeres kiszolgálón, majd egy miniszámítógépen, a Raspberry Pi-en. Azok az olvasók, akik korábban nem kezelték a Linux rendszereket, valószínűleg úgy döntöttek, hogy túl sok erőfeszítést igényelnek, és valahogy könnyebbek lehetnek.
Ma meglátjuk, hogy a telepítés "a felhőben" megoldás-e a folyamat felesleges összetettségének problémájára.
De mit jelent "telepíteni a felhőbe"?
A cloud hosting szolgáltatók olyan platformot kínálnak, amelyen alkalmazásunk indítható. Minden, amit a fejlesztő megkövetel, hogy biztosítsa az alkalmazást, és minden más, beleértve a szerver hardvert, az operációs rendszert, a nyelvi tolmácsot és az adatbázist, átveszi a szolgáltatást.
Túl jó ahhoz, hogy igaz legyen, ugye?
Megvizsgáljuk az alkalmazás telepítését a Heroku platformon. az egyik legnépszerűbb felhő hosting platform. Nem csak a népszerűségét választottam, hanem azért is, mert ingyenes szolgáltatási szintet biztosít, így alkalmazásunkat egy cent nélkül töltjük be. Ha többet szeretne megtudni az ilyen típusú szolgáltatásról, és mit kínálnak más szolgáltatók, akkor olvassa el a PaaS Wikipedia oldalát.
Hosting a Heroku-n
A Heroku egyike volt az első olyan platformoknak, amelyek PaaS szolgáltatásokat nyújtanak. Kezdetben csak a Ruby alkalmazások számára kínált tárhely szolgáltatásokat, de később támogatást adtak hozzá sok más nyelvhez, mint például a Java, a Node.js és a kedvencünk, a Python.
Valójában, hogy alkalmazást telepítsen a Herokushoz, csak be kell töltenie az alkalmazást a git-vel (látni fogja, hogyan működik hamarosan). A Heroku a Procfile fájlt az alkalmazás gyökerében keresi az utasítás végrehajtásához. A Python-projektek esetében a Heroku azt is várja, hogy megtekinthesse a szükséges third-party csomagok listáját tartalmazó requirements.txt fájlt.
Az alkalmazás letöltése után feltételezheti, hogy az ügylet megtörtént. A Heroku fogja használni a mágikus és az alkalmazás elérhető lesz online néhány másodperc alatt. A fiók végösszege az időszak végén közvetlenül attól függ, hogy az alkalmazás mennyi energiafogyasztást kapott, ezért minél több felhasználó van az alkalmazásban, annál többet kell fizetnie.
Készen állsz a Heroku élményére? Kezdjük!
A Heroku ügyfél telepítése
Annak ellenére, hogy bizonyos feladatokat közvetlenül a webes felületről lehet végrehajtani, vannak olyan feladatok, amelyek csak a terminálból oldhatók meg, ezért mindent megteszünk a konzolon.
A Heroku a "Heroku kliens" segédprogramot kínálja, melyet alkalmazásunk létrehozásához és kezeléséhez használunk. Ez a segédprogram Windows, Mac OS X és Linux alatt indítható. Ha a Heroku eszközkészlet elérhető a platformon. akkor ez a legegyszerűbb módja egy Heroku ügyfél telepítéséhez.
Az URL beállítások mellett ez a parancs hozzáadja a távoli tárhelyünket (git távoli) a tárhelyünkhöz, amelyet hamarosan letölthetünk az alkalmazáskódot a felhőbe.
A helyi fájltárhely kizárása
Alkalmazásunk egyes funkciói a lemezen lévő fájlok formájában tárolják az információkat.
És itt van egy nehéz feladat. Futó alkalmazások Heroku, még nem tartós tárolása a lemezen tárolt, t. Hogy. Heroku használ virtualizációs platform, amely nem tárolja az adatokat egy, a fájl rendszer törli az összes fájlt, kivéve a kérelem fájlokat közvetlenül, minden alkalommal, amikor elindítja a példány. Szigorúan szólva az alkalmazás ideiglenes fájlokat tárolhat a lemezen, de képesnek kell lennie ezeknek a fájloknak a visszaállítására, ha eltűnnek. Ezen felül, ha fut két esetben, amelyek mindegyike csak a saját virtuális fájlrendszer és nincs mód a fájlok megosztására közöttük.
Ez valóban kellemetlen hír számunkra. Kezdetektől fogva ez azt jelenti, hogy nem tudunk sqlite-t használni adatbázisként.
Teljes szöveges keresőbázisunk, a Whoosh szintén leáll, mert az adatokat fájlként tárolja.
A harmadik problémás pont a naplózási rendszerünk. A / tmp mappába mentettük a naplót, és most, amikor dolgozunk a Heroku-n, ez is leáll.
Tehát három fő problémát azonosítottak, amelyek megoldásokat keresnek.
Az első probléma, amelyet a Heroku által kínált, a PostgreSQL-n alapuló migrációval megoldunk.
A teljes szöveges keresés működéséhez nincsen kész készletünk. Teljes szöveges keresést kell végrehajtanunk a PostgreSQL funkció használatával, de ez változtatásokat igényel az alkalmazásunkban. Természetesen sajnálatos, de a megoldás erre a problémára most messzebb van tőlünk a cikk témájából, így a Heroku-ra való jelentkezéskor csak kikapcsoljuk a teljes szöveges keresést.
Végül t. Hogy. Nem tudjuk írni a naplókat, adjuk hozzá a naplókat a naplózási rendszert használnak Heroku, ami mellesleg nagyon könnyen használható, t. Hogy. Küld jelentkezzen mindent, ami megjelenik az stdout-ra.
Heroku adatbázis létrehozása
Adatbázis létrehozásához a Heroku klienst használjuk:
$ heroku fut init
A terminálhoz csatlakoztatott `init` futása. fel. futni. 7671
/ app /. heroku / python / lib / python2. 7 / site - packages / sqlalchemy / engine / url. py. 105. Ellenőrzési utasítás. Az SQLAlchemy PostgreSQL dialektust átnevezték "postgres" -ről "postgresql" -re. Az új URL formátum a postgresql [+ driver]. / /
modul = __import__ ('sqlalchemy.dialects.% s'% (dialektus)). nyelvjárások
az "app / translations / es / LC_MESSAGES / messages.po" katalógus összeállítása "app / translations / es / LC_MESSAGES / messages.mo"
A figyelmeztetés az SQLAlchemy-hez tartozik, mert nem szereti az URI-t postgres: // helyett postgresql: // helyett. Ez az URI a $ DATABASE_URL környezeti változó értékével a Heroku-ot formálja, ezért nem áll módunkban megváltoztatni. Remélhetőleg ez az URI formátum hosszú ideig működni fog.
Frissítse az alkalmazást
Előbb vagy utóbb, itt az ideje, hogy frissítsük alkalmazásunkat. Ez fog történni, mint egy kezdeti telepítés. Mindenekelőtt az alkalmazás feltöltésre kerül a kiszolgálóra a git használatával:
Olyan dolgok, mint egy híváscsomó és egyéb alkalmazáshibák, mindezek a naplóban lesznek.
Most van egy ötlete, hogy alkalmazást telepítsen egy felhőalapon, ezért összehasonlíthatjuk ezt a fajta tárhelyet a hagyományos tárhely lehetőséggel.
Az egyszerűség kedvéért győzelem a felhők fölött. Legalábbis a Heroku esetében az alkalmazás telepítése nagyon egyszerű volt. Amikor dedikált szerverre vagy VPS-re telepítettek, nagyon sok előkészítő munkát kellett elvégezni. A Heroku gondoskodik erről, és lehetővé teszi számunkra, hogy az alkalmazásunkra összpontosítsunk.
Az érték kérdése ellentmondásos kérdés. A felhőszolgáltatások költsége általában drágább, mint a dedikált szerverek, mivel nem csak a szerverre, hanem az adminisztrációs szolgáltatásokra is fizetsz. Heroku tipikus díjcsomag, beleértve a két esetben, és a legolcsóbb gyártási adatbázis kerül $ 85 (ez abban az időben az írás, körülbelül egy évvel ezelőtt -. A sáv ..). Másrészről, ha jól nézel ki, akkor elég tisztességes VPS-t választhatsz magadnak
Végül úgy tűnik számomra, hogy a választás kérdése csökkenni fog azon, hogy mi az Ön számára fontosabb: idő vagy pénz.
A frissített alkalmazás elérhető, mint mindig, a githubon. Vagy zip archívumként letöltheti a linkről:
Alkalmazásunknak minden lehetséges módon történő bevezetésével úgy tűnik, hogy a digresszió véget ér.
Remélem, hogy ezek a cikkek hasznos bevezetést jelentenek egy igazi webes alkalmazás kifejlesztésében, és hogy az a tudás mennyisége, amelyet önöknek öntöttem e 18 cikk számára, arra ösztönzi önt, hogy készítsen saját projektet.
Azonban nem teszek pontot, és nem tagadom a mikroblogokról szóló cikkek valószínűségét. Ha és amikor érdekes téma jut eszembe, írok még többet, de számítom, hogy a frissítési ráta kissé csökken. Időről időre elvégezhetek olyan kisebb javításokat az alkalmazásban, amelyek nem érdemelnek külön blogbejegyzést, így nyomon követheti ezeket a változásokat a GitHubon.
Köszönöm még egyszer, hogy hűséges olvasó vagyok.