Pengertian JAMstack Dan Kelebihannya
Dalam dunia web development kita pasti pernah dengar istilah stack,yang langsung terbesit adalah sebuah gabungan dari komponen-komponen seperti sistem operasi,database dan http server,seperti LAMP ataupun MEAN stack.Apabila dalam LAMP (Linux, Apache, MySQL, PHP) atau MEAN (MongoDB, Express, Angular, NodeJS) terdapat komponen database dan juga sistem operasi,dalam JAMStack hanya terdapat client-side app (Javascript), API dan Markup.Kali ini kita akan membahas mengenai JAMstack,apa si JAMstack itu?Mulai dari pengertian,kelebihan kekurangan sampai alasan pengunaan JAMstack.
Pengertian JAMstack
Jamstack merupakan standar arsitektur terbaru untuk pembuatan website yang cukup menggunakan alur kerja dari GIT dan alat build modern (Static Site Generator) yang menghasilkan konten setelah proses render langsung di sajikan ke CDN dan dibuat dinamis memakai fungsi API dan fungsi tanpa server.Kepanjangan dari Jamstack yaitu javascript, API dan markup.
Apa Itu Static Site Generator?
Sebelumnya diarti Jamstack sendiri sudah disebutkan jika (Static Site Generator) itu adalah alat build modern atau alat penghasil web statis. Jadi secara umum bisa juga disebut sebagai Framework atau tempat bekerjanya nanti untuk melakukan render hingga menghasilkan konten statis.Web statis itu hanya terdiri dari 3 teknologi utama yaitu HTML, JAVASCRIPT dan CSS.Menariknya disini pada hasil Static Site Generator sudah tidak ada lagi istilah backend atau pun database yang terlibat secara langsung.
Menurut website jamstack.org,JAMStack tidak hanya tertuju pada teknologi spesifik,namun merupakan cara baru dalam membangun sebuah website yang memiliki performa yang lebih baik, lebih aman,murah dan memiliki developer experience yang lebih baik.
Sebuah website dikatakan masuk dalam kriteria JAMStack apabila :
- Menggunakan Javascript sebagai client side app yang menghandle request dan response.Bisa framework apa saja bahkan plain Javascript.
- Semua proses di server atau database menggunakan API yang diakses menggunakan Javascript.
- Semua halaman yang bisa diakses oleh pengguna telah sebelumnya dibuat secara statis ketika proses deploy,bisa menggunakan static site generator ataupun build tools web app.
Pondasi JAMstack
Ada 3 fondasi yang harus digunakan agar sesuai dengan definisi istilah JAMstack :
- JavaScript : merupakan fondasi pertama dari semuanya,kalian bisa menyukainya atau tidak tetapi kalian harus mengakui bahwa JavaScript merupakan salah satu bahasa pemrograman paling populer dengan komunitas yang sangat dinamis. Siklus permintaan dan respons didasarkan pada sisi klien berkat teknologi ini.Kalian dapat menggunakan JavaScript murni atau menggunakan framework yang tersedia di pasar seperti React atau Vue.
- API :Kalian dapat menggunakan fungsionalitas backend tanpa memiliki database atau mesin backend di server sendiri.Kalian masih memiliki backend,tetapi terapkan hanya situs web statis,kalian dapat menggunakan API apa pun yang diinginkan,publik atau pribadi.Ada banyak situs pihak ketiga yang dapat kalian pilih.Kalian juga dapat terhubung ke aplikasi backend lain yang telah dibuat.
- Markup : generator situs statis tempat markup bertemplate dibuat sebelumnya pada waktu pembuatan.Kalian dapat menulis kode HTML dan CSS kalian sendiri atau menggunakan framework seperti : Hugo, Jekyll atau Gatsby, yang akan sangat meningkatkan waktu pengembangan template.
Alasan Penggunaan JAMstack
Arsitektur Jamstack dapat membawa semua jenis manfaat ke situs dan memproyeksikan alur kerja.Beberapa manfaat utamanya adalah :
- Keamanan
Jamstack menghapus beberapa bagian dan sistem yang bergerak dari infrastruktur hosting yang mengakibatkan lebih sedikit server dan sistem yang mengeras melawan serangan.Melayani halaman dan aset sebagai file yang dibuat sebelumnya memungkinkan hosting hanya baca mengurangi vektor serangan lebih jauh.Sementara alat dan layanan dinamis dapat disediakan oleh vendor dengan tim yang berdedikasi untuk mengamankan sistem spesifik mereka dan menyediakan layanan tingkat tinggi.
- Skala
Arsitektur populer menangani beban lalu lintas yang padat dengan menambahkan logika ke cache tampilan dan sumber daya populer.Jamstack menyediakan ini secara default.Saat situs dapat disajikan sepenuhnya dari CDN, tidak ada logika atau alur kerja yang rumit untuk menentukan aset apa yang dapat di-cache dan kapan.Dengan situs Jamstack semua dapat disimpan dalam cache di jaringan pengiriman konten.Dengan penerapan yang lebih sederhana,redundansi bawaan dan kapasitas muat luar biasa.
- Performa
Kecepatan memuat halaman berdampak pada pengalaman pengguna dan konversi. Situs Jamstack menghilangkan kebutuhan untuk menghasilkan tampilan halaman di server pada waktu permintaan dengan membuat halaman sebelumnya selama pembuatan.Dengan semua halaman telah tersedia di CDN yang dekat dengan pengguna dan siap untuk ditayangkan,kinerja yang sangat tinggi dimungkinkan tanpa memperkenalkan infrastruktur yang mahal atau kompleks.
- Pemeliharaan
Saat kompleksitas hosting berkurang,begitu pula tugas pemeliharaan.Sebuah pra dihasilkan situs,yang disajikan langsung dari host sederhana atau langsung dari CDN tidak membutuhkan tim ahli untuk menjaga lampu menyala.Pekerjaan telah selesai selama pembuatan,jadi sekarang situs yang dihasilkan sudah stabil dan dapat dihosting tanpa server yang mungkin memerlukan penambalan,pembaruan dan pemeliharaan.
- Portabilitas
Situs Jamstack sudah dibuat sebelumnya.Itu berarti dapat menghostingnya dari berbagai layanan hosting dan memiliki kemampuan lebih besar untuk memindahkannya ke host pilihan kalian.Solusi hosting statis sederhana apa pun harus dapat melayani situs Jamstack.
- Pengalaman Pengembang
Situs Jamstack dapat dibangun dengan berbagai alat.Mereka tidak bergantung pada teknologi eksklusif atau kerangka kerja yang eksotis dan sedikit diketahui.Sebaliknya,mereka mengembangkan alat dan konvensi yang tersedia secara luas.Hasilnya, tidak sulit menemukan pengembang antusias dan berbakat yang memiliki keterampilan tepat untuk membangun dengan Jamstack.Efisiensi dan efektivitas dapat menjadi alat peraga.
Perbedaan Antara LAMPstack dan JAMstack
LAMPstack :
- Proses build dan hosting digabung.
- Halaman disajikan setelah diproses di server setelah ada interaksi dengan database, backend script, server, cache.
- Pembaruan kode di deploy di server production.
- Pembaruan konten melalui CMS seperti WordPress.
JAMstack :
- Proses build dan hosting terpisah.
- Halaman telah tercompile dan disajikan langsung ke browser.
- Pembaruan kode dipush ke Git.
- Pembaruan kontent melalui Git atau headless CMS.
Kelebihan JAMStack
Beberapa kelebihan JAMStack sebagai berikut :
- Mempermudah scaling : karena semua aplikasi beserta kontennya disajikan manggunakan Content Delivery Network (CDN).
- Lebih Aman : ketidakberadaan database,plugin ataupun script dinamis server (misal: PHP, Node) meniadakan pula potensi injeksi kode maupun eksploitasi.
- Lebih Cepat : lagi-lagi karena halaman-halaman konten telah dibuat statis terlebih dahulu pada saat proses build dan disajikan melalui CDN
- Memiliki developer experience yang lebih baik : pemisahan antara proses build dan hosting serta mempermudah proses pembaruan kode membuat developer lebih fokus dalam bekerja.
Kekurangan JAMstack
Untuk sisi kekurangan Jamstack sendiri hanya tertuju pada 1 faktor utama yaitu untuk pengguna yang belum terbiasa dengan Coding karena sebagian besar aktifitas Jamstack akan dikerjakan melalui jendela terminal komputer dan memerlukan software code editor seperti Microsoft Visual Studio Code atau lainnya.Namun berdasarkan pengalaman sebagian orang awam yang terjun coding secara otodidak,Jamstack sangat mudah di pelajari karena sebagian besar Static Site Generator memberi dokumentasi lengkap untuk langkah-langkah memulai sampai proses deploynya.
sekian artikel kali ini semoga bisa bermanfaat untuk kalian semua:)