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.
Berlaku untuk rekomendasi daftar periksa Azure Well-Architected Framework Operational Excellence ini:
OE:04 | Optimalkan pengembangan perangkat lunak dan proses jaminan kualitas dengan mengikuti praktik pengembangan dan pengujian yang telah terbukti di industri. Untuk penunjukan peran yang jelas, standarkan praktik di seluruh komponen seperti perkakas, kontrol sumber, pola desain aplikasi, dokumentasi, dan panduan gaya. |
---|
Panduan ini menjelaskan rekomendasi untuk menentukan standar untuk alat dan proses pengembangan perangkat lunak. Mendefinisikan praktik yang konsisten mengarah pada tim beban kerja yang efisien dan pekerjaan berkualitas tinggi. Tim berkinerja tinggi menggunakan alat dan proses yang telah terbukti di industri untuk meminimalkan upaya yang terbuang dan potensi kesalahan kode.
Strategi desain utama
Langkah pertama untuk mengoptimalkan praktik pengembangan adalah menstandarkan alat dan proses. Jika memungkinkan, gunakan solusi yang terbukti di industri daripada mengembangkan solusi internal. Untuk lebih mengoptimalkan praktik Anda, adopsi alat kode rendah dan tanpa kode. Alat-alat ini memungkinkan Anda untuk memfokuskan upaya pada aplikasi Anda dan membantu Anda menghemat waktu. Untuk semua alat dan proses yang Anda standarisasi, terapkan pelatihan sehingga tim Anda memahami dan menggunakannya secara efisien. Untuk menentukan standar yang membantu mengoptimalkan praktik pengembangan Anda, pertimbangkan rekomendasi berikut.
Gunakan alat siap pakai yang terkenal dan matang
Gunakan alat siap pakai yang matang dan dikenal baik dan standarkan penggunaannya. Tim teknik yang sangat efektif mengadopsi alat terbaik di kelasnya. Pendekatan ini meminimalkan kebutuhan untuk mengembangkan solusi untuk perencanaan, pengembangan, pengujian, kolaborasi, dan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Banyak perusahaan memberi pengembang pilihan antara beberapa alat, tetapi semua opsi adalah alat standar untuk organisasi dan divalidasi secara internal. Yang terpenting, pilih alat yang memenuhi persyaratan untuk beban kerja Anda. Alat di luar rak harus menyediakan fungsi berikut:
Perencanaan kerja dan manajemen backlog
Kontrol versi dan repositori
Jalur CI/CD
Pengujian, seperti integrasi, asap, pengguna sintetis, simulasi, kekacauan, dan pengujian kualitas lainnya
Pengembangan kode
Dalam beberapa kasus, satu alat atau serangkaian alat mungkin menyediakan beberapa fungsi. Pastikan Anda memahami kemampuan alat dan batasannya sehingga memenuhi kebutuhan Anda di seluruh fungsi.
Tentukan apakah Anda harus berinvestasi dalam alat mahal atau versi premium alat. Pertimbangkan waktu dan upaya untuk mengembangkan solusi Anda sendiri dibandingkan dengan fitur yang disediakan alat premium. Pertimbangkan biaya satu kali versus biaya berulang. Dalam kebanyakan kasus, alat siap pakai memberikan nilai yang lebih tinggi bagi tim Anda.
Gunakan alat kode rendah, tanpa kode, dan AI saat praktis. Alat kode rendah dan tanpa kode menghemat waktu pengembang yang berpengalaman dengan memungkinkan mereka untuk dengan mudah mencolokkan fungsionalitas daripada melakukan seluruh proses pengembangan kode. Alat-alat ini juga memungkinkan anggota tim beban kerja yang mungkin tidak dilatih pengembang untuk berkontribusi pada pengoperasian beban kerja. Alat AI dapat membantu pengembangan kode, peninjauan, dan pengoptimalan.
Menstandarkan strategi percabangan Anda
Pilih model berbasis cabang utama jika memungkinkan. Percabangan berbasis batang membuat tim pengembangan beban kerja tetap sinkron dan mendorong pengiriman berkelanjutan. Tentukan kebijakan cabang untuk melindungi cabang penting, seperti cabang utama. Untuk informasi selengkapnya, lihat Mengadopsi strategi cabang Git dan Kebijakan dan pengaturan cabang.
Mengevaluasi metrik untuk mengukur efektivitas pengembangan
Pengembangan perangkat lunak dan tim jaminan kualitas dapat meningkat hanya jika mereka dapat mengukur efektivitasnya. Untuk mengukur efektivitas, mereka harus mengidentifikasi metrik yang mengukur kecepatan pengembang dan menentukan KPI. Contoh metrik ini meliputi:
Frekuensi penyebaran: Jumlah penyebaran yang disebarkan setiap pengembang setiap hari.
Waktu tunggu: Waktu yang diperlukan untuk tugas atau cerita pengguna untuk pergi dari backlog ke penyebaran produksi.
Rata-rata waktu untuk resolusi: Waktu rata-rata yang dihabiskan untuk memperbaiki bug atau cacat kode.
Tingkat kegagalan perubahan: Persentase perubahan yang mengakibatkan kegagalan.
Untuk membantu pemangku kepentingan dan tim beban kerja melacak kecepatan dengan mudah, visualisasikan KPI dengan menggunakan dasbor atau alat pelaporan lainnya.
Standarkan cara tim beban kerja Anda menulis, meninjau, dan mendokumentasikan kode
Standarkan cara tim beban kerja Anda menulis, meninjau, dan mendokumentasikan kode dengan menggunakan panduan gaya. Gaya standar memudahkan kolaborasi dan membantu orientasi pengembang baru. Untuk bekerja secara efektif, pengembang baru perlu mengetahui bagaimana tim beban kerja beroperasi. Panduan gaya dengan standar yang jelas dapat memudahkan proses pelatihan mereka. Dalam panduan gaya, tentukan standar untuk bahasa pengembangan, pustaka, kerangka kerja, dan konvensi lainnya.
Ketika memungkinkan, gunakan alat untuk menerapkan standar pemformatan kode. Misalnya, Visual Studio menawarkan beberapa alat yang memindai kode untuk gaya, kualitas, keberlanjutan, desain, dan masalah lainnya. Untuk infrastruktur sebagai kode (IaC), Anda dapat menggunakan Checkov atau Terrascan untuk Terraform.
Untuk memastikan konsistensi dan menghindari potensi kebingungan, panduan gaya harus menyertakan konvensi penamaan standar untuk artefak, lingkungan, cabang, build, dan run.
Anda juga harus menetapkan pedoman dan standar untuk tingkat variansi yang diizinkan di lingkungan Anda. Jika ada bahasa, kerangka kerja, atau teknologi baru yang ingin ditambahkan anggota tim beban kerja ke daftar standar, terapkan proses untuk menggunakan alat tersebut di kotak pasir atau lingkungan yang lebih rendah. Uji kelayakannya, dan ganti teknologi yang ada jika sesuai.
Gunakan rekaman keputusan arsitektur (ADR) untuk menyimpan catatan historis keputusan desain tim beban kerja Anda. ADR membantu tim Anda mempertahankan pemahaman baru tentang beban kerja. Mereka juga membantu anggota tim baru mempelajari tentang keputusan desain yang dibuat selama siklus hidup beban kerja. Pastikan ADR dikontrol versinya.
Di ADR Anda, sertakan:
Alat dan teknologi tertentu, misalnya menggunakan SQL atau NoSQL, yang dipilih tim Anda.
Alasan keputusan tim Anda.
Opsi lain yang dipertimbangkan, yang membantu kontekstualisasi keputusan akhir.
Persyaratan fungsional dan nonfungsi yang diperhitungkan dalam keputusan.
Konteks proses pengambilan keputusan, seperti masalah yang ditangani.
Menerapkan standar untuk mengatasi utang teknis
Mengadopsi pola pikir bahwa utang teknis disengaja dan diperlukan untuk hasil kerja tim yang menangani beban kerja Anda. Pola pikir ini memotivasi tim Anda untuk mempertimbangkan dan mengatasi utang teknis secara teratur untuk menghindari akumulasi. Atasi utang teknis sebagai tugas berulang secara teratur dalam backlog.
Misalnya, tim Anda menstandarisasi penggunaan sebuah library. Seiring waktu, Anda perlu beralih ke pustaka yang berbeda untuk fungsionalitas baru dalam beban kerja. Transisi tersebut dapat mengakibatkan utang teknis. Sering kali, transisi seperti ini dapat menyebabkan tim kerja harus mendukung dua teknologi karena mereka tidak bisa sepenuhnya beralih dengan lancar. Tim beban kerja harus memprioritaskan penyelesaian transisi karena ketika beban kerja mencapai fungsionalitas baru, pemangku kepentingan puas dan cenderung tidak mempertimbangkan utang teknis.
Standarkan cara Anda menerapkan versi pada artefak Anda
Standarisasi bagaimana Anda menerapkan penerapan versi ke artefak Anda dan bagaimana penerapan versi diekspos secara internal dan eksternal. Misalnya, sistem yang menghadap klien harus mengekspos versi yang sedang berjalan di antarmuka pengguna. Teknik ini sangat membantu ketika tim beban kerja memecahkan masalah karena pelanggan dapat dengan mudah mengomunikasikan versi mana yang mereka gunakan. Antarmuka REST dapat mengekspos versi untuk komponen atau database tertentu. Anda mungkin menggunakan tabel tertentu dalam metadata untuk skema guna mengekspos versi skema.
Gunakan pola desain aplikasi yang terbukti di industri untuk memastikan bahwa aplikasi Anda dapat diandalkan, berkinerja, dan aman. Gunakan pola-pola ini untuk menghemat waktu dan upaya dibandingkan dengan mengembangkan solusi Anda sendiri untuk aplikasi Anda. Pilih pola yang menguntungkan beban kerja Anda. Tinjau pola desain secara teratur untuk memastikan bahwa Anda menggunakan pola yang tepat seiring berkembangnya beban kerja Anda.
Terapkan pendekatan shift-left untuk pengujian
Terapkan pendekatan shift-left untuk pengujian dengan melakukan pengujian unit lebih awal dan sering selama proses pengembangan. Pengujian yang sering di setiap lingkungan pengembangan membantu pengembang mendapatkan kepercayaan pada aplikasi mereka. Untuk membantu membuat strategi pengujian Anda dengan pendekatan shift-left, pertimbangkan prinsip-prinsip berikut:
Tulis pengujian pada tingkat terendah yang mungkin. Favoritkan pengujian dengan dependensi eksternal paling sedikit, dan jalankan pengujian sebagai bagian dari build.
Tulis pengujian sekali, dan jalankan pengujian di mana-mana, termasuk produksi. Tulis pengujian yang dapat Anda jalankan di setiap lingkungan pengembangan tanpa memperhitungkan faktor yang spesifik untuk satu lingkungan, seperti rahasia atau konfigurasi terenkripsi.
Rancang beban kerja Anda untuk pengujian. Saat Anda mengembangkan aplikasi, jadikan persyaratan pengujian
Perlakukan kode pengujian sebagai kode aplikasi. Terapkan standar kualitas dan pengembangan yang sama ke kode aplikasi dan kode pengujian. Simpan kode pengujian bersama kode aplikasi. Mengembangkan dan memelihara kode pengujian dengan kode aplikasi. Untuk memastikan kualitas pengujian, buang pengujian yang tidak dapat diandalkan.
Pertimbangkan kepemilikan pengujian, yang didasarkan pada kepemilikan beban kerja. Tim beban kerja Anda memiliki pengujian mereka dan tidak boleh mengandalkan tim lain untuk menguji kode mereka.
Mengotomatiskan pengujian sebanyak mungkin. Kode otomatis meringankan beban tim beban kerja Anda dan menegakkan kualitas yang konsisten.
Terapkan berbagai jenis pengujian, seperti unit, asap, integrasi, dan pengujian penerimaan. Untuk tinjauan terperinci tentang jenis pengujian ini, lihat bagian pengujian panduan rekomendasi rantai pasokan beban kerja .
Memerlukan praktik DevSecOps sebagai bagian dari prosedur operasi standar Anda. Tim beban kerja Anda harus memahami praktik keamanan yang terkait dengan pengembangan perangkat lunak dan jaminan kualitas. Mereka harus mengikuti praktik ini tanpa kecuali. Untuk informasi selengkapnya, lihat Panduan siklus hidup pengembangan keamanan.
Menerapkan standar untuk penamaan dan pemberian tag sumber daya
Menerapkan konvensi pemberian tag dan penamaan adalah praktik terbaik untuk mengelola dan mengatur sumber daya Azure. Konvensi pemberian tag dan penamaan membantu mengidentifikasi, mengklasifikasikan, dan mengelompokkan sumber daya berdasarkan atribut umum, seperti lingkungan, aplikasi, pemilik, atau pusat biaya. Mereka juga mengaktifkan keamanan, otomatisasi, pelaporan, dan tata kelola sumber daya di seluruh langganan dan grup sumber daya.
Beberapa manfaat menggunakan konvensi pemberian tag dan penamaan standar adalah:
- Mereka memberikan konsistensi dan kejelasan untuk identifikasi dan manajemen sumber daya, memfasilitasi penemuan dan pencarian di portal Microsoft Azure, PowerShell, CLI, dan API.
- Mereka memungkinkan pemfilteran dan pengelompokan sumber daya untuk tujuan penagihan, pemantauan, keamanan, dan kepatuhan.
- Mereka mendukung manajemen siklus hidup sumber daya, seperti provisi, penonaktifan, pencadangan, dan pemulihan.
- Mereka penting untuk tujuan keamanan. Jika Anda mengalami insiden keamanan, sangat penting untuk mengidentifikasi sistem yang terpengaruh dengan cepat, fungsi yang didukung sistem tersebut, dan potensi dampak bisnis.
Untuk informasi selengkapnya tentang menggunakan konvensi penamaan untuk sumber daya cloud Anda, lihat Menentukan konvensi penamaan Anda. Untuk informasi selengkapnya tentang cara menerapkan tag metadata ke sumber daya cloud Anda, lihat Menentukan strategi pemberian tag Anda.
Dukungan Azure
Azure DevOps adalah kumpulan layanan yang dapat Anda gunakan untuk membangun praktik pengembangan kolaboratif, efisien, dan konsisten. Azure DevOps Menggabungkan solusi berikut:
Azure Pipelines menyediakan layanan build dan rilis untuk mendukung CI/CD aplikasi Anda.
Azure Boards adalah alat manajemen kerja berbasis web yang mendukung praktik Agile seperti Scrum dan Kanban.
Azure Repos adalah alat kontrol versi yang mendukung sistem kontrol versi terdistribusi Git dan sistem Kontrol Versi Team Foundation .
Azure Test Plans adalah solusi manajemen pengujian berbasis browser yang menyediakan kemampuan yang diperlukan untuk pengujian manual terencana, pengujian penerimaan pengguna, pengujian eksplorasi, dan mengumpulkan umpan balik dari pemangku kepentingan.
Azure Artifacts digunakan untuk memungkinkan pengembang berbagi kode mereka secara efisien dan mengelola paket mereka.
GitHub Actions for Azure adalah alat yang dapat Anda gunakan untuk mengotomatiskan proses CI/CD. Ini terintegrasi langsung dengan Azure untuk menyederhanakan penyebaran. Anda dapat membuat alur kerja yang membangun dan menguji setiap permintaan pull ke repositori Anda, atau menyebarkan permintaan pull gabungan ke produksi.
GitHub Projects adalah alat manajemen kerja yang dapat Anda gunakan untuk membuat papan Kanban, laporan, dasbor, dan fungsi lainnya.
Alat kode rendah dan tanpa kode meliputi:
Templat Azure Resource Manager dan Bicep adalah alat asli Azure yang dapat Anda gunakan untuk menyebarkan IaC. Terraform adalah alat IaC lain yang didukung Azure yang dapat Anda gunakan untuk menyebarkan dan mengelola infrastruktur.
Visual Studio adalah alat pengembangan kuat yang terintegrasi dengan Azure dan mendukung banyak bahasa.
GitHub Copilot adalah layanan AI yang bertindak sebagai pemrogram pasangan dan menyediakan saran pelengkapan otomatis saat Anda menulis kode. Copilot tersedia sebagai ekstensi di Visual Studio dan beberapa alat pengembangan lainnya.
Azure Load Testing adalah layanan pengujian beban terkelola penuh yang dapat Anda gunakan untuk menghasilkan beban skala tinggi dengan mensimulasikan lalu lintas untuk aplikasi Anda, terlepas dari di mana mereka dihosting.
Perataan organisasi
Cloud Adoption Framework for Azure memberikan panduan dan rekomendasi umum untuk memberi tag dan penamaan sumber daya Azure, serta aturan dan contoh tertentu untuk berbagai jenis sumber daya.
Tautan terkait
- Mengadopsi strategi percabangan Git
- Kebijakan dan pengaturan cabang
- Pola desain cloud
- Kecepatan pengembang
- Mengembangkan strategi penamaan dan pemberian tag untuk sumber daya Azure
- Pusat sumber daya DevOps
- Mengaktifkan DevSecOps dengan Azure dan GitHub
- Gambaran umum analisis kode sumber
- Panduan siklus hidup pengembangan keamanan
- Keamanan di DevOps (DevSecOps)
- Shift testing kiri dengan pengujian unit
- Seri video: Pengantar GitHub CoPilot
Daftar periksa Keunggulan Operasional
Lihat kumpulan rekomendasi lengkap.