Apa perbedaan antara Google App Engine dan Google Compute Engine?

428

Saya bertanya-tanya apa perbedaan antara App Engine & Compute Engine. Adakah yang bisa menjelaskan perbedaannya kepada saya?

Cameron Brown
sumber
35
Tidak jelas bagi saya di beranda mereka. Sangat menyenangkan untuk memilikinya seperti di sini. Halaman StackOverflow ini berhasil untuk saya. Untuk masing-masing miliknya. :)
Mikeumus
10
sepakat. seseorang perlu mengatakan "sudah cukup!" untuk tipe pemasaran ini
Randy L

Jawaban:

468

App Engine adalah Platform-as-a-Service. Ini berarti bahwa Anda hanya menggunakan kode Anda, dan platform melakukan segalanya untuk Anda. Misalnya, jika aplikasi Anda menjadi sangat sukses, App Engine akan secara otomatis membuat lebih banyak instance untuk menangani peningkatan volume.

Baca lebih lanjut tentang App Engine

Compute Engine adalah Infrastruktur sebagai Layanan. Anda harus membuat dan mengonfigurasi mesin virtual Anda sendiri. Ini memberi Anda lebih banyak fleksibilitas dan umumnya lebih murah dibandingkan App Engine. Kekurangannya adalah Anda harus mengelola sendiri aplikasi dan mesin virtual Anda.

Baca lebih lanjut tentang Mesin Hitung

Anda dapat mencampur App Engine dan Compute Engine, jika perlu. Keduanya bekerja dengan baik dengan bagian lain dari Google Cloud Platform .

EDIT (Mei 2016):

Satu perbedaan yang lebih penting: proyek yang berjalan di App Engine dapat menurunkan ke nol contoh jika tidak ada permintaan masuk. Ini sangat berguna pada tahap pengembangan karena Anda dapat pergi selama berminggu-minggu tanpa melewati kuota gratis yang murah hati dari instance-jam. Runtime yang fleksibel (yaitu "VM yang dikelola") memerlukan setidaknya satu instance untuk berjalan secara konstan.

EDIT (April 2017):

Cloud Functions (saat ini dalam versi beta) adalah level selanjutnya dari App Engine dalam hal abstraksi - tidak ada instance! Ini memungkinkan pengembang untuk menyebarkan potongan kode ukuran gigitan yang dijalankan sebagai respons terhadap berbagai peristiwa, yang mungkin termasuk permintaan HTTP, perubahan dalam Penyimpanan Cloud, dll.

Perbedaan terbesar dengan App Engine adalah bahwa fungsinya dihargai per 100 milidetik, sementara mesin virtual App Engine mati hanya setelah 15 menit tidak aktif. Keuntungan lain adalah bahwa Fungsi Cloud dijalankan segera, sementara panggilan ke App Engine mungkin memerlukan mesin virtual baru - dan memulai mesin virtual baru mungkin memakan waktu beberapa detik atau lebih lama (tergantung pada runtime dan kode Anda).

Ini membuat Cloud Functions ideal untuk (a) panggilan langka - tidak perlu membuat instance tetap hidup jika-kalau terjadi sesuatu, (b) beban yang berubah dengan cepat di mana mesin virtual sering berputar dan mati, dan mungkin menggunakan case yang lebih banyak.

Baca lebih lanjut tentang Fungsi Cloud

