1. Ringkasan
ASP.NET Core adalah framework open source dan lintas platform baru untuk membangun aplikasi modern berbasis cloud dan terhubung internet menggunakan bahasa pemrograman C#.
Di lab ini, Anda akan men-deploy aplikasi ASP.NET Core sederhana ke lingkungan fleksibel App Engine. Codelab ini dibuat berdasarkan codelab Membangun dan meluncurkan aplikasi ASP.NET Core dari Google Cloud Shell. Sebaiknya lakukan lab tersebut terlebih dahulu sebelum mencoba lab ini.
Aplikasi Google App Engine mudah dibuat, dikelola, dan diskalakan sesuai kebutuhan traffic dan penyimpanan data Anda. Dengan App Engine, Anda tidak perlu mengelola server. Anda cukup mengupload aplikasi dan siap digunakan.
Aplikasi App Engine diskalakan secara otomatis berdasarkan traffic masuk. App Engine secara native mendukung load balancing, microservice, otorisasi, database SQL dan NoSQL, Memcache, pemisahan traffic, logging, penelusuran, pembuatan versi, peluncuran dan roll back, serta pemindaian keamanan, yang semuanya sangat mudah disesuaikan.
Lingkungan App Engine, lingkungan standar, dan lingkungan fleksibel, mendukung banyak bahasa pemrograman, termasuk C#, Java, Python, PHP, Node.js, Go, dan banyak lagi. Kedua lingkungan ini memberi pengguna fleksibilitas maksimum terkait perilaku aplikasi mereka, karena setiap lingkungan memiliki kekuatan tertentu. Untuk informasi selengkapnya, baca Memilih Lingkungan App Engine.
Yang akan Anda pelajari
- Cara memaketkan aplikasi ASP.NET Core sederhana sebagai container Docker.
- Cara men-deploy aplikasi ASP.NET Core sederhana ke App Engine.
Yang Anda butuhkan
Bagaimana Anda akan menggunakan tutorial ini?
Bagaimana penilaian Anda terhadap pengalaman dengan Google Cloud Platform?
2. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API, dan Anda dapat memperbaruinya kapan saja.
- Project ID harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis menghasilkan string unik; biasanya Anda tidak peduli dengan kata-katanya. Pada sebagian besar codelab, Anda harus mereferensikan Project ID (dan biasanya diidentifikasi sebagai
PROJECT_ID
). Jadi, jika Anda tidak menyukainya, buat ID acak lain, atau, Anda dapat mencoba sendiri dan melihat apakah tersedia. Kemudian file akan "dibekukan" setelah project dibuat. - Ada nilai ketiga, Nomor Project yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan API/resource Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk menonaktifkan resource agar tidak menimbulkan penagihan di luar tutorial ini, ikuti petunjuk "pembersihan" yang ada di akhir codelab. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Mengaktifkan Cloud Shell
- Dari Cloud Console, klik Aktifkan Cloud Shell .
Jika belum pernah memulai Cloud Shell, Anda akan melihat layar perantara (di paruh bawah) yang menjelaskan apa itu Cloud Shell. Jika demikian, klik Lanjutkan (dan Anda tidak akan pernah melihatnya lagi). Berikut tampilan layar sekali-tampil tersebut:
Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.
Mesin virtual ini dimuat dengan semua alat pengembangan yang Anda butuhkan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan hanya dengan browser atau Chromebook.
Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda.
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list
Output perintah
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
gcloud config list project
Output perintah
[core] project = <PROJECT_ID>
Jika tidak, Anda dapat menyetelnya dengan perintah ini:
gcloud config set project <PROJECT_ID>
Output perintah
Updated property [core/project].
3. Membuat aplikasi ASP.NET Core di Cloud Shell
Di perintah Cloud Shell, Anda dapat memastikan bahwa alat command line dotnet
sudah terinstal dengan mencantumkan .NET SDK yang terinstal:
dotnet --list-sdks
Selanjutnya, buat aplikasi web ASP.NET Core skeleton baru dengan framework target netcoreapp3.1
:
dotnet new mvc -o HelloWorldAspNetCore -f netcoreapp3.1
Perintah ini akan membuat project dan memulihkan dependensinya. Anda seharusnya melihat pesan yang mirip seperti di bawah ini.
Restore completed in 11.44 sec for HelloWorldAspNetCore.csproj.
Restore succeeded.
4. Menjalankan aplikasi ASP.NET Core
Aplikasi hampir siap untuk dijalankan. Buka folder aplikasi.
cd HelloWorldAspNetCore
Terakhir, jalankan aplikasi.
dotnet run --urls=http://localhost:8080
Aplikasi mulai memproses di port 8080.
Hosting environment: Production
Content root path: /home/atameldev/HelloWorldAspNetCore
Now listening on: http://[::]:8080
Application started. Press Ctrl+C to shut down.
Untuk memastikan aplikasi sudah berjalan, klik tombol pratinjau web di kanan atas, lalu pilih 'Preview on port 8080'.
Anda akan melihat halaman web ASP.NET Core default:
Setelah Anda memverifikasi bahwa aplikasi berjalan, tekan Ctrl+C untuk mematikan aplikasi.
5. Memublikasikan aplikasi ASP.NET Core
Sekarang, publikasikan aplikasi untuk mendapatkan DLL mandiri menggunakan perintah dotnet publish
.
dotnet publish -c Release
Menjalankan publish
akan menampilkan beberapa pesan beserta DLL yang berhasil dipublikasikan di akhir proses.
...
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/HelloWorldAspNetCore.dll
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/HelloWorldAspNetCore.Views.dll
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/publish/
6. Membuat app.yaml untuk App Engine secara fleksibel
File app.yaml
menjelaskan cara men-deploy aplikasi ke App Engine, dalam hal ini, lingkungan fleksibel App Engine.
Pertama, buka folder publish
. Folder seharusnya berada di folder bin/Release
, tetapi jalur persisnya bergantung pada versi .NET:
cd bin/Release/netcoreapp3.1/publish/
Buat file app.yaml
di dalam folder publish
:
cat <<EOT >> app.yaml
env: flex
runtime: aspnetcore
EOT
Perhatikan cara file app.yaml
menentukan lingkungan sebagai flex
dan runtime sebagai aspnetcore
.
7. Men-deploy ke App Engine secara fleksibel
Anda sudah siap men-deploy aplikasi ke App Engine yang fleksibel menggunakan gcloud
. Di dalam direktori publish
, jalankan perintah berikut:
gcloud app deploy --version v0
Selama deployment, Anda mungkin akan diminta memilih region untuk aplikasi. Pilih region tempat Anda ingin menjalankan aplikasi.
Please choose a region for your application. After choosing a region,
you cannot change it. Which region would you like to choose?
[1] europe-west (supports standard and flexible)
[2] us-central (supports standard and flexible)
[3] us-east1 (supports standard and flexible)
[4] asia-northeast1 (supports standard and flexible)
[5] cancel
Tindakan ini akan membuat image untuk aplikasi Anda di cloud, menyimpan image tersebut ke Google Container Registry, dan men-deploy-nya ke App Engine. Selama deployment, Anda sebenarnya bisa melihat image container sedang dibangun:
Operation completed over 1 objects/571.8 KiB.
BUILD
Step #0: Pulling image: gcr.io/gcp-runtimes/aspnetcorebuild@sha256:d7b7975acb374fc3a9655a4e529993e6270cfa78023885684626528bc379f8eb
Step #0: sha256:d7b7975acb374fc3a9655a4e529993e6270cfa78023885684626528bc379f8eb: Pulling from gcp-runtimes/aspnetcorebuild
Pada akhirnya, Anda akan melihat bahwa aplikasi telah di-deploy.
...
Deployed service [default] to [https://<project-id>.appspot.com]
Setelah Anda men-deploy aplikasi,kunjungi dengan membuka URL http://<project-id>.appspot.com
di browser web Anda.
Anda akan melihat halaman web ASP.NET Core default di tab baru.
Anda juga dapat melihat image container yang dibuat untuk Anda di cloud. Di konsol cloud, buka Container Registry > Gambar, lalu di folder appengine, Anda akan melihat gambar untuk aplikasi Anda.
8. Men-deploy versi baru layanan Anda
Pada titik tertentu, aplikasi yang telah Anda deploy ke produksi akan memerlukan perbaikan bug atau fitur tambahan. App Engine hadir untuk membantu Anda men-deploy versi baru ke produksi tanpa memengaruhi pengguna Anda.
Pertama, mari kita ubah aplikasinya. Buka editor kode dari Cloud Shell.
Buka Index.cshtml
pada folder Views/Home
dari HelloWorldAspNetCore
dan perbarui pesan default menjadi ini:
Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core on Google Cloud Platform!
Simpan perubahan, lalu kembali ke Cloud Shell. Di dalam HelloWorldAspNetCore,
, publikasikan aplikasi untuk mendapatkan DLL mandiri.
dotnet publish -c Release
Buka direktori publikasi.
cd bin/Release/netcoreapp3.1/publish/
Sekarang Anda dapat men-deploy versi baru aplikasi (dalam kasus ini v1
).
gcloud app deploy --version v1
Setelah di-deploy, Anda dapat membuka bagian versi App Engine di Konsol Google Cloud untuk melihat versi baru aplikasi Anda yang melayani semua traffic dengan pesan baru ini.
9. Dasbor dan Pemisahan Traffic
Di App Engine, pada bagian Dashboard, Anda dapat melihat sejumlah dasbor untuk aplikasi Anda untuk latensi, CPU, dll. Anda dapat menjelajahinya sendiri.
Pada bagian Versi, Anda dapat melihat versi aplikasi yang di-deploy dan dapat membagi traffic antara versi yang berbeda di bagian Pembagian Traffic. Mari kita bagi traffic menjadi dua versi:
10. Selamat!
Cleanup
Saatnya mematikan aplikasi untuk menghemat biaya dan menjadi pengguna cloud yang baik secara keseluruhan.
Buka bagian versi di App Engine.
Pilih versi dan hentikan.
Setelah versi dihentikan, instance pendukung akan dihapus dan Anda akan melihat jumlah instance menurun hingga nol.
Yang telah kita bahas
Seperti itulah! Anda telah membuat aplikasi ASP.NET Core, memaketkannya sebagai container Docker, dan men-deploy-nya ke Google App Engine Fleksibel.
- Cara memaketkan aplikasi ASP.NET Core sederhana sebagai container Docker.
- Cara men-deploy aplikasi ASP.NET Core sederhana ke App Engine.
Langkah Berikutnya
- Pelajari lebih lanjut Windows di Google Cloud Platform.
- Pelajari .NET di Google Cloud Platform lebih lanjut.
- Pelajari SQL Server di Google Cloud Platform lebih lanjut.
- Pelajari Cloud Tools for Visual Studio lebih lanjut.
- Pelajari Cloud Tools for PowerShell lebih lanjut.
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.