Windows Azure vs Amazon EC2 vs Google App Engine


159

Từ quan điểm của nhà phát triển, bạn sẽ xem xét nền tảng nào cho một ứng dụng web xã hội lớn? Nếu bạn có thể cung cấp một số chi tiết về những gì bạn coi là điểm mạnh của sự thay thế thì nó sẽ rất tuyệt.


2
Gần đây tôi đã so sánh điều tương tự - đã đăng những ưu / nhược điểm của mình lên blog. Azure đã hết (dựa trên chi phí của một dự án nhỏ), nhưng EC2 và Google App Engine đều là những ứng cử viên mạnh! blog.dantup.com/2010/10/ từ
Daniel Tuppeny

2
Câu hỏi này nên được wiki cộng đồng.

giá đỡ ftw!
Greg

Câu trả lời:


227

Tôi đã viết cùng một ứng dụng trên GAE (Python và giờ là Java) và Azure. Có lẽ tôi sẽ tiếp tục sử dụng cả hai, cho những thứ khác nhau. Dưới đây là một vài suy nghĩ mà tôi sẽ tiếp tục cập nhật:

Lý do nên sử dụng GAE:

  • Về cơ bản, bạn nhận được một giá trị sử dụng VM miễn phí mỗi ngày. Với Azure, bạn phải trả gần 100 đô la mỗi tháng, ngay cả khi bạn không có một khách truy cập trang web nào. Nếu db của bạn vượt quá 1GB, bạn phải trả thêm $ 90 ($ 9 -> $ 99) để lưu trữ. Cập nhật: Azure hiện có các kích cỡ VM và DB khác nhau ở các mức giá khác nhau. Chi tiết tại đây .
  • Thanh toán của GAE khá chi tiết - hầu hết các tài nguyên được tính theo yêu cầu / GB / MB, một lần nữa với phân bổ hàng ngày miễn phí cho hầu hết các tài nguyên. Tuy nhiên, vào tháng 11 năm 2011, nó đã tham gia Azure và AWS để tính phí cho máy chủ web mỗi giờ. Chi tiết tại đây .
  • GAE có tải quản trị nhẹ nhất. Khi bạn đã thiết lập, triển khai và triển khai lại nhanh chóng và họ sẽ tự động mọi thứ. Ví dụ: bạn không lo lắng về việc ứng dụng của bạn đang sử dụng bao nhiêu máy chủ, cách phân chia dữ liệu, cách cân bằng tải.
  • Thư chỉ hoạt động. Tại thời điểm viết bài, Azure không cung cấp dịch vụ SMTP nên bạn cần máy chủ của bên thứ 3.
  • Tích hợp tuyệt vời với nhiều dịch vụ của Google - lịch, thư, bất cứ điều gì. Bạn có thể ủy quyền quản lý người dùng cho Google nếu bạn không muốn kiểm soát cơ sở người dùng của mình.
  • Với GAE, bạn biết bất kỳ tính năng nào họ thêm vào cửa hàng, bạn sẽ nhận được. Với Azure, bạn có cảm giác Sql Azure Database sẽ nhận được hầu hết tình yêu nhưng nó sẽ đắt hơn. Azure Storage có khả năng có nhiều vấn đề nhất. Không toàn vẹn quan hệ, không theo thứ tự, bạn sẽ thích thú với bối cảnh trong bộ nhớ hơn. Cửa hàng của GAE có ít hạn chế hơn và nhiều tính năng hơn so với Bảng Azure.
  • Lựa chọn tốt nếu bạn đang sử dụng các ngôn ngữ dựa trên Python hoặc JVM. Ngày nay, nhiều ngôn ngữ biên dịch sang mã byte Java.
  • Cập nhật ứng dụng rất nhanh. Đối với Python, tôi đã thiết lập phím tắt và không mất thời gian. Bây giờ tôi sử dụng Plugin Eclipse cho Java và nó hoạt động rất tốt. Azure khó khăn hơn.
  • Một ứng dụng được thử nghiệm cục bộ có thể sẽ chạy trên đám mây mà không cần thay đổi (nhiều hoặc bất kỳ). Với Azure, cấu hình là khác nhau và tôi đã dành một chút thời gian để dừng-xóa-xây dựng-tải lên-bắt đầu trước khi tôi hiểu đúng.
  • GAE có một giao diện người dùng tuyệt vời bao gồm trình xem nhật ký trình chỉnh sửa dữ liệu. Với Azure, hiện tại bạn phải tìm người xem / biên tập viên bên ngoài cho việc này.
  • GAE cho phép bạn có nhiều phiên bản ứng dụng của bạn chạy trên cùng một kho dữ liệu. Bạn có thể triển khai, kiểm tra phiên bản và sau đó đặt phiên bản 'trực tiếp' hiện tại khi bạn sẵn sàng. Bạn có thể thay đổi trở lại nếu có sự cố.


    Lý do nên sử dụng Azure:

  • Các đặc tính hiệu suất và ý nghĩa chi phí của kho dữ liệu của App Engine sẽ làm bạn ngạc nhiên. Nếu bạn làm bất cứ điều gì khác ngoài CRUD đơn giản, bạn sẽ cần phải làm việc chăm chỉ hơn với DB thông thường. Không có truy vấn đặc biệt.
  • Azure có hai cách tiếp cận để lưu trữ, cung cấp nhiều sự lựa chọn hơn. Chúng là Cơ sở dữ liệu SQL Azure (SAD) là DB quan hệ và Bộ lưu trữ Azure, bao gồm các bảng, đốm màu và hàng đợi không liên quan. Nếu bạn có một khoản đầu tư vào SQL Server thì SAD sẽ dễ dàng chuyển đến, nhưng khá tốn kém và thể ít khả năng mở rộng hơn. Cập nhật: App Engine có API MySQL trong bản beta giới hạn.
  • Azure dường như được thiết kế tốt hơn nếu bạn có cách tiếp cận kiểu SOA. Kiến trúc của họ dường như được hưởng lợi từ kinh nghiệm trong thế giới doanh nghiệp. GAE dường như tập trung hơn vào việc phục vụ các trang web đơn giản.
  • Bạn có thể chạy ứng dụng theo gỡ lỗi, đặt các điểm dừng, v.v.
  • Azure có môi trường "dàn dựng" nơi bạn có thể triển khai lên đám mây, nhưng không làm cho nó tồn tại cho đến khi bạn hài lòng.
  • Tôi đang sử dụng .Net cho những thứ khác và việc tích hợp chúng với .Net trên phần phụ trợ dễ dàng hơn nhiều so với GAE. (Cập nhật - sử dụng Java trên GAE hoạt động tốt và thời gian chờ 10 giây bây giờ là 30 giây).
  • Tích hợp với nhiều dịch vụ "Live" của MS.

    Vì vậy, không có câu trả lời rõ ràng. Hiện tại tôi đang mặc định cho Máy ứng dụng vì chi phí và dễ sử dụng. Tôi có thể sử dụng Azure cho các ứng dụng hướng MS. Tôi sử dụng Amazon S3 để tải xuống nhưng có khả năng sẽ không sử dụng EC2 vì tôi thích để lại mọi thứ dưới cấp ứng dụng cho các chuyên gia.


  • 10
    Richard, có lẽ một điểm cộng khác cho Azure là có một cơ sở dữ liệu quan hệ. Các mảnh vỡ của Bigtable là một mô hình hơi nước ngoài.
    hyperslug

    22
    App Engine cũng cho phép bạn tạo nhiều phiên bản cho ứng dụng của mình. Mỗi phiên bản có URL riêng mà bạn có thể kiểm tra và khi bạn sẵn sàng triển khai, chỉ cần đánh dấu phiên bản đó là mặc định. Dễ dàng kiểm tra, triển khai và nếu cần, quay lại phiên bản trước nếu có sự cố.

    Azure đã trả tiền khi bạn không có hoa hồng, hoàn toàn là về cách sử dụng, không phải là tối thiểu 99 đô la mỗi tháng.
    Akash Kava

    1
    Trên microsoft.com/windowsazure/pricing nó nói về SQL Azure: "* Web Edition: Lên tới 1 GB quan hệ cơ sở dữ liệu = $ 9,99 / tháng * Business Edition: Lên đến 10 GB dữ liệu quan hệ = $ 99.99 / tháng * chuyển dữ liệu = $ 0.10 trong / $ 0,15 ra / GB - (0,30 đô la / 0,45 đô la / GB ở châu Á) "
    Richard Watson

    1
    App Engine hiện có hỗ trợ SQL đi kèm với Block Storage. code.google.com/apis/sql
    devnul3

    176

    Tôi thiên vị rõ ràng - Tôi làm việc trong nhóm App Engine thực hiện quan hệ nhà phát triển - nhưng đây là việc của tôi:

    Họ không thể so sánh trực tiếp. Có một bộ ứng dụng bạn có thể viết cho bất kỳ ứng dụng nào, nhưng bạn sẽ viết một thứ khác nhau trong mỗi trường hợp. Máy ứng dụng cung cấp môi trường thời gian chạy hạn chế - không ghi vào tệp, không có ổ cắm, v.v. - và DBMS không liên quan. Nhưng bù lại, bạn có được một môi trường thời gian chạy quy mô vô hạn và một mức độ đảm bảo hợp lý rằng ứng dụng của bạn sẽ mở rộng quy mô như bạn muốn.

    Azure, mặt khác, cung cấp một môi trường ít ràng buộc hơn, cho phép bạn viết một mảng ứng dụng rộng hơn, nhưng yêu cầu bạn phải viết nhiều hơn - vì bạn tự thực hiện nhiều ngăn xếp hơn - và cung cấp sự đảm bảo về khả năng mở rộng lỏng lẻo hơn .

    Cuối cùng, AWS cung cấp giải pháp tự làm cuối cùng. Họ cung cấp phần cứng, và lưu trữ, và không nhiều thứ khác. Bạn xây dựng ngăn xếp của mình từ mặt đất lên, duy trì nó, nâng cấp nó, v.v. Ứng dụng của bạn chia tỷ lệ nếu và chỉ khi bạn viết nó lên tỷ lệ, đó là một thách thức không nhỏ. Nhưng, bạn có thể kiểm soát hoàn toàn phần cứng của bạn.

    Lời khuyên của tôi sẽ là: Nếu ứng dụng của bạn phù hợp với mô hình Máy ứng dụng - và ứng dụng mạng xã hội có thể là một ví dụ khá hay về ứng dụng đó - hãy viết ứng dụng của bạn trên Máy ứng dụng (Java hoặc Python, lựa chọn của bạn). Nó rẻ hơn, và viết một ứng dụng có tỷ lệ dễ dàng hơn nhiều.

    Nếu ứng dụng của bạn không phù hợp với mô hình GAE, hãy chọn Azure hoặc AWS, tùy thuộc vào việc bạn có viết cho ngăn xếp MS hay không và mức độ kiểm soát mà bạn muốn đối với môi trường thực thi. Nếu hầu hết ứng dụng của bạn phù hợp với GAE, nhưng các phần nhỏ thì không, bạn có thể xem xét kết hợp - ví dụ: phục vụ trực tiếp trên GAE, nhưng lưu trữ trên S3 hoặc xử lý hàng loạt trên EC2.


    Còn vấn đề như thế này: Khi Máy ứng dụng gặp sự cố thì sao?
    Cristian Ciupitu

    @Cristian Tôi không chắc chắn những gì bạn muốn nghe - bất kỳ dịch vụ nào cũng có thời gian ngừng hoạt động. Điều đó bao gồm cả Máy ứng dụng và EC2.
    Nick Johnson

    @Nick Johnson: bạn nói đúng, bất kỳ dịch vụ nào cũng có thời gian ngừng hoạt động và tôi không mong đợi thời gian hoạt động 100%. Mặt khác, vấn đề đó không giống như vấn đề thời gian chết. Đối với tôi có vẻ như là một hạn chế của Google App Engine, tức là mã của bạn phải chạy trong một khoảng thời gian khá hạn chế. Tôi không quen thuộc với GAE, vì vậy hãy sửa cho tôi nếu tôi hiểu nhầm điều gì đó.
    Cristian Ciupitu

    1
    @Cristian À. Ngoại lệ được ném vì quá nhiều thời gian để thực hiện, vâng, nhưng nguyên nhân của sự chậm lại là một số vấn đề hiệu suất tạm thời.
    Nick Johnson

    Tôi đồng ý về "họ không thể so sánh". So sánh các dịch vụ này giống như so sánh táo và cam. Cả hai đều là trái cây, đó là về nó.
    Đến

    27

    Đối với tôi, khóa là yếu tố quyết định.

    Nếu bạn chọn cho Google, ứng dụng của bạn sẽ chỉ hoạt động trên Google. Nếu bạn thấy mình không hài lòng sau một thời gian, bạn sẽ bị mắc kẹt.

    Nếu bạn chọn cho MS, ứng dụng của bạn sẽ chỉ hoạt động trên Azure. Điều tương tự.

    Tại Amazon, bạn có (a) máy chủ ảo hoạt động chính xác như các máy bạn đã từng sử dụng. Không hài lòng? Chọn ứng dụng của bạn, cài đặt trên phần cứng thực, đã xong.


    3
    GAE có thể chạy các ứng dụng java servlet khá chuẩn và có thể sử dụng tính bền bỉ dựa trên tiêu chuẩn.
    Stephen Denne

    4
    GAE hoàn toàn mở (mặc dù bạn sẽ cần phải sử dụng API lưu trữ JDO.)

    1
    Google có còn giới hạn số lượng dữ liệu bạn có thể nhận được tại một thời điểm không? Lockin của họ dựa trên dữ liệu nhiều hơn mã.
    Đánh dấu tiền chuộc

    4
    Bạn có thể sử dụng AppScale để chạy các ứng dụng của mình trên EC2 hoặc bất cứ nơi nào bạn muốn: appscale.cs.ucsb.edu
    Amir

    3
    Hôm nay, ai đó đã có thể chuyển khỏi Google trong một tuần. Họ cũng thừa nhận rằng có thể mất vài tháng nếu họ không sử dụng các thực hành tốt ngay từ đầu. carlosble.com/?p=719
    Đánh dấu tiền chuộc

    20
    • Nếu bạn là Nhà phát triển .NET - hãy truy cập Azure.
    • Nếu bạn đang dùng Python hoặc Java - hãy truy cập Google.
    • Nếu bạn đang dùng Ruby - hãy đến Amazon

    Lựa chọn cá nhân của tôi ngay bây giờ sẽ là Google với Java (ngay cả khi tôi là .NET hầu hết thời gian). Hãy suy nghĩ về chi phí - lược đồ của họ rất khó để so sánh.

    Kiểm tra bài viết này - http://www.infoq.com/news/2008/11/Compared-EC2-App-Engine-Azure


    8
    Không phải tất cả các nhà phát triển .NET nên truy cập Azure. Amazon EC2 là một lựa chọn hoàn toàn chấp nhận được đối với họ. Nhưng +1 để tham khảo bài viết xuất sắc.
    Andrew Arnott

    Đúng, Amazon có phần tự do với máy ảo, nhưng cộng đồng chủ yếu hướng tới Ruby ban đầu ...

    1
    AWS không hỗ trợ các nhà phát triển .Net trên Windows 2003 Server AMI của họ nhưng tôi nghi ngờ một số lượng lớn các nhà phát triển .Net sẽ triển khai lên Windows Server 2008 chưa được triển khai trên AWS. Nếu bạn là người thường xuyên trên các diễn đàn AWS, có thể bạn đã nhận thấy rằng Amazon có phần im lặng về vấn đề này.
    Richard Dorman

    2
    Tôi là nhà phát triển .NET bằng thương mại, nhưng giá sử dụng Azure cho trang web nhận được 0 lượt truy cập đã gửi theo cách của tôi. Tôi đã viết một số so sánh trên blog của mình: blog.dantup.com/2009/12/ Nhật blog.dantup.com/2009/12/ Lời
    Danny Tuppeny

    4
    Nếu bạn đang dùng Ruby, hãy xem xét Heroku hoặc EngineYard thay vì Amazon.
    andy318

    20

    Giống như Arachnid, tôi có thể bị thiên vị, là một người làm việc. Tuy nhiên, tôi cũng là một cổ đông của Amazon, do đó sự thiên vị có thể bù đắp một phần cho lần đầu tiên ;-). Không có kinh nghiệm Azure (mặc dù tôi cũng nắm giữ cổ phiếu MSFT, vì vậy tôi hy vọng họ cũng làm tốt - một thiên vị khác ;-).

    Điều rất đơn giản của tôi là App Engine dễ dàng cung cấp cho bạn khả năng làm việc (trong giới hạn của nó) chỉ bằng mã hóa - không cần thực hiện các tác vụ quản trị hệ thống. AWS linh hoạt hơn nhiều, nhưng bạn sẽ cần công việc quản trị hệ thống đáng kể (và không thực sự tầm thường chút nào) để tận dụng sự linh hoạt đó. Vì vậy, cuối cùng tôi sẽ gợi ý thứ hai của Arachnid: nếu App Engine có thể đáp ứng nhu cầu của bạn, hoàn toàn phù hợp với nó; nếu bạn cần linh hoạt hơn, AWS dường như là hướng đi (trừ khi các khả năng không xác định của Azure sẽ phù hợp hơn - nhưng tôi nghĩ AWS sẽ linh hoạt hơn bất kể Azure có thể làm gì, ví dụ như với AWS bạn thậm chí có thể chọn hệ điều hành nào để sử dụng, nếu bạn cần điều đó).


    14

    Tôi mới bắt đầu làm việc với Azure và tôi đã rất ấn tượng, bạn có thể làm điều đó trong F #: http://code.msdn.microsoft.com/fsharpazure! Cho đến nay, đó là nền tảng đám mây duy nhất cho phép một người sử dụng lập trình chức năng theo cách được quản lý (tất nhiên bạn có thể thực hiện Haskell trong EC2 ... hoặc Algol 68 cho vấn đề đó). Tôi rất ấn tượng với chất lượng tích hợp Visual Studio - bạn có thể kiểm tra "đám mây" cục bộ, DevFoven, với bộ lưu trữ là Máy chủ SQL thực, do đó bạn có thể phát trước khi tải lên. GAE có thể làm điều đó? Nhìn vào Azure, học VS với F # (đến từ Linux và OCaml), tôi ước mình đã chuyển sang MS stack từ lâu cho nó. Thật dễ dàng để tạo bộ lưu trữ SQL và kiểm tra nó trong VS - rất tiện dụng. Nguồn mở không có bộ công cụ phù hợp và mọi người đã dành thời gian cho MS xem xét công bằng - họ đã thực hiện một công việc tuyệt vời ở đây. Tôi chắc chắn gắn bó với cơ sở Mac OSX của mình (khởi động kép vào Vista) và linh cảm của tôi là, với khả năng Azure được phát triển cục bộ, tôi sẽ nhận được một hộp Vista riêng để phát triển Azure. .NET thực sự áp đảo khi bạn đến từ thế giới ống Unix - PowerShell, SQL và LINQ, C # và F # (đó là lý do chính của tôi) - nhưng hóa ra tất cả đều bổ sung và đáng để học hỏi, thay vào đó của, Linux; và trong mọi trường hợp, Azure sẽ mở rộng tầm nhìn của bạn.


    2
    Azure không có thứ gì đó thậm chí phù hợp từ xa với chức năng của Amazon Elastic Map Giảm (dựa trên Hadoop mã nguồn mở). Nó thậm chí không cho phép thiết lập số lượng vai trò công nhân theo chương trình.

    3
    Microsoft rõ ràng đang cố gắng kiếm tiền từ cơ sở nhà phát triển .NET của họ và sự thật là có lợi khi tận dụng ngăn xếp của Microsoft. Tôi không tin rằng điều này một mình bù đắp cho mô hình chi phí đắt đỏ, khối. Toàn bộ điểm của điện toán đám mây là độ co giãn trả tiền bảo trì bằng 0, mà Azure chưa cung cấp.

    Bạn có thể sử dụng Clojure trong GAE. the-deadline.appspot.com/login

    8

    Tôi yêu GAE rất nhiều, một lý do chính khiến tôi tham gia EC2 qua GAE cho dự án hiện tại của tôi là tôi cần có khả năng ứng dụng của mình được phục vụ từ các trung tâm dữ liệu ở các khu vực khác nhau trên thế giới. GAE chạy trong một trung tâm dữ liệu tại một thời điểm. Ví dụ: tôi cần người dùng ở Châu Á truy cập các máy chủ ở Châu Á để có thời gian phản hồi nhanh nhất có thể cho ứng dụng của tôi. Thêm vào khả năng quản lý dns, cân bằng tải, cơ sở dữ liệu lựa chọn, đẩy vào S3 để xử lý dữ liệu, v.v ... và EC2 trở thành một giải pháp thực sự hấp dẫn.


    5

    Một số điều cần xem xét:

    Bắt kịp tốc độ: bạn có thể làm việc nhanh như thế nào với môi trường đã chọn, loại tài liệu nào tồn tại và chúng có rõ ràng và các mẫu được hỗ trợ rõ ràng và hữu ích không

    Chi phí: chi phí là một yếu tố, nhưng nếu bạn đang tạo một Ứng dụng thương mại thực sự sẽ có khách hàng, đây đều là những lựa chọn khả thi. Nếu bạn cho rằng Azure, với một Proc trên một ví dụ "nhỏ" sẽ có giá khoảng 90 đô la một tháng cho việc sử dụng 24x7 ... bạn có thể phục vụ bao nhiêu người dùng trong thời gian đó? Thêm một ví dụ thứ hai để dự phòng ... vẫn không tốn kém nếu lưu lượng truy cập của bạn đảm bảo nó. Nếu không, tại sao bạn ở trên đám mây thay vì ở nhà cung cấp dịch vụ lưu trữ giá rẻ? Các yếu tố chi phí lớn hơn đến trong thời gian của bạn để thực hiện điều này. AWS là một giải pháp của riêng bạn. Đó là rất nhiều để xử lý để có được một giải pháp sẽ ổn định và được quản lý tốt. Azure và GAE có điều đó ra khỏi hộp. Trong suy nghĩ của tôi AWS là đắt nhất do công việc bạn phải đưa vào nó. Bạn có thực sự cần kiểm soát nó ở mức độ chi tiết tốt không? Nếu vậy,

    Khả năng làm những gì bạn muốn: AWS tất cả các cách. Azure là thứ hai, GAE là thứ ba. Không có gì to tát nếu thứ bạn muốn là Java và Python. Biggie nếu bạn muốn thực hiện DB quan hệ hoặc xử lý dữ liệu đa luồng mở rộng trong C ++ (không chắc bây giờ có ai trong số này thực hiện việc này không?).

    Còn tính di động thì sao? Bạn có thể đưa nó trở lại trang trại của riêng bạn sau đó hoặc chuyển nó đến một trang trại đám mây khác không? Chúng đều có thể cầm tay ở một mức độ nào đó.

    Rất nhiều điều để suy nghĩ về ... vẫn đang tìm hiểu về điều này bản thân mình.


    TyphoonAE và AppScale là những công cụ tuyệt vời để chạy các ứng dụng GAE ở nơi khác.

    4

    Nếu bạn cần bắt đầu các trường hợp thủ công để đáp ứng nhu cầu thì đó không phải là một đám mây.

    Azure và EC2 chỉ là các máy chủ ảo với một số dịch vụ ở bên cạnh.

    Cập nhật:

    EC2 và Azure cung cấp cho bạn các tùy chọn để tự động quản lý các phiên bản mới khi tải, nhưng bạn vẫn phải quản lý việc này. Và bạn trả tiền cho các trường hợp đang lên và nhàn rỗi.

    GAE tự động xử lý việc này ngay lập tức và nó chỉ tính phí cho bạn khi mã của bạn đang chạy trong khi yêu cầu.


    1
    Tôi nghĩ Amazon CloudWatch giải quyết vấn đề bắt đầu các trường hợp bổ sung dựa trên lưu lượng truy cập.

    1
    Một trong những bản demo phổ biến nhất tôi từng thấy cho Azure là bản demo khả năng mở rộng nơi họ viết một số mã để đặt ngưỡng để quay hoặc quay xuống nhân viên web dựa trên tải. nó được bao phủ trong các bộ dụng cụ đào tạo của azuer: microsoft.com/doads/en/,

    4

    Đây là một số cân nhắc khác.

    GAE - Xuất hiện cao hơn trên nền tảng dưới dạng ngăn xếp dịch vụ sau đó là AWS và Azure, tất cả lưu lượng truy cập được chuyển qua DNS ghs.google.com của họ, tải động phục vụ trang của bạn thông qua một trong các máy của họ, cho phép họ giữ giá thấp. tỉ lệ là tốt với cách tiếp cận này, Nhược điểm là không có ip tĩnh, dễ bị lọc hoặc chặn. Từ giới hạn ip tĩnh, bạn sẽ không thể thiết lập bất kỳ chứng chỉ https cụ thể nào của trang web.

    AWS và Azure cung cấp cho bạn khá nhiều IP tĩnh và VM chuyên dụng, cho phép các yêu cầu cơ bản như chứng chỉ https. bạn cũng sẽ nhận được hỗ trợ lưu trữ quan hệ. Chi phí cũng cao hơn để phản ánh thực tế VM chuyên dụng này và bạn sẽ mở rộng quy mô cho mỗi VM trong 40 đô la / tháng. lợi thế là vì bạn có một VM cho chính mình, bạn không bị giới hạn trong giới hạn xử lý cpu 30 giây trên GAE và có thể chạy các tác vụ lớn hơn.

    Vì vậy, nếu bạn xem xét cơ sở khách hàng của mình ở các quốc gia được lọc hoặc muốn IP tĩnh thực hiện thiết lập DNS của riêng bạn hoặc có các yêu cầu cần db quan hệ hoặc hơn 30 nhiệm vụ thứ hai. AWS, Azure sẽ thân thiện hơn khi làm việc.


    3

    Nhìn vào các giải pháp mà mỗi dịch vụ đám mây cung cấp và đi theo mô hình lai. Một số vấn đề đòi hỏi một cái búa và những cái khác một tuốc nơ vít. Nhận biết các công cụ của bạn và áp dụng nó cho đúng vấn đề.


    3

    Tôi không đủ danh tiếng để để lại nhận xét cho một trong những câu trả lời ở trên. Sự phù hợp của bất kỳ giải pháp đám mây nào phụ thuộc vào nhiều yếu tố bao gồm nhu cầu và bộ kỹ năng của bạn.

    Tôi có một dự án mạng xã hội yêu cầu cơ sở dữ liệu nosql. AppEngine sẽ là một giải pháp tốt nếu nó có sự hỗ trợ tốt hơn cho các khung khác nhau. Django với bộ điều hợp không liên quan hoạt động trên Python GAE, nhưng tôi thích Rails vì nhiều lý do. Rails3 đã ra mắt được vài tháng và không ai trong cộng đồng hoặc nhóm GAE đã viết một công thức để hỗ trợ nó. Trừ khi bạn có bộ kỹ năng - biết nội bộ của ruby ​​và rails, jruby và GAE - để viết công thức của riêng bạn, bạn sẽ cảm thấy xót xa cho người khác chỉ để lên nền tảng.

    AWS là công việc nhiều hơn nhưng ít nhất bạn có thể có được trên nền tảng với bất kỳ công cụ nào và xử lý nhiều vấn đề về mặt hành chính thay vì là nhà phát triển nội bộ hoặc thay thế cho các quyền lực cao hơn.

    Khiếu nại của tôi về Heroku và EngineYard, đối với các nhà phát triển Ruby, là bí ẩn về quy mô cơ sở dữ liệu. Làm thế nào để họ quy mô?

    Trong trường hợp của tôi, tôi đang chọn giải pháp NoQuery và Mongo dường như là một lựa chọn tốt. MongoMachine dường như là giải pháp được đề xuất cho những người như Heroku hoặc EY nhưng nó rất tốn kém. $ 2,50 / GB lưu trữ? Dung lượng lưu trữ chỉ $ 0,10 GB / tháng trên GAE hoặc EBS.


    1

    Gần đây tôi đã bắt đầu thử nghiệm với Google App Engine và đối với mạng xã hội web tôi tin rằng nó sẽ phục vụ mọi nhu cầu của bạn. Thật dễ dàng để hiểu rõ về nó và có thể được sử dụng với Python hoặc Java. Đúng là nó không cung cấp cho bạn quyền truy cập vào các tệp, nhưng đối với ứng dụng của bạn, GQL (giao diện giống như SQL với cơ sở dữ liệu mà họ cung cấp) có thể sẽ là quá đủ (và nó khá mạnh mẽ).

    Một điều bạn có thể muốn xem xét, đó là một ứng dụng trên GAE có thể sử dụng giao diện cho phép người dùng có Tài khoản Google hoặc tài khoản trên một tên miền sử dụng Google Apps đăng nhập (một phím tắt). Bạn chọn một trong hai. Vì vậy, nếu bạn đã sử dụng Trang web Google Apps, Google App Engine sẽ là một lựa chọn tuyệt vời cho bạn, vì người dùng của bạn sẽ không phải đăng ký tài khoản mới.

    EDIT: Như Arachnid đã chỉ ra, không phải là bạn không thể mã hóa hệ thống đăng nhập của riêng mình. Xin lỗi, nếu tôi làm bạn lo lắng ở đó.

    Đối với hai lựa chọn thay thế khác, tôi chỉ đọc về chúng và không thử nghiệm chúng. Nhưng tôi tin GAE cung cấp một khuôn khổ dễ dàng hơn, từ nghiên cứu của tôi, và như bạn đã đề cập đến giá cả tuyệt vời.

    Trong mọi trường hợp, bạn có thể thử GAE bằng cách sử dụng hạn ngạch miễn phí về không gian và băng thông và xem nó có phù hợp với nhu cầu của bạn không.

    May mắn nhất.


    Nitpick: GQL không phải là cơ sở dữ liệu. GQL là ngôn ngữ truy vấn giống như SQL cho thời gian chạy Python, được viết trên đầu kho dữ liệu. Bạn thậm chí không phải sử dụng nó - còn có API truy vấn.
    Nick Johnson

    Ngoài ra, bạn có thể đăng nhập bất kỳ người dùng nào bạn muốn trong ứng dụng GAE - chỉ là GAE cung cấp lối tắt để sử dụng tài khoản Google.
    Nick Johnson

    Đúng, lựa chọn từ xấu trong cả hai trường hợp, cảm ơn vì đã chỉ ra nó. Sẽ chỉnh sửa nó :)

    BigTable là công cụ lưu trữ dữ liệu của Google và sau khi dành chút thời gian với nó, tôi bắt đầu tự hỏi liệu tôi đã dành toàn bộ sự nghiệp của mình để suy nghĩ rằng SQL RDBMS là điều cần thiết để viết các ứng dụng web. Mô hình lưu trữ BigTable đơn giản, linh hoạt, hiệu suất và có thể mở rộng và hoạt động tốt một cách đáng ngạc nhiên.

    1

    Azure có Windows / SQL là máy chủ "Nền tảng là dịch vụ" và bạn chắc chắn KHÔNG bị mắc kẹt, chỉ cần quay lại Windows / SQL trong trung tâm dữ liệu của riêng bạn (Không có linux, nhưng có, chúng hỗ trợ Java, Python, PHP, Ruby, Tomcat , Apache, v.v.). Giống như Amazon, họ cũng sẽ cung cấp tùy chọn Máy ảo có thể truy cập đầy đủ, vì vậy bạn có thể cài đặt / chạy bất cứ thứ gì bạn muốn.

    Amazon chỉ có Virtual Machine, vì vậy theo tôi, bạn vẫn phải loay hoay, vá lỗi, cấp phép, bảo mật, v.v ... Loại đánh bại lợi ích của việc chuyển sang đám mây theo ý kiến ​​của tôi. Bạn vừa chuyển một cái gì đó từ trung tâm dữ liệu của bạn sang một trung tâm khác.

    Google không có cơ sở dữ liệu quan hệ và bạn sẽ bị mắc kẹt. Chúng thực sự chỉ phục vụ cho các nhà phát triển Python và một số hỗ trợ hạn chế cho Java. Theo tôi, họ thực sự không phải là người chơi trong không gian đám mây.


    4
    Jeff - đã đào tạo các đối tác của Microsoft trên SQL Server 2008, tôi chắc chắn rất thích và quen thuộc với các lợi ích của ngăn xếp Windows / SQL, nhưng tôi rất khó để đồng ý rằng một trong số đó là ỔN ĐỊNH với BigTable của Google. Có một nửa tá thư viện tốt bao bọc API BigTable, phơi bày nó như mọi thứ từ RDBMS psuedo đến một silo tài liệu được lập chỉ mục. BigTable đã được thiết kế để mở rộng quy mô trên nhiều máy chủ (Google nhận thấy điểm mồ hôi là 1.500 mỗi cụm), đó là một kỳ công mà SQL đơn giản là không thể làm tốt.

    1

    Một điều không được đề cập ở đây, đó là những gì mà bất cứ ai cũng xem xét về "Bus dịch vụ Windows Azure AppFoven & ACS" bên cạnh cái tên khủng khiếp ...?

    Nó dường như là một chồng các tính năng tích hợp thực sự mạnh mẽ sẽ khiến Azure trở nên hấp dẫn từ góc độ của bất kỳ doanh nghiệp nào khi đầu tư vào cơ sở hạ tầng.


    Có, nhưng mặt trái là Microsoft đã chính thức nói "Không" với dịch vụ lưu trữ Azure tại chỗ cho các doanh nghiệp, điều này làm giảm sự hấp dẫn của xe buýt.

    1
    Mặc dù đúng về tên, điều đó không đúng trong thực tế, Microsoft cung cấp một ngăn xếp đám mây riêng rất hấp dẫn với Hyper-V (miễn phí) và những thứ như Systems Center & InTune, đó không phải là "Azure". Nếu bạn muốn rằng sẽ sớm có tùy chọn "Thiết bị Azure" cho bên thứ 3, nhưng bạn phải khá lớn để biện minh cho các chi phí đó. Tôi nghe nói bạn cần hỗ trợ tối thiểu khoảng 1000 nút, vì vậy, nhiều hơn cho chủ sở hữu Trung tâm dữ liệu.

    0

    Sau khi thử nghiệm Amazon EC2 một thời gian và gặp một số chậm trễ, tôi đã bắt đầu nghiên cứu Google Apps trong khi thử nghiệm do chi phí. Tôi thích Erlang là ngôn ngữ phát triển nhưng có thể giao dịch với Python, vì vậy đó không phải là yếu tố quyết định. Khi tôi thấy không có IP tĩnh, đó là. Ngoài ra, toàn bộ phần về việc nó được nâng lên trên stack khiến tôi hơi lo lắng về hiệu suất.

    Tôi ước AWS rẻ hơn, nhưng cho đến khi Google cung cấp IP tĩnh và tốt nhất là các ngôn ngữ bổ sung như Scala, JRuby và Erlang, sự lựa chọn rõ ràng đối với tôi: AWS . Hai ngôn ngữ đầu tiên cũng phải đơn giản, cả hai đều dựa trên JVM. Thậm chí có thể đã được thực hiện thông qua các công việc xung quanh, vì tôi dường như nhớ đọc một cái gì đó về điều đó.


    Để trở thành mô phạm, bạn có thể chạy Scala, JRuby và thậm chí Clojure trên Máy ứng dụng vì tất cả đều là JVM dưới mui xe. Bây giờ, có dễ sử dụng các ngôn ngữ này hay không là một câu chuyện khác ...
    Chris Smith

    0

    Các bạn tôi nghĩ ngoài việc chỉ nghĩ về nền tảng mà nó hỗ trợ so sánh nên dựa trên Khả năng mở rộng, Dễ truy cập, Đa năng (về mặt triển khai), có thể phù hợp với các nền tảng lưu trữ khác nhau, có hiệu quả kinh tế tương đương cho trường hợp kinh doanh, có nhiều giải pháp cho doanh nghiệp các ứng dụng (viz. lưu trữ, phân phối, băng thông, chính sách cấp phép, v.v.), theo dõi độ tin cậy của hồ sơ về chất lượng dịch vụ, Kiểm toán bảo mật, Tính minh bạch trong thanh toán cũng như chi phí, v.v. Nếu bạn nhìn vào tất cả các số liệu trên tôi cảm thấy điểm AWS ở trên . Tôi đang quản lý 10 tài khoản sản xuất trên AWS kể từ 2 năm và đồng thời, công ty / đơn vị kinh doanh có thể đáp ứng nhu cầu về khả năng mở rộng rất lớn của khách hàng .... Không nghi ngờ gì về AWS, người ta cần duy trì cơ sở hạ tầng, Cập nhật (nếu có / nếu yêu cầu), bảo mật, vv Nhưng bạn có tất cả các công cụ có sẵn trên thị trường / mạng một cách tự do. Các tài nguyên CNTT hiện có cũng có thể duy trì tất cả các cơ sở hạ tầng trên AWS.

    Azure chắc chắn có IDE tích hợp với VS 2010, nhưng chi phí thực tế của bất kỳ đám mây nào sẽ bắt đầu sau khi triển khai thành công ứng dụng (nền tảng để triển khai). Vẫn còn một chặng đường dài để trưởng thành để giải quyết các kịch bản sản xuất có thể mở rộng / triển khai theo thời gian thực ....... Như mọi người đều biết MS đóng nhiều chương trình nghị sự ẩn về chi phí .. rất khó để đưa ra các chi phí phát sinh hoặc sẽ phát sinh (trong khi gửi đi ước tính).

    GAE rất cụ thể cho các ứng dụng Python / Java. Nỗ lực rất lớn (cả về tài nguyên + chi phí) trong việc đưa ứng dụng viết lại (hiện có), thử nghiệm, triển khai, v.v.

    Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
    Licensed under cc by-sa 3.0 with attribution required.