Bagikan melalui


Ringkasan: Merancang aplikasi cloud-native

Tip

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.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Singkatnya, berikut adalah kesimpulan penting dari panduan ini:

  • Cloud-native adalah tentang merancang aplikasi modern yang menerapkan perubahan cepat, skala besar, dan ketahanan, dalam lingkungan dinamis dan modern seperti cloud publik, privat, dan hibrida.

  • Cloud Native Computing Foundation (CNCF) adalah konsorsium sumber terbuka yang berpengaruh dari 300 lebih perusahaan besar. Konsorsium tersebut bertanggung jawab untuk mendorong adopsi komputasi cloud-native di seluruh teknologi dan tumpukan cloud.

  • Panduan CNCF merekomendasikan agar aplikasi cloud-native menerapkan enam pilar penting seperti yang ditunjukkan dalam Gambar 11-1:

    Cloud-native foundational pillars

    Gambar 11-1. Pilar dasar cloud-native

  • Pilar cloud-native ini meliputi:

    • Cloud dan model layanan dasar
    • 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 simpel terkadang di-hosting 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 membuat aplikasi cloud-native. Aplikasi biasanya mengekspos gateway API untuk mengelola komunikasi klien ujung depan. Lalu, layanan mikro ujung belakang berupaya untuk berkomunikasi satu sama lain menerapkan pola komunikasi asinkron, jika memungkinkan.

  • gRPC adalah kerangka kerja modern berperforma tinggi yang mengembangkan protokol panggilan prosedur jarak jauh (RPC) lawas. Aplikasi cloud-native sering kali menerapkan gRPC untuk menyederhanakan olahpesan antara layanan ujung belakang. gRPC menggunakan HTTP/2 untuk protokol transportasinya. Protokol ini bisa hingga 8x lebih cepat dibandingkan 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 kali diimplementasikan oleh aplikasi cloud-native. Aplikasi memisahkan fungsionalitas bisnis menjadi layanan mikro kecil dan independen. Setiap layanan mikro menyertakan dependensi, data, dan statusnya sendiri. Model database klasik bersama berkembang menjadi salah satu dari banyak database yang lebih kecil, masing-masing selaras dengan layanan mikro. Saat mendapatkan inspirasi, kami muncul dengan desain yang mengekspos model database-per-microservice.

  • Database tanpa SQL merujuk pada penyimpanan data berperforma tinggi non-relasional. 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 baru yang menggabungkan skalabilitas NoSQL terdistribusi dan jaminan ACID dari database hubungan. 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 menanggapi kegagalan dan tetap berfungsi. Sistem cloud-native menerapkan arsitektur terdistribusi di mana kegagalan tidak dapat dihindari. Aplikasi harus dibangun untuk merespons kegagalan secara elegan dan dengan cepat kembali ke status berfungsi sepenuhnya.

  • Cloud layanan adalah lapisan infrastruktur yang dapat dikonfigurasikan dengan kemampuan bawaan untuk menangani komunikasi layanan dan masalah lintas sektoral lainnya. Cloud layanan tersebut memisahkan tanggung jawab lintas sektoral dari kode bisnis Anda. Tanggung jawab ini dialihkan ke proksi layanan. Disebut sebagai Sidecar pattern, proksi tersebut disebarkan ke dalam proses terpisah untuk memberikan isolasi dari kode bisnis Anda.

  • Observabilitas adalah pertimbangan desain utama untuk aplikasi cloud-native. Karena layanan didistribusikan di seluruh kluster node, pengelogan terpusat, pemantauan, dan pemberitahuan, menjadi wajib. Azure Monitor adalah kumpulan alat berbasis cloud yang dirancang untuk memberikan visibilitas ke dalam status sistem.

  • Infrastruktur sebagai Kode adalah praktik yang telah diterima secara luas yang mengotomatiskan provisi platform. Infrastruktur dan penerapan Anda otomatis, konsisten, dan dapat diulang. Alat seperti Azure Resource Manager, Terraform, dan Azure CLI, memungkinkan Anda membuat skrip secara deklaratif infrastruktur cloud yang Anda butuhkan.

  • Otomatisasi kode adalah persyaratan untuk cloud-native. Sistem CI/CD modern membantu memenuhi prinsip ini. Sistem tersebut 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 yang memiliki fitur lengkap.