Andrei Volgin
sumber
7
Jika saya ingin menggunakan via Docker, apa perbedaan (selain harga) antara menggunakan GAE dan GCE?
FullStack
2
Hai, Volgin, bisakah Anda menguraikan alasan mengapa "Mesin Hitung" harganya jauh lebih murah daripada App Engine. Terima kasih
fangzhzh
21
App Engine menawarkan tingkat otomatisasi (yaitu kenyamanan) yang tidak Anda dapatkan di GCE. Dalam 5 tahun menggunakan GAE, saya tidak pernah harus menginstal, menambal, atau mengonfigurasi perangkat lunak apa pun, menyalin disk, dll. Ia juga menawarkan manajemen kapasitas dan kapasitas yang relatif kuat - secara otomatis memutar dan mematikan instance yang diperlukan. Secara keseluruhan, fitur-fitur ini memungkinkan Google untuk membebankan biaya lebih banyak untuk misalnya jam, dan banyak perusahaan dan pengembang individu senang membayar premi ini karena GAE menghemat banyak waktu yang dapat dihabiskan lebih baik untuk meningkatkan aplikasi Anda sendiri atau menghasilkan uang.
Andrei Volgin
7
Google juga menawarkan layanan lain yang disebut: Mesin Kontainer yang berfokus pada buruh pelabuhan dan manajemen kontainer (kubernetes).
Bram
8
Komentar cepat pada "Keuntungan lain adalah Fungsi Cloud segera dieksekusi". Dari pengalaman kehidupan nyata, mereka memiliki kelemahan yang sama dengan cold -awal yang dapat menghasilkan jumlah yang sederhana (a, b) {return a + b} membutuhkan waktu beberapa menit dengan cold-dimulai
Adam
89

Perbedaan mendasar adalah bahwa Google App Engine ( GAE ) adalah Platform sebagai Layanan ( PaaS ) sedangkan Google Compute Engine ( GCE ) adalah Infrastruktur sebagai Layanan ( IaaS ) .

Untuk menjalankan aplikasi Anda di GAE Anda hanya perlu menulis kode Anda dan menyebarkannya ke GAE, tidak ada sakit kepala lainnya. Karena GAE sepenuhnya dapat diskalakan, maka GAE akan secara otomatis mendapatkan lebih banyak instance jika traffic semakin tinggi dan menurunkan instance ketika lalu lintas berkurang. Anda akan dikenakan biaya untuk sumber daya yang benar-benar Anda gunakan , maksud saya, Anda akan ditagih untuk Instance-Hours , Data yang Ditransfer , Penyimpanan dll aplikasi Anda benar-benar digunakan. Tetapi batasannya adalah, Anda dapat membuat aplikasi hanya dengan Python, PHP, Java, NodeJS, .NET, Ruby dan ** Go .

Di sisi lain, GCE menyediakan Anda infrastruktur lengkap dalam bentuk Mesin Virtual . Anda memiliki kontrol penuh atas lingkungan dan runtime VMs itu karena Anda dapat menulis atau menginstal program apa pun di sana. Sebenarnya GCE adalah cara untuk menggunakan Pusat Data Google secara virtual. Di GCE Anda harus mengkonfigurasi infrastruktur secara manual untuk menangani skalabilitas dengan menggunakan Load Balancer .

GAE dan GCE merupakan bagian dari Google Cloud Platform .

Pembaruan: Pada bulan Maret 2014 Google mengumumkan layanan baru di bawah App Engine bernama Managed Virtual Machine . VM yang dikelola menawarkan aplikasi engine aplikasi sedikit lebih fleksibel daripada platform aplikasi, CPU, dan opsi memori. Seperti GCE, Anda dapat membuat lingkungan runtime khusus di VM ini untuk aplikasi engine aplikasi. Sebenarnya VM yang dikelola dari App Engine mengaburkan batas antara IAAS dan PAAS sampai batas tertentu.

