Evoluce deploye Od FTP po automatický deploy

Podobné dokumenty
GIT hands-on. Mgr. Šimon Tóth. 12. dubna () GIT hands-on 12. dubna / 25

PŘIDÁNÍ SOUBORŮ DO OBLASTI PŘIPRAVENÝCH ZMĚN

Java/QE Akademie - Osnova

Git. The information manager from hell. Robin Obůrka

Správa verzí souborů na cvičení

SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

P2D Život postgresového serveru bez ručních zásahů. Jakub Jedelský

Praktické zkušenosti s Azure DevOps

Úvod do informatiky 5)

Šifrování (2), FTP. Petr Koloros p.koloros [at] sh.cvut.cz.

Workflow sdíleného projektu ve VisualParadigm

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Gradle.

Verzovací systémy. Pořádek především!

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ. Metodika verzií zdrojového kódu

Obecné informace o cvičeních

Revit link. Propojení mezi Scia Engineer a Revit structure

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Vladimír

Uživatelský modul. File Uploader

eduroam.cz správa a deployment pomocí Ansible

1 Nástroje pro správu verzí. 1.1 Pojmy:

Nové jazykové brány do Caché. Daniel Kutáč

UNICORN COLLEGE. Bakalářská práce

Tipy a triky nejenom v shellu nejenom pro programátory

Quo vadis, informatiko na LDF? (TEX, nvu, maxima, bash)

Nastavení Java pro aplikaci G-Client Str. 1/8

Střední odborná škola a Střední odborné učiliště, Hořovice

OpenNebula pro začátečníky SUT Tomáš Kukrál

Informační systémy 2008/2009. Radim Farana. Obsah. Základní principy XML

Přenos souborů pomocí AceFTP (pdf verze pro tisk KB)

Nahrání webu na internet

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva;

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Bakalářské. Vzdělání: Telefon: Ostrava. Bydliště: Ukázky práce: Správa a monitoring platformy provozované na AWS

Instalace a konfigurace web serveru. WA1 Martin Klíma

Integrace podnikových Open Source aplikací v praxi. RNDr. Petr Novák, Open Source Conference Praha, 19. duben 2011

ZÁLOHA A OBNOVA ABRA GEN

ZÁLOHA A OBNOVA ABRA GEN

RESTful API TAMZ 1. Cvičení 11

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

ABRA POS PRINT SERVER

E-shop k FlexiBee. FlexiBee Developers Day Tomáš Hruška, Arit s.r.o. INFORMAČNÍ TECHNOLOGIE

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

DUM 7 téma: Přenos souborů

Monitorování sítě pomocí OpenWrt

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIV Windows server 2003 (seznámení s nasazením a použitím)

Acronis. Lukáš Valenta

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Občanské sdružení StarHill

Instalace Debianu pomocí debootstrap

Travis CI. 8. března InstallFest Travis CI. Miro Hrončok. Co je CI. K čemu CI. Co je potřeba k CI. Co je Travis CI.

9. Archivace a verzování svn

Copyright Delphi Upraveno AutoKelly 2017

Udržitelnost WordPress webu

Automatizovatelná aktualizace Wikidata z veřejných databází. Jakub Klímek

WWW technologie. HTTP protokol

M E T O D I K A W I K I

INSTALACE DATABÁZE ORACLE A SYSTÉMU ABRA NA OS WINDOWS

Metody zabezpečeného přenosu souborů

Uživatelský modul. Modem Bonding

SOFISTIKOVANÉ NÁSTROJE PRO JEDNODUCHOU TVORBU PROFESIONÁLNÍCH WEBOVÝCH PREZENTACÍ

Rada města Přerova. Předloha pro 4. schůzi Rady města Přerova, která se uskuteční dne

SQL - trigger, Databázové modelování

Komunikační protokoly počítačů a počítačových sítí

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Od grafického návrhu k funkčnímu webu

Jak si ochočit Ansible

Nápověda k aplikaci EA Script Engine

Název školy: Základní škola a Mateřská škola Žalany. Číslo projektu: CZ. 1.07/1.4.00/ Téma sady: Informatika pro devátý ročník

Zvládáme zátěž webové aplikace

ČÁST 1 ÚVOD. Instalace operačního systému 21 Aktualizace operačního systému 57 Příkazový řádek 77 Windows Script Host 103 ČÁST 2 ŘEŠENÍ

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Synchronizace číselníků

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Návod ke cvičení předmětu BPGA ControlLogix

DLS V v1.2. Nové funkce. Používání programu DLS V

File Transfer Protocol (FTP)

ABX Zálohovač ABX software s.r.o.

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

edeposit AMQP Kramerius Documentation

Přehled témat. Základní pojmy

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

Úvod do verzovacích systémů

Připojení systémů CNC 8x9 DUAL do sítí pomocí protokolu TCP/IP (Platí od verze panelu 40.31)

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

PC detektiv Instalace AWEDBA Archivace Obnova z archivace AWEDBA

Multiple Event Support

DBGen v.1.0. Uživatelská příručka v. 1.0

(Enterprise) JavaBeans. Lekce 7

ZÁLOHA A OBNOVA ABRA GEN

Správa a provoz serveru Knot DNS

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky UPS. FTP Klient. A05463 fboranek@atlas.

Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U);

Ruby on Rails: zapomeňte na Javu

Git. Milan Rybář

Export zboží pro vyhledávače

Transkript:

Evoluce deploye Od FTP po automatický deploy

Tomáš Huda

Osnova FTP git-ftp git pull deploy skript git hooks automatický deploy - CI/CD databáze bezvýpadkový deploy

