PHP v cloudu III

Navážeme na předchozí dva díly seriálu a ukážeme si kontinuální nasazení aplikací z GIT do tzv. staging prostředí a přepnutí na produkční prostředí.

Seriál: PHP v cloudu (4 díly)

  1. PHP v cloudu I 13.6.2014
  2. PHP v cloudu II 25.6.2014
  3. PHP v cloudu III 2.7.2014
  4. PHP v cloudu IV 11.7.2014

Jak správně nasazovat aplikaci

Pro bezpečné nasazování aplikací je doporučeno používat tři prostředí.

Vývojářské (dev) – plně pod kontrolou vývojáře, kde si může dělat, co chce a kde testuje a ladí svůj kód.

Předprodukční (staging) – na toto prostředí by neměl mít vývojář přístup a mělo by být 100% identické s produkčním prostředím. Pro toto prostředí vývojář připraví „instalační“ balíček a odpovědná osoba ho jasně daným postupem nasadí. Toto prostředí slouží pro finální testování před nasazením aplikace na produkční prostředí. Je to bariéra pro klasické „výmluvy“ vývojářů, mně to na mém počítači funguje, chyba je u vás.

Produkční prostředí (prod) – ostrý server pro uživatele. Na toto prostředí by se mělo nasazovat pouze z předprodukčního prostředí, a to identickým způsobem, jako se nasazuje na předprodukční prostředí. Pokud máte opravdu produkční a předprodukční prostředí na 100 % identické, stačí pouze změnit síťovou konfiguraci a z předprodukčního tak udělat prostředí produkční. Můžete se potkat s termínem „swap“.

Důvodem tohoto řetězce je zamezit nasazení nefunkční aplikace na produkční prostředí. Nejčastějším problémem při vynechání pře produkčního prostředí není chyba v aplikaci, ale chyba v konfiguraci, chybějící knihovny, špatně nastavené cesty atd.

Vytvoření předprodukčního prostředí

  1. Na záložce DASHBOARD klikněte na Add new deployment slot

     image1

  2. Pojmenujte nové prostředí

    image2 

  3. URL nově vytvořeného prostředí se složí z původního jména, pomlčky a jména „deployment slot“: stepanb-zdrojak-staging.azurewebsites.net

    image3 

Takto vytvořené prostředí je 100% identické jako původní prostředí. Můžete u něj samozřejmě změnit nastavení, nasadit aplikaci, třeba přes FTP, otestovat, a když je vše v pořádku, tak kliknutím na tlačítko SWAP zaměnit produkční a předprodukční prostředí. Záměna je udělána tak, že původní produkční prostředí dokončí obsloužení stávajících požadavků, zatímco nové požadavky jsou již směrovány na nové produkční prostředí. Ve chvíli, kdy jsou staré požadavky obslouženy, se původní produkční prostředí zruší. Uživatel by tedy neměl zaznamenat žádný výpadek.

 image4

Kontinuální nasazení

V každém okamžiku vývoje byste měli mít v předprodukčním prostředí funkční aplikaci v co nejaktuálnější verzi. Pokud udělá vývojář nějakou změnu, tu otestuje na svém prostředí a provedené změny uloží do systému správy zdrojových kódů, tak by se tato změna měla co nejdříve projevit v předprodukčním prostředí, aby se změna mohla okamžitě testovat v rámci celé aplikace. Jak již ale bylo řečeno, vývojář nemá co zasahovat do předprodukčního prostředí. Jak tedy provázat předprodukční prostředí se systémem správy zdrojových kódů? Microsoft Azure Web Sites tuto možnost přímo podporují.

  1. Otevřete vytvořené předprodukční prostředí a klikněte na Set up deployment from source control. Nikdy takto nepropojujte produkční prostředí. Snadno si ho pak můžete rozbít.

     image5

  2. Vyberte si z podporovaných systémů pro správu zdrojových kódů. Jednou z jednoduchých možností je využití Dropbox místo FTP.

     image6

  3. Pokud si vyberete Local Git repository, tak se přímo vytvoří Git repositář ve vašem předprodukčním prostředí.

     image7

  4. Nyní již stačí ve vašem prostředí nastavit přístup k nově vytvořenému Git repositáři.

     image8

  5. Pokud nyní uděláte synchronizaci lokálního repositáře s tím, který máte na Microsoft Azure, tak dojde k automatickému nasazení aplikace.

     image9

     image10

Nezapomínejte na možnost předprodukční prostředí vypínat a zapínat, abyste zbytečně neplatili za dobu, kdy na předprodukčním prostředí nepracujete.

Komentáře: 17

Přehled komentářů

zdenekmachek PHP na Azure
Štěpán Bechynský Re: PHP na Azure
zdenekmachek Re: PHP na Azure
Jirka Kosek Re: PHP na Azure
Karlos Re: PHP na Azure
Karlos Re: PHP na Azure
Trolda Trolovič Re: PHP na Azure
Kinkos Re: PHP na Azure
Kinkos Re: PHP na Azure
Martin Hassman Re: PHP na Azure
Kinkos Re: PHP na Azure
Martin Hassman Re: PHP na Azure
ah01 Re: PHP na Azure
Kinkos Re: PHP na Azure
Kinkos Re: PHP na Azure
Jan Pobořil Zkušenost z praxe
Kinkos Re: Zkušenost z praxe
Zdroj: https://www.zdrojak.cz/?p=12689