Mostafiz Rahman
sumber
1
Dari dokumen mereka, Anda dapat menggunakan VM ke GAE melalui Docker. cloud.google.com/appengine/docs/managed-vms
FullStack
Tampaknya Anda dapat menggunakan Node.js dan Ruby sekarang juga di GAE.
Blaszard
3
VM yang dikelola sekarang disebut App Engine Flexible Environment
killjoy
1
Saya menyebarkan kode saya ke App engine, ketika saya memeriksa konsol saya, saya melihat contoh VM Compute Engine juga ketika memeriksa konsol engine App, saya melihat jejak permintaan servlet HTTP. jadi apakah saya menggunakan mesin aplikasi atau mesin komputasi?
EhsanR
Saya pikir bagian tentang penyimpanan di " ... Anda akan ditagih untuk Instance-Hours, Data yang Ditransfer, Penyimpanan dll aplikasi Anda benar-benar digunakan ..." tentang GAE salah. Contoh GAE (sebagian besar) mudah berubah. Karenanya ketika sebuah instance mengalami shutdown (misalnya jika instance tersebut dibuat sebagai respons terhadap lonjakan lalu lintas, dan sekarang sedang dihapus ketika traffic telah turun), Anda kehilangan semua data yang tersimpan. Oleh karena itu, saya rasa tidak benar untuk menyatakan bahwa Anda mendapatkan "biaya" untuk "penyimpanan" di GAE, meskipun Anda dapat menghubungkan aplikasi Anda di GAE ke produk GCP lain yang menyediakan penyimpanan dan dikenakan biaya untuk nanti, bukan sebagai GAE
Damilola Olowookere
56

Sederhananya: compute engine memberi Anda server yang memiliki kendali penuh / tanggung jawab untuk. Anda memiliki akses langsung ke sistem operasi, dan Anda menginstal semua perangkat lunak yang Anda inginkan, yang biasanya merupakan server web, database, dll ...

Di mesin aplikasi Anda tidak mengelola sistem operasi perangkat lunak apa pun yang mendasarinya. Anda hanya mengunggah kode (Java, PHP, Python, atau Go) dan voila - hanya berjalan ...

App engine menghemat banyak sakit kepala, terutama bagi orang yang tidak berpengalaman tetapi ia memiliki 2 kelemahan signifikan: 1. lebih mahal (tetapi memang memiliki kuota gratis yang menghitung engine tidak) 2. Anda memiliki kontrol lebih sedikit, sehingga hal-hal tertentu tidak mungkin, atau hanya mungkin dalam satu cara tertentu (misalnya menyimpan dan menulis file).

Moshe Shaham
sumber
2
Anda dapat menggunakan VM ke GAE melalui Docker, sehingga Anda dapat mengelola OS dll. Cloud.google.com/appengine/docs/managed-vms
FullStack
3
"itu hanya berjalan", apakah kamu serius? saya pikir saya bukan satu-satunya yang memiliki masalah dengan mengadaptasi kode ke GAE, ketika datang ke file upload atau proses latar belakang
emfi
36

Atau untuk membuatnya lebih sederhana (karena terkadang kami gagal membedakan antara GAE Standard dan GAE Flex):

Compute Engine dianalogikan dengan PC virtual, di mana Anda akan menggunakan database + situs web kecil, misalnya. Anda mengelola semuanya, termasuk kontrol drive disk yang diinstal. Jika Anda menggunakan situs web, Anda bertanggung jawab mengatur DNS dll.

Google App Engine (Standard) seperti folder berpasir baca saja tempat Anda mengunggah kode untuk dieksekusi dan jangan khawatir tentang sisanya (ya: hanya baca - ada satu set perpustakaan yang terpasang untuk Anda dan Anda tidak dapat menggunakan Perpustakaan pihak ke-3 sesuka hati). DNS / Sub-domain dll jauh lebih mudah untuk dipetakan.

Google App Engine (Fleksibel) sebenarnya seperti seluruh sistem file (bukan hanya folder terkunci), di mana Anda memiliki kekuatan lebih dari mesin Standar, misalnya Anda memiliki izin baca / tulis, (tetapi lebih sedikit dibandingkan dengan Mesin Hitung) ). Dalam standar GAE Anda memiliki satu set perpustakaan yang diinstal untuk Anda dan Anda tidak dapat menggunakan perpustakaan pihak ketiga sesuka hati. Di lingkungan Fleksibel Anda dapat memasang pustaka apa pun yang bergantung pada aplikasi Anda, termasuk lingkungan build khusus (seperti Python 3).

