Apa yang dimaksud dengan penelusuran terdistribusi?

Definisi pelacakan terdistribusi

Penelusuran terdistribusi adalah teknik yang digunakan untuk melacak dan mengamati permintaan aplikasi saat dikirim melalui sistem terdistribusi atau lingkungan layanan mikro.

Penelusuran terdistribusi melacak permintaan aplikasi ini dengan mengumpulkan dan menggabungkan data tentang interaksi pengguna selama proses transaksi. Teknik ini memberi Anda insight tentang kesehatan aplikasi Anda dan pengalaman pengguna secara keseluruhan. Pengembang kemudian dapat menggunakan kumpulan jejak ini untuk memecahkan masalah area tempat bug, kesalahan, atau latensi tinggi terjadi.

Berita teknologi terbaru, didukung oleh insight dari pakar

Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.

Bagaimana cara kerja penelusuran terdistribusi?

Setelah Anda memiliki gagasan tentang apa itu penelusuran terdistribusi, mari pelajari lebih dalam cara kerjanya. Tidak seperti aplikasi monolitik, lingkungan layanan mikro berjalan pada backend terdistribusi sehingga lebih sulit untuk melacak perjalanan permintaan secara penuh. Untungnya, pelacakan terdistribusi dapat mengikuti tindakan pengguna di setiap langkah dan memantau bagaimana hal itu memengaruhi aplikasi Anda dari frontend ke backend.

Penelusuran terdistribusi dimulai dengan melakukan instrumentasi pada arsitektur layanan mikro Anda. Anda dapat menggunakan alat sumber terbuka seperti OpenTelemetry untuk memulai proses pengumpulan instrumentasi dan telemetri.

Selanjutnya, pengembang perlu mengimplementasikan kode ke dalam layanan Anda untuk melacak jejak data dan menandai pengidentifikasi unik untuk setiap transaksi. Konteks jejak yang dikodekan berpindah dari satu server ke server lain di seluruh lingkungan aplikasi. Pengidentifikasi yang melekat pada perjalanan transaksi memberikan visibilitas tentang pengalaman pelanggan Anda.

Alat pelacakan terdistribusi melacak setiap aktivitas atau segmen setelah dipicu oleh suatu peristiwa saat melewati server. Ketika satu rentang terkumpul, alat pelacakan kemudian berpindah ke rentang berikutnya, dan seterusnya. Rentang ini biasanya dimulai dengan rentang induk dan berpindah ke rentang turunan.

Alat Anda akan mengurutkan tindakan ini dan mengumpulkan metrik relevan seperti atribut khusus, stempel waktu, dan metadata. Biasanya, alat pelacakan terdistribusi membantu Anda memvisualisasikan data ini dalam grafik api atau format tampilan air terjun. Grafik ini membantu para teknisi menafsirkan bagian mana dari sistem terdistribusi yang mengalami hambatan, perlambatan, atau masalah kinerja.

Terakhir, Anda perlu menggabungkan alat penelusuran terdistribusi Anda dengan platform observabilitas untuk mendapatkan pemantauan menyeluruh ke aplikasi Anda. Menyertakan platform seperti Instana akan membantu Anda mengekstraksi dan memproses data sehingga Anda dapat mengambil langkah selanjutnya yang tepat untuk menyelesaikan kesalahan aplikasi.

IBM DevOps

Apa itu DevOps?

Andrea Crawford menjelaskan apa itu DevOps, nilai DevOps, dan cara praktik serta alat DevOps membantu Anda memproses aplikasi Anda melalui seluruh delivery pipeline, dari ide hingga produksi. Dipimpin oleh para pemimpin terkemuka IBM, kurikulumnya dirancang untuk membantu para pemimpin bisnis dalam mendapatkan pengetahuan yang diperlukan untuk memprioritaskan investasi AI yang dapat mendorong pertumbuhan.

Manfaat dan tantangan pelacakan terdistribusi

Kompleksitas arsitektur modern telah menyulitkan aplikasi lama monolitik untuk melayani alat yang menghosting aplikasi. Dengan mempertimbangkan tantangan ini, penelusuran terdistribusi telah menjadi kunci dalam mencapai observabilitas di lingkungan cloud native.

