Rekomendasi untuk menerapkan otomatisasi

Berlaku untuk rekomendasi daftar periksa Well-Architected Framework Operational Excellence ini:

OE:09 Mengotomatiskan semua tugas yang tidak mendapat manfaat dari wawasan dan kemampuan beradaptasi intervensi manusia, sangat prosedural, dan memiliki umur simpan yang menghasilkan pengembalian investasi otomatisasi. Jika memungkinkan, pilih perangkat lunak off-the-shelf untuk otomatisasi versus implementasi kustom. Perlakukan semua otomatisasi sama dengan komponen beban kerja, dan terapkan pilar Well-Architected Framework ke desain dan implementasinya.

Panduan ini menjelaskan rekomendasi untuk mengadopsi otomatisasi dalam beban kerja Anda. Anda dapat mengotomatiskan tugas yang berulang dan rentan terhadap kesalahan manusia untuk membantu tim Anda mendapatkan efisiensi dan mematuhi standar. Mengotomatiskan tugas untuk membuat beban kerja Anda efisien dan konsisten. Automation memungkinkan tim operasi dan teknik Anda menjadi lebih efisien karena memberi mereka lebih banyak waktu untuk mengerjakan peningkatan lainnya. Automation adalah alat yang canggih di semua aspek manajemen beban kerja. Terapkan otomatisasi dengan cermat untuk memberdayakan organisasi Anda.

Strategi desain utama

Saat Anda mengembangkan beban kerja, cari peluang untuk memanfaatkan otomatisasi untuk mengurangi beban manajemen dan meminimalkan kesalahan manusia. Evaluasi peluang ini, dan pertimbangkan nilai yang mereka bawa ke organisasi Anda. Untuk memaksimalkan nilai investasi Anda dalam otomatisasi, prioritaskan tugas yang mudah, prosedural, dan memiliki umur simpan yang lama. Menerapkan otomatisasi bukanlah taktik semua atau tidak sama sekali. Ada aliran kerja yang mungkin memiliki operasi yang memerlukan intervensi manusia, seperti titik pengambilan keputusan. Aliran kerja ini masih dapat memperoleh manfaat dari otomatisasi untuk melakukan tugas lain.

Tugas target untuk mengotomatiskan

Pertimbangkan rekomendasi berikut untuk memastikan bahwa Anda memprioritaskan tugas yang paling diuntungkan dari otomatisasi:

  • Bertujuan untuk kemenangan mudah. Fokus pada tugas yang sangat prosedural dan rentan terhadap kesalahan manusia. Tugas-tugas ini sangat otomatis. Mereka jelas didefinisikan, mereka bebas dari variabel yang menambah kompleksitas, dan mereka dilakukan sebagai bagian dari operasi normal. Sebaliknya, jangan memprioritaskan mengotomatiskan tugas yang memerlukan penulisan skrip kompleks untuk mempertanggungjawabkan fenomena variabel, atau tugas yang jarang terjadi.

    Contoh tugas yang sangat otomatis termasuk me-reboot server, membuat akun, dan mentransfer log ke penyimpanan data. Tugas-tugas ini mungkin terjadi sesuai jadwal, sebagai respons terhadap peristiwa atau pemberitahuan pemantauan, atau sesuai kebutuhan berdasarkan faktor eksternal.

  • Cari cara untuk memberdayakan operator dan membebaskan UKM Anda. Anda mungkin memiliki pakar dalam organisasi Anda yang diandalkan untuk eskalasi yang mungkin tidak perlu. Misalnya, administrator database Anda mungkin secara rutin mendapatkan permintaan untuk membuat database baru saat Anda onboarding pelanggan baru ke solusi multipenyewa Anda. Jika Anda membangun portal layanan mandiri untuk tim staf dukungan, Anda dapat mengaktifkannya untuk membuat database kosong dengan aman sendiri. Atau sebagai langkah perantara, Anda dapat mengotomatiskan permintaan dan langkah-langkah yang harus dilakukan UKM dengan membuat skrip untuk dijalankan.

  • Fokus pada laba atas investasi Anda. Otomatisasi bernilai tinggi membutuhkan overhead manajemen minimal dan menambahkan tingkat efisiensi yang dapat ditunjukkan. Jika Anda dapat menyimpan tim operasi Anda satu jam setiap hari dengan mengotomatiskan entri database, misalnya, Anda memberi mereka waktu untuk menemukan area lain untuk perbaikan.

Area untuk menerapkan otomatisasi

