Windows Azure vs Amazon EC2 vs Google App Engine

159

Z punktu widzenia programisty, którą platformę rozważasz w przypadku dużej aplikacji społecznościowej? Gdybyś mógł podać kilka szczegółów na temat tego, co uważasz za mocne strony tej alternatywy, byłoby świetnie.


źródło
2
Ostatnio porównywałem to samo - opublikowałem swoje zalety / wady na moim blogu. Platforma Azure nie działa (na podstawie kosztu małego projektu), ale EC2 i Google App Engine są silnymi konkurentami! blog.dantup.com/2010/10/…
Danny Tuppeny
2
To pytanie powinno być wiki społeczności.
rackspace ftw!
Greg

Odpowiedzi:

227

Napisałem tę samą aplikację na GAE (Python i teraz Java) i Azure. Prawdopodobnie będę nadal używać obu, do różnych rzeczy. Oto kilka myśli, które będę aktualizować:

Powody korzystania z GAE:

  • Zasadniczo otrzymujesz jedną darmową maszynę wirtualną do wykorzystania na dzień. Dzięki platformie Azure płacisz prawie 100 USD miesięcznie, nawet jeśli nie masz ani jednego użytkownika witryny. Jeśli twoja baza danych przekroczy 1 GB, płacisz dodatkowe 90 USD (9 USD -> 99 USD) za przechowywanie. Aktualizacja: Azure ma teraz różne rozmiary maszyn wirtualnych i DB w różnych punktach cenowych. Szczegóły tutaj .
  • Płatność GAE jest dość drobiazgowa - większość zasobów jest pobierana za żądanie / GB / MB, ponownie z bezpłatną dzienną alokacją dla większości zasobów. Jednak w listopadzie 2011 r. Dołączył do platformy Azure i AWS w opłatach za serwer sieciowy za godzinę wystąpienia. Szczegóły tutaj .
  • GAE ma najlżejsze obciążenie administracyjne. Po skonfigurowaniu wdrażanie i ponowne wdrażanie jest szybkie, a wszystko automatycznie. Na przykład nie martwisz się, ile serwerów używa Twoja aplikacja, jak podzielić dane, jak wyrównać obciążenie.
  • Poczta po prostu działa. W momencie pisania Azure nie oferuje SMTP, więc potrzebujesz serwera innej firmy.
  • Świetna integracja z wieloma ofertami Google - kalendarzami, pocztą, cokolwiek innego. Możesz przekazać zarządzanie użytkownikami do Google, jeśli nie chcesz kontrolować swojej bazy użytkowników.
  • Dzięki GAE znasz wszystkie funkcje, które dodają do sklepu, otrzymasz. Dzięki Azure masz wrażenie, że Sql Azure Database dostanie większość miłości, ale będzie droższa. Usługa Azure Storage prawdopodobnie będzie miała najwięcej problemów. Bez integralności relacyjnej, bez uporządkowania, będziesz więcej majstrować w kontekście w pamięci. Sklep GAE ma znacznie mniej ograniczeń i więcej funkcji niż tabele Azure.
  • Dobry wybór, jeśli używasz już języka opartego na języku Python lub JVM. Obecnie wiele języków kompiluje się do kodu bajtowego Java.
  • Aktualizacja aplikacji jest bardzo szybka. W przypadku Pythona miałem konfigurację skrótu i ​​nie zajęło mi to wcale czasu. Teraz używam wtyczki Eclipse dla Java i działa ona bardzo dobrze. Azure jest bardziej niespokojny.
  • Testowana lokalnie aplikacja będzie prawdopodobnie działać w chmurze bez (znacznych lub jakichkolwiek) zmian. W przypadku platformy Azure konfiguracja jest inna i poświęciłem trochę czasu na zatrzymanie-usuwanie-budowanie-przesyłanie-uruchamianie, zanim wszystko zrobiłem poprawnie.
  • GAE ma świetny interfejs użytkownika, który zawiera przeglądarkę dziennika i edytor danych. Na platformie Azure musisz obecnie znaleźć zewnętrzne przeglądarki / edytory.
  • GAE pozwala mieć wiele wersji aplikacji działających w tym samym magazynie danych. Możesz wdrożyć, przetestować wersję, a następnie ustawić bieżącą wersję „na żywo”, gdy będziesz gotowy. Możesz zmienić z powrotem, jeśli coś pójdzie nie tak.


    Powody korzystania z platformy Azure:

  • Zaskoczy Cię charakterystyka wydajności i wpływ na koszt magazynu danych App Engine. Jeśli robisz coś innego niż zwykły CRUD, będziesz musiał pracować ciężej niż przy normalnym DB. Brak zapytań ad-hoc.
  • Azure ma dwa podejścia do magazynu, oferując większy wybór. Są to SQL Azure Database (SAD), która jest relacyjną bazą danych, oraz Azure Storage, która składa się z nierelacyjnych tabel, obiektów blob i kolejek. Jeśli masz inwestycję w SQL Server, możesz łatwo przejść do SAD, ale jest to dość kosztowne i może być mniej skalowalne. Aktualizacja: App Engine ma interfejs API MySQL w ograniczonej wersji beta.
  • Azure wydaje się być lepiej zaprojektowana, jeśli masz podejście typu SOA. Wydaje się, że ich architektura korzysta z doświadczenia w świecie przedsiębiorstw. GAE wydaje się bardziej skoncentrowany na zwykłym udostępnianiu stron internetowych.
  • Możesz uruchomić aplikację podczas debugowania, wstawić punkty przerwania itp.
  • Platforma Azure ma środowisko „przejściowe”, w którym można wdrożyć w chmurze, ale nie należy go uruchamiać, dopóki nie będziesz zadowolony, że działa.
  • Używam .Net do innych rzeczy, a integracja ich z .Net na backendie jest znacznie łatwiejsza niż z GAE. (Aktualizacja - używanie Java na GAE działa dobrze, a 10-sekundowy limit czasu wynosi teraz 30 sekund).
  • Integracja z wieloma ofertami MS „Live”.

    Więc nie ma oczywistych odpowiedzi. Obecnie używam App Engine ze względu na koszty i łatwość użytkowania. Mogę używać platformy Azure do aplikacji bardzo zorientowanych na MS. Używam Amazon S3 do pobierania, ale prawdopodobnie nie będę używać EC2, ponieważ wolę pozostawić wszystko poniżej poziomu aplikacji ekspertom.

  • Richard Watson
    źródło
    10
    Richard, może innym plusem dla platformy Azure jest relacyjna baza danych. Odłamki Bigtable są nieco obcym paradygmatem.
    hyperslug
    22
    App Engine pozwala także wystawiać wiele wersji aplikacji. Każda wersja ma własny adres URL, który można przetestować, a gdy będziesz gotowy do wdrożenia, zaznacz tę wersję jako domyślną. Łatwy do przetestowania, wdrożenia i, jeśli to konieczne, przywróć poprzednią wersję, jeśli coś pójdzie nie tak.
    Platforma Azure ma płacone na bieżąco, bez zobowiązań, wyłącznie za użytkowanie, nie jest to minimum 99 $ miesięcznie.
    Akash Kava,
    1
    Na microsoft.com/windowsazure/pricing napisano o SQL Azure: „* Web Edition: do 1 GB relacyjnej bazy danych = 9,99 USD / miesiąc * Business Edition: do 10 GB relacyjnej bazy danych = 99,99 USD / miesiąc * Transfer danych = 0,10 USD w / 0,15 USD za / GB - (0,30 USD za / 0,45 USD za / GB w Azji) ”
    Richard Watson
    1
    App Engine ma teraz obsługę SQL, która współpracuje z Block Storage. code.google.com/apis/sql
    devnul3
    176

    Jestem wyraźnie stronniczy - pracuję w zespole App Engine zajmującym się relacjami z programistami - ale oto moje zdanie:

    Nie są bezpośrednio porównywalne. Istnieje zestaw aplikacji, które możesz napisać dla dowolnej z nich, ale w każdym przypadku będziesz pisać inną rzecz. App Engine zapewnia ograniczone środowisko wykonawcze - bez zapisywania do plików, bez gniazd itp. - oraz nierelacyjny DBMS. Ale w zamian otrzymujesz środowisko wykonawcze, które skaluje się w nieskończoność, i masz wystarczającą pewność, że Twoja aplikacja będzie skalować się na tyle, na ile chcesz.

    Z drugiej strony platforma Azure zapewnia nieco mniej ograniczone środowisko, które pozwala pisać szerszą gamę aplikacji, ale wymaga pisania więcej - ponieważ sam wdrażasz więcej stosów - i zapewnia znacznie mniejszą pewność skalowalności .

    Wreszcie, AWS zapewnia najlepsze rozwiązanie dla majsterkowiczów. Zapewniają sprzęt, pamięć masową i niewiele więcej. Budujesz swój stos od podstaw, utrzymujesz go, ulepszasz i tak dalej. Twoja aplikacja skaluje się tylko wtedy, gdy piszesz ją w skali, co nie jest małym wyzwaniem. Ale masz pełną kontrolę nad swoim sprzętem.

    Moja rada byłaby następująca: jeśli twoja aplikacja pasuje do modelu App Engine - a aplikacja sieci społecznościowej może być całkiem dobrym przykładem takich aplikacji - napisz ją na App Engine (Java lub Python, twój wybór). Jest tańszy i znacznie łatwiej jest napisać aplikację skalowaną.

    Jeśli Twoja aplikacja nie pasuje do modelu GAE, wybierz Azure lub AWS, w zależności od tego, czy piszesz dla stosu MS, i od tego, ile chcesz kontroli nad środowiskiem wykonywania. Jeśli większość aplikacji pasuje do GAE, ale małe części nie, możesz rozważyć hybrydę - na przykład serwowanie na żywo na GAE, ale przechowywanie na S3 lub przetwarzanie zbiorcze na EC2.

    Nick Johnson
    źródło
    Co z takimi problemami: kiedy App Engine poszedł nie tak ?
    Cristian Ciupitu,
    @Cristian Nie jestem pewien, co chcesz usłyszeć - każda usługa ma czasem przestoje. Dotyczy to zarówno App Engine, jak i EC2.
    Nick Johnson,
    @Nick Johnson: masz rację, każda usługa ma sporadyczne przestoje i nie oczekuję 100% czasu sprawności. Z drugiej strony ten problem nie wygląda na problem z przestojami. Dla mnie wygląda to na ograniczenie Google App Engine, tzn. Twój kod musi działać w dość ograniczonym czasie. Nie znam GAE, więc popraw mnie, jeśli coś nie rozumiem.
    Cristian Ciupitu,
    1
    @Cristian Ah. Sam wyjątek jest zgłaszany z powodu zbyt dużej ilości czasu poświęcanego na wykonanie, tak, ale przyczyną spowolnienia były tymczasowe problemy z wydajnością.
    Nick Johnson,
    Zgadzam się, że „nie są porównywalne”. Porównywanie tych usług przypomina porównywanie jabłek i pomarańczy. Oba są owocami, to wszystko.
    Do
    27

    Dla mnie decydujące znaczenie ma blokada.

    Jeśli wybierzesz dla Google, Twoja aplikacja będzie działać tylko w Google. Jeśli po jakimś czasie poczujesz się mniej niż zadowolony, utkniesz.

    Jeśli wybierzesz MS, aplikacja będzie działać tylko na platformie Azure. Ta sama rzecz.

    W Amazon masz (a) wirtualny serwer (y), które działają dokładnie tak samo jak maszyny, do których jesteś przyzwyczajony. Niezadowolony? Podnieś aplikację, zainstaluj na prawdziwym sprzęcie, gotowe.


    źródło
    3
    GAE może uruchamiać dość standardowe aplikacje serwletów java i może używać trwałości opartej na standardach.
    Stephen Denne
    4
    GAE jest całkowicie otwarty (choć musisz trzymać się interfejsu API pamięci masowej JDO.)
    1
    Czy Google nadal ogranicza ilość danych, które możesz wydostać na raz? Ich blokowanie opiera się bardziej na danych niż na kodzie.
    Mark Ransom
    4
    Możesz używać AppScale do uruchamiania aplikacji na EC2 lub w dowolnym innym miejscu: appscale.cs.ucsb.edu
    Amir
    3
    Natknąłem się na to dzisiaj, ktoś był w stanie zrezygnować z Google w ciągu tygodnia. Przyznają także, że od początku nie mogliby stosować dobrych praktyk. carlosble.com/?p=719
    Mark Ransom
    20
    • Jeśli jesteś programistą .NET - przejdź do platformy Azure.
    • Jeśli korzystasz z Python lub Java - przejdź do Google.
    • Jeśli korzystasz z Ruby - idź do Amazon

    Teraz moim osobistym wyborem będzie Google z Javą (nawet jeśli przez większość czasu jestem .NET). Pomyśl o kosztach - ich schemat jest trudny do porównania.

    Sprawdź ten artykuł - http://www.infoq.com/news/2008/11/Comparing-EC2-App-Engine-Azure


    źródło
    8
    Nie wszyscy programiści .NET powinni przejść na platformę Azure. Amazon EC2 jest dla nich całkowicie akceptowalną opcją. Ale +1 za odniesienie do doskonałego artykułu.
    Andrew Arnott,
    Tak, Amazon jest nieco swobodą wirtualnej maszyny, ale społeczność początkowo nastawiona na Ruby ...
    1
    AWS obsługuje programistów .Net w ich interfejsach AMI dla Windows 2003 Server, ale podejrzewam, że duża liczba programistów .Net wolałaby wdrożyć system Windows Server 2008, który jeszcze się nie zmaterializował w AWS. Jeśli regularnie odwiedzasz fora AWS, być może zauważyłeś, że Amazon jest cichy w tej kwestii.
    Richard Dorman
    2
    Jestem programistą .NET z zawodu, ale cena za korzystanie z platformy Azure w witrynie, która uzyskała 0 trafień, wysłała moją firmę Google. Napisałem kilka porównań na moim blogu: blog.dantup.com/2009/12/… blog.dantup.com/2009/12/…
    Danny Tuppeny
    4
    Jeśli korzystasz z Ruby, rozważ Heroku lub EngineYard zamiast Amazon.
    andy318,
    20

    Podobnie jak Arachnid, mogę być stronniczy, będąc googlerem. Jednak jestem też akcjonariusz Amazon, tak że nastawienie może częściowo skompensowany pierwszy ;-). Brak doświadczenia na platformie Azure (chociaż mam również akcje MSFT, więc mam nadzieję, że oni też mają się dobrze - kolejna stronniczość ;-).

    Moje bardzo proste podejście polega na tym, że App Engine z łatwością oferuje możliwość pracy (w ramach swoich ograniczeń) po prostu przez kodowanie - żadne zadania administracyjne systemu nie są potrzebne. AWS jest znacznie bardziej elastyczny, ale aby skorzystać z tej elastyczności , będziesz potrzebować znacznej pracy administracyjnej systemu (i wcale nie jest tak trywialny). Tak więc na koniec opowiedziałbym się za sugestią Arachnida: jeśli App Engine może zaspokoić twoje potrzeby, koniecznie idź na całość; jeśli potrzebujesz większej elastyczności, AWS wydaje się właściwym rozwiązaniem (chyba, że ​​funkcje Azure nieznane mi powinny być lepiej dopasowane - ale myślę, że AWS będzie bardziej elastyczny bez względu na to, co Azure może zrobić, na przykład z AWS może nawet wybrać, którego systemu operacyjnego użyć, jeśli tego potrzebujesz).

    Alex Martelli
    źródło
    14

    Właśnie zacząłem pracować z platformą Azure i jestem pod wrażeniem, że możesz to zrobić w F #: http://code.msdn.microsoft.com/fsharpazure! Jak dotąd jest to jedyna platforma chmurowa, która pozwala na zarządzanie funkcjami w sposób zarządzany (oczywiście Haskell w EC2 ... lub Algol 68 w tym przypadku). Jestem pod wrażeniem jakości integracji Visual Studio - otrzymujesz lokalną „chmurę” do przetestowania, DevFabric, z pamięcią, która jest prawdziwym SQL Server, więc możesz grać przed przesłaniem. Czy GAE może to zrobić? Patrząc na platformę Azure, ucząc się VS z F # (pochodzącym z Linuksa i OCamla), chciałbym już dawno przeszedłbym na stos MS. Tworzenie magazynu SQL i sprawdzanie go w VS jest bardzo łatwe - jest bardzo przydatne. Open Source nie ma pasującego zestawu narzędzi i nadszedł czas, aby ludzie dobrze rozważyli stwardnienie rozsiane - wykonali tutaj świetną robotę. Z pewnością trzymam się mojej bazy Mac OSX (podwójne uruchamianie do Visty), a moje przeczucie jest takie, z możliwością lokalnej platformy Azure, otrzymam osobne pudełko Vista do programowania platformy Azure. .NET jest naprawdę przytłaczający, kiedy pochodzisz ze świata potoku Unix - PowerShell, SQL i LINQ, C # i F # (co jest moim głównym powodem) - ale okazuje się, że wszystko się sumuje i warto się tego nauczyć, a nie zamiast tego z, Linux; i we wszystkich przypadkach Azure poszerzy Twoje horyzonty.


    źródło
    2
    Azure nie ma czegoś, co nawet zdalnie pasuje do funkcjonalności Amazon Elastic Map Reduce (opartej na Open Source Hadoop). Nie pozwala nawet programowo ustawić liczby ról roboczych.
    3
    Microsoft najwyraźniej próbuje zarabiać na swojej bazie programistów .NET i to prawda, że ​​wykorzystanie stosu Microsoft jest korzystne. Nie jestem przekonany, że to samo nadrabia kosztowny, blokowy model wyceny. Cały punkt przetwarzania w chmurze to zero elastyczności w utrzymaniu, zgodnie z rzeczywistym użyciem, czego Azure jeszcze nie oferuje.
    Możesz użyć Clojure w GAE. the-deadline.appspot.com/login
    8

    Mimo że uwielbiam GAE, jednym z głównych powodów, dla których wybieram EC2 zamiast GAE dla mojego obecnego projektu, jest to, że muszę mieć możliwość obsługi frontonu mojej aplikacji z centrów danych zlokalizowanych w różnych częściach świata. GAE działa w jednym centrum danych na raz. Na przykład potrzebuję użytkowników w Azji, aby trafić na serwery w Azji, aby uzyskać najszybszy możliwy czas odpowiedzi mojej aplikacji. Dodaj możliwość zarządzania dns, load balancerów, wybraną bazę danych, przepychanie kanałów do S3 w celu przetwarzania danych hadoop itp., A EC2 staje się naprawdę atrakcyjnym rozwiązaniem.

    Jon Stevens
    źródło
    5

    Kilka rzeczy do rozważenia:

    Przyspieszanie: jak szybko można uzyskać produktywność w wybranym środowisku, jakie dokumenty istnieją i czy są to przejrzyste i dobrze obsługiwane próbki widoczne i przydatne

    Koszt: koszt jest czynnikiem, ale jeśli tworzysz komercyjną aplikację, która faktycznie będzie miała klientów, wszystkie są wykonalne. Jeśli założysz, że platforma Azure z jednym procesem w „małej” instancji działa za około 90 USD miesięcznie za korzystanie z usługi 24x7 ... ilu użytkowników możesz obsłużyć w tym czasie? Dodaj drugi przypadek redundancji ... nadal nie jest tak kosztowny, jeśli twój ruch to uzasadnia. Jeśli nie, dlaczego jesteś w chmurze zamiast u taniego hostowanego dostawcy? Wdrożenie tego wiąże się z większymi kosztami. AWS to rozwiązanie własne. To wiele do zrobienia, aby uzyskać rozwiązanie, które będzie stabilne i dobrze zarządzane. Azure i GAE mają to od razu po wyjęciu z pudełka. Moim zdaniem AWS jest najdroższy ze względu na pracę, którą musisz w niego włożyć. Czy naprawdę potrzebujesz kontroli nad tym poziomem szczegółowości? W takim razie,

    Możliwość robienia tego, co chcesz: AWS przez całą drogę. Azure jest drugi, GAE jest trzeci. Nie ma biggie, jeśli chcesz Java i Python. Biggie, jeśli chcesz zrobić relacyjną bazę danych lub rozbudowane wielowątkowe przetwarzanie danych w C ++ (nie jesteś pewien, czy którykolwiek z nich teraz to robi?).

    Co z przenośnością? Czy możesz później zabrać go z powrotem na własną farmę lub przenieść na inną farmę chmurową? Wszystkie są do pewnego stopnia przenośne.

    Wiele do przemyślenia ... wciąż się o tym uczę.

    Spanky
    źródło
    TyphoonAE i AppScale to świetne narzędzia do uruchamiania aplikacji GAE w innym miejscu.
    4

    Jeśli musisz ręcznie uruchomić instancje, aby zaspokoić popyt, nie jest to chmura.

    Azure i EC2 to tylko wirtualne serwery z niektórymi usługami z boku.

    Aktualizacja:

    EC2 i Azure oferują opcje automatycznego uruchamiania nowych wystąpień pod obciążeniem, ale nadal musisz tym zarządzać. I płacisz za instancje, które działają i są bezczynne.

    GAE obsługuje to automatycznie po wyjęciu z pudełka i pobiera opłatę tylko za czas działania kodu podczas żądań.

    Peter Knego
    źródło
    1
    Myślę, że Amazon CloudWatch rozwiązuje problem uruchamiania dodatkowych instancji na podstawie ruchu.
    1
    Jednym z najczęstszych pokazów, jakie widziałem na platformie Azure, jest pokaz skalowalności, w którym piszą kod, aby ustawić progi uruchamiania lub uruchamiania pracowników sieci Web na podstawie obciążenia. jest objęty zestawem szkoleniowym dla systemu Windows: microsoft.com/downloads/en/…
    4

    Oto kilka innych uwag.

    GAE - Siedzi wyżej na platformie jako stos usług niż AWS i Azure, cały ruch jest kierowany przez ich DNS ghs.google.com, dynamicznie ładując serwowanie twojej strony przez jeden z ich komputerów, co pozwala utrzymać niskie ceny. skalowanie jest drobnoziarniste przy takim podejściu, Wady nie są statyczne ip, podatne na filtrowanie lub blokowanie. Ze względu na brak statycznego ograniczenia adresu IP nie będzie można skonfigurować żadnego certyfikatu https specyficznego dla witryny.

    AWS i Azure dają prawie statyczny adres IP i dedykowaną maszynę wirtualną, co pozwala na spełnienie podstawowych wymagań, takich jak certyfikat https. otrzymasz także obsługę pamięci relacyjnej. Koszt jest również wyższy, aby odzwierciedlić ten dedykowany fakt dotyczący maszyny wirtualnej, a będziesz skalować na maszynę wirtualną, więc w kawałkach po 40 dolarów / miesiąc. Zaletą jest to, że ponieważ masz maszynę wirtualną dla siebie, nie jesteś ograniczony do 30-sekundowego ograniczenia przetwarzania procesora na GAE i możesz wykonywać większe zadania.

    Więc jeśli rozważasz bazy klientów w filtrowanych krajach, chcesz, aby statyczny adres IP wykonał własną konfigurację DNS lub masz wymagania wymagające relacyjnej db lub więcej niż 30 sekundowych zadań. AWS, Azure byłby o wiele bardziej przyjazny w pracy.

    savagepanda
    źródło
    3

    Spójrz na rozwiązania oferowane przez każdą chmurę i wybierz model hybrydowy. Niektóre problemy wymagają młotka, a inne śrubokrętu. Poznaj swoje narzędzia i zastosuj je do właściwego problemu.


    źródło
    3

    Nie mam wystarczającej reputacji, aby zostawić komentarz do jednej z powyższych odpowiedzi. Przydatność któregokolwiek z tych rozwiązań chmurowych zależy od wielu czynników, w tym twoich potrzeb i zestawu umiejętności.

    Mam projekt sieci społecznościowej, który wymaga bazy danych nosql. AppEngine byłby dobrym rozwiązaniem, gdyby lepiej wspierał różne frameworki. Django z adapterem nonrel działa na Python GAE, ale wolę Railsy z wielu powodów. Rails3 jest dostępny od kilku miesięcy i nikt w społeczności lub w zespole GAE nie napisał jeszcze przepisu na jego poparcie. O ile nie masz zestawu umiejętności - znajomość elementów wewnętrznych rubinowych i szynowych, elementów wewnętrznych krzaczastych i GAE - do napisania własnego przepisu, jesteś na łasce innych ludzi, aby dostać się na platformę.

    AWS to dużo więcej pracy, ale przynajmniej możesz wejść na platformę za pomocą dowolnych narzędzi i poradzić sobie z wieloma problemami administracyjnie, a nie jako programista wewnętrzny lub suplikant do wyższych uprawnień.

    Moja skarga na Heroku i EngineYard, dla deweloperów Ruby, jest zagadką dotyczącą skalowania baz danych. Jak skalują się?

    W moim przypadku wybieram rozwiązanie NoSQL i Mongo wydaje się być dobrym wyborem. MongoMachine wydaje się być zalecanym rozwiązaniem dla takich jak Heroku lub EY, ale jest szalenie drogi. 2,50 USD za GB? Pamięć masowa kosztuje tylko 0,10 GB / mc w GAE lub EBS.


    źródło
    1

    Niedawno zacząłem eksperymentować z Google App Engine i sądzę, że w przypadku sieci społecznościowej spełniłaby wszystkie Twoje potrzeby. Łatwo go zrozumieć i można go używać z Pythonem lub Javą. To prawda, że ​​nie daje ci dostępu do plików, ale dla twojej aplikacji GQL (podobny do SQL interfejs do bazy danych, którą zapewniają) prawdopodobnie będzie więcej niż wystarczający (i jest dość solidny).

    Jedną z rzeczy, które warto rozważyć, jest to, że aplikacja GAE może korzystać z interfejsu, który pozwala użytkownikom z kontami Google lub kontami w domenie za pomocą Google Apps zalogować się (skrót). Wybierz jeden z nich. Jeśli już korzystasz z witryny Google Apps, Google App Engine byłby dla Ciebie doskonałym wyborem, ponieważ użytkownicy nie musieliby rejestrować nowych kont.

    EDYCJA: Jak zauważył Arachnid, nie jest tak, że nie możesz kodować własnego systemu logowania. Przepraszam, jeśli cię tam zmartwiłem.

    Jeśli chodzi o pozostałe dwie alternatywy, przeczytałem tylko o nich i ich nie przetestowałem. Ale wierzę, że GAE zapewnia łatwiejsze ramy, z moich badań i, jak wspomniałeś, świetne ceny.

    W każdym razie możesz wypróbować GAE, korzystając z bezpłatnego limitu miejsca i przepustowości i sprawdzić, czy pasuje to do twoich potrzeb.

    Powodzenia.


    źródło
    Nitpick: GQL nie jest bazą danych. GQL to SQL-owy język zapytań dla środowiska wykonawczego Python, napisany na górze magazynu danych. Nie musisz go nawet używać - istnieje również interfejs API zapytań.
    Nick Johnson
    Możesz także zalogować się do dowolnej aplikacji w GAE - po prostu GAE zapewnia skrót do korzystania z kont Google.
    Nick Johnson
    Dobrze, zły wybór słów w obu przypadkach, dziękuję za wskazanie tego.
    BigTable to silnik do przechowywania danych Google, a po spędzeniu z nim trochę czasu zacząłem się zastanawiać, czy całą moją karierę nie miałem rozumu, myśląc, że SQL RDBMS są niezbędne do pisania aplikacji internetowych. Model pamięci BigTable jest prosty, elastyczny, wydajny i skalowalny i działa zaskakująco dobrze.
    1

    Azure ma Windows / SQL jako serwer „Platform as a Service” i na pewno NIE utkniesz, po prostu wróć do Windows / SQL we własnym centrum danych (bez linuksa, ale tak, obsługują Java, Python, PHP, Ruby, Tomcat , Apache itp.). Podobnie jak Amazon, będą również oferować w pełni dostępną opcję Maszyny wirtualnej, dzięki czemu możesz zainstalować / uruchomić, co chcesz.

    Amazon ma tylko maszynę wirtualną, więc nadal musisz instalować, łatać, licencjonować, zabezpieczać itp. W pewnym sensie, moim zdaniem, pokonanie korzyści płynących z chmury. Właśnie przeniosłeś coś z centrum danych do innego.

    Google nie ma relacyjnej bazy danych, a STUCK nie działałby. W rzeczywistości są one przeznaczone tylko dla programistów Python i mają ograniczoną obsługę Java. Moim zdaniem naprawdę nie są graczem w przestrzeni chmurowej.


    źródło
    4
    Jeff - po przeszkoleniu partnerów Microsoft w zakresie SQL Server 2008, zdecydowanie lubię i znam zalety stosu Windows / SQL, ale ciężko mi zgodzić się, że STUCK jest w BigTable Google. Istnieje pół tuzina dobrych bibliotek, które otaczają BigTable API, odsłaniając go jako wszystko od psuedo RDBMS po indeksowany silos dokumentów. BigTable został zaprojektowany od podstaw do skalowania na wielu serwerach (Google stwierdził, że miejsce potu wynosiło 1500 na klaster), co jest wyczynem, którego SQL po prostu nie da sobie rady.
    1

    Jedną rzeczą nie wymienioną tutaj, jest to, co ktokolwiek uważa za „Windows Azure AppFabric Service Bus & ACS” oprócz przerażającej nazwy…?

    Wygląda na to, że jest to naprawdę potężny zestaw funkcji integracyjnych, które sprawiłyby, że Azure był atrakcyjny z perspektywy każdej firmy z inwestycją w infrastrukturę lokalną.

    Doobi
    źródło
    Tak, ale drugą stroną jest to, że Microsoft oficjalnie powiedział „nie” dla lokalnego hostingu platformy Azure dla firm, co szkodzi atrakcyjności autobusu.
    1
    Chociaż jest to prawda z nazwy, nie jest to prawdą w praktyce, Microsoft oferuje bardzo atrakcyjny stos prywatnych chmur z Hyper-V (który jest bezpłatny) i takie rzeczy jak Systems Center i InTune, po prostu nie jest to „Azure”. Jeśli chcesz, wkrótce pojawi się opcja „Urządzeń platformy Azure” dla stron trzecich, ale musisz być dość duży, aby uzasadnić te koszty. Słyszałem, że musisz obsługiwać co najmniej około 1000 węzłów, więc jest to więcej dla właścicieli centrów danych.
    0

    Po pewnym czasie eksperymentowania z Amazon EC2 i opóźnieniu zacząłem badać Google Apps podczas eksperymentów z powodu kosztów. Wolę Erlang jako język programowania, ale radzę sobie z Pythonem, więc nie było to decydującym czynnikiem. Tak było, gdy nie widziałem statycznego adresu IP. Również cała ta część, że jest wyżej na stosie, trochę mnie denerwuje pod względem wydajności.

    Chciałbym, żeby AWS było tańsze, ale dopóki Google nie dostarczy statycznych adresów IP i najlepiej dodatkowych języków, takich jak Scala, JRuby i Erlang, wybór jest dla mnie jasny: AWS . Dwa pierwsze języki również powinny być proste, oba są oparte na JVM. Może nawet zostało to zrobione poprzez obejście, jak się wydaje, pamiętam coś o tym.


    źródło
    Aby być pedantycznym, możesz uruchomić Scalę, JRuby, a nawet Clojure na App Engine, ponieważ to wszystko JVM pod maską. Czy korzystanie z tych języków jest łatwe , czy nie, to inna historia ...
    Chris Smith,
    0

    Myślę, że oprócz myślenia o tym, jaką platformę obsługuje porównanie, skalowalność, łatwość dostępu, wszechstronność (pod względem implementacji), może pomieścić różne platformy hostingowe, równie opłacalne ekonomicznie w przypadku biznesowym, ma wiele rozwiązań dla przedsiębiorstw aplikacje (tj. przechowywanie, dostawa, przepustowość, zasady licencjonowania itp.), wiarygodność historii jakości usług, kontrola bezpieczeństwa, przejrzystość fakturowania i kosztów itp. Jeśli spojrzysz na wszystkie powyższe wskaźniki, czuję, że wyniki AWS znacznie przewyższają . Zarządzam 10 kontami produkcyjnymi w AWS od 2 lat i jednocześnie firma / jednostka biznesowa były w stanie zaspokoić ogromne wymagania klienta dotyczące skalowalności .... Bez wątpienia w AWS należy utrzymywać infrastrukturę, Aktualizacje (jeśli takie / jeśli wymagane), bezpieczeństwo itp. Ale masz wszystkie narzędzia dostępne na rynku / netto za darmo. Istniejące zasoby IT mogą również utrzymywać całą infrastrukturę AWS.

    Azure z pewnością ma zintegrowane IDE z VS 2010, ale faktyczne wyceny dowolnej chmury rozpoczną się po pomyślnym wdrożeniu aplikacji (platforma do wdrożenia). Wciąż długa droga do dojrzałości, aby zająć się scenariuszami wdrażania / skalowalnej produkcji w czasie rzeczywistym ... Jak wszyscy wiedzą, MS gra wiele ukrytych programów na kosztach .. bardzo trudno jest rozliczyć koszty poniesione lub poniesione (podczas wysyłania szacunki).

    GAE jest bardzo specyficzny dla aplikacji Python / Java. Ogromny wysiłek (zarówno pod względem zasobów, jak i kosztów) w przepisaniu (istniejącej) aplikacji, przetestowaniu, wdrożeniu itp.


    źródło