Berikut ini adalah beberapa manfaat utama dari penelusuran terdistribusi:

  • Memecahkan masalah dengan lebih cepat: Secara drastis mengurangi waktu rata-rata untuk resolusi (MTTR) dan waktu rata-rata untuk penemuan (MTTD). Teknisi dapat meninjau jejak terdistribusi untuk menemukan akar masalah dan lokasi kesalahan aplikasi.

  • Meningkatkan kolaborasi tim: Di lingkungan layanan mikro pada umumnya, tim khusus menangani dan mengembangkan teknologi yang berbeda. Situasi ini dapat menimbulkan kebingungan di antara tim jika mereka tidak tahu posisi kesalahan dan siapa yang bertanggung jawab untuk menyelesaikannya. Tautan penelusuran dapat membantu tim teknik memvisualisasikan data sehingga mereka dapat memperingatkan pengembang yang benar untuk memperbaiki masalah.
     

  • Integrasi dan implementasi yang fleksibel: Pengembang dapat mengimplementasikan penelusuran terdistribusi ke hampir semua lingkungan cloud native. Alat ini sesuai dengan berbagai bahasa pemrograman dan aplikasi.

Masing-masing manfaat ini menghasilkan peningkatan kinerja aplikasi dengan memberi Anda insight tentang cara sebuah permintaan ditangani oleh server Anda. Meskipun ada banyak manfaat untuk pelacakan terdistribusi, ada juga beberapa tantangan yang harus diperhatikan.

  • Instrumentasi manual: Beberapa platform penelusuran terdistribusi mengharuskan pengembang untuk memodifikasi kode mereka untuk mulai menelusuri permintaan pengguna. Proses instrumentasi manual membutuhkan waktu berjam-jam, membuat aplikasi Anda lebih rentan terhadap bug dan dapat berakhir dengan hilangnya penelusuran.
     

  • Kurangnya analisis front-end: Ketika membeli alat pelacakan terdistribusi, penting untuk memastikan bahwa Anda memiliki cakupan menyeluruh. Tanpa kemampuan ini, Anda hanya akan memiliki insight tentang backend tanpa pengalaman front-end pengguna akhir. Keterbatasan ini dapat membuatnya jauh lebih sulit untuk melakukan debug pada aplikasi Anda.
     

  • Pengambilan sampel: Beberapa alat penelusuran terdistribusi menggunakan pengambilan sampel acak, yang memilih penelusuran secara acak untuk diambil sampelnya dan dianalisis. Karena penelusuran dipilih secara acak dan tidak ada cara untuk mengetahui penelusuran mana yang akan mengalami masalah, hal ini dapat menyebabkan tim melewatkan kesalahan besar yang ada.

Meskipun ada beberapa kesulitan yang dapat muncul ketika menggunakan sistem terdistribusi, manfaatnya hampir selalu lebih besar daripada kerugiannya. Gabungkan alat penelusuran terdistribusi Anda dengan Instana untuk membantu memecahkan masalah ini secara real-time.

Penelusuran terdistribusi vs. pencatatan

Untuk memahami perbedaan antara penelusuran terdistribusi dan pencatatan, pertama-tama kita perlu membahas apa itu log. Log adalah stempel waktu dari peristiwa yang terjadi dalam sistem aplikasi. Pencatatan adalah pemantauan peristiwa penting yang diidentifikasi oleh log untuk menyoroti perilaku yang tidak terduga dalam aplikasi Anda. Jika terjadi kesalahan, hal tersebut memicu respons otomatis dan memperingatkan tim DevOps Anda.

Salah satu kelemahan utama dari pencatatan saja adalah hal ini tidak dapat memberikan tampilan yang sepenuhnya komprehensif tentang kinerja aplikasi tanpa penelusuran.

Pelacakan terdistribusi menggunakan ID pelacakan untuk mengikuti transaksi melalui sistem Anda dengan konteks. Konteks ini memungkinkan Anda menemukan lokasi tepatnya di mana kesalahan terjadi dalam sistem Anda. Visibilitas atas sistem berbasis layanan mikro Anda ini mengurangi waktu respons terhadap deteksi di seluruh lingkungan transaksi. Oleh karena itu, banyak tim menggunakan penelusuran dan pencatatan terdistribusi secara bersamaan untuk mendapatkan gambaran lengkap tentang kesehatan aplikasi modern mereka.

Alat penelusuran terdistribusi

Alat penelusuran terdistribusi biasanya mendukung instrumentasi, pengumpulan data, dan visualisasi data menjadi grafik api. Cara paling populer untuk mengatur solusi pelacakan terdistribusi adalah dengan alat sumber terbuka.

