18
Infrastructure as code Infrastructure as code Jak nahazovat stroje a nic moc nevˇ edˇ et aclav Makeˇ s 22. prosince 2016 Infrastructure as code aclav Makeˇ s 1 / 18

Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Embed Size (px)

Citation preview

Page 1: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Infrastructure as codeJak nahazovat stroje a nic moc nevedet

Vaclav Makes

22. prosince 2016

Infrastructure as code Vaclav Makes 1 / 18

Page 2: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Vaclav Makes

� makes.cz

� vaclav at makes.cz

� Twitter – VaclavMakes

� pomaham, konzultuji

Infrastructure as code Vaclav Makes 2 / 18

Page 3: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 1. use case

”Zkousel jsem si super-hyper-cool

technologii a tak trosku nemohu napocıtaci nic delat. Reinstalace?“

Infrastructure as code Vaclav Makes 3 / 18

Page 4: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 1. use case (reinstalace)

� konfigurace

� .gitconfig� .gitignore� .bashrc

� pouzıvany SW

� Chrome, PhpStorm� git, wget, ..., gource

Infrastructure as code Vaclav Makes 4 / 18

Page 5: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 1. use case (reinstalace)

� naskriptuji si to sam (Bash)

� dost prace� reakce na zmeny (restart Nginx)� idempotence

� neco chytrejsıho

� Ansible� Puppet� Chef� ...

Infrastructure as code Vaclav Makes 5 / 18

Page 6: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 1. use case (reinstalace)

−−−− h o s t s : l o c a l

t a s k s :

− name : Copy g i t i g n o r ecopy : s r c=c n f / . g i t i g n o r e d e s t =˜/. g i t i g n o r e

− name : I n s t a l l packages from Homebrew .homebrew : name={{ i t em }} s t a t e=p r e s e n tw i t h i t e m s :− g i t− wget− g o u r c e

Infrastructure as code Vaclav Makes 6 / 18

Page 7: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 2. use case

”Novy kolega“

Infrastructure as code Vaclav Makes 7 / 18

Page 8: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 2. use case (novy kolega)

� sluzby

� PHP� PostgreSQL / MySQL� Nginx / Apache� Redis� RabbitMQ� ...

� konfigurace

� php.ini

� dalsı projekty

Infrastructure as code Vaclav Makes 8 / 18

Page 9: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

CI server – 2. use case (novy kolega)

� to same co na localhostu

� co kdyz CI neumı napr. RabbitMQ

Infrastructure as code Vaclav Makes 9 / 18

Page 10: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 2. use case (novy kolega)

Docker

Infrastructure as code Vaclav Makes 10 / 18

Page 11: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 2. use case (novy kolega)

� git clone

� spustenı cele aplikace = 1 command

� frontend� backend� fixtures� samples

Infrastructure as code Vaclav Makes 11 / 18

Page 12: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Localhost – 2. use case (novy kolega)

FROM php :7.1− apache

COPY . / p r o j e c t . c o n f / e t c / apache2 / p r o j e c t . c o n fRUN echo ” Europe / Prague ” > / e t c / t imezoneRUN a2enmod r e w r i t eRUN apt−g e t i n s t a l l −y −−f o r c e−y e s \

g i t \u n z i p \mysql−c l i e n t \wget \z i p

WORKDIR / app

Infrastructure as code Vaclav Makes 12 / 18

Page 13: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Produkce – 3. use case

”Aplikace na produkci – pouzıvam

Docker a sluzby cloudu“

Infrastructure as code Vaclav Makes 13 / 18

Page 14: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Produkce – 3. use case (Docker)

� AWS – ECS

� DigitalOcean – vlastnı cluster (Kubernetes)

� custom HW – vlastnı cluster (Kubernetes)

� vyuzitı AWS RDS, AWS S3, ...

Infrastructure as code Vaclav Makes 14 / 18

Page 15: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Nasazovanı na servery bez Dockeru – 4. use case

”Aplikace na serverech – nepouzıvam

Docker, porad resım instalacea konfigurace.“

Infrastructure as code Vaclav Makes 15 / 18

Page 16: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Nasazovanı na servery bez Dockeru – 4. use case

� konfigurace jako na localhostu

� spolehlivejsı nez dokumentace

� novy server do konkretnıho stavu

� spustenı serveru skrze API (lze pomocı Ansible)� instalace pomocı Ansible (jako localhost)

� udrzovanı staleho serveru

� zmeny konfigurace a konsekvence (restarty po zmenekonfigurace)

� vyhody

�”code-review“

� prehled zmen – Git historie� zamezenı chyb (AWS Console)

Infrastructure as code Vaclav Makes 16 / 18

Page 17: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Nastroje

� princip

� pull� push

� nastroje

� custom (Bash)� Docker� Ansible� Chef� Puppet� ...

Infrastructure as code Vaclav Makes 17 / 18

Page 18: Václav Makeš - Infrastructure as code - Jak nahazovat stroje a nic moc nevědět (13. sraz přátel PHP v Praze)

Infrastructure as code

Dekuji za pozornost

Infrastructure as code Vaclav Makes 18 / 18