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.
Hari lain lagi, di kantor, bekerja pada proyek besar berikutnya.
Ponselmu berdering. Ini adalah perekrut ramah Anda - orang yang menelepon setiap hari dengan peluang baru yang menarik.
Tetapi kali ini berbeda: Start-up, ekuitas, dan banyak pendanaan.
Penyebutan cloud, layanan mikro, dan teknologi mutakhir membuat Anda merasa kewalahan.
Setelah beberapa minggu berlalu, Anda sekarang menjadi karyawan baru yang sedang berpartisipasi dalam sesi desain untuk merancang aplikasi eCommerce besar. Anda akan bersaing dengan situs eCommerce terkemuka.
Bagaimana Anda akan membangunnya?
Jika Anda mengikuti panduan dari 15 tahun terakhir, Kemungkinan besar Anda akan membangun sistem yang ditunjukkan pada Gambar 1.1.
Gambar 1-1. Desain monolitik tradisional
Anda membuat aplikasi inti besar yang berisi semua logika domain Anda. Ini termasuk modul seperti Identitas, Katalog, Pemesanan, dan banyak lagi. Mereka langsung berkomunikasi satu sama lain dalam satu proses server. Modul berbagi database relasional besar. Inti menyediakan fungsionalitas melalui antarmuka HTML dan aplikasi seluler.
Selamat! Anda baru saja membuat aplikasi monolitik.
Tidak semua buruk. Monolit menawarkan beberapa keuntungan yang berbeda. Misalnya, mereka mudah untuk...
- mengembangkan
- ujian
- menyebarkan/mengimplementasikan
- memecahkan masalah
- meningkatkan skala secara vertikal
Banyak aplikasi sukses yang ada saat ini dibuat sebagai monolit. Aplikasi ini adalah hit dan terus berkembang, iterasi setelah iterasi, menambahkan lebih banyak fungsionalitas.
Namun, pada titik tertentu, Anda mulai merasa tidak nyaman. Anda merasa kehilangan kendali atas aplikasi. Seiring berjalannya waktu, perasaan menjadi lebih intens, dan Anda akhirnya memasuki keadaan yang dikenal sebagai Fear Cycle
:
- Aplikasi ini menjadi sangat rumit sehingga tidak ada satu orang pun yang memahaminya.
- Anda takut membuat perubahan - setiap perubahan memiliki efek samping yang tidak diinginkan dan mahal.
- Fitur/perbaikan baru menjadi rumit, memakan waktu, dan mahal untuk diterapkan.
- Setiap rilis menjadi sesecil mungkin dan memerlukan penyebaran penuh dari seluruh aplikasi.
- Sebuah komponen yang tidak stabil dapat merusak seluruh sistem.
- Teknologi dan kerangka kerja baru bukanlah pilihan.
- Sulit untuk menerapkan metodologi pengiriman yang tangkas.
- Erosi arsitektur terjadi saat basis kode memburuk dengan "perbaikan cepat" yang berlanjut tanpa henti.
- Akhirnya, konsultan datang dan memberitahu Anda untuk menulis ulang itu.
Terdengar akrab?
Banyak organisasi telah mengatasi siklus ketakutan monolitik ini dengan mengadopsi pendekatan cloud-native untuk membangun sistem. Gambar 1-2 menunjukkan sistem yang sama yang dibangun dengan menerapkan teknik dan praktik asli awan (cloud-native).
Gambar 1-2 Desain native untuk cloud
Perhatikan bagaimana aplikasi diurai di sekumpulan layanan mikro kecil yang terisolasi. Setiap layanan mandiri dan merangkum kode, data, dan dependensinya sendiri. Masing-masing disebarkan dalam kontainer perangkat lunak dan dikelola oleh orkestrator kontainer. Alih-alih database relasional besar, setiap layanan memiliki datastore sendiri, jenis yang bervariasi berdasarkan kebutuhan data. Perhatikan bagaimana beberapa layanan bergantung pada database relasional, tetapi lainnya pada database NoSQL. Satu layanan menyimpan statusnya dalam cache terdistribusi. Perhatikan bagaimana semua rute lalu lintas melalui layanan API Gateway yang bertanggung jawab untuk merutekan lalu lintas ke layanan back-end inti dan mengimplementasikan banyak kekhawatiran lintas-fungsi. Yang terpenting, aplikasi ini memanfaatkan sepenuhnya fitur skalabilitas, ketersediaan, dan ketahanan yang ditemukan di platform cloud modern.
Komputasi asli awan
Hmm... Kami baru saja menggunakan istilah, Cloud Native. Pemikiran pertamamu mungkin, "Apa artinya itu?" Buzzword industri lain yang disusun oleh vendor perangkat lunak untuk mempasar lebih banyak barang?"
Untungnya itu jauh berbeda, dan mudah-mudahan buku ini akan membantu meyakinkan Anda.
Dalam waktu singkat, cloud native telah menjadi tren pendorong di industri perangkat lunak. Ini adalah cara baru untuk membangun sistem yang besar dan kompleks. Pendekatan ini memanfaatkan sepenuhnya praktik pengembangan perangkat lunak modern, teknologi, dan infrastruktur cloud. Cloud native mengubah cara Anda merancang, menerapkan, menyebarkan, dan mengoperalisasi sistem.
Tidak seperti hype berkelanjutan yang mendorong industri kami, cloud native benar-benar nyata. Pertimbangkan Cloud Native Computing Foundation (CNCF), konsorsium lebih dari 400 perusahaan besar. Misinya adalah membuat komputasi cloud-native meluas di semua teknologi dan tumpukan cloud. Sebagai salah satu grup sumber terbuka yang paling berpengaruh, ia menjadi tuan rumah banyak proyek sumber terbuka dengan pertumbuhan tercepat di GitHub. Proyek-proyek ini termasuk Kubernetes, Prometheus, Helm, Envoy, dan gRPC.
CNCF menumbuhkan ekosistem sumber terbuka dan netralitas vendor. Mengikuti arahan tersebut, buku ini menyajikan prinsip, pola, dan praktik terbaik cloud-native yang tidak bergantung pada teknologi tertentu. Pada saat yang sama, kami membahas layanan dan infrastruktur yang tersedia di cloud Microsoft Azure untuk membangun sistem cloud-native.
Jadi, apa sebenarnya Cloud Native? Duduk, bersantai, dan biarkan kami membantu Anda menjelajahi dunia baru ini.