Membangun solusi cloud-native

Setelah merencanakan, bangun dan konfigurasikan solusi di lingkungan pengembangan. Ikuti praktik terbaik dan pastikan kualitas melalui pengujian. Solusi cloud-native menggunakan pola arsitektur yang dapat diskalakan, tangguh, dan dapat diamati untuk memaksimalkan manfaat layanan Azure. Membangun di lingkungan nonproduksi dengan praktik pengujian dan otomatisasi yang kuat memastikan kualitas dan kesiapan untuk penyebaran produksi.

Mengembangkan solusi cloud-native baru

Pengembangan cloud-native memerlukan pendekatan terstruktur yang mengintegrasikan praktik kualitas sejak awal. Panduan ini membantu Anda membangun solusi yang andal, aman, dan dapat diskalakan melalui praktik pengembangan yang terbukti.

Menerapkan prinsip kerangka kerja Well-Architected selama pengembangan

Solusi cloud-native mendapat manfaat dari penerapan prinsip Well-Architected Framework (WAF). Well-Architected Framework menyediakan prinsip-prinsip untuk pengembangan cloud-native yang efektif. Integrasikan kelima pilar ini untuk membuat aplikasi kuat yang berkinerja baik dalam produksi.

Mengembangkan solusi di lingkungan nonproduksi

  1. Buat lingkungan pengembangan yang mencerminkan konfigurasi produksi. Siapkan lingkungan nonproduksi (pengembangan, pengujian, QA) yang mencerminkan produksi dengan cermat. Semakin dekat lingkungan pengujian Anda dengan produksi, semakin percaya diri Anda bahwa hal-hal bekerja setelah rilis. Pendekatan ini sangat penting saat menambahkan fitur baru ke beban kerja yang ada.

  2. Gunakan himpunan data realistis yang mewakili volume data produksi. Uji dengan data yang cocok dengan ukuran dan kompleksitas beban kerja produksi. Himpunan data besar mengekspos penyempitan performa dan masalah penskalaan, yang terlewatkan oleh himpunan data pengujian kecil. Anonimkan data produksi atau hasilkan data sintetis yang mempertahankan properti statistik data nyata.

  3. Menerapkan kontrol biaya untuk lingkungan nonproduksi. Gunakan Azure DevTest Labs atau penjadwalan sumber daya untuk memulai dan menghentikan sumber daya secara otomatis saat tidak digunakan. Terapkan tingkat layanan yang sesuai untuk beban kerja pengembangan dan terapkan batas pengeluaran untuk mencegah biaya tak terduga sambil mempertahankan efektivitas pengujian.

Untuk informasi selengkapnya, lihat Mengonfigurasi lingkungan pengujian di WAF.

Menerapkan perubahan menggunakan kontrol sumber dan CI/CD

  1. Simpan semua kode dan konfigurasi di repositori Git. Lacak kode aplikasi, templat infrastruktur, skrip penyebaran, dan file konfigurasi dalam kontrol versi. Praktik ini memberikan riwayat perubahan yang lengkap dan memungkinkan kolaborasi di antara anggota tim.

  2. Memecah pekerjaan pengembangan menjadi commit kecil yang dilakukan secara sering. Selesaikan pengembangan fitur dalam langkah kecil yang dapat digabungkan dan diuji secara terpisah. Pendekatan ini mengurangi konflik integrasi dan memudahkan untuk mengidentifikasi sumber masalah ketika terjadi.

  3. Mengotomatiskan build dan pengujian pada setiap perubahan kode. Konfigurasikan alur CI/CD yang secara otomatis mengkompilasi kode, menjalankan pengujian, dan menyebarkan ke lingkungan nonproduksi saat perubahan dilakukan. Perulangan umpan balik cepat membantu pengembang menangkap dan memperbaiki masalah dengan cepat.

  4. Gunakan bendera fitur untuk mengontrol rilis fungsionalitas baru. Terapkan pengalih fitur yang memungkinkan Anda menyebarkan kode ke produksi sambil menjaga fitur baru tetap dinonaktifkan hingga siap untuk pengguna. Strategi ini memisahkan penyebaran dari rilis dan memungkinkan peluncuran yang lebih aman dan lebih terkontrol.

