Rekomendasi untuk mengaktifkan otomatisasi

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

OE:10 Merancang dan menerapkan otomatisasi di muka untuk operasi seperti masalah siklus hidup, bootstrapping, dan penerapan pagar pembatas tata kelola dan kepatuhan. Jangan coba retrofit otomatisasi nanti. Pilih fitur otomatisasi yang disediakan platform Anda.

Panduan ini menjelaskan rekomendasi untuk merancang dan mengimplementasikan beban kerja Anda untuk mengaktifkan otomatisasi. Rancang beban kerja Anda dengan mempertimbangkan otomatisasi untuk memastikan bahwa tugas rutin seperti penyediaan sumber daya, penskalaan, dan penyebaran dilakukan dengan cepat dan andal. Automation menyederhanakan tugas pemeliharaan dan memungkinkan Anda memperbarui, menambal, dan meningkatkan sistem Anda secara lebih efisien.

Strategi desain utama

Desain beban kerja

Anda dapat merancang beban kerja Anda untuk mendukung otomatisasi dari fase ideasi hingga fase peningkatan yang sedang berlangsung. Pertama, pertimbangkan bagaimana Anda ingin menerapkan otomatisasi dalam beban kerja Anda untuk membantu memastikan bahwa Anda menempatkan potongan-potongan yang diperlukan. Pikirkan tentang beban kerja Anda dalam hal pilar Well-Architected Framework untuk membantu merencanakan jenis otomatisasi yang akan Anda gunakan. Anda dapat mengotomatiskan banyak fungsi keamanan, keandalan, performa, operasi, dan kontrol biaya.

Desain dengan mempertimbangkan otomatisasi untuk meminimalkan pemfaktoran ulang setelah beban kerja Anda berjalan. Pertimbangkan persyaratan beban kerja Anda saat memutuskan alat otomatisasi mana yang akan digunakan. Mungkin ada alat otomatisasi off-the-shelf yang sudah terbiasa dengan tim Anda. Mengadopsi alat-alat tersebut dapat membuat jalur untuk mengotomatiskan beban kerja Anda lebih mudah tetapi perhatikan keterbatasan dan kompatibilitasnya dengan platform cloud Anda. Misalnya, beberapa alat otomatisasi mungkin terintegrasi dengan baik dengan alat Azure CLI, sementara yang lain mungkin memerlukan antarmuka REST. Selalu selidiki alat yang disediakan platform cloud Anda untuk memastikan alat tersebut kompatibel dan menyediakan fungsionalitas yang Anda butuhkan. Contoh cara yang dapat Anda rencanakan secara proaktif untuk otomatisasi meliputi:

  • Penyebaran: Mengotomatiskan penyebaran aplikasi dan infrastruktur Anda untuk memastikan standar yang dapat diprediksi. Rencanakan penyebaran otomatis dengan mengembangkan standar penyebaran, melatih tim Anda pada alat yang akan Anda gunakan, dan menerapkan infrastruktur yang diperlukan.

  • Validasi: Memvalidasi persyaratan kepatuhan secara otomatis terhadap beban kerja Anda menggunakan alat orkestrasi atau kebijakan. Identifikasi alat validasi yang sesuai untuk beban kerja Anda dan rencanakan untuk mengimplementasikan sistem yang diperlukan, misalnya, server orkestrasi.

  • Penskalaan otomatis: Gunakan penskalaan otomatis di seluruh infrastruktur Anda untuk membantu Anda mencapai persyaratan keandalan dan performa Anda. Anda harus mengalokasikan ruang alamat IP dan subnet dalam beban kerja Anda sebelumnya untuk memperhitungkan operasi penskalaan, selain merencanakan redundansi dan pertumbuhan alami.

Tradeoff: Saat merancang beban kerja Anda untuk mengaktifkan otomatisasi, pertimbangkan tingkat kontrol yang ingin Anda pertahankan versus efisiensi yang dapat Anda peroleh melalui otomatisasi. Dalam beberapa kasus, beban kerja Anda mungkin tidak cukup matang untuk mengotomatiskan beberapa fungsi atau Anda mungkin memerlukan tingkat fleksibilitas yang tidak disediakan otomatisasi.

Pertimbangkan juga set keterampilan tim Anda saat merancang beban kerja Anda. Jika otomatisasi tingkat tinggi memerlukan alat yang tidak dilengkapi oleh tim Anda untuk mendukung, maka Anda mungkin perlu menggunakan desain yang kurang komprehensif sebagai langkah menengah.

Peningkatan beban kerja berkelanjutan