Meskipun GAE Standard sangat rumit untuk dihadapi (meskipun Google membuatnya terdengar sederhana), GAE berskala sangat baik ketika ditekan. Ini rumit karena Anda perlu menguji dan memastikan kompatibilitas dengan lingkungan yang terkunci dan memastikan perpustakaan pihak ketiga mana pun yang Anda gunakan tidak menggunakan perpustakaan pihak ketiga mana pun yang tidak Anda sadari yang mungkin tidak berfungsi pada standar GAE. Dibutuhkan waktu lebih lama untuk mengaturnya dalam praktik tetapi bisa lebih bermanfaat dalam jangka panjang untuk penerapan sederhana.

strangetimes
sumber
maksud Anda dengan "read-only", fakta bahwa kita tidak dapat menulis ke file disk?
John Balvin Arias
@ JohnBalvinArias ya, itu adalah kotak pasir hanya-baca. Anda tidak dapat mengakses dunia 'luar', atau menulis ke wadah / disk ini. Ada di sana bagi Anda untuk mengeksekusi kode Anda.
strangetimes
Jadi jika saya dapat menggunakan buruh pelabuhan untuk menginstal s / w di GAE, apakah itu berarti Google mengurus pembuatan / mengalokasikan contoh linux dengan konfigurasi dasar dan kemudian menjalankan buruh pelabuhan di atasnya? Intinya, mesin hitung menambah tanggung jawab tambahan konfigurasi VM. Apakah saya benar?
biksu tua
32

Selain catatan Mesin Aplikasi vs Mesin Hitung di atas daftar di sini juga termasuk perbandingan dengan Google Kubernete Engine dan beberapa catatan berdasarkan pengalaman dengan berbagai aplikasi dari kecil hingga sangat besar. Untuk poin lebih lanjut lihat dokumentasi Google Cloud Platform deskripsi tingkat tinggi fitur di App Engine Standard dan Flex di halaman Memilih Lingkungan Mesin App . Untuk perbandingan lain penerapan App Engine dan Kubernetes lihat pos oleh Daz Wilkin App Engine Flex atau Kubernetes Engine .

App Engine Standard

Pro

  • Sangat ekonomis untuk aplikasi lalu lintas rendah dalam hal biaya langsung dan juga biaya pemeliharaan aplikasi.
  • Penskalaan otomatis cepat. Autoscaling di App Engine didasarkan pada kelas instance ringan F1-F4 .
  • Manajemen versi dan pemisahan lalu lintas cepat dan nyaman. Fitur-fitur ini dibangun ke dalam App Engine (baik Standar dan Flex) secara asli.
  • Manajemen minimal, pengembang hanya perlu fokus pada aplikasi mereka. Pengembang tidak perlu khawatir tentang mengelola VMs secara andal, seperti dalam GCE, atau belajar tentang cluster, seperti dengan GKE.
  • Akses ke Datastore cepat. Ketika App Engine pertama kali dirilis, runtime ditempatkan bersama dengan Datastore. Kemudian Datastore dipisahkan sebagai produk mandiri Cloud Datastore tetapi lokasi bersama App Engine Standard yang melayani dengan Datastore tetap ada.
  • Akses ke Memcache didukung.
  • Kotak pasir App Engine sangat aman. Dibandingkan dengan pengembangan pada GCE atau mesin virtual lainnya, di mana Anda perlu melakukan ketekunan Anda sendiri untuk mencegah mesin virtual diambil alih pada tingkat sistem operasi, kotak pasir App Engine Standard relatif aman secara default.

Cons

  • Umumnya lebih terbatas daripada lingkungan lain. Instans lebih kecil. Meskipun ini bagus untuk autoscaling cepat, banyak aplikasi dapat mengambil manfaat dari instance yang lebih besar, seperti ukuran instance GCE hingga 96 core.
  • Jaringan tidak terintegrasi dengan GCE
  • Tidak dapat menempatkan App Engine di belakang Google Cloud Load Balancer. Terbatas untuk runtime yang didukung: Python 2.7, Java 7 dan 8, Go 1.6-1.9, dan PHP 5.5. Di Jawa, ada beberapa dukungan untuk Servlets tetapi tidak standar J2EE lengkap.