Menerapkan pemantauan selama pengembangan

  1. Integrasikan Azure Monitor dan Application Insights ke dalam kode aplikasi Anda. Tambahkan pengumpulan data pemantauan untuk melacak metrik performa utama, interaksi pengguna, dan indikator kesehatan sistem. Konfigurasikan alat-alat ini selama pengembangan untuk memastikan alat berfungsi dengan benar sebelum penyebaran produksi.

  2. Terapkan pengelogan terstruktur di seluruh aplikasi Anda. Gunakan format log yang konsisten dan sertakan informasi kontekstual seperti ID pengguna, ID permintaan, dan pengidentifikasi proses bisnis. Susun log Anda sebagai objek JSON untuk mengaktifkan kemampuan kueri dan analisis yang canggih.

  3. Konfigurasikan pemberitahuan untuk metrik utama dan kondisi kegagalan. Siapkan pemantauan proaktif yang memberi tahu Anda ketika tingkat kesalahan meningkat, waktu respons menurup, atau metrik bisnis berada di luar rentang yang diharapkan. Tentukan ambang batas pemberitahuan berdasarkan tujuan tingkat layanan dan persyaratan bisnis Anda.

  4. Buat dasbor yang memberikan visibilitas ke dalam performa sistem. Bangun dasbor pemantauan yang menunjukkan kesehatan aplikasi, infrastruktur, dan proses bisnis Anda. Sertakan metrik yang penting bagi tim teknis dan pemangku kepentingan bisnis untuk mengaktifkan keputusan berbasis data.

Untuk informasi selengkapnya, lihat Merancang sistem pemantauan dan Instrumen aplikasi di WAF.

Memvalidasi solusi cloud-native dengan pengujian

Pengujian komprehensif memvalidasi bahwa solusi Anda memenuhi persyaratan bisnis dan berkinerja andal dalam kondisi dunia nyata. Setiap jenis pengujian melayani tujuan tertentu dalam memastikan kualitas solusi.

  1. Jalankan pengujian fungsi end-to-end untuk memverifikasi alur kerja bisnis. Uji skenario pengguna lengkap dari autentikasi melalui penyelesaian transaksi menggunakan data dan interaksi realistis. Validasi bahwa fitur baru berfungsi dengan benar dan fungsionalitas yang ada tetap utuh setelah perubahan. Jalankan pengujian regresi untuk menangkap efek samping yang tidak diinginkan.

  2. Lakukan pengujian penerimaan pengguna dengan pemangku kepentingan bisnis. Libatkan pengguna atau perwakilan bisnis aktual untuk memvalidasi bahwa solusi memenuhi kebutuhan dan harapan mereka. Minta mereka menguji skenario kunci di lingkungan UAT dan memberikan umpan balik tentang kegunaan dan fungsionalitas. Dapatkan persetujuan formal dari pemangku kepentingan sebelum melanjutkan ke penyebaran produksi.

  3. Lakukan pengujian beban dalam kondisi realistis untuk memvalidasi performa. Gunakan Azure Load Testing untuk mensimulasikan volume pengguna dan throughput data yang diharapkan. Uji pada tingkat beban puncak dan seterusnya untuk mengidentifikasi hambatan performa dan batas penskalaan. Mengukur waktu respons, throughput, dan pemanfaatan sumber daya untuk memastikan solusi Anda memenuhi persyaratan performa.

  4. Jalankan pengujian keamanan dan kepatuhan untuk mengidentifikasi kerentanan. Jalankan pemindaian keamanan otomatis pada kode aplikasi, gambar kontainer, dan konfigurasi infrastruktur. Gunakan Microsoft Defender untuk Cloud untuk memeriksa kesalahan konfigurasi keamanan dan pelanggaran kepatuhan. Atasi kerentanan berisiko tinggi sebelum penyebaran dan terapkan kontrol kompensasi untuk risiko yang diterima.

  5. Atasi masalah kritis sebelum implementasi produksi. Perlakukan fase pengujian sebagai gerbang kualitas yang harus dilewati sebelum melanjutkan. Perbaiki masalah performa yang mencegah perjanjian tingkat layanan rapat, atasi kerentanan keamanan yang menimbulkan risiko signifikan. Mengatasi cacat fungsional yang memengaruhi proses bisnis inti. Dokumentasikan masalah prioritas rendah yang diketahui dengan rencana untuk resolusi di masa mendatang.

  6. Pertahankan unit otomatis dan rangkaian pengujian integrasi. Buat pengujian otomatis komprehensif yang memvalidasi komponen individual dan interaksinya dengan dependensi eksternal. Jalankan pengujian ini sebagai bagian dari alur CI/CD Anda dan setelah setiap perbaikan bug untuk mencegah regresi. Rangkaian pengujian otomatis yang kuat memungkinkan pengiriman berkelanjutan yang percaya diri di lingkungan cloud-native.

Membuat infrastruktur yang dapat digunakan kembali

