Windows Azure vs Amazon EC2 vs Google App Engine

159

Dari sudut pandang pengembang platform mana yang akan Anda pertimbangkan untuk aplikasi web sosial besar? Jika Anda bisa memberikan beberapa perincian tentang apa yang Anda anggap sebagai kekuatan dari alternatif mana itu akan lebih bagus.


sumber
2
Saya telah membandingkan hal yang sama baru-baru ini - memposting pro / kontra saya di blog saya. Azure keluar (berdasarkan biaya proyek kecil), tetapi EC2 dan Google App Engine keduanya pesaing kuat! blog.dantup.com/2010/10/...
Danny Tuppeny
2
Pertanyaan ini harus berupa wiki komunitas.
rackspace ftw!
Greg

Jawaban:

227

Saya telah menulis aplikasi yang sama pada GAE (Python dan sekarang Java) dan Azure. Saya mungkin akan terus menggunakan keduanya, untuk hal-hal yang berbeda. Berikut adalah beberapa pemikiran yang akan terus saya perbarui:

Alasan menggunakan GAE:

  • Anda pada dasarnya mendapatkan satu VM gratis senilai penggunaan per hari. Dengan Azure, Anda membayar hampir $ 100 setiap bulan, bahkan jika Anda tidak memiliki satu pengunjung situs web. Jika db Anda melebihi 1GB, Anda membayar $ 90 ($ 9 -> $ 99) ekstra untuk penyimpanan. Pembaruan: Azure sekarang memiliki berbagai ukuran VM dan DB pada titik harga yang berbeda. Detail di sini .
  • Pembayaran GAE cukup lengkap - sebagian besar sumber daya dibebankan per permintaan / GB / MB, sekali lagi dengan alokasi harian gratis untuk sebagian besar sumber daya. Namun, pada bulan November 2011 bergabung dengan Azure dan AWS dalam pengisian untuk server web per instance-jam. Detail di sini .
  • GAE memiliki beban admin paling ringan. Setelah Anda siap, penyebaran dan penempatan kembali cepat dan mereka akan melakukan semuanya secara otomatis. Misalnya, Anda tidak khawatir tentang berapa banyak server yang digunakan aplikasi Anda, bagaimana cara shard data, cara memuat-keseimbangan.
  • Mail hanya berfungsi. Pada saat penulisan, Azure tidak menawarkan SMTP sehingga Anda memerlukan server pihak ke-3.
  • Integrasi hebat dengan banyak penawaran Google - kalender, surat, apa pun. Anda dapat mendelegasikan manajemen pengguna ke Google jika Anda tidak ingin mengontrol basis pengguna Anda.
  • Dengan GAE Anda tahu fitur apa pun yang mereka tambahkan ke toko, Anda akan mendapatkannya. Dengan Azure, Anda mendapatkan perasaan Sql Azure Database akan mendapatkan sebagian besar cinta tetapi akan lebih mahal. Azure Storage kemungkinan memiliki paling banyak Gotcha. Tanpa integritas relasional, tanpa urutan, Anda akan lebih mengutak-atik konteks dalam-memori. Toko GAE memiliki batasan yang jauh lebih sedikit dan lebih banyak fitur daripada Azure Tables.
  • Pilihan bagus jika Anda sudah menggunakan bahasa berbasis Python atau JVM. Banyak bahasa mengkompilasi bytecode Java saat ini.
  • Memperbarui aplikasi sangat cepat. Untuk Python, saya memiliki pengaturan tombol pintas dan tidak butuh waktu sama sekali. Saya sekarang menggunakan Plugin Eclipse untuk Java dan berfungsi dengan sangat baik. Azure lebih fiddly.
  • Aplikasi yang diuji secara lokal mungkin akan berjalan di cloud tanpa (banyak atau banyak) perubahan. Dengan Azure, konfigurasi berbeda dan saya menghabiskan beberapa waktu untuk menghentikan-menghapus-membangun-mengunggah-mulai sebelum saya melakukannya dengan benar.
  • GAE memiliki UI hebat yang menyertakan penampil log, editor data. Dengan Azure, saat ini Anda harus menemukan pemirsa / editor eksternal untuk ini.
  • GAE memungkinkan Anda menjalankan beberapa versi aplikasi Anda di datastore yang sama. Anda dapat menggunakan, menguji versi dan kemudian mengatur versi 'hidup' saat ini ketika Anda siap. Anda dapat mengubah kembali jika terjadi kesalahan.


    Alasan menggunakan Azure:

  • Karakteristik kinerja dan implikasi biaya dari datastore App Engine akan mengejutkan Anda. Jika Anda melakukan hal lain selain CRUD sederhana, Anda harus bekerja lebih keras daripada dengan DB normal. Tidak ada permintaan ad-hoc.
  • Azure memiliki dua pendekatan untuk penyimpanan, menawarkan lebih banyak pilihan. Mereka adalah SQL Azure Database (SAD) yang merupakan DB relasional, dan Azure Storage, yang terdiri dari tabel non-relasional, blob, dan antrian. Jika Anda memiliki investasi dalam SQL Server maka SAD akan mudah untuk dipindahkan, tetapi cukup mahal dan mungkin lebih skalabel. Pembaruan: App Engine memiliki API MySQL dalam versi beta terbatas.
  • Azure tampaknya dirancang lebih baik jika Anda memiliki pendekatan tipe SOA. Arsitektur mereka tampaknya mendapat manfaat dari pengalaman di dunia usaha. GAE tampaknya lebih fokus hanya pada melayani halaman web.
  • Anda dapat menjalankan aplikasi di bawah debug, memasukkan breakpoints, dll.
  • Azure memiliki lingkungan "pementasan" di mana Anda dapat menyebar ke cloud, tetapi tidak membuatnya hidup sampai Anda bahagia itu berfungsi.
  • Saya menggunakan. Net untuk hal-hal lain, dan mengintegrasikannya dengan. Net di backend jauh lebih mudah daripada dengan GAE. (Pembaruan - menggunakan Java pada GAE berfungsi dengan baik, dan batas waktu 10 detik sekarang adalah 30 detik).
  • Integrasi dengan banyak penawaran MS "Live".

    Jadi, tidak ada jawaban yang jelas. Saya default ke App Engine saat ini karena biaya dan kemudahan penggunaan. Saya mungkin menggunakan Azure untuk aplikasi yang sangat berorientasi MS. Saya menggunakan Amazon S3 untuk unduhan tetapi kemungkinan tidak akan menggunakan EC2 karena saya lebih suka meninggalkan semuanya di bawah tingkat aplikasi kepada para ahli.

  • Richard Watson
    sumber
    10
    Richard, mungkin nilai tambah lain bagi Azure adalah memiliki basis data relasional. Pecahan Bigtable adalah paradigma yang agak asing.
    hyperslug
    22
    App Engine juga memungkinkan Anda untuk menampilkan beberapa versi aplikasi Anda. Setiap versi mendapatkan URL sendiri yang dapat Anda uji, dan ketika Anda siap untuk menggunakannya, tandai saja versi itu sebagai default. Mudah untuk diuji, disebarkan, dan jika perlu memutar kembali ke versi sebelumnya jika terjadi kesalahan.
    Azure telah membayar sesuai dengan komitmen Anda, tanpa penggunaan, murni pada penggunaan, komitmennya bukan $ 99 per bulan.
    Akash Kava
    1
    Pada microsoft.com/windowsazure/pricing dikatakan tentang SQL Azure: "* Edisi Web: Hingga 1 GB basis data relasional = $ 9,99 / bulan * Edisi Bisnis: Hingga 10 GB basis data relasional = $ 99,99 / bulan * Transfer data = $ 0,10 di / $ 0,15 out / GB - ($ 0,30 in / $ 0,45 out / GB di Asia) "
    Richard Watson
    1
    App Engine sekarang memiliki dukungan SQL untuk digunakan dengan Block Storage. code.google.com/apis/sql
    devnul3
    176

    Saya jelas bias - saya bekerja di tim App Engine melakukan hubungan pengembang - tetapi ini adalah pendapat saya:

    Mereka tidak dapat dibandingkan secara langsung. Ada satu set aplikasi yang bisa Anda tulis untuk salah satu dari mereka, tetapi Anda akan menulis hal yang berbeda di setiap kasus. App Engine menyediakan lingkungan runtime terbatas - tidak ada penulisan file, tidak ada soket, dan sebagainya - dan DBMS non-relasional. Namun sebagai imbalannya, Anda mendapatkan lingkungan runtime yang berskala tanpa batas, dan tingkat kepastian yang masuk akal bahwa aplikasi Anda akan berskala sebesar yang Anda inginkan.

    Azure, di sisi lain, menyediakan lingkungan yang sedikit kurang terkendala, yang memungkinkan Anda menulis array aplikasi yang lebih luas, tetapi mengharuskan Anda untuk menulis lebih banyak - karena Anda menerapkan lebih banyak tumpukan itu sendiri - dan memberikan jaminan skalabilitas yang jauh lebih longgar. .

    Akhirnya, AWS memberikan solusi do-it-yourself terbaik. Mereka menyediakan perangkat keras, dan penyimpanan, dan tidak banyak lagi. Anda membangun tumpukan dari bawah ke atas, mempertahankannya, memutakhirkannya, dan sebagainya. Aplikasi Anda menskala jika dan hanya jika Anda menulis ke skala, yang bukan tantangan kecil. Tapi, Anda mendapatkan kontrol penuh atas perangkat keras Anda.

    Saran saya adalah: Jika aplikasi Anda cocok dengan model App Engine - dan aplikasi jejaring sosial mungkin menjadi contoh yang cukup bagus - tulis aplikasi Anda di App Engine (Java atau Python, pilihan Anda). Lebih murah, dan jauh lebih mudah untuk menulis aplikasi yang berskala.

    Jika aplikasi Anda tidak cocok dengan model GAE, pilih Azure atau AWS, tergantung pada apakah Anda menulis untuk tumpukan MS, dan pada seberapa banyak kontrol yang Anda inginkan atas lingkungan eksekusi. Jika sebagian besar aplikasi Anda cocok dengan GAE, tetapi sebagian kecil tidak, Anda dapat mempertimbangkan hibrida - misalnya, penayangan langsung di GAE, tetapi penyimpanan pada S3, atau pemrosesan massal pada EC2.

    Nick Johnson
    sumber
    Bagaimana dengan masalah seperti ini: Ketika App Engine salah ?
    Cristian Ciupitu
    @ Kristen Saya tidak yakin apa yang ingin Anda dengar - layanan apa pun terkadang berhenti. Itu termasuk App Engine dan EC2.
    Nick Johnson
    @Nick Johnson: Anda benar, setiap layanan memiliki waktu henti sesekali dan saya tidak mengharapkan waktu henti 100%. Di sisi lain, masalah itu tidak terlihat seperti masalah downtime. Bagi saya, ini terlihat seperti keterbatasan Google App Engine, yaitu kode Anda harus berjalan dalam jumlah waktu yang sangat terbatas. Saya tidak terbiasa dengan GAE, jadi tolong koreksi saya jika saya salah paham sesuatu.
    Cristian Ciupitu
    1
    @ Kristen Ah. Pengecualian itu sendiri terlempar karena terlalu banyak waktu yang dihabiskan untuk mengeksekusi, ya, tetapi penyebab perlambatan adalah beberapa masalah kinerja sementara.
    Nick Johnson
    Saya setuju dengan "mereka tidak sebanding". Membandingkan layanan ini seperti membandingkan apel dan jeruk. Keduanya adalah buah, itu saja.
    Hingga
    27

    Bagi saya, kunci adalah faktor penentu.

    Jika Anda memilih untuk Google, aplikasi Anda hanya akan berfungsi di Google. Jika Anda merasa kurang puas setelah beberapa waktu, Anda buntu.

    Jika Anda memilih untuk MS, aplikasi Anda hanya akan berfungsi di Azure. Hal yang sama.

    Di Amazon, Anda mendapatkan (a) server virtual yang berfungsi persis seperti mesin yang biasa Anda gunakan. Tidak puas? Ambil aplikasi Anda, instal pada perangkat keras nyata, selesai.


    sumber
    3
    GAE dapat menjalankan aplikasi java servlet yang cukup standar, dan dapat menggunakan ketekunan berbasis standar.
    Stephen Denne
    4
    GAE benar-benar terbuka (meskipun Anda harus tetap menggunakan API penyimpanan JDO.)
    1
    Apakah Google masih membatasi jumlah data yang dapat Anda peroleh sekaligus? Lockin mereka didasarkan pada data lebih dari kode.
    Mark Ransom
    4
    Anda dapat menggunakan AppScale untuk menjalankan aplikasi Anda di EC2, atau di mana pun Anda inginkan: appscale.cs.ucsb.edu
    Amir
    3
    Berlari melintasi hari ini, seseorang dapat beralih dari Google dalam seminggu. Mereka juga mengakui bahwa itu bisa memakan waktu berbulan-bulan jika mereka tidak menggunakan praktik yang baik sejak awal. carlosble.com/?p=719
    Mark Ransom
    20
    • Jika Anda adalah .NET Developer - buka Azure.
    • Jika Anda menggunakan Python atau Java - buka Google.
    • Jika Anda menggunakan Ruby - buka Amazon

    Pilihan pribadi saya sekarang adalah Google dengan Java (bahkan jika saya. NET sebagian besar waktu). Pikirkan tentang biaya - skema mereka sulit untuk dibandingkan.

    Lihat artikel ini - http://www.infoq.com/news/2008/11/Comparing-EC2-App-Engine-Azure


    sumber
    8
    Tidak semua pengembang .NET harus pergi ke Azure. Amazon EC2 adalah pilihan yang bisa diterima oleh mereka. Tapi +1 untuk referensi artikel yang bagus.
    Andrew Arnott
    Ya, Amazon agak kebebasan mesin virtual, tetapi komunitas yang sebagian besar berorientasi pada Ruby awalnya ...
    1
    AWS mendukung pengembang Net di Windows 2003 Server AMI mereka, tetapi saya menduga sejumlah pengembang Net lebih suka menggunakan Windows Server 2008 yang belum terwujud di AWS. Jika Anda seorang yang reguler di forum AWS, Anda mungkin telah mengetahui bahwa Amazon adalah pendiam dalam masalah ini.
    Richard Dorman
    2
    Saya adalah pengembang .NET berdasarkan perdagangan, tetapi harga menggunakan Azure untuk situs web yang mendapatkan 0 klik mengirim cara Google saya. Saya menulis beberapa perbandingan di blog saya: blog.dantup.com/2009/12/... blog.dantup.com/2009/12/…
    Danny Tuppeny
    4
    Jika Anda menggunakan Ruby, pertimbangkan Heroku atau EngineYard alih-alih Amazon.
    andy318
    20

    Seperti Arachnid, saya mungkin bias, menjadi googler. Namun, aku juga pemegang saham Amazon, sehingga yang bias yang mungkin sebagian diimbangi pertama ;-). Tidak ada pengalaman Azure (meskipun saya juga memegang saham MSFT, jadi saya berharap mereka juga melakukannya dengan baik - namun bias lainnya ;-).

    Pandangan saya yang sangat sederhana adalah bahwa App Engine dengan mudah menawarkan Anda kemampuan untuk bekerja (dalam batasannya) hanya dengan coding - tidak ada tugas administrasi sistem yang diperlukan. AWS jauh lebih fleksibel, tetapi Anda akan membutuhkan pekerjaan administrasi sistem yang substansial (dan sama sekali tidak sepele) untuk memanfaatkan fleksibilitas itu. Jadi pada akhirnya saya akan menyarankan saran Arachnid yang kedua: jika App Engine dapat memenuhi kebutuhan Anda, lakukan saja; jika Anda membutuhkan lebih banyak fleksibilitas, AWS sepertinya cara yang harus dilakukan (kecuali kemampuan Azure yang tidak diketahui bagi saya harus menjadi pasangan yang lebih baik - tetapi saya pikir AWS akan lebih fleksibel tidak peduli apa yang Azure dapat lakukan, misalnya dengan AWS Anda bahkan dapat memilih OS mana yang akan digunakan, jika Anda membutuhkannya).

    Alex Martelli
    sumber
    14

    Saya baru saja mulai bekerja dengan Azure, dan saya sudah terkesan Anda dapat melakukannya di F #: http://code.msdn.microsoft.com/fsharpazure! Sejauh ini, ini satu-satunya platform cloud yang memungkinkan seseorang untuk menggunakan pemrograman fungsional secara terkelola (tentu saja Anda dapat melakukan Haskell di EC2 ... atau Algol 68 dalam hal ini). Saya sangat terkesan dengan kualitas integrasi Visual Studio - Anda mendapatkan "cloud" lokal untuk diuji, DevFabric, dengan penyimpanan yang merupakan SQL Server nyata, sehingga Anda dapat bermain sebelum mengunggah. Bisakah GAE melakukan itu? Melihat Azure, belajar VS dengan F # (berasal dari Linux dan OCaml), saya berharap saya telah beralih ke MS stack sejak lama untuk itu. Sangat mudah untuk membuat penyimpanan SQL dan memeriksanya dalam VS - sangat berguna. Open Source tidak memiliki toolset yang cocok dan sudah waktunya orang memberikan pertimbangan yang adil kepada MS - mereka telah melakukan pekerjaan yang luar biasa di sini. Saya pasti bertahan dengan basis Mac OSX saya (dual-boot ke Vista), dan dugaan saya adalah, dengan kemampuan Azure untuk dikembangkan secara lokal, saya akan mendapatkan kotak Vista terpisah untuk pengembangan Azure. .NET benar-benar luar biasa ketika Anda berasal dari dunia pipa Unix - PowerShell, SQL dan LINQ, C # dan F # (yang merupakan alasan utama saya) - tetapi ternyata semuanya bertambah dan layak untuk dipelajari, bukan sebagai gantinya. dari, Linux; dan dalam semua kasus, Azure akan memperluas wawasan Anda.


    sumber
    2
    Azure tidak memiliki sesuatu yang bahkan cocok dengan fungsi dari Amazon Elastic Map Reduce (berdasarkan Open Source Hadoop). Bahkan tidak memungkinkan untuk mengatur jumlah peran pekerja secara terprogram.
    3
    Microsoft jelas berusaha untuk memonetisasi basis pengembang .NET mereka, dan memang benar ada manfaat untuk meningkatkan tumpukan Microsoft. Saya tidak yakin bahwa ini saja yang menggantikan model yang mahal dan mahal. Inti dari komputasi awan adalah elastisitas pay-as-you-go zero maintenance, yang belum ditawarkan Azure.
    Anda dapat menggunakan Clojure di GAE. the-deadline.appspot.com/login
    8

    Seperti halnya saya mencintai GAE, salah satu alasan utama mengapa saya menggunakan EC2 daripada GAE untuk proyek saya saat ini adalah bahwa saya harus dapat memiliki ujung depan aplikasi saya dilayani dari pusat data yang berlokasi di berbagai belahan dunia. GAE berjalan di satu pusat data sekaligus. Sebagai contoh, saya membutuhkan pengguna di Asia untuk menekan server di Asia untuk waktu respon tercepat yang mungkin untuk aplikasi saya. Tambahkan pada kemampuan untuk mengelola dns, load balancers, database pilihan, flume mendorong ke S3 untuk pengolahan data hadoop, dll ... dan EC2 menjadi solusi yang sangat menarik.

    Jon Stevens
    sumber
    5

    Beberapa hal yang perlu dipertimbangkan:

    Semakin cepat: seberapa cepat Anda bisa produktif dengan lingkungan yang dipilih seperti apa dokumen yang ada dan apakah sampel yang jelas dan didukung dengan baik terlihat dan bermanfaat

    Biaya: biaya adalah faktor, tetapi jika Anda membuat Aplikasi komersial yang benar-benar akan memiliki pelanggan, ini semua adalah pilihan yang layak. Jika Anda berasumsi bahwa Azure, dengan satu proc pada instance "kecil" berjalan sekitar $ 90 sebulan untuk penggunaan 24x7 ... berapa banyak pengguna yang dapat Anda layani pada waktu itu? Tambahkan contoh kedua untuk redundansi ... masih tidak terlalu mahal jika lalu lintas Anda menjaminnya. Jika tidak, mengapa Anda berada di cloud alih-alih di penyedia yang dihosting murah? Faktor biaya yang lebih besar datang saat Anda menerapkannya. AWS adalah solusi roll Anda sendiri. Itu banyak yang harus ditangani untuk mendapatkan solusi yang akan stabil dan dikelola dengan baik. Azure dan GAE memilikinya di luar kotak. Dalam pikiran saya AWS adalah yang paling mahal karena pekerjaan yang harus Anda lakukan. Apakah Anda benar-benar membutuhkan kendali pada tingkat granularitas yang sangat baik itu? Jika begitu,

    Kemampuan untuk melakukan apa yang Anda inginkan: AWS sepanjang jalan. Azure adalah yang kedua, GAE adalah yang ketiga. Tidak masalah jika yang Anda inginkan adalah Java dan Python. Biggie jika Anda ingin melakukan DB relasional atau pemrosesan data multi-utas yang luas di C ++ (tidak yakin apakah ada yang melakukan ini sekarang?).

    Bagaimana dengan portabilitas? Bisakah Anda membawanya kembali ke peternakan Anda sendiri nanti atau memindahkannya ke cloud farm lain? Mereka semua portabel sampai batas tertentu.

    Banyak yang harus dipikirkan ... masih belajar tentang ini sendiri.

    Spanky
    sumber
    TyphoonAE dan AppScale adalah alat yang hebat untuk menjalankan aplikasi GAE di tempat lain.
    4

    Jika Anda perlu memulai mesin virtual secara manual untuk memenuhi permintaan maka itu bukan cloud.

    Azure dan EC2 hanyalah server virtual dengan beberapa layanan di samping.

    Memperbarui:

    EC2 dan Azure memberi Anda opsi untuk mengelola mulai instance baru secara otomatis di bawah pemuatan, tetapi Anda masih harus mengelola ini. Dan Anda membayar untuk hal-hal yang naik dan diam.

    GAE menangani ini secara otomatis out-of-the-box dan itu hanya membebani Anda saat kode Anda berjalan selama permintaan.

    Peter Knego
    sumber
    1
    Saya pikir Amazon CloudWatch memecahkan masalah memulai instance tambahan berdasarkan lalu lintas.
    1
    Salah satu demo paling umum yang saya lihat untuk Azure adalah demo skalabilitas di mana mereka menulis beberapa kode untuk menetapkan ambang batas untuk memutar atau menurunkan pekerja web berdasarkan pada beban. tercakup dalam jendela azuer trainining kit nya: microsoft.com/downloads/en/...
    4

    Berikut beberapa pertimbangan lain.

    GAE - Duduk lebih tinggi di platform sebagai tumpukan layanan kemudian AWS dan Azure, semua lalu lintas yang dialihkan melalui DNS ghs.google.com mereka, secara dinamis memuat penayangan halaman Anda melalui salah satu mesin mereka, yang memungkinkan mereka menjaga harga tetap rendah. scaling baik-baik saja dengan pendekatan ini, Kontra tidak ada ip statis, cenderung disaring atau diblokir. Dari batasan ip statis, Anda tidak akan dapat mengatur situs https spesifik apa pun.

    AWS dan Azure memberi Anda cukup banyak IP statis dan VM khusus, memungkinkan untuk persyaratan dasar seperti sertifikasi https. Anda juga akan mendapatkan dukungan penyimpanan relasional. Biaya juga lebih tinggi untuk mencerminkan fakta VM khusus ini, dan Anda akan menskalakan per VM jadi dalam potongan 40 dolar / bulan. Keuntungannya adalah karena Anda mendapatkan VM untuk diri sendiri, Anda tidak dibatasi oleh batasan pemrosesan cpu 30 detik pada GAE, dan dapat menjalankan tugas yang lebih besar.

    Jadi jika Anda mempertimbangkan basis pelanggan di negara yang difilter, atau ingin IP statis untuk melakukan pengaturan DNS Anda sendiri, atau memiliki persyaratan yang memerlukan db relasional atau lebih dari 30 detik tugas. AWS, Azure akan jauh lebih ramah untuk bekerja dengannya.

    savagepanda
    sumber
    3

    Lihatlah solusi yang disediakan masing-masing cloud dan gunakan model hybrid. Beberapa masalah memerlukan palu dan yang lainnya obeng. Kenali alat Anda dan terapkan pada masalah yang tepat.


    sumber
    3

    Saya tidak memiliki reputasi yang cukup untuk memberikan komentar untuk salah satu jawaban di atas. Kesesuaian salah satu dari solusi cloud tersebut tergantung pada banyak faktor termasuk kebutuhan dan keahlian Anda.

    Saya memiliki proyek jejaring sosial yang membutuhkan database nosql. AppEngine akan menjadi solusi yang baik jika memiliki dukungan yang lebih baik untuk berbagai kerangka kerja. Django dengan adaptor nonrel berfungsi pada Python GAE, tapi saya lebih suka Rails karena berbagai alasan. Rails3 telah keluar selama beberapa bulan dan tidak ada seorang pun di komunitas atau di tim GAE yang menulis resep untuk mendukungnya. Kecuali Anda memiliki keahlian - mengetahui internal ruby ​​dan rails, jruby, dan GAE internal - untuk menulis resep Anda sendiri, Anda berada di tangan orang lain hanya untuk mendapatkan platform.

    AWS adalah pekerjaan yang jauh lebih banyak tetapi setidaknya Anda bisa mendapatkan di platform dengan alat apa pun dan menangani banyak masalah secara administratif daripada sebagai pengembang internal atau meminta kekuatan yang lebih tinggi.

    Keluhan saya tentang Heroku dan EngineYard, untuk pengembang Ruby, adalah misteri tentang bagaimana skala basis data. Bagaimana mereka mengukur?

    Dalam kasus saya, saya memilih solusi NoSQL dan Mongo tampaknya menjadi pilihan yang baik. MongoMachine tampaknya menjadi solusi yang disarankan untuk orang-orang seperti Heroku atau EY tetapi mahal gila. Penyimpanan $ 2,50 / GB? Penyimpanan hanya $ 0,10 GB / bulan pada GAE atau EBS.


    sumber
    1

    Saya mulai bereksperimen dengan Google App Engine baru-baru ini, dan untuk jejaring sosial web, saya yakin ini akan memenuhi semua kebutuhan Anda. Sangat mudah untuk memahami dan dapat digunakan baik dengan Python atau Java. Memang benar itu tidak memberi Anda akses atas file, tetapi untuk aplikasi Anda, GQL (antarmuka seperti SQL ke database yang mereka sediakan) mungkin akan lebih dari cukup (dan itu cukup kuat).

    Satu hal yang mungkin ingin Anda pertimbangkan, adalah bahwa aplikasi pada GAE dapat menggunakan antarmuka yang akan memungkinkan pengguna dengan Akun Google, atau akun pada domain menggunakan Google Apps log in (jalan pintas). Anda memilih salah satu dari ini. Jadi jika Anda sudah menggunakan Situs Web Google Apps, Google App Engine akan menjadi pilihan yang tepat untuk Anda, karena pengguna Anda tidak perlu mendaftarkan akun baru.

    EDIT: Seperti yang ditunjukkan Arachnid, bukan berarti Anda tidak dapat membuat kode sistem login Anda sendiri. Maaf, jika saya membuat Anda khawatir di sana.

    Adapun dua alternatif lainnya, saya hanya membaca tentang mereka dan tidak mengujinya. Tapi saya percaya GAE menyediakan kerangka kerja yang lebih mudah, dari penelitian saya, dan seperti yang Anda sebutkan harga yang mahal.

    Bagaimanapun, Anda dapat mencoba GAE menggunakan kuota gratis pada ruang dan bandwidth dan melihat apakah itu sesuai dengan kebutuhan Anda.

    Semoga berhasil.


    sumber
    Nitpick: GQL bukan database. GQL adalah bahasa query seperti SQL untuk runtime Python, ditulis di atas datastore. Anda bahkan tidak harus menggunakannya - ada juga API Kueri.
    Nick Johnson
    Selain itu, Anda dapat masuk ke pengguna yang Anda inginkan di aplikasi GAE - hanya saja GAE menyediakan pintasan untuk menggunakan akun Google.
    Nick Johnson
    Benar, pilihan kata yang buruk dalam kedua kasus, terima kasih telah menunjukkannya. Akan mengeditnya :)
    BigTable adalah mesin penyimpanan data Google, dan setelah menghabiskan beberapa waktu dengannya, saya mulai bertanya-tanya apakah saya telah menghabiskan seluruh karir saya untuk berpikir bahwa SQL RDBMS sangat penting untuk membuat aplikasi web. Model penyimpanan BigTable sederhana, fleksibel, berkinerja dan terukur, dan bekerja dengan sangat baik.
    1

    Azure memiliki Windows / SQL sebagai server "Platform as a Service", dan Anda pasti TIDAK terjebak, kembali saja ke Windows / SQL di pusat data Anda sendiri (Tidak ada linux, tapi ya mereka mendukung Java, Python, PHP, Ruby, Ruby, Tomcat , Apache, dll.). Seperti Amazon, mereka juga akan menyediakan opsi Mesin Virtual yang sepenuhnya dapat diakses, sehingga Anda dapat menginstal / menjalankan apa pun yang Anda inginkan.

    Amazon hanya memiliki Mesin Virtual, jadi Anda masih harus menginstal, menambal, melisensikan, mengamankan, dll ... Jenis kekalahan manfaat pindah ke cloud menurut saya. Anda baru saja memindahkan sesuatu dari pusat data Anda ke yang lain.

    Google tidak memiliki basis data relasional dan Anda akan TERJADI. Mereka benar-benar hanya melayani pengembang Python dan beberapa dukungan terbatas untuk Java. Mereka benar-benar bukan pemain di ruang cloud menurut saya.


    sumber
    4
    Jeff - setelah melatih mitra Microsoft tentang SQL Server 2008, saya pasti menyukai dan terbiasa dengan manfaat tumpukan Windows / SQL, tetapi saya sulit sekali untuk setuju bahwa ada yang STUCK dengan Google BigTable. Ada setengah lusin pustaka yang bagus yang membungkus BigTable API, memaparkannya sebagai segalanya, mulai dari RDBMS psuedo hingga silo dokumen yang diindeks. BigTable direkayasa untuk meningkatkan skala di banyak server (Google menemukan titik keringat adalah 1.500 per kluster), yang merupakan prestasi yang tidak bisa dilakukan oleh SQL dengan baik.
    1

    Satu hal yang tidak disebutkan di sini, adalah apa yang orang pertimbangkan dari "Windows Azure AppFabric Service Bus & ACS" selain nama yang menghebohkan ...?

    Tampaknya menjadi tumpukan fitur integrasi yang sangat kuat yang akan membuat Azure menarik dari perspektif bisnis apa pun dengan investasi di infrastruktur tempat.

    Doobi
    sumber
    Ya, tetapi kemudian sisi negatifnya adalah bahwa Microsoft telah secara resmi mengatakan "Tidak" untuk hosting Azure di tempat untuk bisnis, yang mengurangi daya tarik bus.
    1
    Meskipun benar dalam namanya, itu tidak benar dalam praktiknya, Microsoft menawarkan tumpukan cloud pribadi yang sangat menarik dengan Hyper-V (yang gratis) dan hal-hal seperti Systems Center & InTune, hanya saja bukan "Azure". Jika Anda ingin itu akan segera ada opsi untuk "Peralatan Azure" untuk pihak ke-3, tetapi Anda harus cukup besar untuk membenarkan biaya tersebut. Saya mendengar Anda perlu mendukung minimal sekitar 1000 node, jadi ini lebih untuk pemilik Datacentre.
    0

    Setelah bereksperimen dengan Amazon EC2 untuk sementara dan memukul beberapa penundaan, saya mulai meneliti Google Apps sambil bereksperimen karena biaya. Saya lebih suka Erlang sebagai bahasa pengembangan tetapi bisa menangani Python, jadi itu bukan faktor penentu. Ketika saya tidak melihat IP statis, itu. Juga seluruh bagian tentang itu menjadi lebih tinggi di tumpukan membuat saya sedikit gugup sehubungan dengan kinerja.

    Saya berharap AWS lebih murah, tetapi sampai Google memberikan IP statis dan lebih disukai bahasa tambahan seperti Scala, JRuby, dan Erlang, pilihannya jelas bagi saya: AWS . Dua bahasa pertama juga harus sederhana, keduanya berbasis JVM. Bahkan mungkin sudah dilakukan melalui kerja-sekitar, karena saya ingat untuk membaca sesuatu tentang itu.


    sumber
    Untuk menjadi luar biasa, Anda dapat menjalankan Scala, JRuby, dan bahkan Clojure di App Engine karena semuanya adalah JVM di bawah tenda. Sekarang, apakah atau tidak itu adalah mudah untuk menggunakan bahasa tersebut adalah cerita lain ...
    Chris Smith
    0

    Guys Saya pikir selain dari hanya berpikir tentang platform apa yang didukung perbandingan harus pada Skalabilitas, Kemudahan akses, Serbaguna (dalam hal implementasi), dapat mengakomodasi platform hosting yang berbeda, sama-sama layak secara ekonomi untuk kasus bisnis, memiliki beberapa solusi untuk perusahaan aplikasi (yaitu penyimpanan, pengiriman, bandwidth, kebijakan perizinan dll), rekam jejak kredibilitas kualitas layanan, Keamanan diaudit, Transparansi dalam penagihan serta penetapan biaya dll. Jika Anda melihat semua metrik di atas, saya merasa skor AWS jauh di atas . Saya mengelola 10 akun produksi di AWS sejak 2 tahun & pada saat yang sama perusahaan / unit bisnis dapat memenuhi tuntutan skalabilitas pelanggan yang sangat besar .... Tidak diragukan lagi pada AWS seseorang harus memelihara infrastruktur, Pembaruan (jika ada / jika wajib), keamanan dll. Tetapi Anda memiliki semua alat yang tersedia di pasar / internet secara bebas. Sumber daya TI yang ada dapat mempertahankan semua infrastruktur di AWS juga.

    Azure tentu memiliki IDE terintegrasi dengan VS 2010, tetapi penetapan biaya sebenarnya dari cloud apa pun akan dimulai setelah berhasil menggunakan aplikasi (platform untuk penyebaran). Masih jauh untuk matang untuk mengatasi penyebaran waktu nyata / skenario produksi yang dapat diskalakan ....... Seperti semua orang tahu MS memainkan banyak agenda tersembunyi mengenai penetapan biaya .. sangat sulit untuk mengetahui biaya yang dikeluarkan atau akan terjadi (saat mengirim keluar perkiraan).

    GAE sangat spesifik untuk aplikasi Python / Java. Upaya besar (baik dalam hal sumber daya + biaya) dalam mendapatkan aplikasi ditulis ulang (ada), diuji, digunakan dll.


    sumber