Projektowanie i wdrażanie aplikacji w chmurze

Meteorologia

(gr. metéōron (μετέωρον) - unoszący się w powietrzu, lógos (λόγος)- słowo, wiedza) - nauka zajmująca się badaniem zjawisk fizycznych i procesów zachodzących w atmosferze, szczególnie w jej niższej warstwie - troposferze. Bada, jak te procesy wpływają na przebieg procesów atmosferycznych i stan pogody na danym obszarze.

Klasyfikacja chmur

  • IaaS - Infrastructure as a Service
  • PaaS - Platform as a service
  • SaaS - Software as a service

Konteneryzacja a Wirtualizacja

Kontener

zazwyczaj metalowa skrzynia, o zunifikowanych wymiarach i konstrukcji, służąca do przewozu drobnicy (zapakowanej zazwyczaj w opakowania kartonowe, paczki, skrzynie, worki, czasami dodatkowo umieszczonych na europaletach).

Kontener = chroot + cgroups + namespaces

Demo

Wdrażanie aplikacji

,, WinSCP mogą Państwo tak skonfigurować, żeby od razu kopiował pliki edytowane Notatnikiem++ na serwerze - nie jedna duża strona już tak powstała"

anonimowy wykładowca na szkoleniu PHP a.d. 2008

,,​Kiedś wystarczyło wrzucić wszystko do /var/www i działało''

anonimowy administrator Sieci a.d. 2015

Heroku - przykład PaaS

Jak działa Heroku?

 

Anatomia

  • Loadbalancery
  • Dyna
  • git hooks
  • Buildpacki
  • Procfile
  • Heroku toolbelt
  • Addons

Anatomia Buildpacka

  • bin/detect
  • bin/compile
  • bin/release

 

12 elementów

  • jedno repozytorium - wiele środowisk/wdrożeń
  • jawne deklarowanie zależności
  • przechowywanie konfiguracji w zmiennych środowiskowych
  • wszystkie serwisy wspierające traktowane jednakowo
  • ścisłe przestrzeganie cyklu życia aplikacji 
  • aplikacja jest bez stanowa
  • aplikacja komunikuje się ze światem przez porty
  • architektura aplikacji przewiduje skalowanie horyzontalne
  • aplikacja szybko się uruchamia i kończy swoją prac
  • środowisko deweloperskie powinno być maksymalnie podobne do produkcyjnego
  • deleguj zarządzanie logami
  • narzędzia administracyjne powiinny być uruchamiane w środowisku aplikacji

Trzoda a Zwierzęta domowe

Ansible - pies pasterski

Immutable Server 

Docker machine

Ekosystem Dockera

Docker engine

Docker hub

Docker compose

Demo

Docker swarm

Unikernels

[citation needed] 

http://www.banyanops.com/blog/analyzing-docker-hub/

http://martinfowler.com/bliki/PhoenixServer.html

http://martinfowler.com/bliki/ImmutableServer.html

http://12factor.net/

https://gun.io/blog/PaaS-under-the-hood-episode-1-kernel-namespaces/