Phản hồi về việc sử dụng Google App Engine? [đóng cửa]


125

Tìm cách để làm một dự án phụ rất nhỏ, nhanh chóng. Tôi thích thực tế là Google App Engine đang chạy trên Python với Django được tích hợp ngay - cho tôi một cái cớ để thử nền tảng đó ... nhưng câu hỏi của tôi là:

Có ai đã sử dụng công cụ ứng dụng cho bất cứ điều gì khác ngoài vấn đề đồ chơi chưa? Tôi thấy một số ứng dụng ví dụ tốt ngoài đó, vì vậy tôi sẽ cho rằng điều này là đủ tốt cho thỏa thuận thực sự, nhưng muốn nhận được một số phản hồi.

Bất kỳ ghi chú thành công / thất bại khác sẽ là tuyệt vời.


8
nên là wiki cộng đồng
SilentGhost

Câu trả lời:


63

Tôi đã dùng thử công cụ ứng dụng cho ứng dụng đồng hồ động đất nhỏ của mình http://quakewatch.appspot.com/

Mục đích của tôi là để xem các khả năng của công cụ ứng dụng, vì vậy đây là những điểm chính:

  1. mặc định nó không xuất hiện với Django, nó có khung web riêng, pythonic có bộ điều phối URL như Django và nó sử dụng các mẫu Django Vì vậy, nếu bạn có Django exp. bạn sẽ thấy nó dễ sử dụng
  2. Bạn không thể thực hiện bất kỳ quy trình chạy dài nào trên máy chủ, những gì bạn làm là trả lời yêu cầu và sẽ nhanh chóng nếu không appengine sẽ giết nó. Vì vậy, nếu ứng dụng của bạn cần nhiều ứng dụng xử lý phụ trợ thì không phải là cách tốt nhất nếu không bạn sẽ phải xử lý trên một máy chủ của riêng bạn
  3. Ứng dụng quakewatch của tôi có tính năng đăng ký, điều đó có nghĩa là tôi phải gửi email các trận động đất mới nhất khi chúng xảy ra, nhưng tôi không thể chạy quy trình nền trong công cụ ứng dụng để theo dõi giải pháp trận động đất mới ở đây là sử dụng dịch vụ phần thứ ba như pingablity.com. kết nối với một trong những trang của bạn và thực thi trình đăng ký email nhưng ở đây bạn cũng sẽ phải lưu ý rằng bạn không dành nhiều thời gian ở đây hoặc chia nhỏ nhiệm vụ thành nhiều phần
  4. Nó cung cấp cho Django khả năng mô hình hóa nhưng phụ trợ hoàn toàn khác nhau nhưng đối với một dự án mới thì không thành vấn đề.

Nhưng nhìn chung, tôi nghĩ rằng nó là tuyệt vời để tạo các ứng dụng không cần xử lý nền.

Chỉnh sửa: Bây giờ hàng đợi tác vụ có thể được sử dụng để chạy xử lý hàng loạt hoặc tác vụ theo lịch trình

Chỉnh sửa: sau khi làm việc / tạo một ứng dụng thực sự trên GAE trong một năm, bây giờ ý kiến ​​của tôi là trừ khi bạn đang tạo một ứng dụng cần mở rộng tới hàng triệu triệu người dùng, đừng sử dụng GAE. Duy trì và thực hiện các tác vụ tầm thường trong GAE là vấn đề đau đầu do tính chất phân tán, để tránh lỗi vượt quá thời hạn, đếm các thực thể hoặc thực hiện các truy vấn phức tạp đòi hỏi mã phức tạp, vì vậy ứng dụng phức tạp nhỏ phải bám vào LAMP.

Chỉnh sửa: Các mô hình nên được thiết kế đặc biệt xem xét tất cả các giao dịch bạn muốn có trong tương lai, bởi vì các thực thể chỉ trong cùng một nhóm thực thể có thể được sử dụng trong một giao dịch và nó khiến quá trình cập nhật hai nhóm khác nhau trở thành cơn ác mộng, ví dụ như chuyển tiền từ user1 sang user2 trong giao dịch là không thể trừ khi chúng ở cùng một nhóm thực thể, nhưng làm cho chúng cùng một nhóm thực thể có thể không tốt nhất cho mục đích cập nhật thường xuyên .... hãy đọc http://blog.notdot.net/2009/9/Distribution-Transilities- trên ứng dụng


6
Bây giờ quy trình hàng loạt có thể được chạy trên GAE
Anurag Uniyal

2
Kiểm tra API Python hàng đợi nhiệm vụ mới trong tài liệu App-Engine.
Jason Rikard

11
Phần lớn thông tin này đã lỗi thời - Django 0.96 hiện được tích hợp vào GAE kể từ ngày 17 tháng 7 năm 2009.
ine

3
Djanjo 1.0.x cũng được đưa vào GAE ngay bây giờ. Bạn có thể chọn phiên bản nào của Django mà bạn muốn.
Laurent