App Engine Flex

Pro

  • Dapat menggunakan runtime khusus
  • Integrasi asli dengan jaringan GCE
  • Manajemen versi dan lalu lintas nyaman, sama dengan Standar
  • Ukuran instance yang lebih besar mungkin lebih cocok untuk aplikasi kompleks besar, terutama aplikasi Java yang dapat menggunakan banyak memori

Cons

  • Integrasi jaringan tidak sempurna - tidak ada integrasi dengan penyeimbang beban internal atau Shared Virtual Private Clouds
  • Akses ke Memcache yang dikelola umumnya tidak tersedia

Mesin Google Kubernetes

Pro

  • Integrasi asli dengan wadah memungkinkan runtime khusus dan kontrol yang lebih besar atas konfigurasi cluster.
  • Mewujudkan banyak praktik terbaik yang bekerja dengan mesin virtual, seperti lingkungan runtime yang tidak dapat diubah dan kemampuan yang mudah untuk memutar kembali ke versi sebelumnya
  • Memberikan kerangka kerja penerapan yang konsisten dan berulang
  • Berdasarkan standar terbuka, terutama Kubernetes, untuk portabilitas antara cloud dan di tempat.
  • Manajemen versi dapat dilakukan dengan kontainer Docker dan Google Container Registry

Cons

  • Pemecahan lalu lintas dan manajemen dilakukan sendiri, mungkin memanfaatkan Istio dan Utusan
  • Beberapa overhead manajemen
  • Beberapa waktu untuk meningkatkan konsep Kubernetes, seperti pod, penyebaran, layanan, masuk, dan ruang nama
  • Perlu mengekspos beberapa IP publik kecuali menggunakan Private Clusters , sekarang dalam versi beta, menghilangkan kebutuhan itu tetapi Anda masih perlu memberikan akses ke lokasi di mana perintah kubectl akan dijalankan.
  • Pemantauan integrasi tidak sempurna
  • Sementara penyeimbangan beban internal L3 didukung secara asli pada Kubernetes Engine, penyeimbangan beban internal L7 adalah do-it-yourself, mungkin meningkatkan Utusan

Hitung Mesin

Pro

  • Mudah ditingkatkan - tidak perlu ditingkatkan di Kubernetes atau App Engine, cukup gunakan kembali apa pun yang Anda ketahui dari pengalaman sebelumnya. Ini mungkin alasan utama untuk menggunakan Compute Engine secara langsung.
  • Kontrol lengkap - Anda dapat memanfaatkan banyak fitur Mesin Hitung secara langsung dan menginstal yang terbaru dari semua barang favorit Anda untuk tetap berada di ujung tombak.
  • Tidak perlu IP publik. Beberapa perangkat lunak lama mungkin terlalu sulit untuk dikunci jika ada yang terbuka pada IP publik.
  • Anda dapat memanfaatkan OS yang Dioptimalkan Wadah untuk menjalankan wadah Docker

Cons

  • Sebagian besar dilakukan sendiri, yang dapat menjadi tantangan untuk dilakukan secara memadai untuk keandalan dan keamanan, meskipun Anda dapat menggunakan kembali solusi dari berbagai tempat, termasuk Cloud Launcher.
  • Lebih banyak overhead manajemen. Ada banyak alat manajemen untuk Mesin Hitung tetapi mereka tidak akan selalu mengerti bagaimana Anda telah menyebarkan aplikasi Anda, seperti yang dilakukan oleh App Engine dan alat pemantauan Mesin Kubernetes.
  • Autoscaling didasarkan pada instance GCE, yang bisa lebih lambat dari App Engine
  • Tendency adalah menginstal perangkat lunak pada contoh snowflake GCE, yang dapat menjadi upaya untuk mempertahankan
