*Naka-archive* = Pinakamahusay na serbisyo sa cloud hosting? = Hey guys, Kaya gusto kong i-deploy ang aking Django backend API ngunit hindi sa produksyon, para sa pag-unlad. Ano ang gusto mong serbisyo sa cloud para magawa iyon? Sa ngayon ay natagpuan ko ang serbisyo ng Ngrok at Amazon AWS, at sina Jenkins at ako ay nauunawaan ang bawat isa sa lalim upang makagawa ng paghahambing. Gusto kong malaman mula sa iyong karanasan, kung ano ang gusto mong serbisyo P.S: kani-kanina lang ay nakatanggap ako ng napaka-kagalit na tugon para sa aking kakulangan ng karanasan at para lamang sa pagsisikap na tumulong - Nakita kong ang sub na ito ay dahan-dahang nagiging pagalit at agresibo gaya ng ibang mga website (malamang na binabanggit lamang ang mga pangalan ng ibang mga website ay nabubura ang iyong post) Kaya't mangyaring ipagpaumanhin ang anumang kakulangan ng karanasan na makikita mo sa aking post (o mga susunod na post/komento) EDIT: Hindi ko inaasahan na ganito karaming tugon, salamat sa inyong lahat sa inyong tugon, susubukan kong tumugon sa lahat Kung idine-deploy ito sa isang remote sever, hindi na mahalaga kung para sa produksyon man ito o hindi - ang karamihan sa mga bagay ay magiging pareho. Para sa libre at medyo madaling deployment subukan ang Pythonanywhere o Heroku. Kung gusto mo ng higit pang kontrol subukan ang Digital Ocean. Sumulat ako ng isang (kung ano sa tingin ko ay isang medyo komprehensibo) gabay para sa pag-deploy ng iyong *una* Django app sa Digital Ocean dito Oo, ang digital na karagatan ay talagang isang hiyas kung gusto mo ng kontrol, siguradong hindi ka magde-deploy sa loob ng kalahating minuto ngunit tiyak na mas mataas ito sa karamihan ng iba pang mga opsyon kung gusto mo ng higit pang kontrol Ang Pythonanywhere ay tila umaangkop sa aking mga pangangailangan 90% ng oras, hindi masyadong kontrol, hindi masyadong maraming automation at paghawak ng kamay, sa isang lugar sa pagitan Mayroon akong isang toneladang karanasan sa parehong AWS Lambda at Django. Wala akong maisip na magandang dahilan para gawin ang Django sa AWS Lambda. Tulad ng, walang isang dahilan. Napaka-overcomplicated para sa napakaliit na pagbabalik lalo na kapag ang iyong mga dependency ay nakakakuha ng kahit na medyo higit pa sa walang kabuluhan. Hindi mo gustong maglaro ng dependency optimization game na may limitasyon sa laki ng file na 250MB. Kung mayroon ka talagang mga isyu sa scalability para sa isang proyekto ng django, masasabi kong ang solusyon ay marahil ilang kumbinasyon ng ECS, kintsay at cloudfront Napakadaling i-deploy ang Heroku, libre hanggang sa maabot mo ang isang tiyak na limitasyon, ang pythonanywhere ay pareho ngunit medyo mahirap dahil kailangan mong itakda ang ilang mga bagay sa pamamagitan ng kamay na nangangailangan ng pangunahing pag-unawa sa mga utos ng Linux (walang advanced) Parehong may opsyon na i-lock ang site gamit ang isang password kung ayaw mong bisitahin ito ng mga tao o kumonekta dito maliban kung pinahintulutan sila Ako ay gumagamit ng Heroku sa loob ng ilang taon. Ang aking DB ay ang libreng tier ng mga postgres. Gumagana ito nang mahusay at nagbabayad ako ng kabuuang $7 bawat buwan. Ipaalam sa akin kung mayroon kang mas tiyak na mga tanong. Ang kanilang dokumentasyon ay napakahusay at mayroon akong kaunting mga isyu. Mayroon akong custom na URL, https, ang kabuuan Idini-deploy ko ang lahat ng aking proyekto sa Django sa Google Cloud Run. Mahal na mahal ko ito Narito kung paano ko ito gagawin: Nagsisimula ako sa pamamagitan ng pag-deploy ng aking dev-database sa Google Cloud SQL. Ginagamit ko ang parehong cloud mySQL instance para sa lokal na dev at cloud staging at pagsubok **Local dev Nagpapatakbo ako ng 3 docker container na may docker-compose: - aking Django app. Ang lalagyan ay may kasamang nginx. Itinuro ng DB ang lalagyan ng SQL proxy - karaniwang Google SQL proxy na imahe. Nangangailangan ng Google service account json - karaniwang lalagyan ng phpmyadmin. Pangunahin upang i-troubleshoot ang mySQL **Pag-deploy ng Cloud. pagtatanghal ng dula at prod - Mayroon akong cloudbuild.yaml file para sa aking Django app. Inilalarawan nito kung paano buuin at i-deploy ang Django app sa Google Cloud Run - Sa Google Cloud Run, nagtakda ako ng trigger para buuin/i-deploy ang aking app batay sa git commits sa aking app. Binabasa nito ang cloudbuild.yaml, at ino-automate ang pag-deploy ng aking mga pagbabago sa cloud - Itinakda ko ang lahat ng aking ENV variable sa mga trigger na ipapasa sa cloudbuild.yaml at kalaunan sa mga instance ng Cloud Run. Syempre magkaiba sila for staging and prod **Bakit gusto ko ito** - Ang paunang pag-setup ay hindi diretso, ngunit ang automation na ibinibigay nito sa akin ay kahanga-hanga - Ang gastos para sa mga instance ng dev ay talagang mababa. Ang Google Cloud Run ay naniningil lamang para sa mga ginamit na segundo. Kaya ilang $ bawat buwan Ngayon, ang Cloud SQL instance ay kung nasaan ang gastos, dahil nagpapagana iyon ng VM na palaging tumatakbo. Ang mga mababang CPU ay bumaba sa ilalim ng 10 $ / buwan - Para sa iyong mga prod instance, makukuha mo ang lahat ng kapangyarihan ng Google Cloud Platform. Infinite horizontal scaling (hangga't ang iyong web app ay stateless). Awtomatikong mag-i-scale ang Cloud Run. Maaari mo ring palakihin ang Cloud SQL at/o pahalang - Ang Google Cloud Run ay may kasamang http/https na mga endpoint na maaari mong imapa sa iyong domain. Walang abala sa mga SSL certs config. gusto ko ito Ipaalam sa akin kung interesado ka, maaari akong magbigay ng higit pang mga detalye. Sa tingin ko ngayon ay dapat akong magsulat ng isang detalyadong artikulo tungkol sa kung paano ito gagawin At narito ang aking huling Django web app, na na-deploy sa Google Cloud Run Kung gumagawa ka na ng ilang pananaliksik sa iba't ibang mga serbisyo sa cloud hosting, maaaring magandang ideya na tingnan ang Engine Yard. Gumamit ako ng engine yard para sa iba't ibang deployment ng app sa cloud, at sasabihin ko na ito ay isang napaka-dynamic at madaling gamitin na platform para sa pag-deploy ng iyong mga app sa cloud Ang Engine Yard Cloud (EYC) ay isang malawak na ginustong Platform bilang Serbisyo (PaaS) para sa Ruby, Node, at PHP application hosting. Mayroon itong matatag, ganap na pinamamahalaang imprastraktura kasama ng suportang pang-mundo. Mayroon itong medyo secure na imprastraktura, at ang mga patch ay pinananatiling up-to-date para sa iyong kaginhawahan. Wala kang overhead sa pamamahala sa buong stack, kabilang ang mga database at load balancer. Ang lahat ng ito ay inaalagaan. Awtomatikong nangyayari ang mga backup. Sa nakikita ko, ang Engine yard ay isang platform sa pagtitipid ng oras at gastos Maaari mo ring i-explore ang Engine Yard Kontainers (EYK). Ito ay isang susunod na henerasyong platform. Sinubukan ko ito at nalaman kong ito ay isang karapat-dapat na paglipat. Sinusuportahan nito ang maraming stack, real-time na auto scaling, at marami pang ibang feature. Maaari kang tumingin sa Engine Yard Cloud at Engine Yard Kontainer Inirerekomenda ko ang paggamit ng App Platform sa Digital Ocean. Ito ay katulad ng Heroku, ngunit nagbibigay ng higit na kapangyarihan para sa isang bahagi ng mga gastos sa Heroku Wala dito ang lahat ng feature na mayroon si Heroku, pero kahit papaano para sa akin, sapat na itong gamitin. Hindi ako DevOps, kaya hindi ko alam kung paano i-configure ang normal na Droplet sa isang secure na paraan. Ito ang dahilan kung bakit gumagana nang mas mahusay ang App Platform - Hindi ko na kailangang isipin ang tungkol sa pagkawala ng mga hakbang sa kaligtasan maliban sa loob ng aking app Ang lahat ng aking mga personal na proyekto ay naka-bundle sa mga lalagyan ng docker at naka-deploy sa iisang node kubernetes cluster sa Scaleway.com . Ito ay medyo cool at mababa ang maintenance, at kung ang isa ay umabot sa isang partikular na sukat, madali kong maililipat ang mga ito sa alinman sa isang mas malaking cluster, o isa pang serbisyo sa pag-deploy ng container (gaya ng ECS, o kahit na i-deploy ang mga ito sa isang pagkakataon na may naka-install lang na container runtime. ) Noong nakaraan, nag-deploy ako ng serbisyo ng django sa AWS Lambda kasama ang Zappa, ngunit nawawalan ka ng maraming kontrol, at may ilang maliliit na bagay na kailangan mong matutunan at ipatupad (hal. gamit ang alinman sa isang walang server na framework, pamamahala ng mga bersyon, pagpapanatili ng iyong lambdas "mainit", atbp).