LinkedIn Twitter Facebook

BLOGGPOST

PHP Deployer

Swisch
Nästa
Föregående
6 december 2015
Twitter

Känner du ofta som jag att Capistrano är en hemlig låda som är lite svår att ta sig an och att det där med Ruby egentligen inte riktigt hör hemma i ett WordPressprojekt. Det kräver trots allt kompetens som flera av oss inte besitter?

Jag har gjort flera försök att verkligen använda Capistrano till mer än bara simpel deploy. Det blir komplext vid roller och staging.

Så mitt tips är PHP Deployer. Här följer lite idéer kring hur vi använder det i våra projekt för deployment (push till test, staging eller produktion).

Börja med att addera PHP deployer till ditt projekt med Composer-kommando:

För visst använder du Composer i dina projekt. Om inte, börja genast att förkovra dig kring det så får du massor av struktur på köpet, som uppgraderingar, kontroll på installerade plugins och grunden för bra deployment.

 

Nu är det dags för att skriva ditt första recept. Vi ska skapa en deployment upp till test, staging eller produktion. Här kommer kod som jag förklarar syftet med under.

Steg 1

PHP Deployer kräver rätt datum så det ska definieras.

Steg 2

Här inkluderar vi ett recept som stödjer symfony’s sätt att deploya med symlänkar för noll avbrott vid kontinuerlig deploy. Det finns script för WordPress också men denna passar bättre för uppställningar med Bedrock.

Det är också “common” som är nära nog exakt som Capistrano med Bedrock i förfarande med symlänkat byte av ny version för din webb.

Steg 3

Definition av destinationsmiljö. Observera att du kan ha flera av dessa så det går bra att deploy’a till flera miljöer samtidigt eller olika vid deploy-kommandot senare.

Steg 4

Din kod ligger i detta fall hos Github. Säkerställ att din destinationsmiljö når denna kod för läsning!

Steg 5

Parametrar som används i “common”. Viktigt är “shared dirs & files” som är delade mappar och filer. Dessa består över flera deployments och bevaras alltså. Ett exempel på det är “uploads” i WordPress.

Steg 6

Receptets alla steg till ett enda kommando. I detta fall räcker det alltså med att skriva “dep deploy {destination}” så rullar samtliga steg igång mot destinationsmiljön.

 

Om du nu definierat bash-kommando “dep” som exekverbar enligt PHP-deployers startsida så skriver du nu:

Då startar uppladdningen av en ny version av din kod samt uppsättningen av en ny webb.

Din produktionsserver ska sedan peka på {mapp till deploy}/current/web

Glöm inte att definera .env, mfl för Bedrock. Men det har du säkert redan koll på 🙂

 

Vad är vinsten med allt detta?

  • Din uppdatering av kod blir exakt lika varje gång.
  • Din miljö blir strukturerad och dokumenterad.
  • Du kan infoga tester i samband med detta.
  • Du kan addera flera olika byggprocesser som behövs i samband med deployment, ex cache-tömning, omstart av services, hämtning av data, mm.
  • Du drar nytta av din Composer-baserade WordPress-utveckling.
  • Du blir snabb till förändring för skarpa miljöer.
  • Med PHP deployer gör du glappet mindre mellan utvecklare och devops.

 

dep-deploy-production

 

Swisch

Ledord för oss är respons, nyfikenhet, affärsförståelse och kvalitetsinsatser.

Elseif AB är placerat i Mälardalen och har kunder kring Stockholm. Vi arbetar med tjänster och produkter för digitala, redaktionella system. Utgångspunkten för våra leveranser startar i öppenhet där öppen källkod eftersträvas där det är möjligt.

Code

Elseif AB

(besök oss på)
Munkgatan 20d
722 12 Västerås

 

E-post: info@elseif.se
Telefon: 070 - 303 22 03