Membandingkan Extensible Service Proxy dan Cloud Endpoints Framework

Halaman ini menjelaskan perbedaan antara Endpoints Frameworks untuk lingkungan standar App Engine dan Extensible Service Proxy (ESP), yang digunakan di Cloud Endpoints untuk API menggunakan OpenAPI atau gRPC. Untuk mengetahui informasi selengkapnya tentang opsi Endpoint, lihat Memilih opsi Endpoint.

Ringkasan

Cloud Endpoints adalah sistem pengelolaan API yang membantu Anda mengamankan, memantau, menganalisis, dan menetapkan kuota pada API menggunakan infrastruktur yang sama dengan yang digunakan Google untuk API-nya sendiri. Fitur pengelolaan API mencakup autentikasi, kunci API, pemantauan, logging, dan pelacakan yang terlepas dari teknologi yang digunakan untuk menerapkan API. Fungsi pengelolaan API disediakan melalui ESP atau dengan menggunakan Endpoints Frameworks.

Extensible Service Proxy

Di Endpoints untuk OpenAPI dan gRPC, permintaan API diteruskan melalui Extensible Service Proxy, yang memvalidasi kunci dan token autentikasi serta mengirim sinyal (metrik dan log) menggunakan Service Control API. Pemisahan yang disediakan oleh ESP berarti Anda dapat menulis kode backend REST atau gRPC dalam bahasa apa pun, dan Anda dapat menggunakan gRPC atau framework apa pun yang mendukung deskripsi API menggunakan OpenAPI.

  • API menggunakan OpenAPI: Backend API dapat berjalan di lingkungan fleksibel App Engine, Google Kubernetes Engine (GKE), Compute Engine, Kubernetes, atau deployment lokal.

  • API yang menggunakan gRPC: Backend API dapat berjalan di GKE, Compute Engine, Kubernetes, atau deployment lokal.

Arsitektur ESP

Permintaan dikirim di jalur berikut:

  1. Permintaan ke kode Anda diterima dan dikirim ke ESP.
  2. ESP mengirim permintaan pemeriksaan ke Kontrol Layanan.
  3. Jika Anda mengonfigurasi API agar memerlukan kunci API atau autentikasi, Service Control akan memeriksa apakah permintaan diizinkan dan mengirimkan respons kembali ke ESP.
  4. Jika permintaan tidak diizinkan, ESP akan menolak permintaan tersebut. Jika permintaan diizinkan, permintaan akan diteruskan ke kode backend Anda. Bagaimanapun, ESP mencatat informasi tentang permintaan.

Harga pengelolaan API Endpoints bergantung pada jumlah panggilan per bulan.

Framework Endpoints

Untuk backend API yang berjalan di lingkungan standar App Engine, Framework Endpoints tersedia untuk membantu developer memulai penyajian API dengan cepat. Framework Endpoints adalah framework web dan merupakan alternatif untuk Python Flask atau Java Jersey. Endpoints Frameworks terintegrasi dengan Service Control API, yang berarti backend yang menggunakan Endpoints Frameworks tidak perlu berjalan di belakang Extensible Service Proxy.

Framework Endpoints

Jika Anda telah mengaktifkan API Management, permintaan akan dikirim di jalur berikut:

  1. Permintaan ke kode Anda diterima dan dikirim ke modul Pengelolaan Endpoints dalam Framework Endpoints.
  2. Modul Pengelolaan Endpoints mengirimkan permintaan pemeriksaan ke Service Control.
  3. Jika Anda mengonfigurasi API agar memerlukan kunci API atau autentikasi, Service Control akan memeriksa apakah permintaan diizinkan dan mengirimkan respons kembali ke modul Pengelolaan Endpoints.
  4. Jika permintaan tidak diizinkan, modul Pengelolaan Endpoint akan menolak permintaan tersebut. Jika permintaan diizinkan, permintaan tersebut akan diteruskan ke Endpoints Frameworks. Bagaimanapun juga, modul Pengelolaan Endpoints mencatat informasi tentang permintaan.
  5. Endpoints Frameworks merutekan permintaan ke kode backend Anda.

Anda dapat menggunakan Endpoints Frameworks dengan atau tanpa fungsi pengelolaan API. Penggunaan Endpoints Frameworks tanpa fungsi pengelolaan API ditawarkan tanpa biaya. Fungsi pengelolaan API dikenai biaya sesuai dengan halaman harga Endpoints.

Frameworks Endpoints hanya didukung untuk layanan yang berjalan di lingkungan standar App Engine. Di Compute Engine, GKE, lingkungan fleksibel App Engine, atau lingkungan lainnya, layanan Anda harus berjalan di balik ESP.

Jika layanan berjalan di belakang ESP, Anda dapat menulis kode backend dalam bahasa dan framework apa pun, seperti Python Flask, Java Jersey, atau Node.js Express. Di lingkungan tersebut, tidak perlu menggunakan Endpoints Frameworks untuk pengelolaan API.

Langkah berikutnya