이 질문에 대해 저를 괴롭히는 것은 당신이 그것을 말하고 결정적인 숫자를 모으기 위해 "사실"을 가지고 있다는 것입니다.
사실 Facebook, Twitter 또는 Tumblr의 기능을 복제하는 App Engine 앱을 개발할 수 있습니다. 그리고 앱이 제대로 작성되었다고 가정하면 수억 명의 사용자를 지원하도록 확장 될 수 있습니다. 원하지 않는 주된 이유는 App Engine에서 해당 크기의 서비스를 실행하는 비용입니다.
또한 나열된 제한 사항으로 인해 그러한 앱을 개발하지 못하는 방법을 알 수 없습니다.
HTTP 요청 / 응답
- 최대 요청 크기 : 10MB-잘못된 32MB
- 최대 응답 크기 : 10MB-잘못된 32MB
-10MB보다 큰 페이지를 자주 전달해야하는 소셜 앱을 개발하는 경우 아마도 잘못된 것일 수 있습니다. 또한 32MB보다 큰 콘텐츠를 제공해야하는 경우 최대 2GB의 파일에 blobstore를 사용할 수 있습니다.
- 파일 시스템에 액세스 할 수 없습니다. (파일 시스템에 업로드 저장을 잊어 버렸습니다)-잘못되었습니다. 로컬 파일 시스템에서 읽고 파일을 Blobstore에 업로드하고 읽고 쓸 수 있습니다.
-Facebook, Twitter 또는 Tumblr가 사용자 업로드를 가져 와서 폴더로 복사하는 방법은 없습니다. 별일 아니다.
- 모든 요청은 10 분 이내에 응답해야합니다. 그렇지 않으면 GAE에서 DeadlineExceededException-오류가 발생합니다. 실제로 30 초입니다.
-사용자의 요청에 결과를 전달하기 위해 30 초 이상이 필요한 경우 잘못된 작업 일 수 있습니다.
- 각 cron 작업은 30 초 이내에 실행되어야합니다. 10 분입니다.
-긴 작업을 10 분 단위로 나눌 수없는 경우 A : 아마 잘못하고 B : 이제 해당 작업을 백엔드 인스턴스로 옮길 수 있습니다. 요청에는 시간 제한이 없습니다.
-외부 API에 대한 사용자의 요청이 10 초 이상 걸리는 경우 사용자에게 다시 시도하도록 지시하는 것이 좋습니다. 사용자 요청이 아닌 경우 API가 응답 할 때까지 작업을 자동으로 다시 시도 할 수 있습니다.
- 클라이언트는 FTP를 통해 GAE에 연결할 수 없습니다 (HTTP 및 HTTPS 만 해당). - 진실
-왜 이것이 문제입니까? 대규모 회사에서 FTP를 통해 변경 사항을 배포한다고 생각하십니까?
- 맞춤 도메인에 대한 https가 없습니다. your-app-id.appspot.com 도메인에만 해당합니다. - 진실.
-로드맵에 있습니다.
- 사용자가 유입되면 "할당량 초과"오류가 발생합니다. 절반 만 참입니다.
-앱 예산을 적절하게 설정하면 할당량 초과 오류가 발생하지 않습니다. Royal Wedding 사이트는 App Engine에서 호스팅되었으며 초당 32,000 건의 요청을 받았습니다. 초과 할당량 오류가 없습니다. 또한 트위터에서 실패 고래를 보거나 Tumblr에서 초과 용량 오류를 본 적이 있습니까? 본질적으로 할당량 초과 오류입니다.
데이터 베이스
- 데이터베이스 개발은 로컬 서버에서 실제 서버와 동일하지 않습니다. -거짓
-랩톱에서 데이터 저장소를 실행하는 것이 App Engine의 클러스터에서 실행하는 것보다 느리면 true, 그렇지 않으면 true가 아닙니다.
-대부분의 개발자는 db 필터를 사용하여 데이터 스토어를 쿼리합니다. 또한, MySQL은 "SQL. Nothing else"를 허용한다고 말할 수 있습니다.
- 1000 개가 넘는 레코드를 검색 할 수있는 쿼리가 없습니다 (클라이언트가 한 번의 클릭으로 오프라인으로 전환 할 수 있도록하려면 심각하게 빠짐)-False.
-1000 레코드 한도는 오래 전에 해제되었습니다. 또한 Facebook, Twitter 또는 Tumblr에서 렌더링하기 위해 1000 개 이상의 레코드가 필요한 사용자 관련 페이지를 표시하십시오.
- 작업을 수행하기 위해 대량의 레코드에 선형으로 액세스해야하는 경우 운이 나쁘다 (Google 시스템은 대량으로 클러스터 됨)
-당신이 여기서 무엇을 받고 있는지 잘 모르겠습니다. 대부분의 사람들은 Google의 대규모 클러스터 속도를 시스템의 큰 장점으로 생각합니다.
-갑판에있는 기능입니다. 대부분의 대규모 사이트는 자체 텍스트 검색 인덱싱을 수행하지 않습니다.
- 2 개의 테이블을 조인 할 수 없습니다. - 진실.
-App Engine 개발자는 단일 대규모 다중 조인 SQL 쿼리에서 여러 개의 작은 개별 쿼리로 생각을 조정하거나 조인이 필요하지 않도록 데이터를 비정규 화해야합니다.
-번역 / 인용 필요
-단일 앱의 인덱스 수에는 제한이 있습니다. 나는 학술 연구 응용 프로그램이 그것을 명중하는 것을 보았습니다.
- 엔티티는 색인에 최대 5000 개의 특성 값을 가질 수 있습니다.-True
-누군가 친구가 5000 명을 초과하면 친구 그룹에 두 개의 엔티티가 필요합니다.
- 양식의 키 이름
__*__
(두 개의 밑줄로 시작 및 끝)은 예약되어 있으므로 애플리케이션에서 사용해서는 안됩니다. - 진실
-그런데 뭐?
- 키 이름은 500 바이트로 제한됩니다 (UTF-8로 인코딩되었습니다)-True
-다시, 그래서 무엇? 키 이름은 소설을 저장하기위한 것이 아니라 개체를 고유하게 식별하기위한 것입니다.
언어
- python 또는 java 또는 Go (다른 언어는이 언어로 번역해야 함)-절반 참
-실제로 PHP 및 JRuby를 포함하여 JVM에서 실행되는 모든 언어를 실행할 수도 있습니다. 그래도 왜 문제인지 잘 모르겠지만 Python과 Java는 사용 가능한 도구, 자습서 및 숙련 된 프로그래머가 많은 강력한 두 언어입니다.
서버 문제
- 고정 IP 없음 (타사 API를 호출하는 조절 및 할당량 문제)-절반 참
-대부분의 타사 API는 App Engine을 알고 있거나 Google과 관계가 있습니다. 트위터가 실수로 App Engine을 차단 한 후 몇 시간 내에 수정되었습니다.
- 각 응용 프로그램은 3000 개 파일로 제한됩니다.
-웹 응용 프로그램에 3000 개 이상의 코드 파일이 실제로 필요한 경우 zip 가져 오기를 사용할 수 있습니다 (또한 잘못된 작업 일 수 있음).
- 웹 앱을 실행하는 OS 또는 하드웨어를 제어 할 수 없음-True
-App Engine은 서비스 형 플랫폼 입니다. 사람들이 지불하는 OS 또는 하드웨어 서비스에 대해 걱정할 필요가 없습니다. 이것이 App Engine의 주요 장점이며 제한 사항은 아닙니다.