CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
San artaigil seo, roinnidh mi m ’eòlas mu bhith a’ stèidheachadh CI / CD a ’cleachdadh Pannal Smachd Plesk agus Gnìomhan Github. An-diugh ionnsaichidh sinn mar a chleachdas tu pròiseact sìmplidh leis an ainm neo-fhillte "Helloworld". Tha e sgrìobhte ann am frèam Flask Python, le luchd-obrach Celery agus aghaidh Angular 8.

Ceanglaichean gu stòran-tasgaidh: cùl-raon, ceann aghaidh.

Anns a 'chiad phàirt den artaigil, seallaidh sinn ris a' phròiseact againn agus na pàirtean aige. Anns an dàrna fear, nì sinn a-mach mar a chuireas tu Plesk air dòigh agus stàlaich na leudachain agus na pàirtean riatanach (DB, RabbitMQ, Redis, Docker, msaa).

Anns an treas pàirt, nì sinn a-mach mu dheireadh mar a stèidhicheas sinn loidhne-phìoban airson ar pròiseact a chuir gu frithealaiche ann an àrainneachd dev agus prod. Agus an uairsin cuiridh sinn an làrach air bhog air an fhrithealaiche.

Agus tha, dhìochuimhnich mi mi fhìn a thoirt a-steach. Is e m’ ainm Oleg Borzov, tha mi nam leasaiche làn-stack anns an sgioba CRM airson manaidsearan morgaids aig Domclick.

Overview Overview

An toiseach, leig dhuinn sùil a thoirt air dà stòr pròiseict - backend agus aghaidh - agus a dhol thairis air a’ chòd.

Cùl-fhiosrachadh: Flasg + soilire

Airson a’ phàirt chùil, ghabh mi dòrlach a tha mòr-chòrdte am measg luchd-leasachaidh Python: frèam Flask (airson an API) agus Celery (airson an ciudha gnìomh). Tha SQLAchemy air a chleachdadh mar ORM. Tha Alembic air a chleachdadh airson imrich. Airson dearbhadh JSON ann an làmhan - Marshmallow.

В tasgaidh tha faidhle Readme.md ann le tuairisgeul mionaideach air an structar agus stiùireadh airson a’ phròiseact a ruith.

Web Pàirt API gu math sìmplidh, air a dhèanamh suas de 6 pinn:

  • /ping - gus sgrùdadh a dhèanamh air ruigsinneachd;
  • làmhan airson clàradh, ùghdarrachadh, dì-cheadachadh agus faighinn neach-cleachdaidh ùghdarraichte;
  • inneal post-d a chuireas gnìomh anns a’ chiudha Celery.

Pàirt soilire eadhon nas fhasa, chan eil ann ach aon duilgheadas send_mail_task.

Anns a ’phasgan /conf tha dà fho-phasgan ann:

  • docker le dà Dockerfile (base.dockerfile gus ìomhaigh bhunaiteach a tha glè ainneamh a thogail agus Dockerfile airson prìomh cho-chruinneachaidhean);
  • .env_files - le faidhlichean le caochladairean àrainneachd airson diofar àrainneachdan.

Tha ceithir faidhlichean dèanta docker aig cridhe a’ phròiseict:

  • docker-compose.local.db.yml gus stòr-dàta ionadail a thogail airson leasachadh;
  • docker-compose.local.workers.yml airson àrdachadh ionadail den neach-obrach, stòr-dàta, Redis agus RabbitMQ;
  • docker-compose.test.yml deuchainnean a dhèanamh aig àm cleachdadh;
  • docker-compose.yml airson cleachdadh.

Agus am pasgan mu dheireadh anns a bheil ùidh againn - .ci-cd. Tha sgriobtaichean shligean ann airson an cleachdadh:

  • deploy.sh - imrich agus cleachdadh a chuir air bhog. A 'ruith air an fhrithealaiche an dèidh a bhith a' togail agus a 'ruith dheuchainnean ann an Gnìomhan Github;
  • rollback.sh - cuir air ais soithichean chun dreach roimhe den cho-chruinneachadh;
  • curl_tg.sh - a’ cur fiosan cleachdadh gu Telegram.

