Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk / Saran
Konten ini adalah kutipan dari eBook, Merancang Aplikasi .NET Cloud Native untuk Azure, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.
Singkatnya, berikut adalah kesimpulan penting dari panduan ini:
Cloud-native adalah tentang merancang aplikasi modern yang merangkul perubahan cepat, skala besar, dan ketahanan, di lingkungan modern dan dinamis seperti cloud publik, privat, dan hibrid.
Cloud Native Computing Foundation (CNCF) adalah konsorsium sumber terbuka yang berpengaruh dari lebih dari 300 perusahaan besar. Ini bertanggung jawab untuk mendorong adopsi komputasi asli-cloud di seluruh teknologi dan lapisan-lapisan cloud.
Panduan CNCF merekomendasikan agar aplikasi cloud-native merangkul enam pilar penting seperti yang ditunjukkan pada Gambar 11-1:
Gambar 11-1. Fondasi utama cloud-native
Pilar-pilar teknologi cloud-native ini meliputi:
- Cloud dan model layanan yang mendasarnya
- Prinsip desain modern
- Layanan mikro
- Kontainerisasi dan orkestrasi kontainer
- Layanan dukungan berbasis cloud, seperti database dan broker pesan
- Otomatisasi, termasuk Infrastruktur sebagai Kode dan penyebaran kode
Kubernetes adalah lingkungan hosting pilihan untuk sebagian besar aplikasi cloud-native. Layanan yang lebih kecil dan sederhana terkadang dihosting di platform tanpa server, seperti Azure Functions. Di antara banyak fitur otomatisasi utama, kedua lingkungan menyediakan penskalaan otomatis untuk menangani volume beban kerja yang berfluktuasi.
Komunikasi layanan menjadi keputusan desain yang signifikan saat membangun aplikasi cloud-native. Aplikasi biasanya mengekspos gateway API untuk mengelola komunikasi klien front-end. Kemudian layanan mikro backend berusaha untuk berkomunikasi satu sama lain menerapkan pola komunikasi asinkron, jika memungkinkan.
gRPC adalah kerangka kerja modern berkinerja tinggi yang mengembangkan protokol panggilan prosedur jarak jauh (RPC) lama. Aplikasi cloud-native sering merangkul gRPC untuk menyederhanakan olahpesan antara layanan back-end. gRPC menggunakan HTTP/2 untuk protokol transportasinya. Bisa hingga 8x lebih cepat daripada serialisasi JSON dengan ukuran pesan 60-80% lebih kecil. gRPC adalah sumber terbuka dan dikelola oleh Cloud Native Computing Foundation (CNCF).
Data terdistribusi adalah model yang sering diimplementasikan oleh aplikasi cloud-native. Aplikasi memisahkan fungsionalitas bisnis menjadi layanan mikro kecil dan independen. Setiap layanan mikro merangkum dependensi, data, dan statusnya sendiri. Model database bersama klasik berevolusi menjadi salah satu dari banyak database yang lebih kecil, masing-masing selaras dengan layanan mikro. Ketika asap menghilang, kami muncul dengan desain yang menampilkan model
database-per-microservice.No-SQL database mengacu pada penyimpanan data non-relasional berkinerja tinggi. Database tersebut unggul dalam hal kemudahan penggunaan, skalabilitas, ketahanan, dan ketersediaan. Layanan volume tinggi yang memerlukan waktu respons sekian mili detik mendukung datastore NoSQL. Proliferasi teknologi NoSQL untuk sistem cloud-native terdistribusi tidak dapat dilebih-lebihkan.
NewSQL adalah teknologi database yang muncul yang menggabungkan skalabilitas terdistribusi NoSQL dan jaminan ACID dari database relasional. Database NewSQL menargetkan sistem bisnis yang harus memproses data dalam volume tinggi, di seluruh lingkungan terdistribusi, dengan kepatuhan transaksional/ACID penuh. Cloud Native Computing Foundation (CNCF) menampilkan beberapa proyek database NewSQL.
Ketahanan adalah kemampuan sistem Anda untuk bereaksi terhadap kegagalan dan masih tetap berfungsi. Sistem cloud-native merangkul arsitektur terdistribusi di mana kegagalan tidak dapat dihindari. Aplikasi harus dibangun untuk merespons kegagalan secara elegan dan dengan cepat kembali ke keadaan berfungsi penuh.
Service mesh adalah lapisan infrastruktur yang dapat dikonfigurasi dengan kemampuan bawaan untuk menangani komunikasi layanan dan tantangan lintas sektoral lainnya. Mereka memisahkan tanggung jawab lintas aspek dari kode bisnis Anda. Tanggung jawab ini dialihkan ke proksi servis. Disebut sebagai
Sidecar pattern, proksi diimplementasikan dalam proses terpisah untuk memberikan isolasi dari logika bisnis Anda.Observabilitas adalah pertimbangan desain utama untuk aplikasi cloud-native. Karena layanan didistribusikan di seluruh kluster simpul, pengelogan terpusat, pemantauan, dan pemberitahuan, menjadi wajib. Azure Monitor adalah kumpulan alat berbasis cloud yang dirancang untuk memberikan visibilitas ke dalam status sistem Anda.
Infrastruktur sebagai Kode adalah praktik yang diterima secara luas yang mengotomatiskan provisi platform. Infrastruktur dan penyebaran Anda otomatis, konsisten, dan dapat diulang. Alat seperti Azure Resource Manager, Terraform, dan Azure CLI, memungkinkan Anda secara deklaratif membuat skrip infrastruktur cloud yang Anda butuhkan.
Otomatisasi kode adalah persyaratan untuk aplikasi cloud-native. Sistem CI/CD modern membantu memenuhi prinsip ini. Mereka menyediakan langkah-langkah build dan penyebaran terpisah yang membantu memastikan kode yang konsisten dan berkualitas. Tahap build mengubah kode menjadi artefak biner. Tahap rilis mengambil artefak biner, menerapkan konfigurasi lingkungan eksternal, dan menyebarkannya ke lingkungan tertentu. Azure DevOps dan GitHub adalah lingkungan DevOps berfungsi lengkap.