Setelah beban kerja Anda berjalan di cloud, penting untuk memprioritaskan peningkatan berkelanjutan. Amati beban kerja Anda dalam tindakan, analisis pola penggunaan, dan tinjau perilaku pelanggan yang terkait dengan beban kerja Anda untuk mengidentifikasi area tempat Anda dapat meningkatkan otomatisasi. Cari cara untuk meningkatkan otomatisasi yang ada atau memperkenalkan otomatisasi baru untuk meningkatkan pengalaman pelanggan Anda. Misalnya, Anda mungkin mengaktifkan penskalaan otomatis, tetapi peningkatan beban kerja berumur pendek. Anda dapat mengintegrasikan otomatisasi penyempitan skala untuk mengurangi penggunaan CPU saat beban turun di bawah ambang batas.

Bagian berikut dari panduan ini menawarkan rekomendasi tentang area otomatisasi tertentu yang dapat membantu Anda dalam desain dan implementasi beban kerja Anda.

Bootstrapping

Bootstrapping mengacu pada pembaruan konfigurasi ke sumber daya yang harus dibuat setelah disediakan, tetapi sebelum tersedia sebagai bagian dari kumpulan beban kerja. Bootstrapping sering dikaitkan dengan komputer virtual (VM), tetapi banyak sumber daya lain harus disiapkan sebagai bagian dari proses penyebaran termasuk teknologi platform as a service (PaaS) dan teknologi hosting kontainer seperti Azure Kubernetes Service (AKS).

Platform cloud Anda mungkin menyediakan solusi bootstrapping untuk Anda, yang harus Anda gunakan jika memungkinkan. Misalnya, Anda dapat menggunakan ekstensi VM di Azure untuk membuat perubahan konfigurasi yang telah ditentukan sebelumnya selama proses penyebaran dan menyesuaikan perubahan konfigurasi Anda dengan menyuntikkan skrip PowerShell.

Autentikasi dan Otorisasi

Pertimbangkan otomatisasi saat merancang strategi autentikasi dan otorisasi Anda. Penting untuk mempertahankan tingkat keamanan tertinggi dalam beban kerja produksi, tetapi ini dapat memengaruhi otomatisasi. Misalnya, penggunaan autentikasi biometrik atau multifaktor menambah kompleksitas yang harus dipertanggungjawabkan dalam desain otomatisasi Anda. Gunakan akun nonhuman, aman untuk autentikasi otomatis, seperti identitas terkelola, identitas beban kerja, atau sertifikat. Pastikan Anda telah menyertakan manajemen rahasia dan kunci dalam otomatisasi Anda untuk meningkatkan keamanan autentikasi.

Mendesain variabilitas ke dalam beban kerja Anda

Hindari penyebaran infrastruktur baru yang tidak perlu ketika perubahan kecil dilakukan dengan membangun fleksibilitas ke dalam artefak Anda. Misalnya, daripada menyebarkan ulang infrastruktur Anda saat bendera fitur berubah, Anda dapat menggunakan parameter yang diatur untuk memperbarui komponen seperti konfigurasi aplikasi. Pastikan untuk mendefinisikan dan mendokumen dengan jelas bagaimana variabilitas digunakan untuk menghindari penggunaan berlebihan dan penyimpangan konfigurasi.

Membangun sarana kontrol

Sarana kontrol adalah sistem back-end atau rangkaian alat yang Anda gunakan untuk mengelola aplikasi dan dependensinya melalui antarmuka terpadu. Bangun sarana kontrol Anda seperti antarmuka REST, CLI, atau webhook untuk mendukung otomatisasi dengan alat eksternal.

Mengekspos operasi pemeliharaan melalui sarana kontrol yang memungkinkan Anda mengoordinasikan komponen beban kerja, misalnya pencadangan dan pemulihan yang teratur, bootstrapping, konfigurasi, impor/ekspor, dan operasi batching. Berhati-hatilah untuk memilih tingkat granularitas yang tepat saat memutuskan operasi untuk diekspos melalui sarana kontrol.

Memantau dan mencatat

Kembangkan strategi pemantauan untuk menangkap metrik yang mendorong jenis otomatisasi yang Anda butuhkan. Gunakan pengelogan terstruktur dan metrik kustom untuk memberikan informasi yang diperlukan oleh otomatisasi dalam format yang mudah dikenali dengan alat otomatisasi. Metrik yang Anda ambil harus dipasangkan dengan ambang batas yang ditentukan dalam sistem pemantauan yang memicu pemberitahuan dan tindakan otomatis, seperti pemberitahuan atau mekanisme pemulihan mandiri, jika sesuai. Untuk informasi selengkapnya, lihat Rekomendasi untuk penyembuhan diri dan pelestarian diri.

Siklus hidup pengguna

Rancang aplikasi dan infrastruktur Anda untuk memungkinkan onboarding dan offboarding pengguna otomatis, untuk individu atau pelanggan multipenyewa. Rencanakan pembaruan database otomatis melalui skrip, provisi dan deprovisi infrastruktur, serta manajemen kredensial dan rahasia.

