Z głową w chmurach
o czym myśleć kiedy decydujemy się uruchomić aplikację 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
jedno bardzo, ale to bardzo ważne pytanie...
Subtitle
Dostępność
Availability % | Downtime per year |
Downtime per month |
Downtime per week |
Downtime per day |
90% ("one nine") | 36.5 days | 72 hours | 16.8 hours | 2.4 hours |
99% ("two nines") | 3.65 days | 7.20 hours | 1.68 hours | 14.4 minutes |
99.9% ("three nines") | 8.76 hours | 43.8 minutes | 10.1 minutes | 1.44 minutes |
99.99% ("four nines") | 52.56 minutes | 4.38 minutes | 1.01 minutes | 8.66 seconds |
99.999% ("five nines") | 5.26 minutes | 25.9 seconds | 6.05 seconds | 864.3 milliseconds |
99.9999% ("six nines") | 31.5 seconds | 2.59 seconds | 604.8 milliseconds | 86.4 milliseconds |
99.99999% ("seven nines") | 3.15 seconds | 262.97 milliseconds | 60.48 milliseconds | 8.64 milliseconds |
99.999999% ("eight nines") | 315.569 milliseconds | 26.297 milliseconds | 6.048 milliseconds | 0.864 milliseconds |
99.9999999% ("nine nines") | 31.5569 milliseconds | 2.6297 milliseconds | 0.6048 milliseconds | 0.0864 milliseconds |
Trochę akronimów
- SLA
- MTTF
- MTTR
- MTBF
- Availability = MTBF/ (MTBF + MTTR)
- High Availability
- Fault Rolerance
- RTO
- RPO
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
Text
Lift and shift
Proste podejście
-
https://aws.amazon.com/server-migration-service/
- https://cloud.google.com/vm-migrate/
- https://azure.microsoft.com/en-us/migration/
Alternatywne (lepsze?) Podejście
- Terraform
- Ansible
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 horyzontalnie
- aplikacja szybko się uruchamia i kończy swoją pracę
- środowisko deweloperskie powinno być maksymalnie podobne do produkcyjnego
- deleguj zarządzanie logami
- narzędzia administracyjne powinny być uruchamiane w środowisku aplikacji
Trzoda a Zwierzęta domowe
Ansible - pies pasterski
Terraform - menadżer stadniny
resource "aws_security_group" "default" {
name = "eip_example"
description = "Used in the terraform"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
resource "aws_instance" "web" {
instance_type = "t2.micro"
key_name = "${var.key_name}"
security_groups = ["${aws_security_group.default.name}"]
}
}
Kubernetes
Cloud Native
[citation needed]
https://aws.amazon.com/ec2/sla/
https://cloud.google.com/compute/sla
https://www.reddit.com/r/sysadmin/comments/3yv2db/aws_ebs_volume_data_loss_usgovcloudwest1a
https://cloud.google.com/compute/docs/tutorials/robustsystems
http://www.weibull.com/hotwire/issue79/relbasics79.htm
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/
http://www.meetup.com/publiccloudpl/
‘Z głową w chmurach’ - o czym myśleć kiedy decydujemy się uruchomić aplikację w chmurze?
By Maciej Sawicki
‘Z głową w chmurach’ - o czym myśleć kiedy decydujemy się uruchomić aplikację w chmurze?
- 235