alexamies
sumber
19

Seperti yang dijelaskan sebelumnya, Google Compute Engine (GCE) adalah Infrastruktur sebagai layanan (IaaS) sementara Google App Engine (GAE) adalah Platform as a Service (PaaS). Anda dapat memeriksa diagram berikut untuk memahami perbedaannya dengan cara yang lebih baik (Diambil dari dan dijelaskan lebih baik di sini ) -

Jenis Komputasi Awan

Google Compute Engine
GCE adalah layanan penting yang disediakan oleh Google Cloud Platform (GCP) karena sebagian besar layanan GCP menggunakan instance GCE (VM) di bawah lapisan manajemen (tidak yakin mana yang tidak). Ini termasuk App Engine, Cloud Function, Engine Kubernetes (Mesin Container Sebelumnya), Cloud SQL, dll. Mesin virtual GCE adalah unit yang paling dapat disesuaikan di sana dan karenanya hanya boleh digunakan ketika aplikasi Anda tidak dapat berjalan pada layanan GCP lainnya. Sebagian besar waktu orang menggunakan GCE untuk mentransfer aplikasi On-Prem mereka ke GCP, karena itu membutuhkan perubahan minimal. Kemudian, mereka dapat memilih untuk menggunakan layanan GCP lainnya untuk komponen terpisah dari aplikasi mereka.

Google App Engine
GAE adalah layanan pertama yang ditawarkan oleh GCP (Jauh sebelum Google datang ke bisnis cloud). Ini otomatis dari 0 ke contoh tak terbatas (Menggunakan GCE di bawahnya). Itu datang dengan 2 rasa Lingkungan Standar dan Lingkungan Fleksibel.

Standar Lingkungan sangat cepat, turun ke 0 misalnya ketika tidak ada yang menggunakan aplikasi Anda, naik turun dalam hitungan detik dan telah mendedikasikan layanan Google dan perpustakaan untuk caching, otentikasi dll. Peringatan dengan lingkungan Standar adalah bahwa itu sangat ketat karena berjalan di kotak pasir. Anda harus menggunakan runtime yang dikelola hanya untuk bahasa pemrograman tertentu. Tambahan terbaru adalah Node.js (8.x) dan Python 3.x. Runtime lama tersedia untuk Go, PHP, Python 2.7, Java dll.

Lingkungan Fleksibel lebih terbuka karena memungkinkan Anda untuk menggunakan runtimes khusus karena menggunakan wadah buruh pelabuhan. Jadi jika runtime Anda tidak tersedia di runtimes yang disediakan, Anda selalu dapat membuat dockerfile Anda sendiri untuk lingkungan eksekusi. Peringatan dengan itu adalah, itu membutuhkan memiliki setidaknya 1 instance berjalan, bahkan jika tidak ada yang menggunakan aplikasi Anda, ditambah peningkatan atas dan ke bawah memerlukan beberapa menit.

Jangan bingung GAE fleksibel dengan Kubernetes Engine, karena yang terakhir menggunakan Kubernetes aktual dan menyediakan lebih banyak penyesuaian dan fitur. GAE Flex berguna ketika Anda menginginkan wadah stateless dan aplikasi Anda hanya mengandalkan protokol HTTP atau HTTPS. Untuk protokol lain, Kubernetes Engine (GKE) atau GCE adalah satu-satunya pilihan Anda. Periksa jawaban saya yang lain untuk penjelasan yang lebih baik.

cupu
sumber
10

App Engine memberi pengembang kemampuan untuk mengontrol inti Google Compute Engine, serta menyediakan ujung depan yang menghadap web untuk aplikasi pemrosesan data Google Compute Engine.

