Автоматични проекти за внедряване на PHP (разполагане), творчески блог на компанията

Ясно е, че всеки проект трябва да бъде на сървъра, за да започне своята работа. Въпросът е как да го направя бързо, лесно и сигурно.

Автоматични проекти за внедряване (разполагане)

Какво е проектите автоматични за разполагане (разполагане)? За себе си, ние сме го определя като процес на пренасяне код и структура на базата данни с локалната машина разработчик ( "пясък", ако щете) към сървъра (или групата от сървъри), който в бъдеще ще работи по проекта. Включително в този процес също така включва различни видове подготвителни операции, като почистване и отопление кеш.







Защо е необходимо? Всеки от нас е на път премина различни версии на прехвърлянето на проекта за "борба" на сървъра: този FTP (в близкото минало бяха разработчиците, които някога са писали кода на сървъра, да взаимодействат с него само чрез FTP) и SFTP и rsycn и Git дръпнете - всички тези методи имат много недостатъци, и най-важното е, че те се нуждаят от монотонен рутинна работа. Решихме, че времето е по-добре похарчени за развитие, както и всички монотонността да се доверят на колата.

Изисквания за deploya система

На първо място, ние решихме за изискванията за такава система:

  1. трябва да бъде в състояние да разположи на проекта в няколко други места, или на един от тях по избор - за всеки проект, ние имаме най-малко две платформи (бойни и тест), в допълнение, някои проекти да използват клъстер от сървъри,
  2. Проектите трябва да се мобилизират от хранилището, и в допълнение, трябва да е в състояние да разположи различни клонове хранилище на различни платформи,
  3. Тя трябва да бъде в състояние бързо да се върнете към предишната версия,
  4. процеса на обновяване трябва да е прозрачен за потребителите на сайта,
  5. системата трябва да бъде мащабируема и ще ви позволи да въведете допълнителни стъпки, които трябва (инсталационния пакет композитор, миграция база данни и т.н.)
  6. самата система трябва да бъдат задействани бързо и адаптирано за всеки проект,
  7. Тя трябва да бъде написана на PHP - очевидно е, че PHP-разработчик среда е конфигуриран за работа с PHP и да го накара да се коригира за deploya среда за работа с, например, рубин - безсърдечен.






Scripts deploya за PHP

Ние започнахме да търсим подходящ готов разтвор. Дженкинс, Capistrano и т.н. То бе отхвърлено веднага, въпреки популярността им. Имахме нужда от сценарий, написан в PHP.

Изисквания към проектите, за да персонализирате пилот на ракета

Въпреки това, ние трябваше да се преструктурира и техните проекти, за които ще се прилага за тях пилот на ракета. Разбира се, че не е необходимо, но, виждате ли, че ако се върви към проекта от друг разработчик, а вие вече знаете къде е, че е хубаво да се затопли душата.

Така че, тук е структурата на файловете, които ние използваме за проекти в областта на "1C-Bitrix Site Мениджър":

    • .Rocketeer настройки папка deploya за пилот на ракета
    • документи папка, която трябва да съдържа цялата документация по проекта.
    • примери папка, която трябва да се основава на примери на конфигурационни файлове "Мениджър 1C-Bitrix Site".
      • .settings.php
      • dbconn.php
    • фронтенд папка, която ще се основава на файлове, необходими за изграждане на интерфейса.
    • ИЪ папка, която ще се основава на класа файлове, които са написани специално за проекта.
    • продавач директория с библиотеки, натоварени с композитор.
    • уеб папка, която ще бъде на разположение от мрежата.
      • Битрикс папка с файлове, принадлежащи дистрибуции "Мениджър 1C-Bitrix Site".
      • локална папка всички компоненти, шаблони и модули, които са необходими за проекта.
    • .gitignore услуга файл Git, които изключват определени файлове и папки от архива.
    • README.MD евтино файлов формат с кратко описание на проекта.
    • composer.json композитор конфигурационен файл.
    • composer.phar файл с композитора на скрипта.
    • rocketeer.phar файл със скрипта Rocketeer.

Изисквания за настройка на сървър

Имаше също и да изберете изискванията на сървъра. Като цяло, Rocketeer създава папка на изпускания на сървъра, където в отделни папки клонове база хранилище. На същото ниво като папка по пресата, пилот на ракета ток създава символична връзка, която води към активния в момента освобождаването - всичко това ви позволява да превключвате бързо и незабележимо за потребителя версии на сайта. Там също е споделена папка. Тя е предназначена за запазване на файлове между пресата. Например, ние я съхранява в папката качени за Bitrix и файлове от настройките на проекта на сървъра (.settongs.php и dbconn.php).

Какво е разгръщане

Като се има предвид нашата структура и хранилище структура, ние откриваме, че коренът на документа на виртуален хост трябва да сочи към "/ papka_sayta / ток / уеб /».

Искате повече автоматизация?

Това няма да създаде постоянно от един проект към една и съща структура на папката, направихме проект за композитора.

Сега, за разполагане на един скелет на проекта изпълнява в достатъчна степен в конзолата