Cara Microsoft mengoperasikan sistem yang andal dengan DevOps
Artikel
Microsoft telah mengoperasikan platform online yang kompleks sejak awal adanya internet komersial.
Sepanjang jalan, kami telah mengembangkan serangkaian praktik yang substansial untuk menjaga sistem tetap tersedia, sehat, dan aman.
Praktik-praktik ini adalah bagian dari inisiatif yang lebih besar untuk mempertahankan dan meningkatkan budaya situs langsung.
Budaya situs langsung
Budaya situs langsung adalah fokus organisasi untuk memprioritaskan pengalaman dan keandalan situs langsung daripada yang lainnya. Bagaimanapun, pelanggan dapat berpindah lintas penyedia layanan dengan cukup mudah saat ini dengan cloud dan layanan berbasis internet, sangat memperkuat pentingnya kepercayaan pelanggan. Situs langsung harus selalu tersedia dan berkinerja seperti yang dijanjikan kepada pelanggan.
Ada berbagai faktor yang berkontribusi pada budaya situs langsung yang sukses.
Mengutamakan situs langsung
Mengutamakan pengalaman situs langsung adalah integral untuk platform yang sukses. Tim tidak dapat menempatkan semua fokus mereka pada fitur baru dan mengacaukan jalan tempat fitur-fitur tersebut disajikan kepada pengguna. Kami mengandalkan praktik penyebaran yang aman yang membantu memastikan bahwa pelanggan kami menikmati akses platform yang tidak terganggu. Ini bisa menjadi sangat rumit dalam hal merilis pembaruan layanan versi tanpa waktu henti.
Biasanya, pemantauan kesehatan dan telemetri memperingatkan kita ketika ada sesuatu yang tidak benar. Pengembang dapat membuat cabang dari main, membuat perbaikan, dan menarik permintaannya ke main. Mempertahankan alur kerja umum yang sama berarti pengembang tidak perlu beralih konteks atau mempelajari proses yang berbeda untuk perubahan kode yang berbeda.
Untuk mengatasi penyebaran perbaikan, diperlukan satu langkah lagi, yaitu memilih perubahan ke cabang rilis. Kami menjalankan penyebaran perbaikan terbaru dari cabang rilis saat ini setiap pagi hari kerja, meskipun kami juga dapat melakukan ini sesuai permintaan untuk perbaikan mendesak. Perbaikan sebenarnya mencapai produksi dari cabang rilis terlebih dahulu. Tetapi karena kami mengembangkan main terlebih dahulu, kami tahu itu tidak akan memundurkan sprint berikutnya saat cabang rilis baru dibuat dari main.
Rilis produk lokal sebagian besar sama, meskipun tanpa cincin dan tahap penyebaran.
Karena kami juga melakukan lebih banyak pengujian manual pada konfigurasi dan bentuk data yang berbeda, ada kesempatan yang lebih baik antara memotong cabang rilis dan menempatkan produk di tangan pelanggan.
Keamanan harus ditangani secara pribadi
Fokusnya adalah membuat kerentanan menjadi nyata dan pribadi. Ini memastikan bahwa orang benar-benar peduli.
Kami juga memanfaatkan game perang secara luas untuk menemukan dan mengatasi risiko keamanan di seluruh sistem, baik dalam kode maupun tidak. Ketika tim merah dapat menunjukkan bahwa mereka masuk ke dalam kode dengan mengubah kotak dialog terbalik, itu benar-benar memotivasi pemilik kode untuk mengatasi masalah dan memastikan itu tidak terjadi lagi di tempat lain. Persaingan semacam itu jauh lebih nyata dan pribadi daripada peringatan analisis statis tentang potensi risiko XSS. Kami menciptakan budaya semacam ini dan dinamis melalui permainan perang dan latihan keamanan lainnya. Banyak orang merasa bangga karena dapat meretas kode satu sama lain atau dapat memblokir upayanya. Ini menanamkan budaya kode yang aman.
Kita tidak dapat membuat rencana untuk setiap vektor serangan, tapi yang dapat kita lakukan adalah berasumsi bahwa akan terjadi pelanggaran, dan merencanakan seberapa cepat kita dapat bereaksi terhadap pelanggaran tersebut. Banyak pekerjaan keamanan untuk itu telah dilakukan untuk tim kami.
Terakhir, manusia membuat kesalahan. Mereka terkadang malas dan melakukan hal seperti menyimpan kata sandi pada file yang dibagikan.
Kita dapat memberitahu mereka untuk tidak melakukannya, mengirim mereka ke pelatihan keamanan, dan melakukan segala macam hal lain.
Kebanyakan orang belajar, tetapi hanya perlu satu orang untuk merusak sistem. Anda dapat memiliki semua jenis daftar praktik terbaik tetapi kecuali Anda membuat itu nyata, Anda harus berasumsi bahwa orang akan membuat kesalahan. Membutuhkan tingkat pengawasan tertentu untuk memastikan proses penting diikuti.
Rekayasa itu lebih dari mitra ops saja
Kami belajar sejak dini untuk menjadikan situs langsung sebagai bagian penting dari tanggung jawab tim teknik.
Itu sangat besar bagi kami karena di masa lalu, satu orang dapat menyebarkan sesuatu, berlibur pada akhir pekan, dan kembali pada hari Senin dan melihat 900 masalah pelanggan yang dihadapi oleh dukungan pelanggan dan tim ops sepanjang akhir pekan. Penting untuk rekayasa melakukan pekerjaan pada masalah situs langsung. Jika tidak, tidak ada insentif untuk membangun sistem yang menghindari masalah tersebut. Saat kau dipanggil jam 2 pagi untuk memperbaiki sesuatu yang kau pecahkan, ingatlah.
Ketika kami mengembangkan tanggung jawab ini, Situs langsung adalah hal terpenting yang kami lakukan menjadi mantra seluruh tim. Ini adalah pengalaman pelanggan yang mereka miliki sekarang dan itu bukan hanya beban. Ini sebenarnya sesuatu yang diandalkan orang-orang dari kami dan kami bangga akan hal itu. Ini harus menjadi fitur yang membedakan produk kita.
Telemetri produksi adalah jantung layanan Anda
Untuk bertahan hidup di dunia yang serba cepat tempat hampir semua hal dapat salah, kita membutuhkan sistem peringatan yang hebat. Pemberitahuan yang tidak dapat dihilangkan, pemberitahuan berlebihan, atau volume pemberitahuan yang luar biasa membuat Anda mengabaikan semua pemberitahuan. Sangat mudah untuk membuat terlalu banyak pemberitahuan, sehingga prosesnya dikerucutkan menjadi sebuah pertanyaan sederhana: Apakah pemberitahuan ini dapat ditindaklanjuti? Ini memastikan bahwa kita terlibat pada masalah pelanggan yang tepat dan menanganinya secepat mungkin.
Ketika tim teknik nol dalam pemberitahuan yang dapat ditindaklanjuti, mereka memperhatikan bahwa banyak masalah yang muncul, terutama di tengah malam, cenderung memiliki perbaikan yang sama, setidaknya untuk sementara. Hal ini menghasilkan fokus pada sistem yang lebih baik dalam failover dan penyembuhan mandiri. Sekarang masalah terjadi, ajukan pemberitahuan, dan kemudian perbaiki mandiri dengan cukup baik selagi menunggu tim teknik memperbaikinya pada pagi hari. Ini tidak akan terjadi jika tim teknik hanya mendorong keluar bit yang membuat orang lain terjaga di malam hari. Sekarang mereka bekerja untuk menyeimbangkan peningkatan ini sebagai bagian dari tidak hanya kecepatan fitur, tetapi kecepatan peningkatan rekayasa.
Ringkasan
Mengadopsi budaya situs langsung telah berdampak pada cara Microsoft membangun dan memberikan perangkat lunak. Dengan menjadikan tim teknik sebagai bagian penting dari keamanan dan operasi, kualitas kode dan pengalaman pengguna akhir kami telah meningkat secara drastis. Menjadi peserta penuh dalam operasi telah menjadikan rekayasa pemangku kepentingan utama, menghasilkan sistem yang dirancang untuk operasi yang lebih baik.
Keandalan sistem, layanan, dan produk Anda berdampak langsung pada kesuksesan Anda. Pelajari prinsip dan praktik operasi modern (dan fitur Azure yang mendukungnya) yang akan membantu Anda mencapai tingkat keandalan yang Anda butuhkan.
Sertifikasi ini mengukur kemampuan Anda untuk menyelesaikan tugas teknis berikut: Merancang dan mengimplementasikan proses dan komunikasi, merancang dan menerapkan strategi kontrol sumber, merancang dan mengimplementasikan alur build dan rilis, mengembangkan rencana keamanan dan kepatuhan, dan menerapkan strategi instrumentasi.