Orkestrasi dan penggunaan kebijakan

Sebagai bagian dari manajemen beban kerja berkelanjutan, Anda dapat mengotomatiskan Desired State Configuration (DSC) di sumber daya Anda untuk membantu memastikan bahwa mereka memenuhi persyaratan kepatuhan dan bisnis. Otomatisasi DSC membantu memastikan bahwa penyimpangan konfigurasi tertangkap dan diperbaiki dengan cepat. Anda dapat mengotomatiskan DSC menggunakan alat orkestrasi atau alat manajemen kebijakan. Pikirkan alat orkestrasi, seperti layanan Azure DevOps atau Jenkins, sebagai mekanisme berbasis pendorongan. Alat orkestrasi memungkinkan pembaruan konfigurasi didorong melalui peristiwa alur kerja, seperti penyebaran manual atau otomatis. Pembaruan ini dijalankan sebagai bagian dari urutan tugas yang ditentukan dalam skrip penyebaran Anda. Alat manajemen kebijakan menggunakan mekanisme berbasis penarikan, yang berarti bahwa sistem berjalan pada tingkat dasar beban kerja Anda yang secara berkala melakukan polling beban kerja untuk memeriksa statusnya terhadap DSC yang Anda tentukan. Jika jajak pendapat mengidentifikasi ketidakselarasan atau penyimpangan konfigurasi, alat mengambil tindakan korektif. Pertimbangkan faktor-faktor berikut saat memutuskan antara orkestrasi dan alat manajemen kebijakan:

  • Alat orkestrasi tidak memiliki kemampuan bawaan untuk secara proaktif melakukan polling beban kerja Anda untuk penyimpangan konfigurasi. Alat orkestrasi harus diintegrasikan ke dalam alur integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) Anda untuk mempertahankan standar untuk penyebaran dan manajemen infrastruktur sebagai kode (IaC). Keuntungan menggunakan alat orkestrasi adalah sumber daya selalu dikonfigurasi sepenuhnya saat disebarkan.

  • Alat manajemen kebijakan memungkinkan Anda menentukan kebijakan yang memengaruhi satu atau beberapa grup sumber daya. Kebijakan ini diberlakukan ketika sumber daya memeriksa dengan sistem manajemen kebijakan. Keuntungan menggunakan manajemen kebijakan adalah bahwa sistem ini tidak didorong oleh kode, sehingga mungkin lebih mudah bagi operator di tim Anda untuk mengadopsi.

Saat memutuskan antara orkestrasi atau alat kebijakan, pertimbangkan apakah pembaruan konfigurasi yang ingin Anda buat pada sumber daya baru harus dibuat pada saat penyebaran. Pertimbangkan juga jika menentukan pembaruan dalam kode sesuai dengan praktik operasional Anda dan berapa banyak jenis sumber daya yang Anda rencanakan untuk disebarkan. Jika ada banyak konfigurasi yang berbeda di seluruh jenis sumber daya, alat kebijakan mungkin merupakan cara yang lebih mudah untuk mengelola pembaruan.

Fasilitasi Azure

Manajemen kebijakan

Azure Policy: Dengan menggunakan Azure Policy, Anda dapat menerapkan standar dan menilai kepatuhan dalam skala besar. Azure Policy menyediakan tampilan agregat untuk mengevaluasi status keseluruhan lingkungan beban kerja di dasbor kepatuhan. Atau Anda dapat menggunakan Azure Policy untuk mengevaluasi setiap sumber daya dan kebijakan pada tingkat granular. Anda juga dapat menggunakan Azure Policy untuk memulihkan sumber daya baru secara otomatis atau memulihkan sumber daya yang ada secara massal.

Tradeoff: Membongkar otomatisasi dari alur CI/CD Anda ke alat atau layanan platform, seperti Azure Policy, dapat menyederhanakan alur Anda, tetapi memiliki kelemahan seperti beban manajemen tambahan menggunakan beberapa sistem. Misalnya, kegagalan eksekusi dalam layanan platform tidak akan tertangkap dalam log alur Anda dan harus dimasukkan ke platform pengamatan Anda dengan cerdas sehingga pihak yang sesuai diberi tahu.

Otomatisasi bootstrap

Ekstensi Azure Virtual Machines: ekstensi Virtual Machines adalah paket kecil yang menjalankan konfigurasi pasca-penyebaran dan otomatisasi pada VM. Beberapa ekstensi tersedia untuk tugas konfigurasi yang berbeda, seperti menjalankan skrip, mengonfigurasi solusi anti-malware, dan mengonfigurasi solusi pengelogan. Instal dan jalankan ekstensi ini di VM dengan menggunakan templat Azure Resource Manager, Azure CLI, modul Azure PowerShell, atau portal Azure. Setiap VM memiliki agen VM yang terinstal yang mengelola siklus hidup ekstensi.

