Próbuję rozkminić AWS, Google Cloud Platform czy Azure pod kątem: czym właściwie jest, co oferuje oraz jakie są różnice w przypadku tworzenia aplikacji.
Tylko zanim ktoś rzuci się do klawiatury wiem jakie są korzyści z ich stosowania oraz że to są usługi składające się z baaaardzo wielu narzędzi. Ja chcę się bardziej dowiedzieć jak to wygląda od zaplecza w porównaniu do standardowej drogi hostowania dużej aplikacji.
Załóżmy, że mam aplikację generującą ogromny ruch i nie mam możliwości skalowania infrastruktury w dół (osiągnęliśmy max), jedynie wszerz, czyli muszę stawiać kolejne serwery (kupić blachy i ustawić w DC, albo wynajmować dedyki/VPS), a następnie uruchamiać na nich WWW i baz danych. Do tego muszę wspierać się takimi narzędziami jak Haproxy do load balancingu ruchu WWW. Redis/Memcached do cachowania zapytań, no i varnish w celu szybszego zwracania static contentu lub budowy małego CDN.
Teraz clou o które chcę się dowiedzieć w kontekście chmury
Czy chmura przypadkiem to nie jest prawie gotowa (a przynajmniej łatwa do skonfigurowania) taka konfiguracja jaką opisałem wyżej (plus dodatkowe narzędzia), która dostarcza łatwy sposób na tworzenie i niszczenie serwerów przy pomocy API danej chmury. Bo jeśli dobrze rozumiem czym jest AWS, Azure i Google Cloud Platrofm to to są po prostu dynamicznie dokupowane i zbywane serwery (w ich przypadku VPS) które są budowane z wcześniej przygotowanych przez nas kontenerów (docer/lxc) i wpinane w "naszą" architekturę.
Czy może te usługi to coś więcej do czego się nie dokopałem.
Teraz pora na drugą cześć pytania. Czy tworząc aplikację WWW muszę coś uwzględnić gdy chcę ją uruchomić w chmurze? Ponieważ do AWS na pewno są odpowiednie biblioteki, tylko mam wrażenie, że służą one do zarządzania naszą infrastrukturą poprzez wgrywanie danych do CND, uruchamianie kolejnych VPS czy ich kasowanie. Jeśli tak to sama aplikacja nie musi niczego więcej implementować niż w przypadku hostowania jej na zwykłym serwerze. Jedyne co potrzebuję to drugiej aplikacji/zaplecza które będzie zarządzało infrastrukturą zależnie od potrzeb - czyli ruchu w aplikacji.
Mam nadzieję, że znajdzie się ktoś kto miał doświadczenie z takimi usługami i aplikacjami uruchamianymi na nich. No i będzie w stanie powiedzieć mi czy dobrze wszystko zrozumiałem, albo przynajmniej czy w dobrym kierunku myślę.
Oczywiście mam świadomość, że to jest tylko niewielki % możliwości tych usług, chcę się dowiedzieć czy to co do tej pory rozgryzłem pokrywa się z rzeczywistością.