Di sisi lain, Compute Engine menawarkan manajemen sistem operasi langsung dan lengkap dari mesin virtual Anda. Untuk menyajikan Aplikasi Anda, Anda akan membutuhkan sumber daya, dan Google Cloud Storage sangat ideal untuk menyimpan aset dan data Anda, apa pun yang mereka gunakan. Anda mendapatkan akses data cepat dengan hosting di seluruh dunia. Keandalan dijamin pada 99,95% up-time, dan Google juga menyediakan kemampuan untuk membuat cadangan dan memulihkan data Anda, dan percaya atau tidak, penyimpanan tidak terbatas.

Anda dapat mengelola aset Anda dengan Google Cloud Storage, menyimpan, mengambil, menampilkan, dan menghapusnya. Anda juga dapat dengan cepat membaca dan menulis ke lembar data datar yang disimpan di Penyimpanan Cloud. Berikutnya dalam jajaran Google Cloud adalah BigQuery. Dengan BigQuery, Anda dapat menganalisis sejumlah besar data, kami berbicara jutaan catatan, dalam hitungan detik. Akses ditangani melalui antarmuka langsung, atau Representasi State Transfer, atau antarmuka REST.

Penyimpanan data, seperti yang Anda duga, bukan masalah, dan skala ke ratusan TB. BigQuery dapat diakses melalui sejumlah pustaka klien, termasuk yang untuk Java, .NET, Python, Go, Ruby, PHP, dan Javascript. Sintaks mirip SQL yang disebut NoSQL tersedia yang dapat diakses melalui pustaka klien ini, atau melalui antarmuka pengguna web. Terakhir, mari kita bicara tentang opsi basis data platform Google Cloud, Cloud SQL, dan Cloud Datastore.

Ada perbedaan besar. Cloud SQL untuk database relasional, terutama MySQL, sedangkan Cloud Datastore untuk database non-relasional menggunakan noSQL. Dengan Cloud SQL, Anda memiliki pilihan hosting di AS, Eropa, atau Asia, dengan 100 GB penyimpanan, dan 16 GB RAM per instance basis data.

Cloud Datastore tersedia tanpa biaya untuk instruksi baca / tulis hingga 50 K per bulan dan 1 GB data yang disimpan juga per bulan. Namun, ada biaya jika Anda melebihi kuota ini. App Engine juga dapat bekerja dengan anggota lain yang kurang dikenal, lebih bertarget anggota platform Google Cloud, termasuk Cloud Endpoints untuk membuat backend API, Google Prediction API untuk analisis data dan peramalan tren, atau Google Translate API, untuk output multibahasa.

Meskipun Anda dapat melakukan jumlah yang wajar dengan App Engine sendiri, Ini berpotensi meroket ketika Anda mempertimbangkan kemampuannya untuk bekerja dengan mudah dan efisien dengan sesama layanan platform Google Cloud.

Hassan Azimi
sumber
10

Jika Anda terbiasa dengan layanan populer lainnya:

Google Compute Engine -> AWS EC2

Google App Engine -> Heroku atau AWS Elastic Beanstalk

Fungsi Google Cloud -> Fungsi AWS Lambda

Dave Fort
sumber
7

Saya akan menjelaskannya dengan cara yang masuk akal bagi saya:

  • Compute Engine : Jika Anda orang yang melakukannya sendiri atau memiliki tim TI dan Anda hanya ingin menyewa komputer di cloud yang memiliki OS spesifik (misalnya linux), Anda menggunakan Compute Engine. Anda harus melakukan semuanya sendiri.

  • App Engine : Jika Anda (misalnya) seorang programmer python dan Anda ingin menyewa komputer pra-konfigurasi di cloud yang memiliki Linux dengan server web yang sedang berjalan dan python 3 terbaru dengan modul yang diperlukan dan beberapa plug-in untuk diintegrasikan dengan layanan eksternal lainnya, Anda menggunakan App Engine.

  • Serverless Container (Cloud Run) : Jika Anda ingin menggunakan gambar yang tepat dari lingkungan pengaturan lokal Anda (misalnya: python 3.7 + flask + sklearn) tetapi Anda tidak ingin berurusan dengan server, penskalaan, dll. Anda membuat wadah pada mesin lokal Anda (melalui buruh pelabuhan) dan kemudian menyebarkannya ke Google Run.

  • Serverless Microservice (Cloud Functions) : Jika Anda ingin menulis banyak API (fungsi) yang melakukan pekerjaan tertentu, Anda menggunakan Google Cloud Functions. Anda hanya fokus pada fungsi-fungsi spesifik itu, sisa pekerjaan (server, pemeliharaan, penskalaan, dll.) Dilakukan untuk Anda untuk mengekspos fungsi Anda sebagai layanan microser.

