Windows Azure vs Amazon EC2 vs Google Uygulama Motoru


159

Geliştirici bakış açısına göre, büyük bir sosyal web uygulaması için hangi platformu tercih edersiniz? Hangi alternatifin güçlü olacağı konusunda ne düşündüğünüze dair bazı detaylar verebilirseniz, harika olurdu.


2
Son zamanlarda aynı şeyi karşılaştırıyordum - artılarını / eksilerini bloguma yazdım. Azure çıktı (küçük bir projenin maliyetine dayanarak), ancak EC2 ve Google App Engine her ikisi de güçlü bir rakip! blog.dantup.com/2010/10/…
Danny Tuppeny

2
Bu soru topluluk wiki olmalı.

raf alanı ftw!
Greg

Yanıtlar:


227

Aynı uygulamayı GAE (Python ve şimdi Java) ve Azure'de de yazdım. Muhtemelen farklı şeyler için ikisini de kullanmaya devam edeceğim. Güncellemeye devam edeceğim birkaç fikir:

GAE kullanma nedenleri:

  • Temel olarak günde bir ücretsiz VM'nin kullanım değerine sahip olursunuz. Azure ile, tek bir web sitesi ziyaretçiniz olmasa bile her ay yaklaşık 100 dolar ödüyorsunuz. Eğer db’niz 1GB’nin üzerine çıkarsa, depolama için fazladan 90 $ (9 $ -> 99 $) ödersiniz. Güncelleme: Azure artık farklı fiyat noktalarında çeşitli VM ve DB boyutlarına sahip. Detaylar burada .
  • GAE'nin ödemesi oldukça ince bir şekilde tahsis edilmiştir - çoğu kaynak, talep başına / GB / MB, yine çoğu kaynak için ücretsiz günlük tahsisat ile tahsil edilir. Bununla birlikte, Kasım 2011'de web sunucusu için örnek-saat başına ücret almak üzere Azure ve AWS'ye katıldı. Detaylar burada .
  • GAE en hafif yönetici yüküne sahiptir. Kurulduktan sonra dağıtma ve yeniden dağıtma işlemi hızlıdır ve her şeyi otomatik olarak yaparlar. Örneğin, uygulamanızın kaç sunucuyu kullandığı, verilerin nasıl parçalanacağı, nasıl yük dengeleyici olacağı konusunda endişelenmeyin.
  • Mail sadece çalışıyor. Yazma sırasında, Azure SMTP sunmaz, bu nedenle bir üçüncü taraf sunucuya ihtiyacınız vardır.
  • Google teklifleri ile mükemmel entegrasyon - takvimler, postalar, her neyse. Kullanıcı tabanınızı kontrol etmek istemiyorsanız, kullanıcı yönetimini Google’a devredebilirsiniz.
  • GAE ile mağazaya ekledikleri özellikleri bilirsiniz, anlarsınız. Azure ile Sql Azure Veritabanının sevginin çoğunu alacağı hissine kapılıyorsunuz ama daha pahalı olacak. Azure Storage'ın en çok erişime sahip olması muhtemeldir. İlişkisel bütünlük yok, sipariş yok, bellek içi bağlamla daha fazla uğraşacaksın. GAE mağazasında Azure Table'lardan çok daha az kısıtlama ve daha fazla özellik var.
  • Zaten Python veya JVM tabanlı dilleri kullanıyorsanız, iyi bir seçim. Günümüzde birçok dil Java bayt kodunu derlemektedir.
  • Uygulamayı güncellemek çok hızlı. Python için bir kısayol tuşu ayarlamıştım ve hiç zaman almadı. Şimdi Java için Eclipse Plugin kullanıyorum ve çok iyi çalışıyor. Azure daha doğrudur.
  • Yerel olarak test edilmiş bir uygulama büyük olasılıkla (çok fazla veya hiçbir değişiklik) olmadan bulut üzerinde çalışacaktır. Azure ile yapılandırma farklı ve doğru bir şekilde başlamadan önce biraz zaman harcadım-silmeliyim-yükleme-yükleme-başlangıç.
  • GAE, bir günlük görüntüleyiciyi ve veri düzenleyiciyi içeren harika bir UI'ye sahiptir. Azure ile şu anda bunun için harici görüntüleyiciler / düzenleyiciler bulmanız gerekiyor.
  • GAE, aynı veri deposunda çalışan uygulamanızın birden fazla sürümüne sahip olmanızı sağlar. Dağıtın, bir sürümü test edin ve ardından hazır olduğunuzda mevcut 'canlı' sürümünü ayarlayabilirsiniz. Bir şeyler ters giderse geri değiştirebilirsin.


    Azure kullanma nedenleri:

  • App Engine'in veri deposunun performans özellikleri ve maliyet yansımaları sizi şaşırtacak. Basit bir CRUD dışında bir şey yaparsanız, normal bir DB ile yapabileceğinizden daha çok çalışmanız gerekir. Geçici sorgu yok.
  • Azure'un depolamaya iki yaklaşımı var ve daha fazla seçenek sunuyor. Bunlar ilişkisel bir veritabanı olan SQL Azure Veri Tabanı (SAD) ve ilişkisel olmayan tablolardan, satırlardan ve sıralardan oluşan Azure Depolama birimidir. SQL Server'da bir yatırımınız varsa SAD'ye taşınması kolay olacaktır, ancak oldukça maliyetlidir ve daha az ölçeklenebilir olabilir . Güncelleme: App Engine, sınırlı beta sürümünde MySQL API'sine sahiptir.
  • SOA tipi bir yaklaşımınız varsa Azure daha iyi tasarlanmış gibi görünüyor. Mimarileri işletme dünyasındaki deneyimlerden yararlanıyor gibi görünüyor. GAE, sadece web sayfalarını sunmaya odaklanmış görünüyor.
  • Uygulamayı hata ayıklama, kesme noktalarına koyma vb. Altında çalıştırabilirsiniz.
  • Azure, buluta dağıtabileceğiniz, ancak işe yarayana kadar canlı hale getiremeyeceğiniz "hazırlık" ortamına sahiptir.
  • .Net'i başka şeyler için kullanıyorum ve onları .Net ile arka uçta entegre etmek GAE'den çok daha kolaydır. (Güncelleme - GAE’de Java kullanımı iyi çalışır ve 10 saniyelik zaman aşımı süresi artık 30 saniyedir).
  • Birçok MS "Live" teklifiyle entegrasyon.

    Yani, bariz cevaplar yok. Maliyetleri ve kullanım kolaylığı nedeniyle, şu anda App Engine'i varsayılan olarak değiştiriyorum. MS tabanlı uygulamalar için Azure kullanabilirim. Amazon S3'ü indirmeler için kullanıyorum, ancak EC2'yi kullanmayacağım, çünkü uygulama seviyesinin altındaki her şeyi uzmanlara bırakmayı tercih ediyorum.


  • 10
    Richard, Azure için belki başka bir artı ilişkisel bir veritabanına sahip. Bigtable'ın parçaları biraz yabancı paradigmadır.
    hyperslug

    22
    App Engine ayrıca, uygulamanızın birden fazla versiyonunu hazırlamanıza da olanak sağlar. Her sürüm test edebileceğiniz kendi URL'sini alır ve dağıtmaya hazır olduğunuzda bu sürümü varsayılan olarak işaretleyin. Test edilmesi, devreye alınması ve gerekirse bir şeyler ters gittiğinde önceki sürüme geri dönmesi kolaydır.

    Azure, ödediğiniz taksitlerle ödedi, yalnızca kullanımda, aylık tahsil başına minimum 99 $ değil.
    Akash Kava,

    1
    On microsoft.com/windowsazure/pricing SQL Azure hakkında şunları söylüyor: "* Web Baskı: 1 GB ilişkisel veritabanı = $ 9.99 / ay kadar * Business Edition: En fazla 10 GB ilişkisel veritabanı = $ 99.99 / ay * Veri transferleri içinde = $ 0.10 / 0.15 $ çıkış / GB - (Asya’da 0.30 $ / 0.45 $ / GB’de) "
    Richard Watson

    1
    App Engine artık Block Storage ile uyumlu SQL desteğine sahip. code.google.com/apis/sql
    devnul3 3:11

    176

    Açıkça önyargılıyım - geliştirici ilişkileri yapan App Engine ekibinde çalışıyorum - ama bu benim tercihim:

    Doğrudan karşılaştırılamazlar. Herhangi biri için yazabileceğiniz bir dizi uygulama var, ancak her durumda farklı bir şey yazacaksınız. App Engine, sınırlı bir çalışma zamanı ortamı sağlar - dosyalara yazma, soket ve benzeri şeyler yazma - ve ilişkisel olmayan bir DBMS. Ancak, karşılığında süresiz olarak ölçeklenen bir çalışma ortamı ve uygulamanızın istediğiniz kadar ölçeklendirilmesi için makul bir güvence elde edersiniz.

    Öte yandan Azure, daha geniş bir uygulama dizisi yazmanıza izin veren, ancak daha fazlasını yazmanızı gerektiren - yığının çoğunu kendiniz uyguladığınız için - ve daha fazla ölçeklenebilirlik güvencesi sağlayan, kısıtlı bir ortam sağlar. .

    Son olarak, AWS nihai kendin yap çözümünü sunar. Donanımı ve depolamayı sağlıyorlar, başka bir şey değil. Yığınızı sıfırdan oluşturur, korur, yükseltir vb. Uygulamanız ölçeklendirirseniz ve yalnızca küçük bir zorluk oluşturmazsanız ölçeklenir. Ancak, donanımınız üzerinde tam kontrol sahibi olursunuz.

    Tavsiyem şöyle olacaktır: Uygulamanız Uygulama Motoru modeline uygunsa - ve bir sosyal ağ uygulaması bu uygulamaların oldukça iyi bir örneği olabilir - uygulamanızı Uygulama Motoru'na yazın (Java veya Python, seçiminiz). Daha ucuz ve ölçeklendiren bir uygulama yazmak çok daha kolay.

    Uygulamanız GAE modeline uymuyorsa, MS yığını için yazıp yazmadığınıza ve yürütme ortamı üzerinde ne kadar kontrol etmek istediğinize bağlı olarak Azure veya AWS'yi seçin. Uygulamanızın çoğu GAE'ye uyuyorsa, ancak küçük parçalar uymuyorsa, bir melez olarak düşünebilirsiniz - örneğin, GAE'de canlı yayın, S3'te depolama veya EC2'de toplu işleme.


    Peki ya bunun gibi konular: App Engine yanlış gittiğinde ?
    Cristian Ciupitu

    @Cristian Ne duymak istediğinden emin değilim - herhangi bir servisin ara ara kalma süresi vardır. Bu, hem App Engine hem de EC2'yi içerir.
    Nick Johnson

    @Nick Johnson: Haklısın, herhangi bir servis zaman zaman kapalı kalıyor ve% 100 çalışma süresi beklemiyorum. Öte yandan, bu sorun duruş süresi gibi görünmüyor. Bana göre Google App Engine’in bir kısıtlaması gibi görünüyor, yani kodunuzun oldukça sınırlı bir süre içinde çalışması gerekiyor. GAE'ye aşina değilim, bu yüzden bir şeyi yanlış anlıyorsam lütfen beni düzeltin.
    Cristian Ciupitu,

    1
    @Cristian Ah. İstisna, yürütmeye harcanan çok fazla zaman nedeniyle atılıyor, evet, ancak yavaşlamanın nedeni bazı geçici performans sorunlarıyla ilgiliydi.
    Nick Johnson

    "Onlar karşılaştırılamaz" konusunda hemfikirim. Bu hizmetleri karşılaştırmak, elmaları ve portakalları karşılaştırmak gibidir. Her ikisi de meyve, bu konuda.
    Till

    27

    Benim için kilitleme karar verici faktördür.

    Google’ı seçerseniz, uygulamanız yalnızca Google’da çalışır. Kendinizi bir süre sonra tatmin olmayacak şekilde bulursanız, sıkışırsınız.

    MS için seçim yaparsanız, uygulamanız yalnızca Azure'da çalışır. Aynı şey.

    Amazon'da, (a) alıştığınız makineler gibi tam olarak çalışan sanal sunucular elde edersiniz. Tatmin edici değil? Uygulamanızı kaldırın, gerçek donanıma yükleyin, tamamlandı.


    3
    GAE oldukça standart java sunucu uygulamalarını çalıştırabilir ve standartlara dayalı kalıcılık kullanabilir.
    Stephen Denne

    4
    GAE tamamen açık (bir JDO depolama API'si kullanmak zorunda kalmanıza rağmen).

    1
    Google, bir anda alabileceğiniz veri miktarını hala sınırlandırıyor mu? Kilitlenmeleri koddan çok verilere dayanıyor.
    Mark Ransom

    4
    Uygulamalarınızı EC2'de veya istediğiniz başka bir yerde çalıştırmak için AppScale'i kullanabilirsiniz: appscale.cs.ucsb.edu
    Amir

    3
    Bugün bununla karşılaştı, birileri bir hafta içinde Google’dan geçiş yapmayı başardı. Ayrıca, en başından beri iyi uygulamaları kullanmasaydı aylar alabileceğini de itiraf ediyorlar. carlosble.com/?p=719
    Mark Ransom

    20
    • .NET Geliştirici iseniz - Azure'a gidin.
    • Python veya Java kullanıyorsanız - Google’a gidin.
    • Ruby iseniz - Amazon'a gidin

    Şu anki kişisel seçimim Java ile Google olacaktır (çoğunlukla .NET olsa bile). Maliyetleri düşünün - şemalarını karşılaştırmak zordur.

    Bu makaleye göz atın - http://www.infoq.com/news/2008/11/Comparing-EC2-App-Engine-Azure


    8
    Tüm .NET geliştiricileri Azure'a gitmemelidir. Amazon EC2 onlar için mükemmel bir seçenek. Ancak mükemmel makaleye atıfta bulunmak için +1.
    Andrew Arnott

    Evet, Amazon biraz sanal makinenin özgürlüğüdür, ancak topluluk çoğunlukla Ruby başta olmak üzere ...

    1
    AWS, Windows 2003 Server AMI'lerinde Net geliştiricilerini destekliyor, ancak çok sayıda. Net geliştiricisinin henüz AWS'de gerçekleştirilmemiş olan Windows Server 2008'e dağıtmaktan çok daha fazlasını beklediğinden şüpheleniyorum. Eğer AWS forumlarında düzenliysen, Amazon'un bu konuda biraz sessiz olduğunu öğrenmiş olabilirsin.
    Richard Dorman

    2
    Bir .NET geliştiricisiyim, ancak 0 isabet alan bir web sitesi için Azure kullanmanın bedeli Google’ın yolunu açtı. Blogumda bazı karşılaştırmalar yazdım: blog.dantup.com/2009/12/… blog.dantup.com/2009/12/…
    Danny Tuppeny

    4
    Ruby iseniz, Amazon yerine Heroku veya EngineYard'ı düşünün.
    andy318

    20

    Arachnid gibi ben de yanıltıcı olabilirim. Bununla birlikte, aynı zamanda bir Amazon hissedarıyım, bu nedenle önyargı kısmen ilkleri telafi edebilir ;-). Azure deneyimi yok (yine de MSFT hisse senedine sahip olmama rağmen, umarım onlar da iyi işler yaparlar - yine başka bir önyargı ;-).

    Çok basit bir şekilde benimsem, App Engine'in size (sınırlamaları dahilinde) sadece kodlama yoluyla kolayca çalışma imkanı sunmasıdır - sistem yönetimi görevlerine gerek yoktur. AWS çok daha esnektir, ancak bu esneklikten yararlanmak için önemli bir sistem yönetimi çalışmasına (ve gerçekten önemsiz değil) ihtiyacınız olacak . Sonunda Arachnid'in önerisini ikinci olarak kabul ediyorum: eğer App Engine ihtiyaçlarınızı karşılayabilirse, kesinlikle buna devam edin; Daha fazla esnekliğe ihtiyacınız varsa, AWS devam etmenin yolu gibi görünüyor (Azure'un bilinmeyen yeteneklerinin daha iyi bir eşleşme olması gerekmiyorsa - ama sanırım AWS, Azure'un yapabilecekleri ne olursa olsun, örneğin AWS ile daha esnek olacak. Eğer gerekirse, hangi işletim sisteminin kullanılacağını bile seçebilirsiniz).


    14

    Azure ile çalışmaya yeni başladım ve F #: http://code.msdn.microsoft.com/fsharpazure adresinde yapabileceğinizden çok etkilendim! Şimdiye kadar, işlevsel programlamayı yönetilen bir şekilde kullanma imkanı sunan tek bulut platform (elbette EC2… veya bu konuda Algol 68'i yapabilirsiniz). Visual Studio entegrasyonunun kalitesinden çok etkilendim - test etmek için yerel bir "bulut" alıyorsunuz, gerçek bir SQL Server olan bir depolama alanı olan DevFabric'i test ediyor, böylece yüklemeden önce oynayabilirsiniz. GAE bunu yapabilir mi? Azure'a bakıp F # (Linux ve OCaml'dan gelen) ile VS öğrenmek, keşke bunun için uzun zaman önce MS yığına geçmek isterdim. SQL depolama oluşturmak ve VS içinde incelemek süper kolay - çok kullanışlı geliyor. Açık Kaynak'ın uygun bir araç seti yok ve zaman milletvekilleri MS’e adil bir fikir veriyor - burada harika bir iş çıkardılar. Kesinlikle Mac OSX tabanımla (Vista’ya çift açılıma) bağlı kalıyorum ve önsezim, Azure'un yerel olarak geliştirilebilmesi için, Azure gelişimi için ayrı bir Vista kutusu alacağım. .NET, Unix boru dünyasından geldiğiniz zaman gerçekten çok zor - PowerShell, SQL ve LINQ, C # ve F # (benim ana nedenim) - ama her şey ortaya çıkıyor ve bunun yerine öğrenmeye değer Linux; ve her durumda, Azure ufkunuzu genişletir.


    2
    Azure'da, Amazon Elastik Harita Azaltma işlevine (Açık Kaynak Hadoop'a dayanarak) uzaktan bile olsa bir şey yoktur. Çalışan rollerinin sayısını programlı olarak belirlemeye bile izin vermiyor.

    3
    Microsoft açıkça .NET geliştirici tabanlarından para kazanmaya çalışıyor ve Microsoft yığınından yararlanmanın faydası olduğu doğru. Bunun tek başına pahalı, bloklu maliyetleme modelini oluşturduğuna ikna olmadım. Bulut bilişimin bütün amacı, Azure'un henüz sunmadığı sıfır bakım, kullandıkça öde esnekliğidir.

    Clojure’u GAE’de kullanabilirsiniz. the-deadline.appspot.com/login

    8

    GAE'yi sevdiğim kadarıyla, şu anki projem için GAE üzerinden EC2 ile birlikte gitmemin en önemli sebeplerinden biri, başvurumun ön yüzünü dünyanın farklı yerlerinde bulunan veri merkezlerinden servis alabilmem gerekiyor. GAE bir seferde bir veri merkezinde çalışır. Örneğin, uygulamam için mümkün olan en hızlı yanıt süreleri için Asya'daki sunuculara Asya'daki sunucuları vurmaları gerekiyor. Dns, yük dengeleyici, seçim veri tabanı, verilerin hadoop işlenmesi için S3'e basma boşluğu ve EC2'yi yönetme yeteneğini ve EC2 gerçekten zorlayıcı bir çözüm haline gelir.


    5

    Dikkate alınması gereken bazı şeyler:

    Hızlanma: Seçili ortamla ne tür dokümanlar bulunduğunu ve ne kadar çabuk üretken olabildiğince verimli olursunuz ve açık ve iyi desteklenmiş örnekler görünür ve kullanışlı mıdır?

    Maliyet: Maliyet bir faktördür, ancak gerçekten müşterileri olacak ticari bir Uygulama yapıyorsanız, bunların hepsi geçerli seçeneklerdir. Azure’un, "küçük" bir örnek için bir proc ile 24x7 kullanım için ayda yaklaşık 90 dolar harcadığını varsayarsan ... o zaman kaç kullanıcıya hizmet verebilirsin? Artıklık için ikinci bir örnek ekleyin ... trafiğiniz garanti ederse hala pahalı değil. Olmazsa, neden ucuz bir barındırılan sağlayıcı yerine neden buluttasınız? Bunu gerçekleştirmek için daha büyük maliyet faktörleri gelir. AWS, kendi çözümünüz olan bir rulo. Kararlı ve iyi yönetilen bir çözüm bulmak için idare edilecek çok şey var. Azure ve GAE kutudan çıkardı. Aklımda AWS, içine koymak zorunda olduğunuz iş nedeniyle en pahalı. Bu para cezası düzeyinde bir ayrıntı düzeyi denetimine gerçekten ihtiyacınız var mı? Öyleyse,

    İstediğinizi yapabilme yeteneği: AWS tamamen. Azure ikinci, GAE üçüncü. İstediğiniz şey Java ve Python ise biggie yok. Biggie, ilişkisel veri tabanı veya kapsamlı çoklu iş parçacıklı veri işleme C ++ 'da yapmak istiyorsanız (bunlardan herhangi birinin şimdi yapıp yapmadığından emin değil misiniz?).

    Taşınabilirlik ne olacak? Daha sonra kendi çiftliğine geri alabilir misin yoksa başka bir bulut çiftliğine mi götürebilirsin? Hepsi bir dereceye kadar taşınabilir.

    Düşünecek çok şey var ... hala bu konuyu öğreniyorum.


    TyphoonAE ve AppScale, başka bir yerde GAE uygulamalarını çalıştırmak için mükemmel araçlardır.

    4

    Talebi karşılamak için örnekleri elle başlatmanız gerekirse, bu bir bulut değildir.

    Azure ve EC2, yalnızca bazı servisleri yanında olan sanal sunuculardır.

    Güncelleme:

    EC2 ve Azure, yük altında yeni örnekleri otomatik olarak yönetme seçenekleri sunar, ancak yine de bunu yönetmeniz gerekir. Ve boş ve boşta kalan örnekler için para ödersiniz.

    GAE bu otomatik olarak kullanıma hazır durumdadır ve yalnızca kodunuz istekler sırasında çalıştığında sizi ücretlendirir.


    1
    Bence Amazon CloudWatch, trafiğe dayalı ek örnekler başlatma sorununu çözüyor.

    1
    Azure için gördüğüm en yaygın demolardan biri, web çalışanlarını yüke göre döndürmek veya düşürmek için eşikler belirlemek üzere bazı kodlar yazdıkları ölçeklenebilirlik demosu. Windows azuer eğitim kitinde ele alınmıştır: microsoft.com/downloads/en/…

    4

    İşte başka bazı düşünceler.

    GAE - Platformda bir hizmet yığını olarak daha yüksek oturur ve AWS ve Azure, tüm trafik ghs.google.com DNS'leri üzerinden yönlendirilir, sayfanıza hizmet vermeyi dinamik bir şekilde yükler ve bu da fiyatları düşük tutmasını sağlar. Ölçekleme bu yaklaşımla iyi bir şekilde inceltilir, Cons statik bir ip değildir, filtrelenmeye veya engellenmeye eğilimlidir. Statik IP sınırlamasından, siteye özgü https sertifikası ayarlayamazsınız.

    AWS ve Azure, hemen hemen statik bir IP ve özel bir VM sağlar ve https sertifikası gibi temel gereksinimlere izin verir. ayrıca ilişkisel depolama desteği alırsınız. Maliyet, bu özel VM gerçeğini yansıtmak için de daha yüksektir ve VM başına ölçeklendirirsiniz, böylece 40 dolar / ay'lık parçalar halinde. Bunun avantajı, kendinize bir VM aldığınızdan, GAE'deki 30 saniyelik işlemci işlem sınırlamasıyla sınırlandırılmadığınızdan ve daha büyük işleri gerçekleştirebilmenizdir.

    Bu nedenle, göz önünde bulunduğunuz müşteri filtre uygulanmış ülkelerde dayanıyorsa veya kendi DNS kurulumunuzu yapmak için statik bir IP istiyorsanız veya ilişkisel db veya 30 saniyeden fazla görev gerektiren gereksinimlere sahipseniz. AWS, Azure ile çalışmak çok daha kolay olurdu.


    3

    Her bir bulutun sunduğu çözümlere bakın ve hibrid modeli kullanın. Bazı problemler çekiç, diğerleri tornavida gerektirir. Araçlarınızı tanıyın ve doğru soruna uygulayın.


    3

    Yukarıdaki cevaplardan biri için yorum yapmak için yeterli itibarım yok. Bu bulut çözümlerinden herhangi birinin uygunluğu, ihtiyaçlarınız ve beceri setiniz de dahil olmak üzere birçok faktöre bağlıdır.

    Nosql veri tabanı gerektiren bir sosyal ağ projem var. AppEngine, çeşitli çerçeveler için daha iyi desteği olsaydı iyi bir çözüm olurdu. Bağdaştırıcısız Django Python GAE üzerinde çalışıyor, ama ben Rails'i birçok sebepten dolayı tercih ediyorum. Rails3 birkaç aydır piyasada ve toplumdaki veya GAE ekibindeki hiç kimse henüz onu destekleyecek bir tarif yazmadı. Yetenek setine sahip olmadığınız sürece - yakut ve raylar iç, jruby ve GAE içleri bilmek - kendi tarifinizi yazmak için, sadece platforma girmek için diğer insanların insafına kalırsınız.

    AWS çok daha fazla iş ama en azından ne olursa olsun herhangi bir araçla platforma girebilir ve bir iç geliştirici ya da daha yüksek güçlere destek olmak yerine bir çok konuyu idari olarak ele alabilirsiniz.

    Heroku ve EngineYard’a olan Ruby geliştiricileri hakkındaki şikayetim, veritabanlarının nasıl ölçeklendiğine dair gizemdir. Nasıl ölçeklenirler?

    Benim durumumda, bir NoSQL çözümü seçiyorum ve Mongo iyi bir seçim gibi görünüyor. MongoMachine, Heroku veya EY'nin beğenisine önerilen bir çözüm gibi gözüküyor, ancak çok pahalı. 2,50 dolar / GB depolama? Depolama, GAE veya EBS’de yalnızca 0,10 GB / aydır.


    1

    Son zamanlarda Google App Engine ile denemeye başladım ve bir web sosyal ağı için tüm ihtiyaçlarınızı karşılayacağına inanıyorum. Asmak kolaydır ve Python veya Java ile birlikte kullanılabilir. Size dosyalar üzerinden erişim sağlamadığı doğrudur, ancak uygulamanız için GQL (sağladıkları veritabanına SQL benzeri arayüz) muhtemelen fazlasıyla yeterli olacaktır (ve oldukça sağlamdır).

    Göz önünde bulundurmak isteyebileceğiniz bir şey, GAE'deki bir uygulamanın, Google Hesaplarına sahip kullanıcıların veya Google Apps giriş yapan bir etki alanındaki hesapların (kısayol) kullanmasına izin verecek bir arayüz kullanabilmesidir. Bunlardan birini seç. Dolayısıyla, zaten bir Google Apps Web Sitesi kullanıyorsanız, Google App Engine sizin için mükemmel bir seçim olacaktır, çünkü kullanıcılarınız yeni hesaplar kaydetmek zorunda kalmayacaktır.

    EDIT: Arachnid'in işaret ettiği gibi, kendi giriş sisteminizi kodlayamazsınız. Üzgünüm, eğer seni orada endişelendiriyorsam.

    Diğer iki alternatife gelince, sadece onlar hakkında okudum ve test etmedim. Ancak GAE'nin araştırmamdan ve sizin de belirttiğiniz gibi, daha uygun fiyatlardan daha kolay bir çerçeve sağladığını düşünüyorum.

    Her durumda, alan ve bant genişliğindeki ücretsiz kotayı kullanarak GAE'yi deneyebilir ve ihtiyaçlarınıza uygun olup olmadığını görebilirsiniz.

    İyi şanslar.


    Nitpick: GQL veritabanı değil. GQL, veri deposunun üstüne yazılmış Python çalışma zamanı için SQL benzeri bir sorgu dilidir. Bunu kullanmak zorunda bile değilsiniz - ayrıca Sorgu API'sı da var.
    Nick Johnson

    Ayrıca, bir GAE uygulamasında istediğiniz kullanıcıları oturum açabilirsiniz - bu yalnızca GAE'nin Google hesaplarını kullanmak için bir kısayol sağlamasıdır.
    Nick Johnson

    Doğru, her iki durumda da kelimelerin kötü seçilmesi, işaret ettiğiniz için teşekkürler. Düzenleyecektir :)

    BigTable, Google’ın veri depolama motorudur ve onunla biraz zaman geçirdikten sonra, tüm kariyerimi SQL RDBMS’lerin web uygulamaları yazmak için gerekli olduğunu düşünerek beynimi yıkayarak geçirip geçirmediğimi merak etmeye başladım. BigTable depolama modeli basit, esnek, performanslı ve ölçeklenebilir ve şaşırtıcı derecede iyi çalışıyor.

    1

    Azure'da bir sunucu olarak Windows / SQL "Hizmet Olarak Platform" vardır ve kesinlikle sıkışmış değilsiniz, sadece kendi veri merkezinizde Windows / SQL'e dönün (Linux yok, ama evet, Java, Python, PHP, Ruby, Tomcat'i destekliyorlar) , Apache, vb.) Amazon gibi, tamamen erişilebilir Sanal Makine seçeneğini de sunacaklar, böylece ne istersen kurabilir / çalıştırabilirsin.

    Amazon sadece Sanal Makine'ye sahip, bu yüzden hala dikkatini çekmek, yama yapmak, lisans vermek, güvenli hale getirmek vb. Veri merkezinizden diğerine bir şey taşıdınız.

    Google'ın ilişkisel veritabanı yok ve STUCK olur. Gerçekten de sadece Python geliştiricilerine ve Java için sınırlı bir desteğe hitap ediyorlar. Onlar gerçekten benim görüşüme göre bulut alanda bir oyuncu değil.


    4
    Jeff - SQL Server 2008'de Microsoft ortaklarını eğittiğimde, Windows / SQL yığınının yararlarına kesinlikle aşığım ve aşinayım, ancak birinin Google’ın BigTable’ında STUCK olduğu konusunda hemfikir değilim . BigTable API’yi saran ve bir psuedo RDBMS’den dizine alınmış bir belge silosuna kadar her şeyi açığa çıkaran yarım düzine kadar kitaplık vardır. BigTable birçok sunucuya ölçeklenecek şekilde tasarlanmıştır (Google, terlemenin küme başına 1.500 olduğunu bulmuştur), bu da SQL'in iyi yapamayacağı bir adımdır.

    1

    Burada bahsedilmeyen bir şey, herkesin "Windows Azure AppFabric Servis Otobüsü & ACS" hakkında korkunç ismin yanı sıra ne düşündüğüdür?

    Azure'un kurum içi altyapıya yatırım yapan herhangi bir işletme açısından çekici görünmesini sağlayacak çok güçlü bir entegrasyon özellikleri yığını gibi görünmektedir.


    Evet, ancak o zaman işin aslı, Microsoft'un resmen "Az" demesini şirket içi Azure'a, otobüsün çekiciliğinden mahrum bırakan işletmeler için barındıran "dedi.

    1
    Ad olarak doğru olsa da, uygulamada bu doğru değil, Microsoft Hyper-V (ücretsiz olan) ve Systems Center & InTune gibi şeylerle çok zorlayıcı bir özel bulut yığını sunuyor, sadece "Azure" değil. Yakında, 3. şahıslar için "Azure Appliances" seçeneği olacak, ancak bu maliyetleri haklı çıkarmak için oldukça büyük olmalısınız. En az 1000 düğümü desteklemeniz gerektiğini duydum, bu nedenle Datacentre sahipleri için daha fazla.

    0

    Amazon EC2'yi bir süre deneyimledikten ve bazı gecikmelere maruz kaldıktan sonra, maliyet nedeniyle deneme yaparken Google Apps'ı araştırmaya başladım. Erlang'ı geliştirme dili olarak tercih ederdim ama Python ile başa çıkabiliyorum, bu karar verici bir faktör değildi. Statik IP göremediğimde, öyleydi. Ayrıca, yığında daha yüksek olmasıyla ilgili bütün bölüm beni performans konusunda biraz gerginleştirir.

    AWS'nin daha ucuz olmasını diliyorum, ancak Google statik IP'ler ve tercihen Scala, JRuby ve Erlang gibi ek diller sunana kadar, seçim benim için açık: AWS . İlk iki dil de basit olmalıdır, ikisi de JVM tabanlıdır. Bunun hakkında bir şeyler okuduğumu hatırlıyor gibiyim, çalışma ortamlarında bile yapılmış olabilir.


    Bilgi niteliğinde olmak için, Scala, JRuby ve hatta Clojure'i App Engine'de çalıştırarak kaputun altındaki JVM'yi çalıştırabilirsiniz. Şimdi, bu dilleri kullanmanın kolay olup olmadığı başka bir hikaye ...
    Chris Smith

    0

    Bence karşılaştırmanın hangi platformu desteklediğini düşünmenin yanı sıra Ölçeklenebilirlik, Erişim Kolaylığı, Çok Yönlü (uygulama açısından) olması gerektiğini düşünüyorum, işletme durumu için eşit derecede ekonomik açıdan uygun olan farklı hosting platformlarına sahip olabilir. uygulamalar (viz. depolama, teslimat, bant genişliği, lisans politikası vb.), hizmet kalitesinin rekor güvenilirliğini izler, Güvenlik denetlenir, Faturalandırmada şeffaflık ve maliyetler vb. . 2 yıldan bu yana AWS'de 10 üretim hesabı yönetiyorum ve aynı zamanda şirket / iş birimi müşterinin dev ölçeklenebilirlik taleplerini karşılayabiliyordu. AWS'nin altyapısını korumasına gerek yok, Güncellemeler (eğer varsa) gerekli), güvenlik vb. Ancak serbest piyasada / net olarak mevcut tüm araçları var. Mevcut BT kaynakları, AWS'deki tüm altyapıyı da koruyabilir.

    Azure'un VS 2010 ile entegre bir IDE'si vardır, ancak uygulamanın başarıyla dağıtılmasından sonra (herhangi bir dağıtım platformu) herhangi bir bulutun fiili maliyeti başlayacaktır. Gerçek zamanlı dağıtım / ölçeklenebilir üretim senaryolarını ele almak için hala olgunlaşmak için uzun bir yol ....... Herkesin bildiği gibi, MS bir çok gizli gündemin maliyetlerle oynadığını biliyor. tahminler).

    GAE, Python / Java uygulamaları için çok özeldir. Uygulamanın yeniden yazıldığı (mevcut), test edilmiş, konuşlandırılmış vb.

    Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
    Licensed under cc by-sa 3.0 with attribution required.