Bagaimana Pemantauan Eksekusi Kode dapat membantu Anda mengidentifikasi bug dan hambatan dalam aplikasi Anda sebelum pelanggan Anda melakukannya

Hai, saya Valerio, insinyur perangkat lunak, CTO & pendiri di Inspektur, platform pemantauan yang digunakan oleh pengembang di lebih dari sepuluh negara. Dalam artikel ini saya akan membagikan pengalaman saya bekerja di industri pemantauan yang mencoba membantu Anda lebih memahami:

  • Apa adalah alat yang tepat untuk setiap masalah pemantauan tertentu;
  • Kapan, atau dalam situasi mana, pemantauan dapat efektif dan bernilai investasi;
  • Mengapa Anda harus memantau bagian-bagian tertentu dari sistem Anda dan bukan yang lain, berdasarkan tahap pertumbuhan Anda.

Saat banyak pengembang menemukan kebutuhan untuk memantau aplikasi mereka sering kali bertepatan dengan saat mereka pertama kali mulai mengerjakan proyek menengah / besar.

Alasannya sederhana: ketika perangkat lunak Anda menjadi kompleks, atau melayani pelanggan yang sangat berharga, bug perangkat lunak menjadi mahal; dua kali lipat ketika pelanggan Anda menemukannya! Pelanggan mungkin menilai Anda tidak dapat diandalkan dan mencari alternatif.

Memecahkan masalah pelanggan yang kritis tentu saja dapat menghasilkan peluang bisnis yang hebat, tetapi semakin kritis masalahnya, semakin Anda harus siap untuk harapan pelanggan yang sangat tinggi.

Pemantauan adalah cara bagi pengembang untuk menghindari insiden tak terduga dan mempertahankan pelanggan atau kontrak selama mungkin – yang berarti pendapatan stabil untuk bisnis Anda dari waktu ke waktu.

Saat ini mungkin tidak begitu mudah untuk menavigasi dunia pemantauan, mungkin karena begitu banyak data yang berbeda dapat digunakan dalam banyak cara yang berbeda.

Inilah yang saya pelajari dalam perjalanan saya.

Apa itu alat pemantauan?

Alat pemantauan umumnya terdiri dari dua bagian: agen, dan platform analitik.

Agen adalah paket perangkat lunak yang dipasang oleh pengembang di server atau aplikasi mereka. Tujuannya adalah untuk mengumpulkan informasi yang relevan tentang perilaku dan kinerja aplikasi.

Data dikirim ke platform jarak jauh yang menganalisis data tersebut dan menghasilkan grafik visual untuk membantu pengembang memahami dengan mudah apa yang terjadi di sistem mereka. Platform harus dapat mengirim peringatan kepada pengembang jika terjadi kesalahan dengan cara yang nyaman.

Ini jelas merupakan deskripsi sederhana yang dapat mencakup banyak alat di luar sana. Jika Anda mencari solusi pemantauan di Google, Anda akan menemukan banyak alat. Banyak dari mereka terlihat seperti (atau dijual sebagai) alat pemantauan aplikasi, tetapi tidak ada hubungannya dengan pemantauan aplikasi. Kesamaan ini dapat menyulitkan untuk mengetahui alat mana yang tepat sesuai dengan kebutuhan pemantauan spesifik Anda.

Mari kita lihat kategori alat yang paling dikenal.

Alat manajemen log

Alat manajemen log sering kali merupakan jenis pertama dari pendekatan pengembang alat yang mencari solusi pemantauan untuk pertama kalinya, karena sejak lahirnya pengembangan perangkat lunak, menonton log aplikasi telah menjadi salah satu kebiasaan dominan bagi pengembang untuk diberi tahu tentang apa yang terjadi di dalam aplikasi.

Itu sama bagi saya, tetapi ketika aplikasi mulai berskala (berjalan di banyak server, membutuhkan arsitektur yang kompleks, kinerja tinggi menjadi sangat penting, dll.), Saya menyadari bahwa sangat sulit untuk mengekstrak informasi yang relevan dari log dan monitor. dampak dari perubahan kode dari waktu ke waktu dalam hal stabilitas dan konsumsi sumber daya.

Ketika mobil ditemukan, orang awalnya meminta kuda yang lebih cepat karena kuda adalah apa yang mereka ketahui. Kemudian mereka menyadari bahwa alat yang sama sekali berbeda diperlukan untuk membawanya ke tingkat berikutnya.

Alat pemantauan waktu aktif

Alat pemantauan uptime dapat digambarkan sebagai “ping” yang lebih canggih.

Tujuan utamanya sederhana: mereka melakukan ping ke titik akhir aplikasi Anda dari berbagai wilayah untuk memahami seberapa baik (atau buruk) aplikasi tersebut dapat dijangkau oleh pengguna yang berada di berbagai belahan dunia.

Metrik ini membantu memahami cara kerja infrastruktur cloud untuk membawa aplikasi Anda ke pengguna akhir (penyeimbang beban, CDN, jaringan, dll.) dan waspada ketika beberapa sistem ini menimbulkan masalah. Itu tidak memberikan informasi apa pun tentang apa yang terjadi di dalam aplikasi Anda.

Dalam kasus saya, aplikasi saya melayani pengguna di seluruh dunia, jadi wawasan ping eksternal membantu kami memahami wilayah mana yang mengalami latensi tertinggi dengan membuat keputusan tentang di wilayah mana kami harus menempatkan lebih banyak sumber daya untuk meningkatkan pengalaman pelanggan kami.

