Tanpa Server Pada 2023 — Pergeseran Fokus

Dunia tanpa server terus berkembang dengan rangkaian fitur dan jumlah pengadopsi. Meskipun ini mungkin tampak hebat, ini dapat menyebabkan masalah pertumbuhan yang cepat seperti kehilangan arti sebenarnya dari serverless .
Sebagai sebuah komunitas, kita perlu mengembalikannya ke dasar. Kami telah mempelajari dan menetapkan pola yang nyaman, tetapi kami tidak membagikannya. Lagipula tidak cukup. Anda akan mendapatkan dua jawaban yang sangat berbeda jika mengambil dua pengembang tanpa server dan bertanya kepada mereka cara menyelesaikan suatu tugas.
2023 akan menjadi tahun konvergensi. Di mana kami fokus pada praktik terbaik , menormalkan pola arsitektur , dan merancang pertumbuhan . Anggap saja sebagai tahun akar rumput.
Kita harus membiasakan diri dengan praktik terbaik yang telah ditetapkan, norma arsitektur, dan prinsip desain dari sumber tepercaya seperti Serverless Land dan secara bertahap memperbaiki aplikasi kita untuk mematuhinya.
Salah satu komponen terpenting yang harus kita pertimbangkan dan bangun ke dalam aplikasi kita adalah fokus tahun ini. Kita perlu fokus pada observasi.
Mengapa Observabilitas?
Banyak dari kita tersedot ke dalam undian membangun aplikasi dengan cepat tanpa server dan melupakan beberapa dasar dukungan. Saya tidak terkecuali. Saya telah membangun banyak arsitektur referensi yang tidak menyertakan segala bentuk kemampuan observasi dalam template.
Aku tahu aku bukan satu-satunya.
Saya melihat arsitektur referensi sepanjang waktu yang menghilangkan kemampuan observasi. Akibatnya, pengembang yang menggunakan proyek referensi ini sebagai dasar pekerjaan mereka juga tidak menyertakannya. Kemudian proyek tersebut digunakan sebagai dasar untuk proyek selanjutnya dan tidak menyertakan alat observasi. Begitu seterusnya.
Sebelum Anda menyadarinya, kami tinggal dua minggu lagi dari produksi go-live yang berjalan melalui Tinjauan Kesiapan Operasional , dan menyadari bahwa kami tidak memiliki cara untuk memantau aplikasi!
Dengan kembali ke dasar dan membangun pola pikir yang dapat diamati , kita dapat menghindari situasi seperti ini dan membangun aplikasi yang kuat dan dapat dipelihara dari awal.
Observabilitas Seperti Apa?
Pembuatan awal aplikasi hanyalah sebagian kecil dari masa pakainya. Ketika build selesai, itu memasuki siklus hidup pemeliharaan. Di sinilah tim pendukung dan pemeliharaan melakukan triase masalah dan melakukan peningkatan.
Untuk banyak aplikasi, siklus hidup pemeliharaan akan menjadi >90% waktunya di lapangan. Ini berarti perkakas untuk dukungan harus tepat sasaran.
Cara terbaik untuk meningkatkan dukungan aplikasi tanpa server adalah membangun kemampuan pemantauan yang memungkinkan pengguna melacak alur kerja melalui sistem Anda. Anda harus melihat payload masuk melalui permintaan awal dan melacak jalur yang diambil melalui infrastruktur Anda.
Melihat bagaimana data melintasi sistem dan bagaimana data bertransformasi di antara layanan sangat penting untuk mengidentifikasi dan menyelesaikan masalah. Data bergerak di sekitar arsitektur berbasis peristiwa dengan cepat. Mengandalkan log dari satu fungsi Lambda seringkali tidak cukup baik untuk mengisolasi masalah.
Tapi itu bukan satu-satunya hal yang kita butuhkan.
Untuk memberikan pengalaman terbaik kepada pengguna kami, kami ingin memberikan degradasi atau pemadaman layanan sesedikit mungkin. Dari sudut pandang yang dapat diamati, kita perlu menerapkan pemantauan proaktif untuk melihat dan menemukan masalah sebelum pengguna melakukannya.
Dengan tanpa server, pemantauan proaktif biasanya dicapai dengan alarm. Alarm ini dapat melihat antrean surat mati, mendeteksi anomali metrik, melacak latensi, memantau kode respons 5XX, dll. Alarm yang tepat untuk dibuat di aplikasi Anda adalah yang memastikan Anda mencapai SLA dan KPI Anda .
Cara Memulai
Akan mudah untuk masuk dan melengkapi aplikasi Anda dengan salah satu dari banyak vendor Pemantauan Kinerja Aplikasi (APM) yang tersedia saat ini. Tetapi saya mendorong Anda untuk tidak segera melakukannya.
Sebelum Anda menulis kode apa pun, lakukan beberapa analisis.
Apa KPI Anda? Seperti apa beban kerja Anda? Apakah Anda mencoba kembali kegagalan atau mengirimkannya ke DLQ ? Apakah Anda tahu bagaimana data mengalir melalui sistem Anda?
Memahami sistem Anda adalah langkah pertama untuk pengamatan yang tepat.
Ketika saya pertama kali masuk ke pengembangan tanpa server, saya bersemangat tentang mendorong log dan melacak data ke alat APM pihak ketiga. Kami menambahkannya sejak awal, dan data mulai mengalir ke alat. Setelah menepuk punggung sendiri, saya bertanya-tanya, "sekarang apa?"
Saya tidak memahami beban kerja atau membuat KPI, jadi saya tidak tahu cara membuat monitor atau dasbor yang bermakna. Saya tidak tahu dari mana metrik untuk membuat alarm atau nilai apa yang masuk akal untuk ditampilkan untuk SRE.
Karena beban kerja sangat bervariasi dari satu aplikasi ke aplikasi lainnya, sulit untuk mengatakan apa itu “dasbor tanpa server” yang hebat. Namun, satu hal akan selalu benar — dasbor terbaik adalah yang membantu Anda mempertahankan SLA.
Ringkasan
Kami belajar banyak di tahun 2022. Kami mungkin bergerak sedikit lebih cepat dari yang seharusnya. Tahun ini adalah tentang meninjau kembali pekerjaan kami, menganalisis apa yang telah kami lakukan, dan menggunakan alat yang tepat untuk membantu kami membangun perangkat lunak yang sangat mudah dipelihara.
Kita akan kembali ke akar rumput. Ambil pelajaran yang telah kami pelajari dan bangun praktik terbaik darinya. Menyatu pada pola dan arsitektur yang terbukti. Konsisten.
Observabilitas seringkali merupakan renungan. Seharusnya tidak. Ini adalah bagian penting dari arsitektur tanpa server.
Mengikuti beban kerja dalam proses end-to-end akan memberi Anda dukungan yang tidak ada duanya. Metrik infrastruktur mengkhawatirkan yang keluar dari KPI Anda memberikan ketersediaan yang tak tertandingi.
Dukungan dan ketersediaan memberi pengguna akhir kami pengalaman terbaik, yang sebenarnya adalah segalanya.
Mari habiskan waktu untuk mempertimbangkan kemampuan observasi terlebih dahulu, memahami apa yang sedang kita buat, dan menghadirkan perangkat lunak terbaik yang kita bisa.
Selamat membuat kode!