Osnova FTP git-ftp git pull deploy skript git hooks automatický deploy databáze bezvýpadkový deploy FTP SSH způsob spuštění skriptů

FTP WIKI: FTP (anglicky File Transfer Protocol) je v informatice protokol pro přenos souborů mezi počítači pomocí počítačové sítě. Programy: Filezilla, WinSCP, TotalCommander

FTP Výhody: Nevýhody:

FTP Výhody: potřeba téměř nulové znalosti není třeba mít SSH přístup Nevýhody: náročné na přenos nebo náročné na čas nemám přehled o změnách kódu na serveru všechny změny na serveru budou přepsány bez upozornění

git-ftp Nástroj umožňující pomocí GITu nahrát přes FTP pouze změněné soubory a smazat odstraněné soubory. Uloží na server hash posledního commitu do souboru.git-ftp.log. Porovnává lokální větev proti uloženému hashi a pracuje pouze se změněnými soubory. Zdroj: https://github.com/git-ftp/git-ftp

git-ftp - ukázka # Setup git config git-ftp.url "ftp://ftp.example.net:21/public_html" git config git-ftp.user "ftp-user" git config git-ftp.password "secr3t" # Upload all files git ftp init # Or if the files are already there git ftp catchup # Work and deploy echo "new content" >> index.txt git commit index.txt -m "Add new content" git ftp push # 1 file to sync: # [1 of 1] Buffered for upload 'index.txt'. # Uploading... # Last deployment changed to ded01b27e5c785fb251150805308d3d0f8117387.

git-ftp Výhody: Nevýhody:

git-ftp Výhody: není potřeba SSH přístup přenáším/odstraňuji pouze změněné soubory Nevýhody: nemám přehled o změnách kódu na serveru všechny změny na serveru budou přepsány bez upozornění časté problémy

git pull Základní předpoklady - projekt v gitu a ssh přístup na server a git na serveru Obsah webové složky bude naklonovaný git repozitář. Pro aktualizaci projektu se připojíme na ssh a použijeme na serveru příkaz git pull.

git pull Výhody: Nevýhody:

git pull Výhody: přenáším/odstraňuji pouze změněné soubory dojde-li ke kolizi, tak se o ní dozvím Nevýhody: nutné mít SSH přístup často je nutné udělat více než jenom git pull - bez automatizace se na něco zapomene

Deploy skript Skript, který nám provede všechny potřebné věci pro nasazení projektu. Může být psán v jakémkoli jazyce. Může být spouštěn ručně nebo automaticky.

Deploy skript Výhody: Nevýhody:

Deploy skript Výhody: zautomatizování celého procesu minimalizace rizika zapomnění Nevýhody: závislé na prostředí - interpreter, cesty složitější pro nastavení pokud skript selže - složité pro obnovu

Deploy skript - ukázka deploy.sh #!/bin/sh git pull rm -rf temp/cache my_own_post_merge_script.sh #!/bin/sh rm -rf temp/cache

Git hooks Hooks - skripty, které git spouští po určité události. Můžou být napsané v jakémkoli jazyce. Jsou zabudované přímo v gitu..git/hooks/ Běží lokálně v každém repozitáři. applypatch-msg pre-applypatch post-applypatch pre-commit prepare-commit-msg commit-msg post-commit pre-rebase post-checkout post-merge pre-receive update post-receive post-update pre-auto-gc post-rewrite pre-push

Git hooks Výhody: Nevýhody:

Git hooks Výhody: použití stejné jako git pull umožní přidat dodatečnou logiku oproti git pull Nevýhody: nutné mít SSH přístup složité při chybě/kolizi nutné udržovat všude, kde je potřeba (lze řešit deploy skripty)

Git hooks - ukázka 1).git/hooks/post-merge #!/bin/sh rm -rf temp/cache 2).git/hooks/post-merge #!/bin/sh./my_own_post_merge_script.sh

Automatický deploy - CI/CD^2 Gitlab, Travis, Jenkins Continues integration Continues delivery Continues deployment

Automatický deploy Výhody: Nevýhody:

Automatický deploy Výhody: procesy po i před nasazením (testy) při správném nastavení může dělat deploy každý bez jakékoli znalosti Nevýhody: složité na nastavení složité při chybě

Automatický deploy - GitLab ukázka.gitlab-ci.yml deploy_prod: only: - master tags: - deploy script: - ssh-add <(echo "$SSH_PRIVATE_KEY" base64 --decode) - ssh $SSH_USER@$SSH_HOST -p $SSH_PORT "$SSH_COMMAND"

Databáze Možnosti: ruční migrace vlastní automatizace software pro migraci a verzování db - Phinx, Liquibase, Doctrine Způsoby: zpětná kompatibilnost bezvýpadkový/výpadkový

Bezvýpadkový deploy Motivace?

Bezvýpadkový deploy Motivace! Alibaba během 15 minut prodeje pokořila loňský obrat všech českých eshopů dohromady

Bezvýpadkový deploy Složky: releases git shared www 1) spustím skript - volitelný parametr - název větve 2) aktualizuji git a přepnu se na danou větev 3) zkopíruji obsah git a shared do release složky 4) spustím všechny doprovodné skripty (smazání cache, webpack, composer atd.) 5) smažu nadbytečný release 6) přepnu link www na poslední release 7) aplikace se aktualizovala a všem stále běží echo '( _ )'; echo '( _ )> - '; echo '( _ ) #Dokončeno';

Bezvýpadkový deploy Optimalizace: zautomatizovat databázi přidat automatický výpadek stránek Případné problémy: sessions

Pozvánka na další workshop IntraWorlds 6. 3. 2018 v 18:00 téma: Bezpečnost webových aplikací - hack this workshop!