To the Cloud
Czym jest "cloud computing" i jak możemy z niego skorzystać
Bartosz Szczeciński
23.09.2020
@btmpl
medium.com/@baphemot
https://szczecinski.eu
O mnie
- PHP dev -> JS dev, ponad 15 lat doświadczenia komercyjnego
- Moderator społeczności
- Technical writer, public speaker
- Samozwańczy "react evangelist"
O prezentacji
1. Czym jest technologia cloud
2. Co oferuje nam dziś cloud i jak podjąć decyzję czego użyć
3. Usługi najbardziej interesujące JS developerów
4. Jak to wszystko ogarnąć, lepiej i łatwiej
5. Problemy cloud
Czym jest cloud
"W meteorologii, chmura to masa składająca się z widocznych kropel płynów, zamarzniętych form krystalicznych lub innych cząstek zawieszonych w atmosferze ciała niebieskiego lub innej, podobnej przestrzeni."
"W informatyce, chmura to struktura składająca się z pojedynczych urządzeń i usług dostępnych w Internecie lub innej, podobnej sieci komputerowej."
(Bardzo) Krótka historia
2006, marzec - AWS udostępnia usługę S3 (Simple Storage Service)
2006, lipiec - AWS udostępnia usługę SQS (Simple Queue Service)
2006, sierpień - Podczas konferencji Google pierwszy raz publicznie pojawia się określenie "cloud computing"
2006, sierpień - AWS udostępnia usługę EC2 (Elastic Compute Cloud)
Czemu cloud?
1. Łatwe zarządzanie usługami i infrastrukturą
2. Gwarantowana dostępność usług (business continuity)
4. Uproszczony mechanizm skalowania (ręcznego oraz on-demand)
5. Niski koszt prototypowania, wejściowy oraz modele pay-as-you-go
6. Przyjazny dla środowiska
3. Dostęp z dowolnego* miejsca na ziemi
Kto oferuje cloud?
Modele cloud
Źródło: materiał promocyjny Azure
- SaaS - Software as a Service
- PaaS - Platform as a Service
- IaaS - Infrastructure as a Service
Typy usług cloud
- Public - usługa ogólnodostępna dla wszystkich, granice bezpieczeństwa zabezpieczające dostęp do danych
- Private - usługa dostępna tylko jednemu najemcy, zwykle uruchamiana na jego własnej infrastrukturze (alternatywnie hosted private cloud)
- Hybrid - połączenie usługi public i private; używane np. w celu oddzielenia dostępu do zasobów poufnych, w czasie migracji
Co w ofercie?
Źródło: https://geektechstuff.com/2019/06/18/aws-awsomeday-june-2019/
Co gwarantuje nam dostawca
SLA - Service Level Agreement - dostępność usługi w określonej skali czasu
Co gwarantuje nam dostawca
Zabezpieczenie dostępności
Co gwarantuje nam dostawca
Quota - ilość zasobów, które możemy wykorzystać (ogólnie, w danym przedziale czasu, przedziale cenowym)
Jak zdecydować się na usługę
1. Określenie wymagań
2. Dobranie rozwiązań
3. Określenie mechanizmów komunikacji pomiędzy elementami systemu (włącznie z mechanizmami zabezpieczeń)
4. Zdefiniowanie metryk, analityk i alertów
Co najbardziej interesuje JS?
Hosting "plików"
Object Storage - S3
- przechowuje dowolne typy obiektów, ich metadane oraz unikalny identyfikator
- łatwe współdzielenie pomiędzy wieloma zasobami, także jako zasoby dostępne publicznie
File Storage (NAS) - Elastic File System
- wysoka skalowalność
- dostępna dla wielu klientów jednocześnie; jednoczesny zapis i odczyt
Block Storage - Elastic Block Store
- zabezpieczenie przed utratą danych
- wysoka wydajność, niskie opóźnienia
- dedykowane np. dla relacyjnych baz danych
Hosting usług
"Pełen" serwer - EC2
- pełna kontrola nad środowiskiem
Środowisko uruchomieniowe - EBS (Elastic Beanstalk)
- zautomatyzowane tworzenie środowiska wykonywania dla popularnych rozwiązań (Java, PHP, Node, Ruby, Docker)
- automatyczne zarządzanie zasobami, load balancing, skalowanie, monitorowanie
Serverless - Lambda
- wywoływanie "prostych" operacji na żądanie
- brak "infrastruktury"
Bazy danych
Relacyjne - Aurora, RDS
- dedykowane dla aplikacji T-SQL
Key-value - DynamoDB
- dedykowane dla aplikacji wymagających szybkiego obsłużenia zapisywania danych
- wyszukiwanie, aktualizowanie i usuwanie nie jest priorytetem
Dzienniki - Amazon Quantum Ledger Database
- dedykowane np. dla systemów bankowych
- odporne na modyfikacje, kryptografia, pełna historia zmian
Live coding demo!
Why stop there?!
Wysyłka SMS
- two-factor-authentication
- potwierdzanie tożsamości
- informacja o zmianie statusu zamówienia
- subskrypcje faktów o kotach
Rozpoznawanie zdjęć
Jak to ogarnąć "lepiej"?
aws cli
AWS Command Line Interface - narzędzie pozwalające na praktycznie pełną pracę z usługami AWS za pomocą wiersza poleceń.
CloudFormation / Terraform
serverless
Problemy cloud
1. Always online
2. Utrata kontroli nad danymi / infrastrukturą
3. Security i compliance
4. Wsparcie techniczne (lub jego brak)
5. Vendor lock-in / data mobility
Dzięki :)
Bartosz Szczeciński
23.09.2020
@btmpl
medium.com/@baphemot
https://szczecinski.eu
To the Cloud
By btmpl
To the Cloud
- 242