Her ajan platformu log üretir. Denetim izi üreten ise çok daha azdır. Fark, kaydın kimin için tutulduğundadır. Log, bir mühendisin bir sürecin ne yaptığını görmesine yarar. Denetim izi ise o sırada orada olmayan birinin, haftalar sonra, işi kimin istediğini, sonuç doğuran her adıma kimin izin verdiğini, gerçekte neyin çalıştığını ve bunun neye yol açtığını tespit etmesini sağlar. Ajanlar bir ekip adına iş yaptığında sizden istenecek kayıt ikincisidir.
Beş tür olay, tek kayıt
Bir ajan çalıştırması pek çok olay üretir; denetim ise bunların beş türüne ihtiyaç duyar ve bu beşinin birbirine bağlı olmasını ister.
- Talep. Talimatın verildiği hâliyle kendisi, kimin verdiği, hangi iş emrine bağlı olduğu, geçerli kapsam ve sınırlar. Özetlenmiş hedefler zamanla kayar; orijinal ifadeyi saklayın.
- Karar. Duran her eylem için kimin, ne zaman ve tam olarak neye karar verdiği. Onaylayan kişi belirli bir çağrı gördü; kayıt da o çağrının özetini değil, kelimesi kelimesine kendisini tutmalıdır.
- Araç çalıştırması. Hangi aracın, hangi girdilerle, hangi kimlik bilgisi referansıyla çağrıldığı ve hatalar dâhil ne döndürdüğü. Kimlik bilgisinin kendisini değil, yalnızca referansını kaydedin.
- Sonuç. Ajanın dışında neyin değiştiği: gönderilen mesaj, yazılan dosya, güncellenen kayıt, üretilen çıktı ve bunları destekleyen kaynaklar.
- Ret. Bir şeyin olmadığı her an: bir kişi bir adımı reddetti, bir politika bir çağrıyı engelledi, bir sınıra ulaşıldı, bir bağımlılık erişilemez durumdaydı. Ekiplerin saklamayı en sık unuttuğu, denetçinin ise en çok şey öğrendiği olaylar bunlardır.
Kayıt neden kesintisiz olmalı
Çoğu ekipte bu parçaların bir kısmı zaten vardır. Onay bir sohbet kanalında, araç çağrısı bir iş çalıştırıcısında, sonuç ise hedef sistemin kendi geçmişinde durur. Her parça tek başına doğrudur. Bir araya geldiklerinde yine de yetersiz kalırlar, çünkü aralarındaki bağ zaman damgalarını eşleştirerek yapılmış bir tahminden ibarettir.
Asıl mesele o bağdır. Denetçi yalnızca birinin bir e-postayı onayladığını ve bir e-postanın gönderildiğini bilmek istemez. Gönderilen e-postanın onaylanan e-posta olduğunu, yalnızca bir kez gittiğini ve karardan önce değil sonra gittiğini bilmek ister. Bu zincir ancak talep, karar, çalıştırma ve sonuç gerçekleştikleri sırayla tek bir kayıtta durduğunda sağlam kalır. Yanıt için üç sistemi birleştirmeniz gerekiyorsa okumuyor, yeniden kuruyorsunuzdur.
Örneklenmiş ya da sonradan kurulmuş log denetim değildir
İki kestirme yol denetime benzer ama denetim değildir.
Örnekleme. Her on çalıştırmadan birini ya da yalnızca hata verenleri saklamak, performansı izlemek için makul bir yöntemdir. Denetim için ise işe yaramaz, çünkü denetim soruları belirli olaylarla ilgilidir. “Ajan bu klasörü hiç dışa aktardı mı?” sorusu bir örneklemden yanıtlanamaz. “Geçen çeyrekteki bütün retleri göster” isteği de karşılanamaz.
Yeniden kurma. Bazı sistemler geçmişi sonradan inşa eder: ajanın yaptıklarına dair kendi özetinden, hedef sistemin bugünkü durumundan ya da biri sorduğunda bir araya getirilen bir izden. Ajanın yazdığı özet, işi hakkında bir iddiadır; işin kanıtı değildir. Bugünkü durum işlerin nerede bittiğini gösterir, oraya kimin taşıdığını göstermez. Bir izi güvenilir kılan, her girdinin olay anında yazılmış ve sonradan hiç değiştirilmemiş olmasıdır.
Benzer bir tuzak da demo görünümüdür. Sayfa boş görünmesin diye temsilî girdiler gösteren bir ekran, insanlara hiçbir şeyi yansıtmıyor olabilecek bir görünüme güvenmeyi öğretir. Bir denetim sayfası ya gerçek girdileri ya da dürüst bir boş durumu göstermelidir; ikisinin arası yoktur.
Denetçinin soracağı sorular
İzinizi, gerçekten karşılaşacağı sorularla sınayın. Herhangi bir ajan işi için şunları araştırarak değil, okuyarak yanıtlayabilmelisiniz:
- Bu işi kim, hangi hedefle ve hangi kapsam içinde başlattı?
- Hangi adımlar karar için durdu, her birine kim karar verdi ve kendisine tam olarak ne gösterildi?
- Çalışan çağrı, onaylanan çağrının birebir aynısı mıydı?
- Hangi araçlar, hangi kimlik bilgileriyle çalıştı ve ne döndürdü?
- Ajan ne üretti ve bunu hangi kaynaklar destekliyor?
- Ne reddedildi, engellendi ya da geri çevrildi; iş buna rağmen başka bir yoldan ilerledi mi?
- İş durduruldu ya da yeniden başlatıldı mı, kim tarafından?
- Ne kadar harcadı ve hangi harcama tavanına karşı?
Zayıf izlerin takıldığı soru altıncısıdır. Ret yalnızca etkinliğin yokluğu olarak görünüyorsa, ajanın onun etrafından dolaşmadığını kanıtlayamazsınız.
GoCux kaydı nasıl tutar
GoCux'ta her iş bir iş emri olarak yürür ve adımları gerçekleştikçe o iş emrinin kaydına yazılır; böylece sonuç, kaynakları ve yol boyunca alınan kararlar bir arada kalır. Bir eylem durduğunda bekletilen çağrı birebir aktarılır; karar ve sonucu, gerçekleştikleri anda makbuz olarak mühürlenir. Retler de kayda geçer ve bir ret işi asla serbest bırakmaz. Talepler, kararlar, araç çalıştırmaları ve sonuçlar çalışma alanında tek bir iz olarak okunur; denetim sayfasında örnek veri modu bulunmaz. Durdurma denetimi kullanıldıktan sonra işi yeniden başlatmak, bilinçli ve kime ait olduğu belli bir eylemdir. Parçaların nasıl birleştiğini yönetişim sayfası anlatıyor.
Kendi izinizi kontrol edin
- Tamamlanmış bir çalıştırma seçin ve yukarıdaki sekiz soruyu yalnızca kayda bakarak yanıtlayın. Başka bir sisteme bakmayı gerektiren her yanıtı not edin.
- Reddedilmiş bir adım bulun ve reddin bir boşluk değil, bir girdi olduğunu doğrulayın.
- Onaylanan bir çağrıyı çalışan çağrıyla karşılaştırın. Birebir aynı olmalılar.
- Kimlik bilgilerinin değer olarak değil, referans olarak göründüğünü doğrulayın.
- Girdilerin yazıldıktan sonra düzenlenemediğini ve denetim görünümünde temsilî hiçbir şey bulunmadığını kontrol edin.
- İzin, duran her eylem türünü kapsadığından emin olun; yedi eylem sınıfı iyi bir başlangıç listesidir.
Duraklamanın kendisi için ajanlar neden önce sormalı yazısını okuyun. Reddin neden ayrı bir girdiyi hak ettiğini ret de bir sonuçtur yazısı anlatıyor. İzin kaydettiği kararları kimin vermesi gerektiği için de ajan işini kim onaylayabilir yazısına bakabilirsiniz.
Bu iş akışını çalışma alanınıza taşıyın.
Kapsamı belirleyin. Kanıtları inceleyin. Gereken adımları onaylayın.