Google App Engine 사용에 대한 의견이 있으십니까? [닫은]


125

매우 작고 빠른 더러운 프로젝트를 수행하려고합니다. Google App Engine이 Django가 내장 된 Python에서 실행되고 있다는 사실이 마음에 듭니다.

장난감 문제 이외의 용도로 앱 엔진을 사용한 사람이 있습니까? 나는 거기에 좋은 예제 앱이 있다는 것을 알았으므로 이것이 실제 거래에 충분하다고 생각하지만 피드백을 얻고 싶어했습니다.

다른 성공 / 실패 노트는 좋을 것입니다.


8
커뮤니티 위키 여야합니다
SilentGhost

답변:


63

내 작은 지진 시계 응용 프로그램 http://quakewatch.appspot.com/에 대한 앱 엔진을 사용해 보았습니다.

내 목적은 앱 엔진의 기능을 확인하는 것이 었으므로 주요 요점은 다음과 같습니다.

  1. Django에는 기본적으로 제공되지 않으며 Pyonic에는 자체 웹 프레임 워크가 있으며 Django와 같은 URL 디스패처가 있으며 Django 템플릿을 사용하므로 Django exp가있는 경우. 당신은 사용하기 쉽다는 것을 알게 될 것입니다
  2. 서버에서 오래 실행되는 프로세스를 실행할 수 없습니다. 요청에 응답하고 빠르게 처리해야합니다. 그렇지 않으면 appengine 이이를 종료합니다. 따라서 앱에 많은 백엔드 처리가 필요한 경우 appengine이 가장 좋은 방법은 아닙니다. 그렇지 않으면 처리해야합니다. 자신의 서버에
  3. 내 quakewatch 앱에는 구독 기능이 있습니다. 최신 Quakes가 발생했을 때 이메일로 보내야한다는 것을 의미하지만, 새로운 quakes 솔루션을 모니터링하기 위해 앱 엔진에서 백그라운드 프로세스를 실행할 수 없습니다. 귀하의 페이지 중 하나에 연결하여 구독 전자 메일러를 실행하지만 여기에서도 많은 시간을 소비하지 않거나 작업을 여러 조각으로 나누지 않도록주의해야합니다.
  4. 장고와 같은 모델링 기능을 제공하지만 백엔드는 완전히 다르지만 새 프로젝트의 경우 중요하지 않습니다.

그러나 전반적으로 많은 백그라운드 처리가 필요없는 앱을 만드는 것이 우수하다고 생각합니다.

편집 : 이제 일괄 처리 또는 예약 된 작업을 실행하는 데 작업 대기열을 사용할 수 있습니다

편집 : 1 년 동안 GAE에서 실제 응용 프로그램을 작업 / 생성 한 후 이제는 백만 및 수백만 사용자로 확장 해야하는 응용 프로그램을 만들지 않으면 GAE를 사용하지 않는 것이 좋습니다. GAE에서 사소한 작업을 유지하고 수행하는 것은 분산 된 특성으로 인해 마감 시간 초과 오류를 피하고 엔터티를 계산하거나 복잡한 쿼리를 수행하기 위해 복잡한 코드가 필요하므로 복잡한 복잡한 응용 프로그램이 LAMP를 고수해야합니다.

편집 : 동일한 엔티티 그룹의 엔티티 만 트랜잭션에 사용할 수 있고 두 개의 서로 다른 그룹을 업데이트하는 프로세스를 악몽으로 만듭니다 (예 : user1에서 user2로 돈을 이체)하기 때문에 미래에 원하는 모든 트랜잭션을 고려하여 모델을 특별히 설계해야합니다. 동일한 엔티티 그룹에 있지 않으면 트랜잭션에서 불가능하지만 동일한 엔티티 그룹으로 만드는 것이 빈번한 업데이트 목적에 적합하지 않을 수 있습니다 .... http://blog.notdot.net/2009/9/Distributed-Transactions- 온앱 엔진


6
이제 배치 프로세스를 GAE에서 실행할 수 있습니다
Anurag Uniyal

2
App-Engine 문서에서 새로운 Task Queue Python API도 확인하십시오.
Jason Rikard

11
이 정보의 대부분은 구식입니다-Django 0.96은 2009 년 7 월 17 일 현재 GAE에 내장되어 있습니다.
ine

3
Djanjo 1.0.x도 GAE에 포함되었습니다. 원하는 장고 버전을 선택할 수 있습니다.
Laurent

