Výhody automatického deploye

Výhody automatického deploye

V současné době se automatizace stává klíčovým faktorem pro efektivní správu a nasazení softwarových aplikací. Jedním z nástrojů, který nám umožňuje dosáhnout tohoto cíle, je Envoy – nástroj vyvinutý Laravelem pro zjednodušení a automatizaci nasazení. V tomto článku se podíváme na hlavní výhody automatického deploye a konkrétní přínosy používání Envoy v rámci Laravel projektů.

1. Úspora času a zvýšení efektivity

Automatický deploy umožňuje vývojářům ušetřit cenný čas, který by jinak museli věnovat manuálnímu nasazení aplikace. Ruční proces nasazení může být časově náročný a náchylný k chybám. S Envoy můžete definovat skripty, které automatizují všechny kroky nasazení – od stažení kódu z repozitáře, přes instalaci závislostí, až po migraci databáze. To znamená, že jedním příkazem lze provést celý proces nasazení.

2. Snížení rizika chyb

Manuální proces nasazení je náchylný k lidským chybám, které mohou vést k problémům v produkčním prostředí. Automatizace nasazení pomocí Envoy eliminuje mnoho z těchto potenciálních chyb, protože všechny kroky jsou přesně definovány ve skriptech. To zajišťuje konzistentní a opakovatelný proces nasazení, který je méně náchylný k chybám.

3. Rychlejší a častější nasazování

Automatizace umožňuje rychlejší nasazení, což je klíčové pro moderní vývojové procesy, jako je continuous integration a continuous deployment (CI/CD). S Envoy můžete nasazovat nové verze aplikace častěji a rychleji, což zkracuje dobu mezi vývojem a uvedením do produkce. To může výrazně zvýšit rychlost, s jakou můžete reagovat na změny a požadavky uživatelů.

4. Jednodušší správa a údržba

S Envoy je správa a údržba nasazovacího procesu mnohem jednodušší. Skripty mohou být uloženy v repozitáři kódu, což usnadňuje jejich verzování a správu. Jakékoli změny v nasazovacím procesu mohou být prováděny a testovány stejně jako jakýkoli jiný kód v projektu. To také umožňuje lepší spolupráci mezi členy týmu, protože všichni mají přístup k aktuálnímu nasazovacímu skriptu.

5. Lepší škálovatelnost

Automatizované nasazení je také klíčové pro škálování aplikací. Když váš projekt roste a počet nasazení se zvyšuje, ruční nasazování se stává neudržitelným. Envoy umožňuje snadno nasadit aplikaci na více serverů současně, což je nezbytné pro škálovatelné aplikace. Automatizace také umožňuje snadnější nasazení do různých prostředí (testovací, produkční, apod.) bez nutnosti manuálních zásahů.

Použití Envoy pro Laravel

Envoy je specificky navržený pro použití s Laravel frameworkem, což z něj činí ideální nástroj pro vývojáře, kteří pracují s Laravelem. S Envoy můžete jednoduše definovat úkoly nasazení pomocí jednoduchého a čitelného syntaxe. Například, typický skript pro nasazení může vypadat takto:

@servers(['web' => 'deployer@192.168.1.1'])

@setup
    $php = "/usr/bin/php8.4";
    $composer = "/usr/bin/php8.4 /usr/local/bin/composer";
    $repository = 'git@gitlab.com:username/projekt.git';
    $releases_dir = '../../www/hosting/projekt.cz/releases';
    $app_dir = '../../www/hosting/projekt.cz/www';
    $release = date('YmdHis');
    $new_release_dir = $releases_dir .'/'. $release;
@endsetup

@story('deploy')
    clone_repository
    run_composer
    update_symlinks
    artisan_commands
    link_new_release
    cleanup_releases_folder
@endstory

@task('clone_repository')
    echo 'Cloning repository'
    [ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
    git clone --depth 1 {{ $repository }} {{ $new_release_dir }}
    cd {{ $new_release_dir }}
    git reset --hard {{ $commit }}
@endtask

@task('run_composer')
    echo "Starting deployment ({{ $release }})"
    cd {{ $new_release_dir }}
    {{$composer}} install --no-interaction --no-ansi --no-plugins --no-progress --no-scripts --optimize-autoloader
@endtask

@task('update_symlinks')
    cd {{$new_release_dir}}

    echo "clearing cache"
    {{$php}} artisan cache:clear

    echo "Linking storage directory"
    rm -rf storage
    ln -nfs ../../storage storage

    echo 'Linking .env file'
    ln -nfs ../../.env .env

    cd public

    echo 'Linking public storage'
    ln -nfs ../../../storage/app/public storage
@endtask

@task('artisan_commands')
    cd {{$new_release_dir}}

    echo 'php artisan migrate'
    {{$php}} artisan migrate --force

    echo 'php artisan config:cache'
    {{$php}} artisan config:cache

    echo 'php artisan event:cache'
    {{$php}} artisan event:cache

    echo 'npm install'
    npm install

    echo 'npm run build'
    npm run build
@endtask

@task('link_new_release')
    cd {{$app_dir}}

    echo 'Linking current release'
    ln -nfs releases/{{ $release }}/ current
@endtask

@task('cleanup_releases_folder')
    cd {{ $releases_dir }}

    echo 'Cleaning releases folder'
    shopt -s extglob
    rm -rf !({{ $release }})
@endtask

Pokud máte zájem o automatický deploy pro Váš web, neváhejte nás kontaktovat https://devboys.cz/kontakt 

Co se stane po odeslání?

Jsme tu pro Vás

Vaši zprávu si přečtu přímo já nebo kolega z týmu. Do 24 hodin se vám ozveme zpět, abychom probrali detaily. Žádní obchodní zástupci, ale rovnou technická konzultace k věci, která vás posune dál.

Osobní přístup

Jednáte přímo s vývojáři, ne s account managery.

< 24 h reakční doba

Ozveme se rychle s jasnými dalšími kroky.

IČO 06109152
DIČ CZ9102040431 (Plátce DPH)
Společnost zapsaná v obch. rejstříku, vedeného MÚ Plzeň, spis. zn. 231/98.

Kontaktujte nás