Setelah solusi modern Anda lulus semua pengujian di lingkungan nonproduksi, Anda harus menangkap penyiapan infrastruktur dan konfigurasi sebagai kode, sehingga dapat dengan mudah direplikasi di lingkungan produksi dan masa depan. Infrastruktur yang dapat digunakan kembali berarti menggunakan templat infrastruktur sebagai kode (IaC) dan otomatisasi untuk konsistensi dan kecepatan.

  1. Buat templat IaC untuk konfigurasi yang terbukti. Ambil arsitektur akhir lingkungan pengujian Anda (yang mencerminkan apa yang Anda inginkan dalam prod) dan mengkodifikasinya. Gunakan templat Bicep, Terraform, atau Azure Resource Manager untuk menentukan infrastruktur Anda. Parameterisasi templat ini sehingga dapat digunakan kembali untuk tahap yang berbeda, seperti dev, test, prod dengan tweak kecil seperti nama atau ukuran. Penyiapan ini memastikan bahwa lingkungan produksi yang Anda buat cocok dengan apa yang Anda uji. Ini menghindari kesalahan manusia dalam mengeklik portal Azure secara manual untuk membuat sumber daya. Ini juga berarti jika Anda perlu membuat ulang lingkungan, seperti untuk pemulihan bencana atau menyebarkan ke wilayah baru, Anda memiliki penyebaran infrastruktur yang siap. Untuk informasi selengkapnya, lihat PENGELOLAAN CAF - Mengelola penyebaran berbasis kode.

  2. Simpan templat dalam kontrol versi. Periksa kode infrastruktur Anda ke dalam repositori Git (bersama kode aplikasi atau dalam repositori terpisah). Gunakan GitHub atau Azure DevOps untuk mengelola aset IaC dengan kontrol versi yang tepat. Kontrol versi memungkinkan tinjauan kode, mendukung kolaborasi tim, dan mendorong penggunaan kembali templat di seluruh proyek. Pendekatan ini memberikan keterlacakan lengkap untuk perubahan infrastruktur dan mendukung kemampuan putar kembali ketika masalah terjadi.

  3. Mengotomatiskan penginstalan dan konfigurasi dependensi. Buat skrip atau tugas alur untuk menyebarkan templat ini dan juga menangani konfigurasi atau tugas penyemaian yang diperlukan. Gunakan Azure Pipelines, GitHub Actionsuntukan menjalankan pekerjaan penyebaran yang mengambil templat IaC dan menyebarkan ke grup langganan/sumber daya target. Mengotomatiskan penginstalan dependensi aplikasi, mengonfigurasi pengaturan, dan manajemen rahasia. Tujuannya adalah penyiapan lingkungan satu klik (atau satu perintah): dari tidak ada hingga lingkungan yang berjalan sepenuhnya yang cocok dengan apa yang Anda uji.

  4. Menguji IaC dan otomatisasi end-to-end. Gunakan grup langganan atau sumber daya Azure terpisah sebagai kotak pasir dan berlatih menyebarkan seluruh lingkungan Anda dari awal menggunakan templat dan skrip Anda. Uji bahwa templat, alur, dan skrip IaC Anda dapat membuat tumpukan infrastruktur lengkap dari tidak ada. Uji skenario penyebaran yang berbeda termasuk penyebaran awal, pembaruan konfigurasi, dan prosedur pembatalan untuk mengonfirmasi bahwa otomatisasi berfungsi dengan benar.

Untuk informasi selengkapnya, lihat Mendesain rantai pasokan pengembangan beban kerja dan Infrastruktur sebagai kode di WAF.

Membuat dokumentasi penyebaran

Bahkan dengan otomatisasi, memiliki dokumentasi yang baik mengenai pelaksanaan sangat penting untuk audit, onboarding anggota tim baru, dan pemeliharaan di masa depan. Dokumentasi penyebaran harus mencakup konfigurasi, prosedur, dan langkah putar kembali dalam bentuk yang dapat dibaca manusia.

  1. Pengaturan dan langkah-langkah konfigurasi dokumen. Rekam semua pengaturan khusus lingkungan, string koneksi, titik akhir layanan, dan konfigurasi keamanan dalam dokumentasi yang dapat diakses. Sertakan instruksi penyebaran langkah demi langkah, persyaratan prasyarat, dan langkah-langkah validasi pasca-penyebaran. Dokumentasi ini memungkinkan penyebaran yang konsisten dan mendukung pemecahan masalah saat masalah terjadi. Jika insinyur baru harus melakukan deployment, mereka dapat membaca dokumen ini dan mengikutinya atau memahami output alur kerja.

  2. Memperbarui prosedur putar kembali dan pemulihan. Setelah Anda menyelesaikan pengujian, formalkan langkah-langkah untuk mengembalikan perubahan saat masalah penyebaran terjadi. Sertakan pemicu putar kembali, prosedur pencadangan dan pemulihan data, dan langkah-langkah validasi pemulihan. Uji prosedur putar kembali dan pemulihan secara teratur untuk memastikan mereka bekerja dengan benar saat diperlukan. Persiapan ini mengurangi waktu henti.

  3. Kumpulkan semua dokumentasi ini di lokasi pusat. Gunakan SharePoint, GitHub, atau wiki untuk menyimpan informasi ini. Pastikan tim dan personel dukungan tahu di mana menemukannya. Dalam insiden stres tinggi, memiliki dokumen yang jelas di tangan adalah penyelama.

Langkah selanjutnya