Aghaidh air Angular

Stòr-tasgaidh le aghaidh tòrr nas sìmplidh na Beck. Tha an aghaidh air a dhèanamh suas de thrì duilleagan:

  • Prìomh dhuilleag le foirm airson post-d a chuir agus putan fàgail.
  • Duilleag logadh a-steach.
  • Duilleag clàraidh.

Tha coltas ascetic air a’ phrìomh dhuilleag:

CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
Tha dà fhaidhle aig a' bhonn Dockerfile и docker-compose.yml, a bharrachd air am pasgan eòlach .ci-cd le beagan nas lugha de sgriobtaichean na tha san stòr cùil (sgriobtaichean air an toirt air falbh airson deuchainnean ruith).

A’ tòiseachadh pròiseact ann am Plesk

Feuch an tòisich sinn le bhith a’ stèidheachadh Plesk agus a’ cruthachadh ballrachd airson an làrach-lìn againn.

Stàladh leudachain

Ann am Plesk, feumaidh sinn ceithir leudachadh:

  • Docker gus inbhe shoithichean a riaghladh agus a thaisbeanadh gu fradharcach ann am pannal rianachd Plesk;
  • Git gus an ceum cleachdadh air an fhrithealaiche a rèiteachadh;
  • Let's Encrypt gus teisteanasan TLS an-asgaidh a ghineadh (agus ùrachadh gu fèin-ghluasadach);
  • Firewall gus criathradh trafaic a tha a’ tighinn a-steach a rèiteachadh.

Faodaidh tu an stàladh tro phannal rianachd Plesk anns an roinn Leudachain:

CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
Cha bheachdaich sinn air na roghainnean mionaideach airson leudachadh, nì na roghainnean bunaiteach airson ar n-adhbharan demo.

Cruthaich fo-sgrìobhadh agus làrach

An ath rud, feumaidh sinn ballrachd a chruthachadh airson ar làrach-lìn helloworld.ru agus cuir an subdomain dev.helloworld.ru an sin.

  1. Cruthaich fo-sgrìobhadh airson an àrainn helloworld.ru agus sònraich am facal-faire logadh a-steach airson neach-cleachdaidh an t-siostaim:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
    Thoir sùil air a’ bhogsa aig bonn na duilleige Dèan tèarainte air an àrainn le Let's Encryptma tha sinn airson HTTPS a stèidheachadh airson na làraich:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  2. An uairsin, san fho-sgrìobhadh seo, cruthaich subdomain dev.helloworld.ru (airson an urrainn dhut teisteanas TLS an-asgaidh a thoirt seachad):

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

Stàladh co-phàirtean frithealaiche

Tha frithealaiche againn le OS Debian Stretch 9.12 agus pannal smachd air a chuir a-steach Plesk Obsidian 18.0.27.