Mengadopsi otomatisasi di seluruh siklus hidup beban kerja Anda, dari pengembangan hingga manajemen sehari-hari. Gunakan daftar contoh berikut untuk membantu Anda mempertimbangkan area luas siklus hidup beban kerja Anda yang dapat memperoleh manfaat dari otomatisasi. Anda dapat mengotomatiskan:

  • Definisi, eksekusi, dan manajemen alur: Gunakan alat integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD), seperti Azure DevOps dan alat DevOps lainnya, untuk secara otomatis menentukan alur dan cara menjalankannya. Alat-alat ini dapat membantu Anda mengotomatiskan tugas CI/CD atau tugas lainnya, seperti membuat laporan.

  • Penyebaran: Gunakan alat seperti templat Azure Resource Manager, Bicep, Terraform, dan Ansible untuk mengotomatiskan proses pengembangan dan rilis beban kerja Anda. Sebarkan dan perbarui infrastruktur Anda dengan platform otomatisasi yang sama dengan menggunakan pendekatan infrastruktur sebagai kode (IaC).

  • Pengujian: Banyak alat tersedia untuk mengotomatiskan proses pengujian Anda. Alat-alat ini dapat meringankan beban yang signifikan dari tim jaminan kualitas Anda dan memastikan bahwa tes distandarkan dan dapat diandalkan.

  • Penskalakan: Gunakan fungsionalitas yang disediakan platform dan alat lain, seperti alat orkestrasi, untuk menskalakan infrastruktur Anda secara otomatis saat beban meningkat atau berkurang.

  • Pemantauan dan peringatan: Gunakan alat yang tersedia dalam solusi pemantauan Anda untuk mendaftarkan sumber daya yang baru disebarkan secara otomatis dan mengonfigurasi tindakan yang dipicu peringatan untuk membantu mempersingkat remediasi saat masalah muncul.

  • Penyembuhan mandiri: Gunakan pemberitahuan yang dihasilkan oleh sistem pemantauan Anda untuk mengotomatiskan tindakan dan memulihkan komponen atau pekerjaan yang tidak berfungsi. Untuk informasi selengkapnya, lihat Rekomendasi untuk penyembuhan diri dan pelestarian diri.

  • Manajemen konfigurasi: Gunakan orkestrasi dan alat kebijakan untuk memastikan bahwa semua sumber daya Anda menjalankan konfigurasi yang sama dan bahwa persyaratan kepatuhan diberlakukan di seluruh beban kerja Anda.

  • Tugas administratif lainnya: Gunakan skrip untuk mengotomatiskan tugas berulang seperti memperbarui rekaman database atau rekaman DNS.

  • Persetujuan: Memungkinkan sistem untuk secara otomatis membuat keputusan persetujuan berdasarkan aturan yang telah ditentukan sebelumnya untuk meningkatkan efisiensi untuk alur kerja yang memiliki gerbang persetujuan. Metode ini mendorong penggunaan formulir dan templat standar, yang meningkatkan efisiensi proses. Persetujuan otomatis di lingkungan tinggi bisa berisiko. Fokus dan uji persetujuan otomatis Anda dengan ketat untuk memastikan bahwa kriteria tertentu didefinisikan untuk memberikan persetujuan.

  • Onboarding pengguna baru dan karyawan baru: Anda dapat mengotomatiskan banyak tugas yang terkait dengan onboarding pengguna aplikasi baru atau karyawan baru, seperti pembaruan database dan pembuatan kredensial.

  • Pemantauan dan peringatan: Manfaatkan fungsionalitas otomatisasi yang disediakan platform pengamatan Anda. Mendaftarkan perangkat baru secara otomatis untuk memantau dan memperingatkan anomali.

Pilih alat otomatisasi yang sesuai

Mengembangkan otomatisasi Anda sendiri di rumah adalah waktu yang intensif dan dapat memperkenalkan beban manajemen kepada tim pengembangan Anda. Mereka perlu mempertahankan alat otomatisasi internal seperti yang mereka lakukan perangkat lunak internal lainnya. Disarankan agar Anda menggunakan alat off-the-shelf setiap kali mereka dapat memenuhi kebutuhan Anda. Antara alat yang disediakan platform komersial, sumber terbuka, dan cloud, ada banyak opsi yang tersedia. Kemungkinan Anda akan menggunakan berbagai alat untuk membangun otomatisasi yang Anda butuhkan. Mengandalkan keahlian internal Anda untuk membantu memandu keputusan Anda saat mengevaluasi alat. Tim Anda mungkin lebih terbiasa dengan bahasa dan kerangka kerja pengembangan tertentu. Anda awalnya dapat fokus pada alat off-the-shelf yang dapat mereka gunakan tanpa kurva pembelajaran yang tinggi. Refleksikan tugas yang Anda rencanakan untuk diatasi dengan otomatisasi, dan investasikan alat yang dapat secara khusus mengatasi tugas-tugas tersebut. Jangan mendapatkan alat yang umumnya Anda sukai lalu pertimbangkan tugas setelahnya.

