Upload
pehapkari
View
176
Download
1
Embed Size (px)
Citation preview
Infrastructure as code
Infrastructure as codeJak nahazovat stroje a nic moc nevedet
Vaclav Makes
22. prosince 2016
Infrastructure as code Vaclav Makes 1 / 18
Infrastructure as code
Vaclav Makes
� makes.cz
� vaclav at makes.cz
� Twitter – VaclavMakes
� pomaham, konzultuji
Infrastructure as code Vaclav Makes 2 / 18
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
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
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
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
Infrastructure as code
Localhost – 2. use case
”Novy kolega“
Infrastructure as code Vaclav Makes 7 / 18
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
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
Infrastructure as code
Localhost – 2. use case (novy kolega)
Docker
Infrastructure as code Vaclav Makes 10 / 18
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
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
Infrastructure as code
Produkce – 3. use case
”Aplikace na produkci – pouzıvam
Docker a sluzby cloudu“
Infrastructure as code Vaclav Makes 13 / 18
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
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
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
Infrastructure as code
Nastroje
� princip
� pull� push
� nastroje
� custom (Bash)� Docker� Ansible� Chef� Puppet� ...
Infrastructure as code Vaclav Makes 17 / 18
Infrastructure as code
Dekuji za pozornost
Infrastructure as code Vaclav Makes 18 / 18