Feumaidh sinn stàladh agus rèiteachadh airson ar pròiseact:

  • PostgreSQL (anns a 'chùis againn, bidh aon fhrithealaiche ann le dà stòr-dàta airson àrainneachdan dev agus prod).
  • RabbitMQ (an aon rud, an aon eisimpleir le diofar vhosts airson àrainneachdan).
  • Dà eisimpleir Redis (airson àrainneachdan dev agus prod).
  • Clàr Docker (airson stòradh ionadail de dhealbhan Docker togte).
  • UI airson clàradh Docker.

PostgreSQL

Tha Plesk mu thràth a’ tighinn le PostgreSQL DBMS, ach chan e an dreach as ùire (aig àm sgrìobhaidh Plesk Obsidian taic Tionndaidhean postgres 8.4-10.8). Tha sinn ag iarraidh an dreach as ùire airson ar tagradh (12.3 aig àm an sgrìobhaidh seo), agus mar sin stàlaidhidh sinn e le làimh.

Tha tòrr stiùireadh mionaideach ann airson Postgres a chuir air Debian air an lìon (eisimpleir), mar sin cha toir mi cunntas mionaideach orra, bheir mi dìreach na h-òrdughan:

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

Leis gu bheil roghainnean bunaiteach caran meadhanach aig PostgreSQL, feumar an rèiteachadh a cheartachadh. Cuidichidh seo sinn àireamhair: feumaidh tu draibheadh ​​ann am paramadairean an fhrithealaiche agad agus cuir an àite na roghainnean san fhaidhle /etc/postgresql/12/main/postgresql.confris an fheadhainn a thairgsinn. Bu chòir a thoirt fa-near an seo nach e peilearan draoidheachd a th’ ann an àireamhairean mar sin, agus bu chòir am bonn a ghleusadh nas mionaidiche, stèidhichte air do bhathar-cruaidh, tagradh agus iom-fhillteachd na ceiste agad. Ach tha seo gu leòr airson tòiseachadh.

A bharrachd air na roghainnean a tha an àireamhair a’ moladh, bidh sinn cuideachd ag atharrachadh a-steach postgresql.confam port bunaiteach 5432 gu fear eile (san eisimpleir againn - 53983).

Às deidh dhut am faidhle rèiteachaidh atharrachadh, ath-thòisich postgresql-server leis an àithne:

service postgresql restart

Tha sinn air PostgreSQL a chuir a-steach agus a rèiteachadh. A-nis cruthaichidh sinn stòr-dàta, luchd-cleachdaidh airson àrainneachdan dev agus prod, agus bheir sinn còirichean do luchd-cleachdaidh an stòr-dàta a riaghladh:

$ su - postgres
postgres:~$ create database hw_dev_db_name;
CREATE DATABASE
postgres:~$ create user hw_dev_db_user with password 'hw_dev_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_dev_db_name to hw_dev_db_user;
GRANT
postgres:~$ create database hw_prod_db_name;
CREATE DATABASE
postgres:~$ create user hw_prod_db_user with password 'hw_prod_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_prod_db_name to hw_prod_db_user;
GRANT

CoineanachMQ

Gluaisidh sinn air adhart gu bhith a’ stàladh RabbitMQ, broker teachdaireachd airson Celery. Tha e gu math sìmplidh a stàladh air Debian:

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb

sudo apt-get update
sudo apt-get install erlang erlang-nox

sudo add-apt-repository 'deb http://www.rabbitmq.com/debian/ testing main'
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

sudo apt-get update
sudo apt-get install rabbitmq-server

Às deidh an stàladh, feumaidh sinn a chruthachadh vhosts, luchd-cleachdaidh agus thoir seachad na còraichean riatanach:

sudo rabbitmqctl add_user hw_dev_amqp_user hw_dev_amqp_password 
sudo rabbitmqctl set_user_tags hw_dev_amqp_user administrator
sudo rabbitmqctl add_vhost hw_dev_vhost
sudo rabbitmqctl set_permissions -p hw_dev_vhost hw_dev_amqp_user ".*" ".*" ".*"

sudo rabbitmqctl add_user hw_prod_amqp_user hw_prod_amqp_password 
sudo rabbitmqctl set_user_tags hw_prod_amqp_user administrator
sudo rabbitmqctl add_vhost hw_prod_vhost
sudo rabbitmqctl set_permissions -p hw_prod_vhost hw_prod_amqp_user ".*" ".*" ".*"

Redis

A-nis leig leinn am pàirt mu dheireadh airson an tagradh againn a stàladh agus a rèiteachadh - Redis. Thèid a chleachdadh mar chùl-taic airson toraidhean gnìomhan Celery a stòradh.

Togaidh sinn dà shoitheach Docker le Redis airson àrainneachdan dev agus prod a’ cleachdadh an leudachadh Docker airson Plesk.

  1. Thèid sinn gu Plesk, rachaibh chun roinn Leudachain, coimhead airson leudachadh Docker agus stàlaich e (feumaidh sinn dreach an-asgaidh):

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  2. Rach don leudachadh stàlaichte, lorg an ìomhaigh tron ​​​​rannsachadh redis bitnami agus stàlaich an tionndadh as ùire:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  3. Bidh sinn a’ dol a-steach don bhogsa a chaidh a luchdachadh sìos agus ag atharrachadh an rèiteachadh: sònraich am port, am meud RAM as àirde a chaidh a riarachadh, am facal-faire ann an caochladairean na h-àrainneachd, agus cuir suas an tomhas-lìonaidh:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  4. Bidh sinn a’ coileanadh ceumannan 2-3 airson an t-soitheach prod, anns na roghainnean cha bhith sinn ag atharrachadh ach na paramadairean: port, facal-faire, meud RAM agus slighe chun phasgan tomhas-lìonaidh air an fhrithealaiche:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

Clàradh Docker

A bharrachd air seirbheisean bunaiteach, bhiodh e math an stòr ìomhaigh Docker agad fhèin a chuir air an fhrithealaiche. Gu fortanach, tha àite an fhrithealaiche a-nis gu math saor (gu cinnteach nas saoire na fo-sgrìobhadh DockerHub), agus tha am pròiseas airson stòr prìobhaideach a stèidheachadh gu math sìmplidh.

Tha sinn airson gum bi:

Gus seo a dhèanamh:

  1. Cruthaichidh sinn dà fho-àrainn ann am Plesk anns an fho-sgrìobhadh againn: docker.helloworld.ru agus docker-ui.helloworld.ru, agus cuir air dòigh teisteanasan Let's Encrypt dhaibh.
  2. Cuir am faidhle ris a 'phasgan subdomain docker.helloworld.ru docker-compose.yml le susbaint mar seo:
    version: "3"
    
    services:
      docker-registry:
        image: "registry:2"
        restart: always
        ports:
          - "53985:5000"
        environment:
          REGISTRY_AUTH: htpasswd
          REGISTRY_AUTH_HTPASSWD_REALM: basic-realm
          REGISTRY_AUTH_HTPASSWD_PATH: /auth/.htpasswd
          REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
        volumes:
          - ./.docker-registry.htpasswd:/auth/.htpasswd
          - ./data:/data
    
      docker-registry-ui:
        image: konradkleine/docker-registry-frontend:v2
        restart: always
        ports:
          - "53986:80"
        environment:
          VIRTUAL_HOST: '*, https://*'
          ENV_DOCKER_REGISTRY_HOST: 'docker-registry'
          ENV_DOCKER_REGISTRY_PORT: 5000
        links:
          - 'docker-registry'
    

  3. Fo SSH, cruthaichidh sinn am faidhle .htpasswd airson cead bunaiteach ann an stòr Docker:
    htpasswd -bBc .htpasswd hw_docker_admin hw_docker_password
  4. Cruinnich agus tog soithichean:
    docker-compose up -d
  5. Agus feumaidh sinn Nginx ath-stiùireadh gu na soithichean againn. Faodar seo a dhèanamh tro Plesk.

Feumar na ceumannan a leanas a dhèanamh airson na subdomains docker.helloworld.ru agus docker-ui.helloworld.ru:

earrann Innealan Dev tha an làrach againn a’ dol gu Riaghailtean Docker Proxy:

CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
Agus cuir riaghailt ri trafaic neach-ionaid a tha a’ tighinn a-steach don ghobhar againn:

CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  1. Nì sinn cinnteach gun urrainn dhuinn logadh a-steach don ghobhar againn bhon inneal ionadail:
    $ docker login docker.helloworld.ru -u hw_docker_admin -p hw_docker_password
    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    Login Succeeded
  2. Bheir sinn sùil cuideachd air gnìomhachd an subdomain docker-ui.helloworld.ru:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
    Nuair a phutas tu air Dèan brobhsadh air tasgaidhean, seallaidh am brabhsair uinneag ceadachaidh far am feum thu ainm-cleachdaidh agus facal-faire an stòr a chuir a-steach. Às deidh sin, bidh sinn air ar gluasad gu duilleag le liosta de stòran (airson a-nis, bidh e falamh dhut):

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

A’ fosgladh puirt ann am Balla-teine ​​Plesk

Às deidh dhuinn na pàirtean a chuir a-steach agus a rèiteachadh, feumaidh sinn puirt fhosgladh gus am bi na pàirtean ruigsinneach bho shoithichean Docker agus an lìonra a-muigh.

Chì sinn mar a nì sinn seo a’ cleachdadh an leudachadh Firewall airson Plesk a chuir sinn a-steach na bu thràithe.

  1. Rach gu Innealan & Roghainnean> Roghainnean> Balla-teine:
    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
  2. Rach gu Atharraich Riaghailtean Balla-teine ​​​​Plesk> Cuir Riaghailt Custom ris agus fosgail na puirt TCP a leanas airson subnet Docker (172.0.0.0 / 8):
    RabbitMQ: 1883, 4369, 5671-5672, 25672, 61613-61614
    Dearg: 32785, 32786

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  3. Cuiridh sinn riaghailt ris cuideachd a dh’ fhosglas puirt PostgreSQL agus pannalan riaghlaidh RabbitMQ don t-saoghal a-muigh:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  4. Cuir na riaghailtean an gnìomh a’ cleachdadh a’ phutan Apply Changes:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

A’ stèidheachadh CI/CD ann an Gnìomhan Github

Leig leinn faighinn sìos chun phàirt as inntinniche - a 'stèidheachadh loidhne-phìoban amalachaidh leantainneach agus a' lìbhrigeadh ar pròiseact don fhrithealaiche.

Bidh an loidhne-phìoban seo air a dhèanamh suas de dhà phàirt:

  • togail ìomhaigh agus deuchainnean ruith (airson an backend) - air taobh Github;
  • a’ ruith imrich (airson an deireadh-sheachdain) agus a’ cleachdadh shoithichean - air an fhrithealaiche.

Sgaoileadh gu Plesk

Bruidhnidh sinn ris an dàrna puing an toiseach (oir tha a 'chiad fhear an urra ris).

Rèitichidh sinn am pròiseas cleachdadh a’ cleachdadh an leudachadh Git airson Plesk.

Beachdaich air eisimpleir le àrainneachd Prod airson stòr Backend.

  1. Bidh sinn a’ dol gu ballrachd ar làrach-lìn Helloworld agus a’ dol gu fo-earrann Git:

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  2. Cuir a-steach ceangal don stòr Github againn a-steach don raon “Remote Git repository” agus atharraich am pasgan bunaiteach httpdocs gu fear eile (m.e. /httpdocs/hw_back):

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  3. Dèan lethbhreac den iuchair phoblach SSH bhon cheum roimhe agus cuir ris tha e ann an roghainnean Github.
  4. Cliog air OK air an sgrion ann an ceum 2, agus às deidh sin thèid ar ath-stiùireadh gu duilleag an stòrais ann am Plesk. A-nis feumaidh sinn an stòr a rèiteachadh gus a bhith air ùrachadh mu gheallaidhean don phrìomh mheur. Gus seo a dhèanamh, rachaibh gu Suidheachaidhean tasgaidh agus sàbhail an luach Webhook URL (bidh feum againn air nas fhaide air adhart nuair a bhios sinn a’ stèidheachadh Gnìomhan Github):

    CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

  5. Anns an raon Gnìomhan air an sgrion bhon pharagraf roimhe, cuir a-steach an sgriobt gus an cleachdadh a chuir air bhog:
    cd {REPOSITORY_ABSOLUTE_PATH}
    .ci-cd/deploy.sh {ENV} {DOCKER_REGISTRY_HOST} {DOCKER_USER} {DOCKER_PASSWORD} {TG_BOT_TOKEN} {TG_CHAT_ID} 

    far:

    {REPOSITORY_ABSOLUTE_PATH} - slighe gu pasgan prod an stòr backend air an fhrithealaiche;
    {ENV} - àrainneachd (dev / prod), nar cùis prod;
    {DOCKER_REGISTRY_HOST} - aoigh ar stòr docker
    {TG_BOT_TOKEN} - tòcan bot teileagram;
    {TG_CHAT_ID} - ID den chat / seanail airson fiosan a chuir.

    Eisimpleir sgriobt:

    cd /var/www/vhosts/helloworld.ru/httpdocs/hw_back/
    .ci-cd/deploy.sh dev docker.helloworld.ru docker_user docker_password 12345678:AAbcdEfghCH1vGbCasdfSAs0K5PALDsaw -1001234567890
  6. Cuir cleachdaiche bhon fho-sgrìobhadh againn ris a’ bhuidheann Docker (gus an urrainn dhaibh soithichean a riaghladh):
    sudo usermod -aG docker helloworld_admin

Tha an àrainneachd leasachaidh airson an stòr backend agus an aghaidh aghaidh air an stèidheachadh san aon dòigh.

Loidhne-phìoban cleachdadh ann an Gnìomhan Github

Gluaisidh sinn air adhart gu bhith a’ stèidheachadh a’ chiad phàirt den loidhne-phìoban CI/CD againn ann an Gnìomhan Github.

Backend

Tha an loidhne-phìoban air a mhìneachadh ann an faidhle deploy.yml.

Ach mus dèan sinn parsadh air, lìonamaid na caochladairean Dìomhair a dh’ fheumas sinn ann an Github. Gus seo a dhèanamh, rachaibh gu Roghainnean -> Dìomhaireachd:

  • DOCKER_REGISTRY - aoigheachd ar stòr Docker (docker.helloworld.ru);
  • DOCKER_LOGIN - log a-steach gu stòr Docker;
  • DOCKER_PASSWORD - facal-faire air;
  • DEPLOY_HOST - aoigheachd far a bheil am pannal rianachd Plesk ri fhaighinn (eisimpleir: helloworld.com: 8443 no 123.4.56.78:8443);
  • DEPLOY_BACK_PROD_TOKEN - comharradh airson a chleachdadh don stòr-reic air an fhrithealaiche (fhuair sinn e ann an Cleachdadh ann am Plesk p. 4);
  • DEPLOY_BACK_DEV_TOKEN - comharra airson a chuir gu stòr dev air an fhrithealaiche.

Tha am pròiseas cleachdadh sìmplidh agus tha trì prìomh cheumannan ann:

  • a' togail agus a' foillseachadh na h-ìomhaigh 'nar tigh-tasgaidh ;
  • ruith deuchainnean ann an soitheach stèidhichte air ìomhaigh a chaidh a thogail às ùr;
  • cleachdadh don àrainneachd a tha thu ag iarraidh a rèir a’ mheur (dev / master).

phobaill

Am faidhle deploy.yml airson an stòr aghaidh beagan eadar-dhealaichte bho Beck. Chan eil ceum ann le deuchainnean ruith agus bidh e ag atharrachadh ainmean comharran airson an cleachdadh. Feumaidh dìomhaireachdan airson an stòr aghaidh, leis an t-slighe, a bhith air an lìonadh air leth.

Suidheachadh làraich

A’ cur trafaic tro Nginx

Uill, tha sinn air tighinn gu deireadh. Chan eil air fhàgail ach airson neach-ionaid trafaic a-steach is a-mach don ghobhar againn tro Nginx a rèiteachadh. Tha sinn mu thràth air am pròiseas seo a chòmhdach ann an ceum 5 de shuidheachadh Clàr Docker. Bu chòir an aon rud a dhèanamh a-rithist airson na pàirtean cùil is aghaidh ann an àrainneachdan dev agus prod.

Bheir mi seachad seallaidhean-sgrìn de na roghainnean.

Backend

CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular

phobaill

CI/CD ann an Gnìomhan Github airson pròiseact Flask + Angular
Soillearachadh cudromach. Thèid a h-uile URL a chuir chun bhogsa aghaidh, ach a-mhàin an fheadhainn a tha a’ tòiseachadh /api/ - bidh iad air an ceangal ris a’ ghobhar cùil (mar sin anns a 'ghobhar cùil, feumaidh a h-uile neach-làimhseachaidh tòiseachadh le /api/).

Builean

A-nis bu chòir don làrach againn a bhith ri fhaighinn aig helloworld.ru agus dev.helloworld.ru (prod- and dev-environments, fa leth).

Gu h-iomlan, dh'ionnsaich sinn mar a dh'ullaicheas sinn tagradh sìmplidh ann am Flask agus Angular agus stèidhich sinn loidhne-phìoban ann an Gnìomhan Github gus a sgaoileadh gu frithealaiche a 'ruith Plesk.

Bidh mi a’ dùblachadh na ceanglaichean gu na stòran leis a’ chòd: cùl-raon, ceann aghaidh.

Source: www.habr.com

Cuir beachd ann