Ketika Anda masuk lebih dalam, Anda kehilangan fleksibilitas tetapi Anda tidak khawatir tentang aspek teknis yang tidak perlu. Anda juga membayar sedikit lebih banyak tetapi Anda menghemat waktu dan biaya (bagian TI): orang lain (google) melakukannya untuk Anda.

Jika Anda tidak peduli tentang penyeimbangan beban, penskalaan, dll., Penting untuk membagi aplikasi Anda menjadi sekelompok layanan web "stateless" yang menulis apa saja yang persisten di penyimpanan terpisah (basis data atau penyimpanan gumpalan). Kemudian Anda akan menemukan betapa hebatnya Cloud Run dan Cloud Functions.

Secara pribadi, saya menemukan Google Cloud Run solusi luar biasa, kebebasan mutlak dalam pengembangan (selama tanpa kewarganegaraan), mengeksposnya sebagai layanan web, meringkas solusi Anda, menyebarkannya dengan Cloud Run. Biarkan google menjadi IT dan DevOps Anda, Anda tidak perlu peduli tentang penskalaan dan pemeliharaan.

Saya telah mencoba semua opsi lain dan masing-masing bagus untuk tujuan yang berbeda tetapi Google Run sangat mengagumkan. Bagi saya, ini adalah serverless nyata tanpa kehilangan fleksibilitas dalam pengembangan.

Ali Khosro
sumber
3

Layanan cloud menyediakan berbagai opsi dari layanan yang dikelola sepenuhnya hingga yang kurang terkelola. Layanan yang kurang terkelola memberi lebih banyak kontrol kepada pengembang. Hal yang sama adalah perbedaan dalam mesin Compute dan App juga. Gambar di bawah ini menjelaskan lebih lanjut tentang hal ini masukkan deskripsi gambar di sini

Sonu
sumber
1

Google Compute Engine (GCE)

Mesin Virtual (VMs) yang dihosting di cloud. Sebelum cloud, ini sering disebut Virtual Private Server (VPS). Anda akan menggunakan ini dengan cara yang sama Anda akan menggunakan server fisik, di mana Anda menginstal dan mengkonfigurasi sistem operasi, menginstal aplikasi Anda, menginstal database, menjaga OS tetap up-to-date, dll. Ini dikenal sebagai Infrastruktur- as-a-Service (IaaS).

VM sangat berguna ketika Anda memiliki aplikasi yang sudah berjalan di VM atau server di pusat data Anda, dan ingin memigrasikannya dengan mudah ke GCP.

Google App Engine

App Engine meng-host dan menjalankan kode Anda, tanpa mengharuskan Anda berurusan dengan sistem operasi, jaringan, dan banyak hal lain yang harus Anda kelola dengan server fisik atau VM. Anggap saja sebagai runtime, yang secara otomatis dapat menyebarkan, versi, dan skala aplikasi Anda. Ini disebut Platform-as-a-Service (PaaS).

App Engine paling berguna ketika Anda menginginkan penyebaran otomatis dan penskalaan otomatis aplikasi Anda. Kecuali jika aplikasi Anda memerlukan konfigurasi OS kustom, App Engine seringkali lebih menguntungkan daripada mengkonfigurasi dan mengelola VM secara manual.

Travis Webb
sumber
Saya tidak mengerti mengapa jawaban ini tidak mendapatkan semua upvotes yang layak! :)
Damilola Olowookere