Perhatikan faktor-faktor yang dapat mempersulit operasi Anda saat Anda membangun otomatisasi, seperti penguncian versi dan penggunaan plugin secara berlebihan. Plugin, seperti plugin Jenkins atau Azure DevOps, adalah cara yang bagus untuk menambahkan fungsionalitas. Anda harus mengadopsi plugin ketika menguntungkan tujuan otomatisasi Anda. Tetapi ketika Anda menggunakan beberapa plugin untuk melakukan satu tugas, itu dapat membuat pembaruan otomatisasi dan pemecahan masalah sulit. Bersikaplah peradilan dalam penggunaan plugin Anda. Hindari juga solusi yang memiliki dependensi versi kerangka kerja karena merupakan beban yang harus dipertahankan dari waktu ke waktu. Untuk membantu meminimalkan risiko jenis masalah ini, standarkan pemilihan alat dan plugin otomatisasi Anda, dan gunakan kontrol sumber untuk semua proyek otomatisasi.

Mengintegrasikan otomatisasi ke dalam beban kerja Anda

Untuk alat apa pun yang Anda gunakan untuk membangun otomatisasi Anda, membuatnya mudah diakses dan dikelola untuk operator Anda. Menyediakan antarmuka yang jelas dan mudah digunakan untuk tim beban kerja Anda. Anda dapat menyediakan akses ke alur, API, dan pustaka CI/CD. Seperti beban kerja yang didukung otomatisasi, Anda perlu mengelola otomatisasi secara holistik. Otomatisasi aman ke tingkat yang sama dengan komponen beban kerja lainnya. Pantau otomatisasi dan tunduk pada protokol pengujian yang sama dengan komponen beban kerja lainnya.

Pertimbangan

  • Terkadang efisiensi yang Anda peroleh dari otomatisasi melebihi beban manajemen pengembangan solusi Anda sendiri jika tidak ada solusi di luar rak yang sesuai dengan kebutuhan Anda. Dalam kasus ini, bersikaplah peradilan dalam upaya pengembangan Anda. Fokus sempit pada pengembangan hanya apa yang Anda butuhkan untuk menutupi celah yang tidak dapat Anda pecahkan dengan solusi di luar rak, dan meminimalkan kompleksitas seperti dependensi.

  • Otomatisasi kompleks yang membutuhkan pemeliharaan tingkat tinggi bisa sulit bagi tim operasi untuk mengelola dan memecahkan masalah. Jaga agar tugas otomatis tetap fokus pada hanya melakukan pekerjaan diskrit. Cobalah untuk meminimalkan dependensi pada alat atau komponen lain.

  • Berhati-hatilah saat menggunakan proses manual. Jika Anda memutuskan untuk tidak mengotomatiskan operasi, dokumentasikan proses manual secara menyeluruh dengan membuat daftar periksa langkah demi langkah untuk operator. Praktik ini mengurangi kemungkinan kesalahan manusia, seperti operator yang salah menjalankan proses yang salah. Dokumentasi ini juga membantu Anda merancang otomatisasi untuk proses tersebut di masa mendatang.

  • Ketika Anda menggunakan pendekatan manual dan otomatis hibrid, Anda harus sangat berhati-hati. Jika skrip menjalankan sebagian besar proses tetapi kemudian menangguhkan kepada manusia untuk bagian atau keputusan tertentu, penting bagi Anda untuk memberikan konteks dan informasi yang diperlukan kepada orang tersebut untuk membuat keputusan berdasarkan informasi.

Fasilitasi Azure

Azure menawarkan banyak alat untuk membantu Anda mengotomatiskan tugas untuk beban kerja Anda.

Alat IaC: Anda dapat menggunakan Terraform, Bicep, dan Azure Resource Manager untuk penyebaran IaC. Bergantung pada kebutuhan Anda dan keakraban tim Anda dengan alat, Anda mungkin menggunakan satu atau beberapa alat ini untuk penyebaran dan manajemen sumber daya Anda.

Azure Functions: Azure Functions adalah alat tanpa server yang dapat Anda gunakan untuk mengotomatiskan tugas dengan menggunakan bahasa pengembangan pilihan Anda. Functions menyediakan serangkaian pemicu dan pengikatan berbasis peristiwa yang komprehensif yang menghubungkan fungsi Anda ke layanan lain. Anda tidak perlu menulis kode tambahan.

Tindakan GitHub untuk Azure: Anda dapat menggunakan GitHub Actions untuk Azure untuk mengotomatiskan proses CI/CD. GitHub Actions terintegrasi dengan Azure untuk menyederhanakan penyebaran. Anda dapat membuat alur kerja yang membangun dan menguji setiap permintaan pull di repositori Anda, atau menyebarkan permintaan pull gabungan ke produksi.

