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

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

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

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



답변

내 작은 지진 시계 응용 프로그램 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- 온앱 엔진


답변

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

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

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


답변

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

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

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

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

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


답변

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


답변

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

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

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


답변

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

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

답변

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

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

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