CI/CD risinājums, kas ar darbībām un mākoni darbojas līdz nullei
Fons
Ir daudz pārklāšanās starp projektiem, pie kuriem strādāju savā laikā un kad strādāju kopā ar komandu, lai izstrādātu risinājumus diviem aspektiem. Tā kā man ir ierobežots brīvais laiks, kad izstrādāju savu darbu, un mūsu komandas mazie izmēri, es vienmēr ieteikšu risinājumus, kas ir vienkārši un mērogojami līdz nullei bez jebkādas darbības.
Tāpēc, meklējot CI/CD risinājumu, kas atbalstītu vienu no maniem iecienītākajiem produktiem, ko piedāvā Google Cloud Platform (GCP) ar nosaukumu Cloud Run, es gribēju apskatīt Github Actions. Github Actions šādā veidā ir ļoti līdzīgs Cloud Run, jo no jums tiek iekasēta maksa tikai par to, ko izmantojat.
Šie pakalpojumi ir ne tikai pilnībā pārvaldīti un tiek samazināti līdz nullei, bet tiem ir arī papildu priekšrocības, kuras es labprāt izmantoju, eksperimentējot patstāvīgi - abiem šiem pakalpojumiem ir bezmaksas līmenis
Pēc nelielas piepūles es varēju panākt, lai šie divi pakalpojumi spēlētu kopā. Es daudz paklupu, kad bija jākonfigurē lomas un atļaujas, jo GCP neparedzami uzvedās aiz viņu lomām, bet, par laimi, pierakstīju katru soli, ko es gāju, lai rastu praktisku risinājumu, lai jums nebūtu jātērē vairākas stundas. izmēģiniet kļūdu, lai integrētu Github Actions un Google Cloud Run.
angular 2 bagātināta teksta redaktors
Darba sākšana
Piemērs, kuru es jums darīšu, būs vienkāršs kolbas serveris, kas izvietots, izmantojot Github Actions, uz Google Cloud Run. Pirms šī piemēra izskatīšanas esmu sniedzis vairākus jēdzienus un dažas prasības, kas nepieciešamas, lai to darbinātu lokāli.
Jēdzieni
Github darbības - Github automatizācijas risinājums, kas ļauj piegādāt yaml konfigurāciju, lai automatizētu tādus uzdevumus kā CI/CD darbības.
Google mākonis - Google nodrošināta pārvaldīta platforma bez serveriem, kas tiek samazināta līdz nullei. Lietotājam vienkārši jānodrošina Dockerfile konteinera palaišanai.
Kolba - Python mikro tīmekļa ietvars, ko parasti izmanto Python izstrādātāji.
Prasības
Šajā piemērā es jums parādīšu, lai to palaistu lokāli: jums būs nepieciešamas divas lietas: Python 3.9 un Flask. Tāpat kā ar visiem maniem piemēriem, jūsu dzīve būs daudz mazāk sāpīga, ja instalēsit savas prasības a virtuālā vide caur pip . Ja esat iepazinies ar abiem, es arī ieteiktu to izmantot virtualenvwrapper kam ir patiešām jauki paplašinājumi, kas vēl vairāk vienkāršo jūsu izstrādes vides darbplūsmu.
1. darbība: iespējojiet Google Cloud Run
Ja izlaižat šo soli, jums tiks parādīta šāda kļūda, kas patiesībā ir diezgan informatīva.
Pretējā gadījumā vienkārši noklikšķiniet uz tālāk esošās saites un iespējojiet API.
Jums vajadzētu redzēt ekrānu, kurā ir šāda informācija. Pārliecinieties, vai esat izvēlējies savu projektu, kuru vēlaties izvietot, un tas jāredz navigācijas joslā kreisās puses tuvumā.
2. darbība: iestatiet Google autentifikāciju
Šajā solī mums būs jāizveido pakalpojuma konts, kuram ir atļauju kopums, kas nepieciešams, lai to varētu izvietot pakalpojumā Cloud Run no Github Actions. Tāpēc dodieties uz savu Google projektu un izveidojiet šo pakalpojuma kontu.
Kad pakalpojuma konts ir izveidots, jums jāizvēlas šādas lomas. Es izmēģināju vairākus dažādus veidus, kā noņemt ļoti pieļaujamo projekta skatītāja lomu, taču šī raksta laikā šī loma būs nepieciešama jūsu pakalpojuma kontam, pretējā gadījumā Github izvietošana neizdosies pat tad, ja tā ir veiksmīgi izvietota Cloud Run.
Atliek tikai eksportēt akreditācijas datus savam pakalpojuma kontam. Jums tas būs jāpatur, jo mēs to izmantosim vēlāk, lai sniegtu akreditācijas datus, kas ļaus Github Action izvietot mūsu tīmekļa serveri Cloud Run.
3. darbība. Izveidojiet vai klonējiet parauga kodu izvietošanai
Tagad mēs varētu būt vadībā ar šo soli, bet, tā kā kods patiešām nav mūsu procesa vērtīgā daļa, es plānoju vairāk koncentrēties uz Google Cloud Run un Github Actions integrāciju.
Lai to izdarītu, varat veikt vienu no divām darbībām. Izveidojiet savu Github krātuvi no nulles vai klonējiet zemāk esošo krātuvi.
Kad esat izdarījis šo piezīmi vai izveidojis vienkāršu sveikas pasaules galapunktu. Tālāk sniegtais piemērs ir no mūsu Github repo un sniedz vienkāršu piemēru, kas ļaus mums redzēt, vai mūsu integrācija bija veiksmīga.
import os from flask import Flask, request app = Flask(__name__) @app.route('/') def hello_world(): name = request.args.get('name', 'World') return f'Hello {name}!' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))
Prasības, kas nepieciešamas projekta vietējai darbībai, un Docker konteinerā, kuru mēs izmantosim, tiks ievērotas.
Flask gunicorn
A | _+_ | fails būs jāizveido jūsu projekta pamata līmenī ar šīm atļaujām, lai mēs varētu viegli tos instalēt mūsu konteinerā.
#mākoņi #github #kolba #izstrādātājs #python
virzienā uz datascience.com
Izvietojiet Google mākonī, izmantojot Github darbības
Izvietojiet Google mākonī, izmantojot Github darbības. Es jums parādīšu vienkāršu kolbas serveri, kas izvietots, izmantojot Github Actions, uz Google Cloud Run. Meklējot CI/CD risinājumu, kas atbalstītu vienu no maniem iecienītākajiem produktiem, ko piedāvā Google Cloud Platform (GCP) ar nosaukumu Cloud Run, es gribēju apskatīt Github Actions. Github Actions šādā veidā ir ļoti līdzīgs Cloud Run, jo no jums tiek iekasēta maksa tikai par to, ko izmantojat.