5
또 다른 업데이트 인 Django 1.1은 이제 GAE 및 이전 버전과 함께 사용할 수 있습니다.
SingleNegationElimination

36

트래픽이 많은 여러 응용 프로그램을 호스팅하기 위해 GAE를 사용하고 있습니다. 50-100 req / sec의 순서와 같습니다. 좋습니다. 충분히 추천 할 수 없습니다.

웹 개발에 대한 나의 이전 경험은 Ruby (Rails / Merb)에있었습니다. 파이썬을 배우는 것은 쉬웠다. Django 또는 Pylons 또는 다른 프레임 워크를 망설이지 않고 방금 GAE 예제에서 시작하여 제공된 기본 webapp 라이브러리에서 필요한 것을 만들었습니다.

SQL의 유연성에 익숙하다면 데이터 스토어에 익숙해 질 수 있습니다. 너무 외상은 없습니다! 가장 큰 조정은 JOIN에서 벗어나는 것입니다. 정규화가 중요하다는 생각을 없애야합니다.


23

Google App Engine을 사용하게 된 이유 중 하나는 도메인의 Google Apps와의 통합 때문입니다. 기본적으로 도메인의 (제어 된) 로그인으로 제한되는 사용자 지정 관리 웹 응용 프로그램을 만들 수 있습니다.

이 코드에 대한 대부분의 경험은 간단한 시간 / 작업 추적 응용 프로그램을 작성하는 것이 었습니다. 템플릿 엔진은 단순했지만 여러 페이지 응용 프로그램을 매우 쉽게 사용할 수있게 만들었습니다. 로그인 / 사용자 인식 API도 비슷하게 유용합니다. 너무 많은 문제없이 공개 페이지 / 개인 페이지 패러다임을 만들 수있었습니다. (사용자는 개인 페이지를보기 위해 로그인합니다. 익명 사용자는 공개 페이지 만 표시했습니다.)

"실제 작업"을 위해 프로젝트를 중단했을 때 프로젝트의 데이터 저장소 부분으로 들어가고있었습니다.

나는 아주 적은 시간에 많은 것을 성취 할 수있었습니다. 필자는 이전에 파이썬을 사용한 적이 없었기 때문에 특히 즐거웠습니다 (둘 다 새로운 언어였으며 새로운 언어에도 불구하고 개발이 여전히 빨 랐기 때문에). 나는 작은 일이있어서 나는 내 임무를 수행 할 수 없을 것이라고 믿게되었다. 대신 기능과 기능에 대해 상당히 긍정적 인 인상을 받았습니다.

그것은 나의 경험이다. 어쩌면 완공되지 않은 장난감 프로젝트 이상을 나타내는 것은 아니지만 플랫폼에 대한 시험판을 나타내는 것일 수 있으므로 도움이 되길 바랍니다.


"실제 작업"을 제외하고 제 상황과 거의 동일하지만 여전히해야 할 일과 기능이 필요한 부분입니다.
agartzke

여기도 마찬가지입니다. 또한 개발 환경 설치가 매우 간단하다는 장점이 있습니다 (1 분 내에 코딩). 배포에서도 마찬가지입니다.
Jilles

12

"장고를 실행하는 App Engine"아이디어는 약간 오해의 소지가 있습니다. App Engine은 전체 Django 모델 레이어를 대체하므로 데이터에 대한 다른 모델링 및 사고 방식이 필요한 App Engine의 데이터 저장소에 적응하는 데 시간을 할애 할 수 있도록 준비하십시오.


좋은 지적-기본적으로 장고의 템플릿을 사용하지만 나머지 부분은 아닙니다.
agartzke

7

GAE를 사용하여 http://www.muspy.com 을 빌드했습니다 .

장난감 프로젝트에 지나지 않지만 지나치게 복잡하지는 않습니다. 저는 여전히 Google이 해결해야 할 몇 가지 문제에 의존하지만 웹 사이트를 개발하는 것은 즐거운 경험이었습니다.

호스팅 문제, 서버 관리 등을 다루고 싶지 않다면 확실히 추천 할 수 있습니다. 특히 파이썬과 장고를 이미 알고 있다면.


7

