Otomatisasi platform dan DevOps untuk AKS

Sebagai konstruksi asli cloud, Kubernetes memerlukan pendekatan asli cloud untuk penyebaran dan operasi. Azure dan Kubernetes adalah platform terbuka dan dapat diperluas dengan API yang kaya dan dirancang dengan baik, memberikan peluang dan kemampuan untuk mengotomatisasi sepenuhnya. Rencanakan untuk Azure DevOps dan pendekatan yang sangat otomatis dengan mengandalkan otomatisasi dan praktik terbaik umum DevOps.

Pertimbangan Desain

Berikut adalah beberapa pertimbangan desain untuk otomatisasi platform AKS dan Azure DevOps:

  • Pertimbangkan batasan layanan Azure dan lingkungan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) Anda saat menentukan pendekatan teknik dan otomatisasi Anda. Untuk contoh lain, lihat batasan penggunaan GitHub.

  • Saat mengamankan dan melindungi akses ke lingkungan pengembangan, pengujian, T&A, dan produksi, pertimbangkan opsi keamanan dari perspektif CI/CD. Penyebaran terjadi secara otomatis, jadi petakan kontrol akses yang sesuai.

  • Pertimbangkan untuk menggunakan awalan dan akhiran dengan konvensi yang terdefinisi dengan baik untuk mengidentifikasi secara unik setiap sumber daya yang digunakan. Konvensi penamaan ini menghindari konflik dalam menyebarkan solusi di samping satu sama lain, dan meningkatkan kelincahan dan throughput tim secara keseluruhan.

  • Inventarisasi alur kerja untuk mendukung rekayasa, pembaruan, dan penyebaran solusi Anda dalam rezim Rencana Pemulihan Bencana (DRP) normal dan. Pertimbangkan pemetaan alur sesuai dengan alur kerja tersebut, memaksimalkan keakraban dan produktivitas.

    Beberapa contoh skenario dan alur yang perlu dipertimbangkan adalah:

    • Menyebarkan, patching, dan meningkatkan kluster
    • Menyebarkan dan meningkatkan aplikasi
    • Menyebarkan dan memelihara add-on
    • Gagal untuk pemulihan bencana
    • Penyebaran biru-hijau
    • Menjaga lingkungan kenari
  • Pertimbangkan untuk menggunakan jala layanan untuk menambahkan lebih banyak keamanan, enkripsi, dan kemampuan log ke beban kerja Anda.

  • Pertimbangkan untuk menyebarkan sumber daya lain seperti langganan, pemberian tag, dan label untuk mendukung pengalaman Azure DevOps Anda dengan pelacakan dan melacak penyebaran dan artefak terkait.

  • Pertimbangkan dampak dari perubahan paradigma sapi versus hewan peliharaan. Harapkan pod dan aspek lain dari Kubernetes bersifat sementara, dan sesuaikan otomatisasi dan infrastruktur alur Anda. Jangan mengandalkan alamat IP atau sumber daya lain untuk tetap atau permanen.

Rekomendasi desain

Berikut adalah beberapa rekomendasi desain untuk otomatisasi platform AKS dan Azure DevOps:

  • Bergantung pada alur atau tindakan untuk:

    • Memaksimalkan praktik yang diaplikasikan di seluruh tim.
    • Singkirkan sebagian besar beban dalam menciptakan kembali roda.
    • Memberikan prediktabilitas dan wawasan dalam kualitas dan kelincahan secara keseluruhan.
  • Sebarkan lebih awal dan sering dengan menggunakan alur berbasis pemicu dan terjadwal. Alur berbasis pemicu memastikan perubahan melalui validasi yang tepat, sementara alur terjadwal mengelola perilaku di lingkungan yang berubah.

  • Pisahkan penyebaran infrastruktur dari penyebaran aplikasi. Infrastruktur inti berubah lebih sedikit daripada aplikasi. Perlakukan setiap jenis penyebaran sebagai aliran dan alur terpisah.

  • Sebarkan menggunakan opsi asli cloud. Gunakan infrastruktur sebagai kode untuk menyebarkan infrastruktur termasuk sarana kontrol, dan gunakan Helm dan Pola operator di Kubernetes untuk menyebarkan dan memelihara komponen asli Kubernetes.

  • Gunakan GitOps untuk menyebarkan dan memelihara aplikasi. GitOps menggunakan repositori Git sebagai satu sumber kebenaran, menghindari penyimpangan konfigurasi dan meningkatkan produktivitas dan keandalan selama putar kembali dan prosedur terkait.

  • Gunakan identitas yang dikelola pod dan penyedia Azure Key Vault untuk Secret Store CSI Driver untuk melindungi rahasia, sertifikat, dan string koneksi.

  • Upayakan konkurensi penyebaran yang dimaksimalkan dengan menghindari item konfigurasi dan pengaturan yang dikode keras.

  • Andalkan konvensi terkenal di seluruh infrastruktur dan penyebaran terkait aplikasi. Gunakan pengontrol penerimaan yang digabungkan dengan add-on Azure Policy untuk Kubernetes untuk memvalidasi dan menerapkan konvensi di antara kebijakan lain yang ditentukan.

  • Rangkul shift kiri secara konsisten dengan:

    • Keamanan, dengan menambahkan alat pemindaian kerentanan seperti pemindaian kontainer di awal alur.
    • Kebijakan, dengan menggunakan kebijakan sebagai kode dan menegakkan kebijakan dengan cara asli cloud melalui pengontrol penerimaan.
  • Perlakukan setiap kegagalan, kesalahan, atau pemadaman sebagai kesempatan untuk mengotomatisasi dan meningkatkan kualitas solusi secara keseluruhan. Integrasikan pendekatan ini dalam kerangka kerja shift kiri dan rekayasa keandalan situs (SRE) Anda.