5
Chỉ cần một bản cập nhật khác, Django 1.1 hiện đã có sẵn với GAE cũng như các phiên bản trước đây.
SingleNegationElimination

36

Tôi đang sử dụng GAE để lưu trữ một số ứng dụng có lưu lượng truy cập cao. Giống như theo thứ tự 50-100 req / giây. Thật tuyệt, tôi không thể giới thiệu nó đủ.

Kinh nghiệm trước đây của tôi về phát triển web là với Ruby (Rails / Merb). Học Python rất dễ. Tôi đã không gây rối với Django hoặc Pylons hoặc bất kỳ khuôn khổ nào khác, chỉ bắt đầu từ các ví dụ GAE và xây dựng những gì tôi cần từ các thư viện webapp cơ bản được cung cấp.

Nếu bạn đã quen với tính linh hoạt của SQL, kho dữ liệu có thể mất một số thời gian để làm quen. Không có gì quá đau thương! Sự điều chỉnh lớn nhất là di chuyển ra khỏi THAM GIA. Bạn phải rũ bỏ ý tưởng rằng bình thường hóa là rất quan trọng.

Bến


23

Một trong những lý do thuyết phục mà tôi đã gặp khi sử dụng Google App Engine là sự tích hợp của nó với Google Apps cho miền của bạn. Về cơ bản, nó cho phép bạn tạo các ứng dụng web được quản lý, tùy chỉnh bị giới hạn trong thông tin đăng nhập (được kiểm soát) trong miền của bạn.

Hầu hết kinh nghiệm của tôi với mã này là xây dựng một ứng dụng theo dõi thời gian / nhiệm vụ đơn giản. Công cụ mẫu rất đơn giản và tạo ra một ứng dụng nhiều trang rất dễ tiếp cận. Api nhận thức đăng nhập / người dùng cũng hữu ích tương tự. Tôi đã có thể tạo một mô hình trang công khai / trang riêng mà không có quá nhiều vấn đề. (một người dùng sẽ đăng nhập để xem các trang riêng tư. Một người dùng ẩn danh chỉ được hiển thị trang công khai.)

Tôi vừa mới vào phần kho dữ liệu của dự án thì tôi bị cuốn vào "công việc thực sự".

Tôi đã có thể hoàn thành rất nhiều việc (vẫn chưa hoàn thành) trong một khoảng thời gian rất ngắn. Vì tôi chưa bao giờ sử dụng Python trước đây, điều này đặc biệt dễ chịu (cả hai vì đây là ngôn ngữ mới đối với tôi và cũng vì sự phát triển vẫn nhanh chóng mặc dù ngôn ngữ mới). Tôi chạy vào rất ít khiến tôi tin rằng tôi sẽ không thể hoàn thành nhiệm vụ của mình. Thay vào đó tôi có một ấn tượng khá tích cực về chức năng và tính năng.

Đó là kinh nghiệm của tôi với nó. Có lẽ nó không đại diện cho nhiều hơn một dự án đồ chơi chưa hoàn thành, nhưng nó đại diện cho một thử nghiệm có hiểu biết về nền tảng này và tôi hy vọng điều đó sẽ giúp ích.


Gần như giống hệt hoàn cảnh của tôi - một phần ngoài "công việc thực tế" nhưng vẫn là thứ tôi cần làm và có chức năng ở cuối.
agartzke

Tương tự ở đây. Ngoài ra, điểm cộng lớn là việc cài đặt môi trường phát triển rất nhanh chóng (bạn đang mã hóa trong vòng một phút). Điều tương tự cho việc triển khai.
Jilles

12

Ý tưởng "App Engine chạy Django" là một chút sai lệch. App Engine thay thế toàn bộ lớp mô hình Django, vì vậy hãy chuẩn bị dành thời gian để làm quen với kho dữ liệu của App Engine, đòi hỏi một cách khác để mô hình hóa và suy nghĩ về dữ liệu.


Điểm hay - có vẻ như mặc định nó chiếm lấy khuôn mẫu của Django, nhưng không nhất thiết là phần còn lại của nó.
agartzke

7

Tôi đã sử dụng GAE để xây dựng http://www.muspy.com

Đó là một chút nhiều hơn một dự án đồ chơi nhưng cũng không quá phức tạp. Tôi vẫn phụ thuộc vào một vài vấn đề được Google giải quyết, nhưng phát triển tổng thể trang web là một trải nghiệm thú vị.

Nếu bạn không muốn giải quyết các vấn đề về lưu trữ, quản trị máy chủ, v.v., tôi chắc chắn có thể khuyên bạn nên làm điều đó. Đặc biệt là nếu bạn đã biết Python và Django.


7

