Sağlıklı Bir On-Call Kültürü Oluşturmak
(developers.soundcloud.com)- Mesai saatleri dışında bir sorun çıktığında çağrı alıp (paging) müdahale edecek mühendisin belirlendiği "on-call" sistemi hakkında SoundCloud'un ipuçları
-
On-call görevi isteğe bağlıdır (optional, yalnızca gönüllüler)
-
Normal çalışma saatleri dışındaki bir görev olduğu için saatlik ücret ödenir; paging çağrılarına yanıt verildiğinde ayrıca saatlik ek ödeme yapılır
-
On-call mühendisleri birden fazla rotasyondan oluşur
-
Her rotasyon
→ Bir veya birden fazla ekibi temsil eden mühendis gruplarından oluşur
→ Rotasyondaki tüm ekiplerin sorunları için birinci seviye desteği sağlayacak 1 mühendis her zaman hazır bekler
→ Diğer mühendisler ise kendi ekiplerinin servislerindeki sorunlar için ikinci seviye destek vermek üzere hazır bekler
→ İkinci seviye destek best-effort temellidir: Her an paging çağrısı alıp mümkünse elinden gelenin en iyisini yapar, ancak müsait değilse mutlaka yanıt vermesi gerekmez
On-call görevi neden mühendisler için iyidir?
-
DevOps ve SRE (Site Reliability Engineers) dışındaki çeşitli mühendisleri de on-call görevine dahil etmek hem şirket hem de mühendislerin kendisi için faydalıdır
-
Sürekli mesai dışı çalışma yükü taşıyan operasyon ekibi mühendislerinin yükünü azaltır
-
Mühendisleri daha kararlı ve iyi dokümante edilmiş sistemler kurmaya motive eder
→ Sorunları bizzat görmek, sistemi nasıl iyileştirip daha sağlam hale getireceklerine dair içgörü kazandırır
- Kendi sistemlerini ve başkalarının sistemlerini birlikte desteklemek, mühendisler için iyi bir öğrenme fırsatıdır
Süreçle ilgili en iyi uygulamalar: Her organizasyon farklıdır, ancak SoundCloud'un bulduğu en iyi süreç
-
Her rotasyonun nöbet değişim döngüsü farklıdır, ancak çoğu 1 ila 2 gün arayla değişir
-
Ayda yaklaşık 3 gün on-call olmak en ideali. Bundan fazlası tükenmişliğe yol açar, daha azı ise verimsizdir.
→ Yani bir rotasyon için ideal kişi sayısı 8~12'dir. 10 kişi mükemmeldir.
- Rotasyon içinde resmi veya gayriresmi yöneticiler seçilerek nöbet takvimi yönetimi ve kişi değişiklikleri gibi işler yürütülür
→ Örn. tatil dönemlerindeki nöbet planlarının ayarlanması
Rotasyon ekipleri ve organizasyonlar
-
SoundCloud organizasyonu zaman içinde gelişti; birleşmeler, bölünmeler, yeni ekiplerin oluşması ve ekiplerin departmanlar arasında taşınması gibi değişimler yaşandı
-
Ancak on-call rotasyon ekipleri, mühendislik organizasyonuyla aynı hızda evrilmedi
-
Bugün birçok rotasyon, birbiriyle tamamen ilgisiz ekiplerin rastgele bir grubu gibi görünebiliyor
-
Ama bunun bir sorun olmadığı görüldü; bunu değiştirme girişimleri, mühendislerin itirazları üzerine durduruldu
Kültürel en iyi uygulamalar: On-call mühendisleri ve şirketin bütünü için şu norm ve tutumları geliştirmek önemli
-
On-call olan kişiler gerçekten on-call olmak ister. Kendi isteğiyle bu sorumluluğu üstlenen (ve karşılığında ücret alan) mühendisler, olaylara müdahale ederken daha motive olur
-
Nöbet değişim döngüsü gibi konular, her rotasyondaki mühendislerin kendi aralarında anlaşarak belirlenir. Şirket; nöbet düzeni, nöbet başlangıç saati veya kişiler arası devir konusunda standart bir prosedür dayatmaz
-
On-call mühendisleri, bu sorunların normal çalışma saatlerinde büyümesini engellemek veya başka birini mesai dışında paging ile rahatsız etmemek için inceleme yapmaya sıklıkla zaman ayırır
-
Olay müdahalesi sırasında mühendisler yardım istemek için başka mühendisleri çağırabilir. Kimse gece yarısı ikinci seviye destek çağrısı almaktan hoşlanmaz, ama mümkün olduğunda yanıt verip yardım etmek, gelecekte aynı durumu tek başına yönetebilmeleri için bilgi aktarımı sağlar
-
Makul bir süre geçtikten sonra işi başka birine devretmekte özgür olunmalıdır. Büyük veya uzun süren olaylarda mühendisler yorulup verimli çalışamayacak hale gelirse, 4 saat içinde hatta daha da erken devretmek daha iyidir
-
En önemlisi, "suçlama kültürü değil öğrenme kültürü geliştirmek"tir. Bunun önemi ne kadar vurgulansa azdır
→ Hatalar, olay müdahalesinin kaçınılmaz bir parçasıdır; hatalardan öğrenmek daha güçlü ve teknik olarak daha yetkin bir mühendislik organizasyonu kurar
→ İnsanları hataları nedeniyle cezalandırmak, mühendislerin yeni durumlarda harekete geçmekten, yardım istemekten ve şeffaf olmaktan korkmasına neden olur
→ Sonuçta suçlama kültüründe insanlar ya on-call rotasyonundan ayrılır ya da şirketten gider
Büyük bir olay yaşandığında
-
Tüm sitenin çökmesi veya ciddi bir olaya müdahale etmek herkes için streslidir
-
Bu aynı zamanda şirketin on-call kültürü için bir stres testidir
-
Mühendislerin birlikte çalışması ve birbirine güvenmesi her şeyden daha önemlidir
-
Bilmediğini kabul edebilmek, başkalarından yardım isteyebilmek, hata yaptığını dürüstçe söyleyebilmek ve fazla yorulduğu için devam etmenin zor olduğunu ifade edebilmek, sorunun daha hızlı çözülmesini sağlar
-
Bu davranışları teşvik etmek, büyük olay yaşanmadan önce yapılmalıdır. Mühendisler küçük olaylara müdahale ederek ve ekip arkadaşlarıyla iş birliği yaparak deneyim kazanır.
→ Küçük olaylar, büyük olaylar için provadır
1 yorum
GitHub’ın oluşturduğu on-call kültürü https://tr.news.hada.io/topic?id=3551
GitLab On-Call Runbooks https://tr.news.hada.io/topic?id=966
Startup’larda insan sayısı az olduğu için, sanki her zaman on-call olmak gerekiyormuş gibi hissediliyor..
Ama organizasyon biraz büyümeye başlayınca bu kez sadece bazı kişiler sürekli on-call kalıyor ve akşamları ile hafta sonlarında da sorun çözerken tükendiğini görebiliyorsunuz.
Temelde kültürü iyi oluşturmak gerekiyor gibi görünüyor (aslında ben de bunu çok iyi yapamamışım gibi, o yüzden kendimi sorguluyorum..)