00:00Software zaman sekarang itu, wah bisa rumit banget.
00:03Bayangin aja, ada puluhan bahkan ratusan layanan yang saling ngobrol satu sama lain.
00:07Nah, pas ada yang salah, misalnya sistem jadi lemot atau error,
00:11nyari penyebabnya itu rasanya kayak jadi detektif di sebuah kasus misterius.
00:16Oke, kita bedah bareng ya.
00:17Buat mecahin misteri-misteri ini, panduan kita datang dari ide-ide kunci di buku Aurelie yang keren banget,
00:21judulnya Distributed Tracing in Practice.
00:24Penulisnya itu Austin Parker, Daniel Spunhauer, Jonathan Mays, dan Rebecca Issex.
00:28Nah, mereka udah kasih kita petanya nih.
00:30Tweet ini, ini lucu tapi ngena banget ya, dari akun Onestatus Page.
00:35Dan ini bener-bener ngegambarin masalahnya.
00:37Banyak banget loh engineer yang ngerasa begini.
00:39Jadi, tiap layanan itu kayak jadi tersangka.
00:41Dan kalau kita nggak punya alat yang pas, ya kita cuma bisa nebak-nebak, berharap ketemu biang keroknya.
00:46Nah, ini dia nih TKP-nya, tempat kejadian perkaranya.
00:49Sebuah sistem yang ruwet, di mana puluhan layanan saling terkait.
00:53Masalahnya, akar masalahnya itu bisa ngumpet di mana aja, di dalam jaring-jaring yang kompleks ini.
00:57Coba bayangin, kalau kita pakai cara, coba-coba aja ya.
01:00Wah, itu nggak efisien banget.
01:02Dan bikin stres pastinya.
01:03Jadi, apa dong yang dibutuhin seorang detektif, eh maksud saya, seorang engineer, buat mecahin kasus-kasus kayak gini?
01:09Jelas, butuh alat khusus.
01:10Dan alat itu namanya Distributed Tracing.
01:13Coba dia bayangin sebentar.
01:14Gimana, kalau daripada kita ngeliat sistem ini kayak kotak hitam yang misterius, kita bisa nyalain center, dan ngikutin jejak satu
01:21kali request dari pengguna.
01:23Dari awal sampai akhir, pas dia jalan-jalan lewatin semua layanan.
01:26Nah, itulah dia kekuatan utama dari Distributed Tracing.
01:29Di buku ini, definisinya jelas banget.
01:32Intinya gini, Distributed Tracing itu, cara kita nyambung-nyambungin titik, setiap langkah yang diambil sama sebuah request itu dicatat, dan
01:39catatannya bisa disambungin lagi satu sama lain.
01:41Jadi, kita bisa dapat gambaran utuh dari seluruh perjalanannya.
01:44Kedengerannya sih keren ya, tapi gimana sih cara kerjanya?
01:47Oke, ayo kita lihat mekanismenya.
01:49Ini semua tuh soal ngumpulin petunjuk-petunjuk kecil, satu per satu, buat ngebangun cerita yang lengkap.
01:54Visual di sini ngebantu banget buat ngerti cara kerjanya.
01:56Jadi gini, pas ada request masuk, katakanlah ke layanan A, itu bakal ngebuat sesuatu yang kita sebut SPAN.
02:03Nah, pas layanan A manggil layanan B, dia ngasih semacam KTP unik gitu.
02:07Terus, layanan B bikin child SPAN atau SPAN anak.
02:10Semuanya jadi nyambung.
02:11Jadi, anggap aja SPAN ini satu keping bukti.
02:15Satu unit kerja yang bisa diukur.
02:16Misalnya, pas manggil database, atau pas ada proses hitung-hitungan di dalam.
02:20Tiap SPAN ini ngasih tau kita, eh, proses ini butuh waktu segini loh.
02:23Terus juga detail penting lainnya.
02:25Kayak misalnya, parameter query database-nya apa, atau kode status HTTP yang dibalikin apa.
02:29Nah, ini dia nih, petunjuk-petunjuk forensik kita.
02:32Terus, pas kita rangkai semua SPAN atau semua bukti ini, kita dapat yang namanya TRACE.
02:36TRACE ini cerita lengkapnya, dari A sampai Z, tentang apa aja yang terjadi sama request tadi.
02:41Nah, disinilah kita bisa lihat alur ceritanya secara penuh.
02:44Oh, ternyata si tersangka ini nih yang bikin lama.
02:46Atau, wah, kayaknya ada salah paham nih antara dua layanan.
02:49Semua jawabannya ada di dalam TRACE.
02:50Oke, jadi kita udah tau apa itu TRACE dan gimana cara kerjanya.
02:54Tapi, so what? Apa untungnya?
02:56Yuk kita lanjut, kita lihat kenapa ini bener-bener penting buat kerjaan kita sehari-hari.
03:00Jadi, apa aja nih manfaatnya?
03:02Pertama, kita bisa langsung nunjuk bottleneck-nya.
03:05Layanan mana sih yang bikin lemot?
03:07Kita juga jadi bener-bener paham gimana cara layanan-layanan yang rumit ini ngobrol satu sama lain.
03:11Sesuatu yang seringkali nggak ada dokumentasinya kan?
03:14Ini jelas banget, motong waktu buat nyelesaian masalah di production.
03:16Dan yang keren, karena semua orang di tim, mau itu tim front-end atau back-end,
03:20ngeliat peta yang sama, kolaborasi jadi jauh lebih gampang.
03:23Ujung-ujungnya, ya itu tadi.
03:24Kita bisa nemuin akar masalah dan benerin jauh lebih cepat.
03:27Tapi, penting juga nih buat kita lihat dari dua sisi.
03:30Walaupun point tracing ini canggih banget,
03:32buku ini juga ngingetin kalau ini bukan tongkat sihir.
03:35Ada tantangan-tantangan praktis yang harus kita hadapi juga.
03:38Nah, slide ini nunjukin dualitasnya dengan pas banget.
03:41Di satu sisi, janjinya emang menggiurkan.
03:43Visibilitas total.
03:44Kita bisa lihat semuanya.
03:45Tapi di sisi lain, ada realitanya.
03:47Kita harus nambahin sedikit kode, proses ini namanya instrumentasi,
03:50ke tiap layanan buat ngajarin mereka cara ngelaporin aktivitasnya.
03:54Dan ini bakar ngasilin data yang gede banget volumanya.
03:57Yang paling penting, punya datanya aja tuh nggak cukup.
04:00Kita harus bisa nganalisis data itu, biar dapet insight yang berguna.
04:03Dan ini ngebawa kita ke pertanyaan penutup yang penting banget.
04:06Arsitektur software itu kayaknya nggak akan jadi lebih simple.
04:09Malah makin kompleks, kan?
04:10Jadi tantangan terbesarnya adalah,
04:12gimana caranya kita bisa tetap ngerti sama sistem yang kita bangun sendiri.
04:14Alat kayak distributed tracing ini udah bukan lagi barang mewah,
04:18tapi udah jadi kebutuhan.
04:19Kebutuhan biar misteri-misteri di sistem kita ini tetap bisa kita pecahkan.