나는이 시점에서 App Engine이 소규모 프로젝트에 매우 멋지다고 생각합니다. 호스팅에 대해 걱정할 필요가 없다는 말이 많이 있습니다. 이 API는 또한 확장 가능한 앱을 개발하는 방향으로 나아가도록하는 것이 좋습니다.

  • app-engine-patch 는 Django와 App Engine간에 좋은 계층으로, 인증 앱 등을 사용할 수 있습니다.
  • Google은 2008 년 말까지 SLA 및 가격 책정 모델을 약속했습니다.
  • 요청은 10 초 안에 완료되어야하고 웹 서비스에 대한 하위 요청은 5 초 안에 완료되어야합니다. 이를 통해 빠르고 가벼운 응용 프로그램을 설계하고 다른 플랫폼 (예 : 호스팅 서비스 또는 EC2 인스턴스)으로 심각한 처리를 오프로드 할 수 있습니다.
  • 더 많은 언어가 곧 올 것입니다! 구글은 비록 :-)라고 말하지 않을 것입니다. 내 돈은 다음에 자바에 있습니다.

2009 년 2 월 현재 위의 많은 제한이 완화되었습니다.
husayt 2012

3
누군가이 답변을 편집 할 수 있다면 Java가 실제로 사용 가능한 다음 언어임을 반영하는 것이 좋습니다.
JasonSmith

1
@jhs 귀하의 의견은 훌륭하게 수행됩니다!
오후

그리고 Go 언어도 지원됩니다!
davewasthere는

6

이 질문은 완전히 답변되었습니다. 어느 것이 좋니. 그러나 한 가지 언급 할 가치가 있습니다. Google 앱 엔진에는 일식을위한 플러그인이 있습니다.

이미 이클립스로 개발을한다면 너무 행복 할 것입니다.

Google 앱 엔진의 웹 사이트에 배포하려면 비행기 로고가있는 작은 버튼 하나만 클릭하면됩니다.


4

sql 게임을 살펴보십시오. 매우 안정적이며 실제로 트래픽 제한을 한 지점에서 밀어서 Google에 의해 제한되었습니다. 다른 사람이 완전히 제어하는 ​​서버에서 앱을 호스팅하는 것 외에 App Engine에 대한 좋은 소식은 없습니다.


SQL 게임이 Google App Engine에서 개인 서버로 이동했습니다.
systempuntoout

4

나는 GAE를 사용하여 일부 매개 변수, 형식을 수락하고 전자 메일을 보내는 간단한 응용 프로그램을 작성했습니다. 매우 간단하고 빠릅니다. 또한 GAE 데이터 저장소 및 memcache 서비스 ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ) 에 대한 성능 벤치 마크를 만들었습니다 . 그렇게 빠르지는 않습니다. 내 의견은 GAE가 특정 방법론을 시행하는 심각한 플랫폼이라는 것입니다. 나는 그것이 나쁜 관행이 단순히 허용되지 않는 진정으로 확장 가능한 플랫폼으로 발전 할 것이라고 생각합니다.


4

플래시 게임 사이트 Bearded Games에 GAE를 사용 했습니다 . GAE는 훌륭한 플랫폼입니다. 예전의 PHP보다 훨씬 쉬운 Django 템플릿을 사용했습니다. 훌륭한 관리자 패널과 함께 제공되며 정말 좋은 로그를 제공합니다. 데이터 저장소는 MySQL과 같은 데이터베이스와는 다르지만 작업하기가 훨씬 쉽습니다. 사이트를 구축하는 것은 쉽고 간단했으며 사이트에 대한 유용한 조언이 많이 있습니다.


3

GAE와 Django를 사용하여 Facebook 응용 프로그램을 만들었습니다. 내가 사용 http://code.google.com/p/app-engine-patch를 가 장고 1.1 지원이 나의 출발점으로. 나는 그것이 작동하지 않을 것이라고 생각했기 때문에 manage.py 명령을 사용하려고 시도하지 않았지만 그것을 조사조차하지 않았습니다. 응용 프로그램에는 세 가지 모델이 있고 pyfacebook도 사용되었지만 복잡성의 정도였습니다. http://brianyamabe.com 에서 블로그를 시작하기 전에 훨씬 더 복잡한 응용 프로그램을 작성하는 중 입니다.


서버를 실행하고 단위 테스트를 실행하기 위해 manage.py를 사용하기 시작했습니다. 서버 실행은 잘 작동하지만 내 응용 프로그램이 Facebook 앱으로 실행되면 유용하지 않습니다 (Facebook에서 참조하는 호스팅 서버가 필요합니다). 단위 테스트도 작동했으며 조명기에서도 작동했습니다. 그러나 다른 모델을 참조하는 조명기를 얻을 수 없었습니다. 여전히 내 조명기 문제 또는 app-engine-patch 문제인지 파악하지 못했습니다.
byamabe 2009
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.