GAE/Java8尝试(第0篇:”关于App Engine”)

请你用中文将下面的句子改写一下,仅提供一个选项:

お題

为了理解 Google App Engine(GAE),试着亲自制作并部署一个应用程序。
首先,总结一下 App Engine 的特点。

动机

我越是阅读GAE的文档,就越觉得“如果是Web应用程序,只要将其部署到GAE上,包括运营方面,应该就足够可以顺利地投入生产运行了吧?”。
虽然我也在学习GKE(k8s),但是如果只用REST而不是gRPC的话,我觉得选择GAE可能在运营成本方面更加轻松。
然而,由于只是稍微做了一些教程,因此实际上是用现成的东西,没有遇到任何障碍,因此不知道实际上自己创建Web应用程序并部署到GAE上进行运营有多么困难(或容易)。
因此,我决定试一试。

假设

スタンダード環境での開発とする。

自動スケーリングタイプを採用する。

关于App Engine

    • PaaSなので、決まった方式に沿って開発すると、あとの面倒(主にインフラ面)はGCP側で見てくれる。

 

    • デフォルトで「[プロジェクトID].appspot.com」のドメインでアクセスできる。(別途調達したドメインを用いることも可能)

 

    オートスケールが早い(Javaで5秒、Goで40ミリ秒)

結構

+----------------------------------------------------------------------------------+
|[App Engine]                                                                      |
|                                                                                  |
| +-------------------------------------+  +-------------------------------------+ |
| |[Service-A]                          |  |[Service-B]                          | |
| |                                     |  |                                     | |
| | +---------------------------------+ |  | +---------------------------------+ | |
| | |[Version-1]                      | |  | |[Version-1]                      | | |
| | |                                 | |  | |                                 | | |
| | | +-------------+ +-------------+ | |  | | +-------------+ +-------------+ | | |
| | | |[Instance-a] | |[Instance-b] | | |  | | |[Instance-e] | |[Instance-f] | | | |
| | | |             | |             | | |  | | |             | |             | | | |
| | | +-------------+ +-------------+ | |  | | +-------------+ +-------------+ | | |
| | |                                 | |  | |                                 | | |
| | +---------------------------------+ |  | +---------------------------------+ | |
| |                                     |  |                                     | |
| | +---------------------------------+ |  | +---------------------------------+ | |
| | |[Version-2]                      | |  | |[Version-2]                      | | |
| | |                                 | |  | |                                 | | |
| | | +-------------+ +-------------+ | |  | | +-------------+ +-------------+ | | |
| | | |[Instance-c] | |[Instance-d] | | |  | | |[Instance-g] | |[Instance-h] | | | |
| | | |             | |             | | |  | | |             | |             | | | |
| | | +-------------+ +-------------+ | |  | | +-------------+ +-------------+ | | |
| | |                                 | |  | |                                 | | |
| | +---------------------------------+ |  | +---------------------------------+ | |
| |                                     |  |                                     | |
| +-------------------------------------|  +-------------------------------------+ |
|                                                                                  |
+----------------------------------------------------------------------------------+

应用引擎

    1GCPプロジェクトに1つだけ存在する。

服务

    • 1 App Engineにつき、プログラミング言語別(Python, Java, Node.js, PHP, Go)に複数のServiceを持てる。

 

    • Service間の通信は、RESTによるやりとりや、Datastore、Memcache、タスクキューにより可能。

 

    オートスケール、負荷分散、インスタンスタイプはService毎に独立して管理される。

版本

    • 1 Serviceにつき、複数のVersionを同時にデプロイできる。

 

    • 各Versionはパーセンテージでリクエストの振り分けができるため、下記が可能。

A/Bテスト
スモークテスト
Blue/Greenデプロイメント
カナリアリリース
デプロイの高速ロールバック

例子

    1 Versionにつき、複数のInstanceがオートスケールする。

注意事项

    • 一度作ると、リージョンの変更は不可

 

    • 1リクエストは60秒以内に処理する必要がある(タスクキューの場合は10分以内)

 

    アプリがファイルを書き込めるパスは「/tmp」のみ

请参考

广告
将在 10 秒后关闭
bannerAds