14 poin oleh outsideris 2021-01-09 | 4 komentar | Bagikan ke WhatsApp

GitHub adalah sebuah sistem monolit besar yang dibangun dengan Ruby on Rails.

Bagian tersulit dari struktur on-call monolit

  • Karena mencakup produk dan fitur yang besar serta banyak, sebagian besar engineer tidak cukup memahami codebase dan tidak yakin bisa menangani gangguan saat on-call. Ketika dipanggil, mereka merasa lebih seperti operator penghubung yang melakukan eskalasi ke tim lain daripada engineer.

  • Jarak antar giliran on-call panjang, dan satu giliran berlangsung 24 jam. Engineer menjalani on-call paling banyak 4 kali setahun dan tidak mendapatkan konteks yang cukup selama masa on-call.

  • Monitoring dan sistem peringatan tersebar di banyak tim, dan karena pengalaman on-call hanya 24 jam, monitoring serta dokumentasi on-call tidak terjaga dengan baik.

  • Karena sebagian besar engineer tidak percaya diri dengan on-call monolit, 5~10 orang yang benar-benar memahami keseluruhan sistem akhirnya terlibat dalam semua insiden produksi, sehingga terjadi ketimpangan tanggung jawab on-call.

Budaya on-call baru

Hambatan organisasi kerja

  • Mereka membuat service catalog untuk memperjelas kepemilikan file, memetakan file ke service, lalu memetakan service ke tim.

  • Karena monitoring dan alert dikonfigurasi untuk keseluruhan monolit, setiap tim diminta membuat monitoring untuk area yang menjadi tanggung jawab mereka.

  • Karena ada banyak tim yang harus melakukan pekerjaan ini, dibuat issue di GitHub untuk tiap tim dan disediakan checklist.

Hambatan budaya dan edukasi

  • Pandemi memberi dampak negatif pada orang-orang, sehingga diperlukan pendekatan yang lebih mengutamakan empati dibanding yang sebelumnya dibayangkan.

  • Sebagian besar engineer tidak punya pengalaman on-call dan juga tidak banyak pengalaman operasional, sehingga dibuat dan disediakan pelatihan. Jam kerja bersama pakar on-call ditetapkan, alat serta dokumentasi yang memadai dibuat, dan channel Slack untuk meminta bantuan juga disiapkan.

  • Banyak engineer khawatir seberapa besar on-call akan memengaruhi hidup mereka. Jika belum berpengalaman, menyesuaikan waktu kehidupan sehari-hari saat sedang on-call bisa terasa sulit. Untuk mengatasinya, mereka merangkum tip/trik dari para pakar on-call dan mengambil langkah seperti memastikan ada orang lain yang bisa menjadi backup saat panggilan terlewat. Ini adalah masalah ketidakbiasaan, jadi rasa nyaman kemungkinan baru akan muncul seiring waktu setelah menjalani on-call beberapa kali, bukan hanya lewat pelatihan.

  • Karena banyak kekhawatiran soal kemungkinan tidak mampu merespons on-call dengan baik, mereka berusaha memberi rasa aman bahwa melakukan kesalahan tidak apa-apa dan bahwa insiden tetap bisa terjadi sebaik apa pun penanganannya.

  • Karena tiap produk memiliki tingkat severity yang berbeda, ada tim yang harus merespons dalam 5 menit, tetapi ada juga tim yang cukup menanganinya keesokan hari. Sebagian orang menganggap ini tidak adil, tetapi sebenarnya ini hanya soal minat yang berbeda di antara para engineer.

  • Saat menerapkan perubahan, tiap tim tidak bisa menghabiskan banyak waktu untuk memperbaiki pengalaman on-call. Ketika on-call tidak berjalan dengan semestinya, proses on-call harus diperbaiki. Mereka menyampaikan kepada tim agar ~20% digunakan untuk membayar utang teknis dan ~20% lagi untuk meningkatkan pengalaman on-call, dan ini membutuhkan sudut pandang jangka panjang dari kepemimpinan.

4 komentar

 
galadbran 2021-01-09

Saya kurang paham kira-kira seperti apa itu on-call... mungkin semacam permintaan dukungan ya. Sepertinya bukan seperti melayani panggilan telepon seperti di negara kita...

 
andrewchaa 2021-01-11

Di perusahaan kami, biasanya yang disebut on-call adalah merespons gangguan sistem secara real-time di luar jam kerja selama sekitar satu minggu setiap dua bulan. Banyak yang menggunakan aplikasi bernama PagerDuty; jika terjadi insiden dengan severity tinggi — misalnya muncul dead letter, atau failure rate API melewati ambang tertentu, dan sebagainya — alarm akan langsung masuk ke ponsel, lalu kami mengakses laptop kerja perusahaan, memeriksa log, dan mengambil tindakan yang diperlukan.

 
sukso96100 2021-01-09

Bisa dianggap seperti giliran siaga.

 
bach80 2021-01-09

Rasanya seperti petugas piket atau giliran mingguan. Menangani insiden secara bergiliran..