Daftar periksa kesiapan produksi

Terjemahan artikel disiapkan khusus untuk mahasiswa kursus tersebut "Praktik dan alat DevOps", yang dimulai hari ini!

Daftar periksa kesiapan produksi

Pernahkah Anda merilis layanan baru ke dalam produksi? Atau mungkin Anda terlibat dalam mendukung layanan tersebut? Jika ya, apa yang memotivasi Anda? Apa yang baik untuk produksi dan apa yang buruk? Bagaimana Anda melatih anggota tim baru tentang rilis atau pemeliharaan layanan yang ada.

Kebanyakan perusahaan akhirnya mengadopsi pendekatan β€œWild West” ketika menyangkut praktik operasi industri. Setiap tim memutuskan alat dan praktik terbaiknya sendiri melalui trial and error. Namun hal ini sering kali memengaruhi tidak hanya keberhasilan proyek, tetapi juga para insinyur.

Trial and error menciptakan lingkungan di mana saling tuding dan saling menyalahkan adalah hal biasa. Dengan perilaku ini, semakin sulit untuk belajar dari kesalahan dan tidak mengulanginya lagi.

Organisasi yang sukses:

  • menyadari perlunya pedoman produksi,
  • mempelajari praktik terbaik,
  • memulai diskusi tentang masalah kesiapan produksi ketika mengembangkan sistem atau komponen baru,
  • memastikan kepatuhan terhadap aturan persiapan produksi.

Persiapan produksi mencakup proses β€œreview”. Tinjauan tersebut dapat berupa checklist atau serangkaian pertanyaan. Review dapat dilakukan secara manual, otomatis, atau keduanya. Daripada membuat daftar persyaratan statis, Anda dapat membuat templat daftar periksa yang dapat disesuaikan dengan kebutuhan spesifik. Dengan cara ini, para insinyur dapat diberikan cara untuk mewarisi pengetahuan dan fleksibilitas yang cukup bila diperlukan.

Kapan harus memeriksa kesiapan layanan untuk produksi?

Pemeriksaan kesiapan produksi akan berguna tidak hanya segera sebelum pelepasan, tetapi juga ketika dipindahkan ke tim operasi lain atau karyawan baru.

Periksa kapan:

  • Anda merilis layanan baru ke dalam produksi.
  • Anda mentransfer pengoperasian layanan produksi ke tim lain, seperti SRE.
  • Anda mentransfer operasi layanan produksi ke karyawan baru.
  • Mengatur dukungan teknis.

Daftar periksa kesiapan produksi

Beberapa waktu lalu, sebagai contoh, saya ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° checklist untuk pengujian kesiapan produksi. Meskipun daftar ini berasal dari pelanggan Google Cloud, daftar ini akan berguna dan dapat diterapkan di luar Google Cloud.

Perancangan dan pengembangan

  • Kembangkan proses pembangunan berulang yang tidak memerlukan akses ke layanan eksternal dan tidak bergantung pada kegagalan sistem eksternal.
  • Selama periode desain dan pengembangan, tentukan dan tetapkan SLO untuk layanan Anda.
  • Dokumentasikan ekspektasi atas ketersediaan layanan eksternal yang Anda andalkan.
  • Hindari satu titik kegagalan dengan menghilangkan ketergantungan pada satu sumber daya global. Replikasi sumber daya atau gunakan fallback ketika sumber daya tidak tersedia (misalnya, nilai yang dikodekan secara permanen).

Manajemen konfigurasi

  • Konfigurasi statis, kecil, dan non-rahasia dapat diteruskan melalui parameter baris perintah. Untuk yang lainnya, gunakan layanan penyimpanan konfigurasi.
  • Konfigurasi dinamis harus memiliki pengaturan cadangan jika layanan konfigurasi tidak tersedia.
  • Konfigurasi lingkungan pengembangan tidak boleh terkait dengan konfigurasi produksi. Jika tidak, hal ini dapat menyebabkan akses dari lingkungan pengembangan ke layanan produksi, yang dapat menyebabkan masalah privasi dan kebocoran data.
  • Dokumentasikan apa yang dapat dikonfigurasi secara dinamis dan jelaskan perilaku fallback jika sistem pengiriman konfigurasi tidak tersedia.

Manajemen rilis

  • Dokumentasikan proses rilis secara detail. Jelaskan bagaimana rilis memengaruhi SLO (misalnya, peningkatan latensi sementara karena cache tidak ada).
  • Dokumentasikan pelepasan burung kenari.
  • Kembangkan rencana peninjauan pelepasan kenari dan, jika memungkinkan, mekanisme rollback otomatis.
  • Pastikan rollback dapat menggunakan proses yang sama seperti penerapan.

Observabilitas

  • Pastikan kumpulan metrik yang diperlukan untuk SLO dikumpulkan.
  • Pastikan Anda dapat membedakan antara data klien dan server. Hal ini penting untuk menemukan penyebab malfungsi.
  • Siapkan peringatan untuk mengurangi biaya tenaga kerja. Misalnya, menghapus peringatan yang disebabkan oleh pengoperasian rutin.
  • Jika Anda menggunakan Stackdriver, sertakan metrik platform GCP di dasbor Anda. Siapkan pemberitahuan untuk dependensi GCP.
  • Selalu sebarkan jejak masuk. Bahkan jika Anda tidak terlibat dalam penelusuran, hal ini akan memungkinkan layanan tingkat yang lebih rendah untuk men-debug masalah dalam produksi.

Perlindungan dan keamanan

  • Pastikan semua koneksi eksternal dienkripsi.
  • Pastikan proyek produksi Anda memiliki pengaturan IAM yang benar.
  • Gunakan jaringan untuk mengisolasi grup instance mesin virtual.
  • Gunakan VPN untuk terhubung dengan aman ke jaringan jarak jauh.
  • Dokumentasikan dan pantau akses pengguna ke data. Pastikan semua akses pengguna ke data diaudit dan dicatat.
  • Pastikan titik akhir debugging dibatasi oleh ACL.
  • Sanitasi masukan pengguna. Konfigurasikan batas ukuran muatan untuk input pengguna.
  • Pastikan layanan Anda dapat memblokir lalu lintas masuk secara selektif untuk masing-masing pengguna. Ini akan memblokir pelanggaran tanpa mempengaruhi pengguna lain.
  • Hindari titik akhir eksternal yang memulai banyak operasi internal.

Perencanaan kapasitas

  • Dokumentasikan skala layanan Anda. Misalnya: jumlah pengguna, ukuran payload masuk, jumlah pesan masuk.
  • Dokumentasikan persyaratan sumber daya untuk layanan Anda. Misalnya: jumlah instance mesin virtual khusus, jumlah instance Spanner, perangkat keras khusus seperti GPU atau TPU.
  • Batasan sumber daya dokumen: jenis sumber daya, wilayah, dll.
  • Dokumentasikan pembatasan kuota untuk membuat sumber daya baru. Misalnya, membatasi jumlah permintaan GCE API jika Anda menggunakan API tersebut untuk membuat instance baru.
  • Pertimbangkan untuk menjalankan uji beban untuk menganalisis penurunan kinerja.

Itu saja. Sampai jumpa di kelas!

Sumber: www.habr.com

Tambah komentar