Tôi nghĩ rằng App Engine khá tuyệt vời cho các dự án nhỏ vào thời điểm này. Có rất nhiều điều để nói về việc không bao giờ phải lo lắng về việc lưu trữ. API cũng thúc đẩy bạn theo hướng xây dựng các ứng dụng có thể mở rộng, đây là cách làm tốt.

  • app-engine-patch là một lớp tốt giữa Django và App Engine, cho phép sử dụng ứng dụng auth và hơn thế nữa.
  • Google đã hứa một mô hình SLA và giá cả vào cuối năm 2008.
  • Yêu cầu phải hoàn thành trong 10 giây, yêu cầu phụ cho các dịch vụ web được yêu cầu hoàn thành trong 5 giây. Điều này buộc bạn phải thiết kế một ứng dụng nhanh, nhẹ, giảm tải xử lý nghiêm trọng cho các nền tảng khác (ví dụ: dịch vụ lưu trữ hoặc ví dụ EC2).
  • Nhiều ngôn ngữ sẽ đến sớm! Google sẽ không nói mặc dù :-). Tiền của tôi là trên Java tiếp theo.

kể từ tháng 2 năm 2009, nhiều hạn chế nêu trên đã được nới lỏng.
husayt

3
Nếu ai đó có thể chỉnh sửa câu trả lời này, thật tuyệt khi phản ánh rằng Java thực sự là ngôn ngữ tiếp theo khả dụng.
JasonSmith

1
@jhs Nhận xét của bạn làm điều đó độc đáo!
chiều

Và ngôn ngữ Go cũng được hỗ trợ!
davewasthere

6

Câu hỏi này đã được trả lời đầy đủ. Cái nào tốt. Nhưng một điều có lẽ là đáng nói. Công cụ ứng dụng google có một plugin cho ide nhật thực, đó là một niềm vui để làm việc.

Nếu bạn đã thực hiện sự phát triển của mình với nhật thực, bạn sẽ rất hạnh phúc về điều đó.

Để triển khai trên trang web của công cụ ứng dụng google, tất cả những gì tôi cần làm là nhấp vào một nút nhỏ - với logo máy bay - siêu.


4

Hãy nhìn vào trò chơi sql , nó rất ổn định và thực sự đã đẩy giới hạn lưu lượng tại một thời điểm để nó bị điều chỉnh bởi Google. Tôi không thấy gì ngoài tin tốt về App Engine, ngoài việc lưu trữ ứng dụng của bạn trên máy chủ mà người khác kiểm soát hoàn toàn.


trò chơi sql đã chuyển từ Google App Engine sang một máy chủ riêng.
systempuntoout

4

Tôi đã sử dụng GAE để xây dựng một ứng dụng đơn giản chấp nhận một số tham số, định dạng và gửi email. Nó cực kỳ đơn giản và nhanh chóng. Tôi cũng đã thực hiện một số điểm chuẩn hiệu suất trên kho dữ liệu GAE và dịch vụ memcache ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ). Nó không phải là nhanh. Ý kiến ​​của tôi là GAE là nền tảng nghiêm túc thực thi phương pháp nhất định. Tôi nghĩ rằng nó sẽ phát triển đến nền tảng thực sự có thể mở rộng, nơi mà các thực tiễn xấu đơn giản là không được phép.


4

Tôi đã sử dụng GAE cho trang web chơi trò chơi flash của mình, Bearded Games . GAE là một nền tảng tuyệt vời. Tôi đã sử dụng các mẫu Django dễ dàng hơn nhiều so với PHP ngày xưa. Nó đi kèm với một bảng quản trị tuyệt vời, và cung cấp cho bạn nhật ký thực sự tốt. Kho dữ liệu khác với cơ sở dữ liệu như MySQL, nhưng nó dễ làm việc hơn nhiều. Xây dựng trang web rất dễ dàng và đơn giản và họ có rất nhiều lời khuyên hữu ích trên trang web.


3

Tôi đã sử dụng GAE và Django để xây dựng một ứng dụng Facebook. Tôi đã sử dụng http://code.google.com.vn/p/app-engine-patch làm điểm xuất phát của mình vì nó có hỗ trợ Django 1.1. Tôi đã không thử sử dụng bất kỳ lệnh Manage.txt nào vì tôi cho rằng chúng không hoạt động, nhưng tôi thậm chí không xem xét nó. Ứng dụng này có ba mô hình và cũng sử dụng pyfacebook, nhưng đó là mức độ phức tạp. Tôi đang trong quá trình xây dựng một ứng dụng phức tạp hơn nhiều mà tôi bắt đầu viết blog trên http://brianyamabe.com .


Tôi bắt đầu sử dụng Manage.py để chạy máy chủ và cũng để chạy một số bài kiểm tra đơn vị. Chạy máy chủ hoạt động tốt, nhưng vì ứng dụng của tôi chạy như một ứng dụng Facebook, nó không hữu ích lắm (tôi cần một máy chủ được lưu trữ mà Facebook tham khảo). Kiểm tra đơn vị cũng làm việc và nó thậm chí làm việc với đồ đạc. Tuy nhiên, tôi không thể có được đồ đạc tham chiếu các mô hình khác để làm việc. Tôi vẫn chưa biết liệu đó có phải là sự cố với thiết bị của tôi hay sự cố với bản vá ứng dụng động cơ.
byamabe
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.