Ini adalah beberapa opsi sumber terbuka paling populer yang tersedia di pasaran:

  • OpenTelemetry: OpenTelemetry menawarkan koleksi kit pengembangan perangkat lunak (SDK), perangkat lunak pengumpulan data, API yang netral terhadap vendor, dan alat untuk instrumentasi. Ini adalah kombinasi dari OpenCensus dan OpenTracing. Kerangka kerja pemantauan kinerja untuk lingkungan cloud ini adalah salah satu alat pelacakan terdistribusi yang paling populer. OTel tidak menyertakan alat untuk analisis atau memvisualisasikan data, tetapi Anda dapat mengirim data telemetri ke aplikasi pihak ketiga untuk melakukan riset ini.

  • OpenCensus: OpenCensus dibuat oleh Google berdasarkan sistem penelusuran internalnya. Alat ini pada akhirnya dirilis sebagai sumber terbuka dan tersedia di pustaka multibahasa. Alat ini dapat mengumpulkan dan mentransfer data ke platform backend untuk membantu debug, tetapi sayangnya tidak memiliki API untuk menanamkan perangkat lunak menjadi kode. Keterbatasan ini adalah salah satu alasan utama OpenCensus dan OpenTracing digabungkan oleh Cloud Native Computing Foundation (CNCF) untuk menciptakan OpenTelemetry.

  • OpenTracing: OpenTracing adalah API yang tidak bergantung pada vendor yang membantu pengembang dalam menambahkan kode untuk penelusuran terdistribusi. Proyek sumber terbuka ini tersedia dalam sembilan bahasa berbeda, termasuk Java, Python, dan Ruby.

  • Zipkin: Zipkin adalah proyek sumber terbuka lainnya yang dibuat oleh Twitter. Sistem penelusuran terdistribusi ini membantu para profesional DevOps mengumpulkan data aplikasi penting dan memecahkan masalah latensi dalam arsitektur layanan yang berbeda. Anda dapat melaporkan data ke Zipkin menggunakan Apache, Kafka, atau HTTP.
  • Jaeger: Jaeger adalah proyek sumber terbuka terbaru dalam daftar ini dan dibuat oleh Uber serta terintegrasi secara mulus dengan OpenTracing. Alat ini sangat elastis, menjadikannya pilihan yang bagus untuk melakukan penelusuran permintaan melalui lingkungan layanan mikro. Zipkin dan Jaeger sama-sama membantu dalam visualisasi statistik, tetapi memiliki keterbatasan dalam hal pengambilan sampel data.

Meskipun OpenCensus dan OpenTracing populer pada masa lalu, kami sarankan Anda menggunakan OpenTelemetry, Zipkin, atau Jaeger. Gunakan alat ini bersama dengan APM atau alat observabilitas seperti Instana untuk mendapatkan kejelasan penuh tentang apa yang terjadi di dalam aplikasi Anda.

Lacak setiap permintaan di setiap server dengan Instana

Untuk memahami interaksi antara pesan yang diteruskan antara aplikasi Anda dan komponennya, Anda memerlukan penelusuran. Dengan Instana AutoTrace, Anda tidak akan pernah melewatkan konteks atau panggilan apa pun karena kemampuan kami untuk menangkap setiap permintaan dan menghubungkan jejak dari API sumber terbuka. Instana menjadikannya mudah melalui Grafik Dinamis.

Kami mengoptimalkan setiap penelusuran antara aplikasi, layanan, dan arsitektur sistem Anda untuk memberikan info cakupan sistem penuh. Untuk mencoba Instana dengan pelacakan distributif, daftar untuk uji coba dua minggu gratis kami untuk mengakses fitur kami.

Solusi terkait
IBM DevOps Mempercepat

Otomatiskan pengiriman perangkat lunak untuk aplikasi apa pun di lingkungan on premises, cloud, atau mainframe.

Jelajahi DevOps Accelerate
Solusi DevOps

Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.

Jelajahi solusi DevOps
Layanan Konsultasi Cloud 

Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.

Layanan cloud
Ambil langkah selanjutnya

Maksimalkan potensi DevOps untuk membangun, menguji, dan menerapkan aplikasi cloud-native secara aman dengan integrasi berkelanjutan dan pengiriman tanpa henti.

Jelajahi solusi DevOps Temukan DevOps dalam aksi