Biasanya, ekstensi VM menggunakan ekstensi skrip kustom untuk menginstal perangkat lunak, menjalankan perintah, dan melakukan konfigurasi pada VM atau Azure Virtual Machine Scale Sets. Anda dapat mengatur ekstensi ini untuk dijalankan sebagai bagian dari penyebaran IaC sehingga berjalan pada VM baru menggunakan Azure VM Agent. Ekstensi juga dapat dijalankan di luar penyebaran Azure dengan menggunakan Azure CLI, modul PowerShell, atau portal Azure.

Cloud-init: Cloud-init adalah alat industri untuk mengonfigurasi VM Linux pada boot pertama. Sama seperti ekstensi skrip kustom Azure, cloud-init memungkinkan Anda menginstal paket dan menjalankan perintah di VM Linux. Anda dapat menggunakan cloud-init untuk penginstalan perangkat lunak, konfigurasi sistem, dan penahapan konten. Azure menyertakan banyak gambar VM yang mendukung cloud-init di seluruh distribusi Linux terkenal. Untuk daftar lengkapnya, lihat dukungan cloud-init untuk VM di Azure.

Sumber daya skrip penyebaran Azure: Saat menyebarkan menggunakan Azure, Anda mungkin perlu menjalankan kode arbitrer untuk bootstrap pengelolaan akun pengguna, pod Kubernetes, atau mengkueri data dari sistem non-Azure. Karena tidak ada operasi ini yang dapat diakses melalui sarana kontrol Azure, mekanisme terpisah diperlukan. Untuk informasi selengkapnya, lihat Microsoft.Resources deploymentScripts. Seperti sumber daya Azure lainnya, sumber daya skrip penyebaran:

  • Dapat digunakan dalam templat Azure Resource Manager.

  • Berisi dependensi templat Azure Resource Manager di sumber daya lain.

  • Mengonsumsi input dan menghasilkan output.

  • Menggunakan identitas terkelola yang ditetapkan pengguna untuk autentikasi.

Saat disebarkan, skrip penyebaran menjalankan perintah dan skrip PowerShell atau Azure CLI. Skrip berjalan dan pengelogan dapat diamati di portal Azure atau dengan modul Azure CLI dan PowerShell. Anda dapat menyesuaikan variabel untuk lingkungan eksekusi, opsi batas waktu, dan manajemen sumber daya setelah kegagalan skrip.

Kluster Bootstrap AKS dengan GitOps: Anda dapat melakukan bootstrap kluster AKS yang baru disediakan menggunakan GitOps dan ekstensi kluster Flux v2 dengan mendeklarasikan pengaturan konfigurasi Anda di repositori GitHub. Karena file kluster AKS disimpan dalam repositori GitHub, file tersebut diberi versi, dan perubahan antar versi mudah dilacak. Pengontrol Kube berjalan di kluster dan terus mendamaikan status kluster dengan status yang diinginkan yang dideklarasikan dalam repositori Git dengan menarik file dari repositori. Untuk informasi selengkapnya, lihat Arsitektur referensi garis besar AKS.

Manajemen konfigurasi

Azure Automation State Configuration adalah alat manajemen DSC yang dikelola oleh fitur konfigurasi tamu Azure Policy yang dapat Anda gunakan untuk menulis, mengelola, dan mengkompilasi konfigurasi DSC PowerShell untuk simpul di cloud atau pusat data lokal apa pun. Anda juga dapat menggunakan alat ini untuk mengimpor sumber daya DSC dan menetapkan konfigurasi ke simpul target.

Azure App Configuration adalah layanan yang dapat Anda gunakan untuk mengelola pengaturan aplikasi dan bendera fitur secara terpusat. Ini berfungsi dengan Azure Key Vault sehingga Anda dapat mengelola berbagai konfigurasi aplikasi dengan aman di seluruh lingkungan Anda.

Ubah Pelacakan dan inventaris

Pelacakan perubahan dan inventarisasi menggunakan Azure Monitoring Agent melacak penyimpangan konfigurasi OS di komputer virtual. Ini mengotomatiskan deteksi penyimpangan, inventarisasi yang menjalankan layanan, dan paket yang diinstal pada komputer virtual dalam beban kerja Anda. Item yang dilacak oleh pelacakan perubahan dan inventori meliputi:

  • Perangkat lunak Windows dan Linux yang terinstal
  • File Kunci Windows dan Linux
  • Kunci registri Windows
  • Layanan Windows dan daemon Linux

Daftar periksa Keunggulan Operasional

Lihat kumpulan rekomendasi lengkap.