Tindakan GitHub melampaui DevOps saja dan memungkinkan Anda menjalankan alur kerja saat peristiwa lain terjadi di repositori Anda. Misalnya, Anda dapat menjalankan alur kerja untuk menambahkan label yang sesuai secara otomatis saat seseorang membuat masalah baru di repositori Anda.

Azure Automation: PowerShell dan Python adalah bahasa pemrograman populer untuk mengotomatiskan tugas operasional. Gunakan bahasa ini untuk melakukan operasi seperti memulai ulang layanan, mentransfer log antar penyimpanan data, dan menskalakan infrastruktur untuk memenuhi permintaan. Anda dapat mengekspresikan operasi ini dalam kode dan menjalankannya sesuai permintaan. Sendiri, bahasa ini tidak menawarkan platform untuk manajemen terpusat, kontrol versi, atau riwayat eksekusi. Bahasa ini juga tidak memiliki mekanisme asli untuk merespons peristiwa seperti pemberitahuan berbasis pemantauan. Untuk menyediakan kemampuan ini, Anda memerlukan platform otomatisasi.

Automation menyediakan platform yang dihosting Azure untuk menghosting dan menjalankan kode PowerShell dan Python di seluruh lingkungan cloud dan lokal, baik Azure maupun non-Azure. Kode PowerShell dan Python disimpan dalam runbook Automation. Gunakan Automation untuk:

  • Memicu runbook sesuai permintaan, sesuai jadwal, atau melalui webhook.

  • Jalankan riwayat dan pengelogan.

  • Mengintegrasikan penyimpanan rahasia.

  • Mengintegrasikan kontrol sumber.

Manajer Pembaharuan Azure: Update Manager adalah layanan terpadu untuk membantu mengelola dan mengatur pembaruan untuk komputer virtual. Anda dapat memantau kepatuhan pembaruan Windows dan Linux di seluruh beban kerja Anda. Anda juga dapat menggunakan Update Manager untuk membuat pembaruan real-time atau menjadwalkannya dalam jendela pemeliharaan yang ditentukan. Gunakan Manajer Pembaruan untuk:

  • Mengawasi kepatuhan pada seluruh armada mesin Anda.
  • Jadwalkan pembaruan berulang
  • Menyebarkan pembaruan penting

Lingkungan Penyebaran Azure: Lingkungan Penyebaran memungkinkan tim pengembangan untuk dengan cepat membuat infrastruktur aplikasi yang konsisten dengan menggunakan templat berbasis proyek. Templat ini meminimalkan waktu penyiapan dan memaksimalkan keamanan, kepatuhan, dan efisiensi biaya. Lingkungan penyebaran adalah kumpulan sumber daya Azure yang disebarkan dalam langganan yang telah ditentukan sebelumnya. Administrator infrastruktur pengembangan dapat memberlakukan kebijakan keamanan perusahaan dan menyediakan serangkaian templat IaC yang telah ditentukan sebelumnya.

Administrator infrastruktur pengembangan mendefinisikan lingkungan penyebaran sebagai item katalog. Item katalog dihosting di repositori GitHub atau Azure DevOps, yang disebut katalog. Item katalog terdiri dari templat IaC dan file manifest.yaml.

Anda dapat membuat skrip pembuatan lingkungan penyebaran dan mengelola lingkungan secara terprogram.

Azure Logic Apps dan Microsoft Power Automate: Saat Anda membangun otomatisasi proses digital (DPA) kustom untuk menangani tugas beban kerja seperti alur persetujuan atau membangun integrasi ChatOps, pertimbangkan untuk menggunakan Logic Apps atau Power Automate. Anda dapat membuat alur kerja dari konektor dan templat bawaan. Logic Apps dan Power Automate dibangun di atas teknologi yang mendasar yang sama dan sangat cocok untuk tugas berbasis pemicu atau berbasis waktu.

Penskalakan otomatis: Banyak teknologi Azure memiliki kemampuan penskalakan otomatis bawaan. Anda juga dapat memprogram layanan lain untuk menskalakan secara otomatis dengan menggunakan API. Untuk informasi selengkapnya, lihat Rekomendasi untuk merancang strategi penskalaan yang andal.

Grup tindakan Azure Monitor: Untuk menjalankan operasi penyembuhan mandiri secara otomatis saat pemberitahuan dipicu, gunakan grup tindakan Azure Monitor. Anda dapat menentukan operasi ini dengan menggunakan runbook, fungsi Azure, atau webhook.

Contoh

Untuk contoh penggunaan Automation bersama dengan layanan Azure lainnya, lihat Otomatisasi ops dengan menggunakan Azure Event Grid. Contoh ini menggunakan Logic Apps dan Event Grid untuk mengotomatiskan tugas operasional.

Daftar periksa Keunggulan Operasional

Lihat serangkaian rekomendasi lengkap.