Proiecte de implementare automată pe php (disloca), creativ blog-ul companiei

Este clar că orice proiect ar trebui să fie pe server pentru a începe activitatea. Întrebarea este cum se face rapid, ușor și sigur.

Proiecte automate de implementare (disloca)

Care este proiectele de implementare automată (disloca)? Pentru noi, ne-am definit ca un proces de cod și a structurii bazei de date de portare cu o mașină de dezvoltator local ( „Sandbox“, dacă va fi) la server (sau cluster-ul de servere), care, în viitor se va derula proiectul. Includerea în acest proces include, de asemenea, diferite tipuri de operațiuni de pregătire, cum ar fi curățarea și memoria cache de încălzire.







De ce este nevoie? Fiecare dintre noi este pe drum a trecut diferite versiuni ale transferului de proiect pentru a „combate“ server: acest ftp (în memoria recente au fost dezvoltatorii, care a scris o dată codul de pe server, pentru a interacționa cu el numai prin ftp), și SFTP, și rsycn și git pull - toate aceste metode au multe dezavantaje, și cel mai important, că acestea necesită o muncă de rutină monotonă. Am decis că timpul este mai bine cheltuite pentru dezvoltare, și toate monotonia să aibă încredere în mașină.

Cerințe pentru sistem deploya

În primul rând, ne-am decis cu privire la cerințele pentru un astfel de sistem:

  1. trebuie să poată implementa proiectul la mai multe site-uri sau pe una dintre ele printr-o alegere - pentru fiecare proiect, avem cel puțin două platforme (de luptă și de testare), în plus, unele proiecte folosesc un cluster de servere,
  2. Proiectele trebuie să disloca din depozit, și, în plus, trebuie să fie în măsură să desfășoare diferite ramuri depozit pe platforme diferite,
  3. Acesta trebuie să fie în măsură să revină rapid la versiunea precedentă,
  4. procesul de actualizare ar trebui să fie cât mai transparente pentru utilizatorii site-ului,
  5. sistemul trebuie să fie scalabil și vă permite să introduceți orice măsuri suplimentare pe care avem nevoie (pachet de instalare compozitor, migrare baze de date, etc.)
  6. sistemul în sine trebuie să fie implementate rapid și ajustate pentru orice proiect,
  7. Ar trebui să fie scris în PHP - este evident că mediul php-dezvoltator este configurat pentru a lucra cu PHP și să-l adapteze pentru deploya mediu pentru a lucra cu, de exemplu, rubin - fără inimă.






Scripturi deploya pentru php

Am început să căutăm o soluție gata preparată adecvată. Jenkins, Capistrano, etc. Acesta a fost respins imediat, în ciuda popularității lor. Avem nevoie de un scenariu scris în PHP.

Cerințe pentru proiecte pentru a personaliza rocketeeri

Cu toate acestea, a trebuit să se restructureze și proiectele lor, pentru ca s-ar aplica acestora rocketeeri. Desigur, nu a fost necesar, dar, vedeți, că dacă merge la proiect de la un alt dezvoltator, și știți deja unde este, este frumos să se încălzească sufletul.

Deci, aici e structura fișierului, pe care le folosim pentru proiectele „1C-Bitrix Site Manager“:

    • .Setări dosar deploya rocketeeri pentru rocketeeri
    • dosar documente, care trebuie să conțină toate documentele cu privire la proiect.
    • dosar exemple, care ar trebui să se bazeze pe exemple de fișiere de configurare „Manager de 1C-Bitrix site-ului.“
      • .settings.php
      • dbconn.php
    • dosar front-end, care se va baza pe fișierele necesare pentru a construi frontend.
    • lib dosar, care se va baza pe dosare de clasă care au fost scrise special pentru proiect.
    • director furnizor cu bibliotecile încărcate de un compozitor.
    • director web, care va fi disponibil de pe web.
      • bitrix dosar distro aparținând "Manager de 1C-Bitrix site-ului."
      • director local toate componentele, template-uri și module care sunt necesare pentru proiect.
    • .gitignore git dosar de serviciu, care exclude anumite fișiere și foldere din depozit.
    • Format fișier README.MD markdown cu o scurtă descriere a proiectului.
    • fișier de configurare compozitor composer.json.
    • fișier composer.phar cu compozitorul script-ul.
    • fișier rocketeer.phar cu scriptul rocketeeri.

Cerințe pentru configurarea unui server

Au existat, de asemenea, și pentru a configura cerințele de server. În general, rocketeeri creează un director de pe serverul eliberează, în care în dosarele de clone depozit de bază separată. La același nivel ca și dosarul de presă, rocketeeri curent creează o legătură simbolică care duce la eliberarea activă în prezent - toate acestea vă permite să comutați rapid și invizibil pentru utilizatorul eliberează site. Există, de asemenea, este un director partajat. Acesta este conceput pentru a salva fișiere între versiuni. De exemplu, l-am stoca în dosarul încărcările pentru Bitrix și fișierele din setările de proiect pe server (.settongs.php și dbconn.php).

Ce este o implementare

Având în vedere structura noastră și structura depozit, descoperim că rădăcina document al gazdei virtuale ar trebui să indice „/ papka_sayta / curent / web /».

Doriți mai mult de automatizare?

Acest lucru nu ar crea în mod constant de la un proiect la aceeași structură de dosare, am făcut un proiect pentru compozitor.

Acum, pentru a implementa un proiect de schelet suficient de a efectua în consola