Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rozchmurz swoje aplikacje

5,826 views

Published on

Prezentacja o programowaniu na Amazon Web Services wygłoszona na Confitura 2011

Kod z prezentacji dostępny pod:

https://github.com/softwaremill/aws-demo

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Rozchmurz swoje aplikacje

  1. 1. Rozchmurz swoje aplikacje<br />Czyli jak AWS oszczędza nasze pieniądze<br />Tomek Szymański<br />Adam Warski<br />@szimano<br />@adamwarski<br />
  2. 2. Kim jesteśmy?<br />Współzałożyciele SoftwareMill<br />Niestandardowe Oprogramowanie w Standardzie<br />Tomek Szymański:<br />Jeden z liderów WJUG<br />Współorganizator Confitury (d. Javarsovii)<br />Adam Warski:<br />Autor Hibernate Envers<br />http://www.warski.org/blog<br />
  3. 3. Agenda<br />Krótki wstęp: historia AWS, co to jest<br />Demo1: aplikacja bez chmury<br />Demo2: aplikacja z chmurą<br />
  4. 4. Krótka historia<br />.com boom – Amazon buduje olbrzymie centra serwerowe w USA<br />Bańka pęka – zapotrzebowanie Amazona na serwery jest dużo mniejsze niż się wydawało<br />Amazon postanawia sprzedawać moc obliczeniową „na godziny”<br />W lipcu 2002 uruchomiony zostaje Amazon Web Services<br />
  5. 5. AWS – co to jest?<br />Zestaw różnych serwisów:<br />EC2 – ElasticComputeCloud<br />EBS – Elastic Block Store<br />S3 – Simple Storage Service<br />SQS – Simple Queue Service<br />SNS – Simple Notification Service<br />ELB – ElasticLoadBalancing<br />SimpleDB<br />RDS<br />… i wiele wiele więcej<br />
  6. 6. AWS – co to jest?<br />
  7. 7. Nasza aplikacja<br />
  8. 8. Ale …<br />
  9. 9. Czegochcemy?<br />Skalowalności<br />High availability<br />
  10. 10. Dodatkowy serwer<br />
  11. 11. Dodatkowy serwer<br />Co z bazą?<br />
  12. 12. Baza danych<br />
  13. 13. Baza danych<br />A co zeskalowaniemi HA frontendu?<br />
  14. 14. Frontend<br />
  15. 15. Frontend<br />SPOF<br />SPOF<br />
  16. 16. Loadbalancer<br />
  17. 17. DB<br />
  18. 18. Efekt?<br />6 serwerów<br />Dużo wydanych pieniędzy<br />I tak nie jest super bezpiecznie (opieramy się tylko na jednym failoverze dla każdego komponentu)<br />
  19. 19. Nasza aplikacja - write<br />
  20. 20. Nasza aplikacja - read<br />
  21. 21. Demo - lokalnie<br />JMS<br />Hibernate<br />MySQL<br />
  22. 22. Serwery – EC2<br />Nowy serwer w ciągu paru minut<br />API<br />Duży wybór gotowych obrazów<br />Można tworzyć własne obrazy (AMI)<br />Różne wielkości serwerów i ceny<br />Np. mały serwer 0.095c/h ~= 68.4 USD/miesiąc<br />5 regionów, w każdym pareavailabilityzone’ów<br />SLA 99.95%<br />
  23. 23. Serwery – ELB<br />Można podłączyć dowolnie wiele serwerów EC2<br />Działa na serwerach w jednym regionie<br />Czyli wiele availabilityzone’ów<br />Integracja z Route53 (DNS) – obsługa domen<br />Stickysessions<br />Np. Na podstawie cookie JSESSIONID<br />
  24. 24. Persistance – SimpleDB<br />NoSQL<br />Key-valuestorage (wiele wartości na klucz)<br />Eventualconsistency, ale:<br />Consistentread<br />Conditionalput (~ tranzakcje)<br />Niby-SQLowy język do zapytań, ale:<br />Brak JOINów<br />Zapytanie na N atrybutach robi N zapytań i łączy<br />Wszystko jest Stringiem<br />
  25. 25. Kolejki - SQS<br />Odbieranie wiadomości typu pull<br />Nie ma tranzakcji<br />Wiadomość dostarczona ponownie, jeśli nie skasowana po odebraniu<br />Wiadomości przechowywane na wielu serwerach, ale jest mała szansa, że wiadomość będzie dostarczona >1 raz<br />
  26. 26. Demo – naAmazonie<br />SQS zamiast JMSa<br />SDB zamiast Hibernate’a<br />EC2 zamiast Maka<br />Cały kod dostępny na GitHubie!<br />https://github.com/softwaremill/aws-demo<br />
  27. 27. Linki<br />https://github.com/softwaremill/aws-demo<br />http://aws.amazon.com<br />https://www.jbison.com<br />https://www.circular.pl<br />
  28. 28. Dziękujemy<br />Tomek Szymański (szimano@szimano.org, @szimano)<br />Adam Warski (adam@warski.org, @adamwarski)<br />

×