amazon web services - "scaling from the trenches"

25
Amazon Web Services “Scaling from the trenches” Nemanja Krivokapić Software Engineer [email protected] @NemanjaKr | LinkedI n

Upload: pstechserbia

Post on 13-Jul-2015

125 views

Category:

Software


1 download

TRANSCRIPT

Amazon Web Services“Scaling from the trenches”

Nemanja Krivokapić

Software Engineer

[email protected]

@NemanjaKr | LinkedIn

Auto Scaling Group - ASG

Održava konstantan broj „zdravih“ instanci

Koristi Scaling polise za skaliranje

Scaling polise aktivira predefinisani alarm

Alarm koristi metrike dostupne sa CloudWatch

Moguće koristiti sopstvene metrike umesto

predefinisanih

Moguće koristiti ELB-ove metrike kako

za skaliranje tako i za definisanje

„zdravih“ instanci

Elastic Load Balancer - ELB

Elastic = broj instanci unutar ELB-a skalira po

potrebi

Nije projektovan da izdrži iznenadni pik

saobraćaja već mu je potrebno vreme da

skalira

Proverava „zdrave“ instance preko HTTP(S),

TCP ili SSL protokola.

ASG prijavljuje EC2 instance ELB-u.

SSL/TLS terminacija

Projektni zadatak #1- Zahtevi

Android aplikacija koja na osnovu slika prostora

generiše 3D model istog

Korišćenje algoritama za rekonstrukciju

prostora zahteva resurse i vreme

Korisnički i administrativni portali su web

aplikacije

Komunikacija uglavnom preko

REST hybrid API-a

Projektni zadatak #1 - Problemi

Obezbediti obradu u realnom vremenu

Bezbednost podataka

Mogućnost oporavka od greške i gubitka

podataka

Struktura podataka prilagođena radu sa 3D

grafikom

Kratke iteracije do release-a – dvonedeljni

SCRUM sprint-ovi.

Projektni zadatak #1 – Rešenje arhitekture

Projektni zadatak #1 – Specifičnosti rešenja

Gearman Job Server

PHP platforma (Zend Framework 2)

SimpleDB + CouchDB + Parse*

2x ELB (sa i bez sticky session-a)

Google Cloud Messaging za notifikaciju android

klijenta

*Parse je nezavistan servis

Projektni zadatak #1 – Moguća unapređenja

Projektni zadatak #1 – Moguća unapređenja

Izbacivanje SimpleDB-a i prebacivanje DB-a na

MongoDB + MySQL RDS rešenje.

Zamena Gearman Job Servera Amazon SQS-

om

Slanje push notifikacija preko Amazon SNS-a

....

Projektni zadatak #2- Zahtevi

Administracija uređaja iz Cloud-a

SaaS platforma

Brz odziv sistema bez obzira na load

Sigurnost podataka

Projektni zadatak #2 - Problemi

Obezbediti brz odziv sistema kod više desetina

zahteva u sekundi

Efikasno korišćenje resursa

Sigurnost podataka u slučaju bilo kakvog kvara

Mogućnost generisanja i distribucija različitih

paketa u realnom vremenu

Projektni zadatak #2 – Rešenje arhitekture

Projektni zadatak #2 – Specifičnosti rešenja

Multitenancy

Java – Spring (MVC/Security/Data)

Oslanja se u potpunosti na AWS rešenja

(SES, SQS, RDS, S3 + CloudFront)

40req/sec na m1.small

Skalabilnost implementirana isključivo AWS

alatima

Projektni zadatak #2 – ASG konfiguracija

ASG (min 2, desired 2, max 10)

ASG Health Check Grace – 420sec

ASG Default Cooldown – 60sec

ASG scale down policy:

Average CPUUtilization < 30% in 300sec

Cooldown 120sec

ASG scale up policy:

Average CPUUtilization > 70% in 8min

Cooldown 330sec

Projektni zadatak #2 – ELB konfiguracija

HTTP HealthCheck

Timout 5sec

Interval 30sec

Unhealthy threshold: 2

Healthy threshold: 2

Connection draining: 60sec

PZ #2 – Load Test – CPU Utilization

PZ #2 – Load Test – Response Time

PZ #2 – Load Test - ELB response

!!! ELB Pre-Warming !!!

PZ #2 – Load Test – In Numbers

341560 uspešnih request-ova

21 neuspešni

Procenat neuspelih < 0.01%

Projektni zadatak #2 – Moguća unapređenja

Projektni zadatak #2 – Moguća unapređenja

RDS Read Replicas (HAPROXY?)

Statički sadržaj sa CDN-a umesto Web instanci

Korišćenje sopstvene metrike na CW-u za

scaling polise (veća kontrola nad procesom

skaliranja)

Pouke

Rad nezavistan od same instance

“Inspect and Adapt”

Distribuirane web aplikacije !=(=) klasične web

aplikacije

CI itekako preporučljiv

Skaliranje je dobrodošlo a ne krajnja nužda

KAKO DO PROJEKTA NA AWS-U?

[email protected]

@PSTechSerbia PSTech

PSTechSerbia

[email protected]

Hvala na pažnji

Pitanja?