Kelemahannya adalah mereka memantau lingkungan eksternal. Jika aplikasi Anda melambat, Anda tidak akan pernah tahu mengapa.

Alat pelacakan kesalahan

Alat ini berfungsi sebagai perangkap pengecualian dan memungkinkan Anda menerima peringatan saat terjadi kesalahan selama eksekusi aplikasi.

Dalam banyak kasus, pengecualian adalah informasi yang terlalu mendasar untuk mencegah waktu henti sistem. Tidak ada umpan balik tentang kinerja, beban sistem, CPU, memori, dll.

Selain itu, Anda tidak tahu apakah aplikasi Anda bermasalah sampai gagal secara eksplisit. Dan kami ingin mencoba mencegah kesalahan ditemukan oleh pelanggan.

Namun mendekati pemantauan yang lebih komprehensif tampaknya tidak begitu mudah.

Platform Pemantauan Aplikasi All-in-one

Platform pemantauan aplikasi yang paling terkenal seperti Datadog, Dynatrace, NewRelic, AppDynamics, dan lainnya, menyediakan penyimpanan log, metrik server, metrik waktu aktif, wawasan infrastruktur, metrik aplikasi, pengumpulan peristiwa tidak terstruktur, dll.

Saya pikir masuk akal untuk percaya bahwa mereka ditargetkan untuk skenario kelas perusahaan.

Mereka membutuhkan banyak bantuan dan pelatihan atau bahkan tim teknik khusus untuk konfigurasi dan pemeliharaan, dan cenderung terlalu rumit dan mahal untuk tim kecil/menengah.

Selanjutnya mereka perlu diinstal dan dikonfigurasi di tingkat server.

Baik Anda menggunakan alat otomatisasi infrastruktur, atau bahkan memiliki tim eksternal untuk menanganinya, semua yang dikonfigurasi di tingkat server berada di luar siklus pengembangan perangkat lunak, dan pengembang cenderung kehilangan otonomi mereka.

Ini dapat menyebabkan pertukaran email yang konstan di seluruh tim untuk menyesuaikan konfigurasi, penyesuaian, dan pada akhirnya pengembang perangkat lunak hampir selalu memiliki yang terburuk karena mereka tidak memiliki kendali atas semua yang ada di infrastruktur.

Alat Pemantauan Eksekusi Kode

Alat Pemantauan Eksekusi Kode difokuskan pada hal terpenting bagi setiap pengembang: Eksekusi Kode.

Pernahkah Anda berpikir untuk melihat kode Anda berjalan alih-alih hanya membayangkannya?

Itulah yang dirancang untuk dilakukan oleh alat Pemantauan Eksekusi Kode.

Kelas alat ini mengumpulkan informasi yang relevan tentang kinerja aplikasi, kesalahan, dan tren dan memberi Anda representasi visual tentang apa yang dilakukan aplikasi Anda selama operasi normalnya.

Gagasan di balik alat Pemantauan Eksekusi Kode adalah untuk menciptakan lingkungan pemantauan “berbasis kode” yang dirancang khusus untuk pengembang perangkat lunak yang menghindari konfigurasi server atau infrastruktur apa pun yang tidak disukai oleh banyak pengembang.

Saya salah satu pengembang yang memilih untuk tidak mempersulit hidup saya dengan manajemen infrastruktur. Mengelola infrastruktur TI adalah sebuah profesi tersendiri. Ini membutuhkan banyak keterampilan vertikal tentang lingkungan server, keamanan cyber, skalabilitas, dan melibatkan teknologi yang rumit (seperti Kubernetes).

Sebagai pengembang perangkat lunak, saya telah lama mencari sistem pemantauan kode yang sepenuhnya “didorong oleh kode”, untuk tetap seindependen mungkin dari infrastruktur, baik yang dikelola dengan platform otomatisasi atau bahkan di bawah kendali tim di luar perusahaan saya.

Selama beberapa bulan saya berbagi ide kami tentang Inspektur sebagai alat Pemantauan Eksekusi Kode dengan memberikan ceramah di acara komunitas PHP Italia, dan berdiskusi dengan CTO lainnya. Di halaman ini saya telah mengumpulkan ulasan dari para pengembang yang telah mencoba Inspektur: https://www.inspector.dev/testimonials

Berkat Pemantauan Eksekusi Kode, Anda dapat memastikan aplikasi Anda berfungsi dengan baik, pastikan Anda selalu memberikan pengalaman pelanggan yang baik bahkan saat Anda membuat perubahan dengan paket Laravel ringan sederhana yang dapat Anda instal di aplikasi Anda seperti yang lain dependensi.

Jangan percaya kata-kata saya, Coba gratis

Untuk memungkinkan semua orang yang tertarik mencoba solusi baru ini, kami menawarkan tingkat yang sepenuhnya gratis, hingga 30.000 transaksi bulanan. Ini bukan uji coba terbatas. Anda dan tim Anda bisa akrab dengan Inspektur tanpa tenggat waktu mengejar Anda.

Saya harap Anda menikmati pengalaman Inspektur.

Kami juga telah membuat tautan rujukan untuk publikasi khusus ini. Dengan menggunakan tautan ini, Anda akan mendapatkan tambahan 50.000 transaksi bulanan gratis sebagai hadiah untuk menjadi pembaca LaravelNews – Daftarkan akun Anda – jadi Anda akan memulai akun Anda dengan 80.000 transaksi bulanan termasuk gratis.

Atau kunjungi situs web kami untuk detail lebih lanjut: https://inspector.dev/laravel/