Skip to content

Domain, hosting, code and data — in your name, in writing

jagaweb.

Penyelenggaraan & Penjagaan Laman

Bila Patut Bina Semula Laman Web Berbanding Terus Menyelenggaranya

Bacaan 7 minitOleh JagaWeb

Bina semula selalunya kesilapan yang lebih mahal — cara jujur menimbang antara menyelenggara laman web dan menggantikannya.

"Bina semula" biasanya soalan yang salah, ditanya pada waktu yang tepat atas sebab yang salah. Laman web yang kelihatan lapuk, memuat naik sedikit perlahan, atau memalukan untuk ditunjukkan dalam mesyuarat, bukan dengan sendirinya bukti bahawa menyelenggaranya sudah tidak lagi berdaya maju. Banyak laman web yang kelihatan kurang menarik dan janggal adalah murah dan berisiko rendah untuk terus dikendalikan sebagaimana adanya; banyak laman web yang kelihatan cantik pula sebenarnya senyap-senyap terikat oleh benang yang nipis, satu naik taraf dependency sahaja daripada masalah serius. Keputusan yang wajar dibuat dengan teliti bukanlah "adakah ini kelihatan lama" — tetapi sama ada kos dan risiko berterusan untuk mengekalkan laman web semasa benar-benar telah melebihi kos dan risiko menggantikannya. Kedua-dua soalan itu jarang sama, dan mengelirukan antara keduanya adalah punca perniagaan akhirnya membayar untuk bina semula yang sebenarnya tidak diperlukan, atau mengelak daripada bina semula yang sepatutnya dilakukan.

Default yang jujur ialah terus menyelenggara

Kebanyakan laman web, pada kebanyakan masa, wajar disenggara berbanding dibina semula. Ini bukan pendirian jualan bagi sebuah syarikat penyelenggaraan — ini sekadar apa yang biasanya disokong oleh ekonomi sebenar. Bina semula membuang sistem yang berfungsi dan menggantikannya dengan sistem yang belum terbukti, dengan tarikh akhir, dengan bajet tetap yang perlu menyerap segala-galanya yang ditemui sepanjang proses. Penyelenggaraan pula menangani masalah satu demi satu, pada sistem yang tingkah lakunya sudah diketahui. Melainkan terdapat sebab struktur yang khusus mengapa laman web semasa benar-benar tidak boleh diteruskan — bukan sekadar kerana lebih menyeronokkan untuk mula dari kosong — menyelenggaranya biasanya laluan yang lebih rendah risiko dan lebih rendah kos. Selebihnya artikel ini adalah tentang cara membezakannya secara jujur, bukan secara emosi.

Isyarat yang benar-benar menunjukkan ke arah bina semula

Kos perubahan yang semakin bertambah. Setiap codebase, walau sebaik mana pun ia dibina, akan mengumpul sedikit geseran dari semasa ke semasa — itu perkara biasa dan tidak dengan sendirinya bermaksud apa-apa. Isyarat yang wajar diambil tindakan ialah trend yang jelas: perubahan yang dahulunya mengambil masa sejam kini secara konsisten mengambil masa sehari, kemas kini kecil terus merosakkan bahagian lain laman web yang tiada kaitan, dan sesiapa yang menyelenggaranya menghabiskan lebih banyak masa mengelak struktur sedia ada berbanding membina di atasnya. Satu perubahan yang sukar adalah satu titik data. Corak yang konsisten, dikesan merentasi beberapa permintaan perubahan, adalah trend yang wajar diambil serius.

Dependency yang tidak lagi menerima kemas kini keselamatan. Setiap laman web dibina di atas lapisan-lapisan perisian — sistem pengurusan kandungan, framework, pakej peringkat pelayan — dan setiap lapisan akhirnya berhenti mengeluarkan pembetulan keselamatan untuk versi lama. Menjalankan versi selepas titik itu bukan secara automatik membawa bencana, tetapi ia bermakna sebarang kelemahan yang baharu ditemui dalam versi khusus itu tidak akan pernah dibetulkan di peringkat asal, hanya diatasi dari luar. Jika platform semasa, atau komponen teras di bawahnya, telah sampai ke tahap itu, dan berpindah daripadanya bukan naik taraf terhad tetapi penggantian sepenuhnya, itu isyarat struktur sebenar, bukan kosmetik.

Pendedahan keselamatan yang benar-benar tidak boleh dibaiki. Ini berbeza daripada "belum dibaiki lagi." Sesetengah keputusan seni bina — cara pengesahan (authentication) asalnya dibina, cara input pengguna dikendalikan pada peringkat asas, cara pangkalan data distrukturkan — tidak boleh dibetulkan dengan kemas kini; membetulkannya bermakna mengubah seni bina itu sendiri, yang secara fungsi adalah bina semula bahagian sistem itu apa pun namanya nanti. Jika semakan keselamatan mendapati masalah yang khusus tidak boleh dibaiki tanpa menyentuh asasnya, itu wajar diambil serius sebagai isyarat bina semula, bukan disimpan sebagai satu lagi item dalam senarai patching rutin.

Had struktur terhadap keperluan perniagaan. Laman web yang dibina untuk versi perniagaan yang lebih kecil dan mudah kadangkala benar-benar tidak boleh menampung apa yang telah berkembang menjadi perniagaan itu — bukan kerana tiada sesiapa sempat membetulkannya, tetapi kerana cara ia dibina menolak keluar perkara-perkara tertentu sejak awal. Struktur katalog yang mengandaikan satu varian bagi setiap penyenaraian produk, aliran tempahan tanpa konsep berbilang lokasi, pangkalan data tanpa medan untuk sesuatu yang kini bergantung kepadanya setiap hari — ini adalah siling struktur, bukan item dalam backlog. Jika mencapai keperluan seterusnya bermakna bekerja melawan struktur keseluruhan sistem berbanding mengembangkannya, itu juga isyarat struktur yang sebenar.

Mengapa bina semula selalunya kesilapan yang lebih mahal

Inilah bahagian yang sering diabaikan sebaik sahaja bina semula mula kelihatan menarik: bina semula bukan sekadar versi lebih baharu bagi laman web lama. Ia adalah migrasi penuh, dan migrasi membawa risikonya sendiri yang berasingan, tiada kaitan dengan apa pun masalah yang mencetuskan bina semula pada mulanya.

Kandungan perlu dipindahkan, sepenuhnya dan tepat, termasuk apa-apa yang ditambah atau dilaraskan secara ad hoc sepanjang tahun yang tidak pernah didokumentasikan dengan betul di mana-mana. Struktur URL sering berubah semasa bina semula, dan setiap URL yang berubah tanpa redirect yang dikonfigurasikan dengan betul adalah halaman yang boleh kehilangan sebarang kedudukan carian yang telah dibina — kadangkala boleh dipulihkan, kadangkala tidak, jarang boleh diramal terlebih dahulu. Integrasi yang senyap-senyap dikonfigurasikan sekali dan tidak pernah disentuh lagi — payment gateway, kalkulator penghantaran, perkhidmatan e-mel, import spreadsheet dalaman — perlu ditemui semula, difahami, dan dibina semula, dan sebab di sebalik mengapa ia ditetapkan dengan cara tertentu selalunya hanya wujud dalam fikiran seseorang, bukan dalam mana-mana dokumen. Tiada satu pun daripada ini muncul dalam sebut harga bina semula melainkan sesiapa yang memberikan sebut harga benar-benar telah mengaudit laman web sedia ada terlebih dahulu, berbanding menilainya hanya berdasarkan rupanya sekarang.

Inilah sebabnya "bina semula sahaja" selalunya keputusan yang lebih mahal, bukan yang lebih selamat: harga bina semula biasanya kelihatan dan disebut harga terlebih dahulu, manakala kos segala-galanya yang hilang atau rosak semasa peralihan muncul secara beransur-ansur, selepas keputusan sudah dibuat dan laman web lama sudah tiada.

Cara yang lebih jujur untuk menimbangnya

Berbanding bertanya "patutkah kita bina semula," soalan yang lebih tenang ialah: dalam tempoh dua belas hingga lapan belas bulan akan datang, adakah kos berterusan untuk menyelenggara laman web semasa — geseran, jalan mudah sementara, senarai perkara yang semakin bertambah yang tidak boleh dilakukan oleh struktur itu — benar-benar mungkin melebihi kos bina semula ditambah kos dan risiko migrasi itu sendiri? Jika jawapan jujurnya tidak, menyelenggara adalah penggunaan bajet yang lebih baik, walaupun laman web semasa bukan kegemaran sesiapa untuk dilihat. Jika jawapan jujurnya ya, kerana pendedahan yang benar-benar tidak boleh dibaiki atau siling struktur yang perniagaan sudah benar-benar capai berbanding mungkin capai suatu hari nanti, bina semula wajar dirancang dengan betul, dengan risiko migrasi dianggap sebahagian daripada projek berbanding perkara tambahan yang dilekatkan pada penghujung.

Di mana kesimpulan itu memang menunjuk ke arah bina semula, ia wajar dijadikan skop sebagai projek tersendiri berbanding dimasukkan ke dalam kerja penyelenggaraan berterusan — pilihan seperti Starter Website (dari RM8,000) untuk bina semula yang lebih kecil dan terhad, atau Fixed-Scope Project (dari RM30,000) di mana keperluan lebih kompleks, kedua-duanya wajar dibincangkan secara langsung sebaik sahaja keputusan untuk bina semula dibuat atas sebab yang tepat, bukan sebab yang mudah.

Di mana ini sesuai

Untuk kes yang jauh lebih lazim — laman web yang benar-benar wajar dikekalkan, dengan masalah yang wajar diuruskan berbanding dimulakan semula — pengurusan berterusan itulah tujuan retainer. JagaWeb Care (RM450/bulan) merangkumi pemantauan dan perhatian yang menghalang isyarat kos-perubahan-bertambah daripada merangkak tanpa disedari; Care + Changes (RM1,500/bulan) menambah peruntukan bulanan untuk membuat perubahan secara langsung, yang selalunya jenis kerja tetap dan beransur-ansur yang menghalang bina semula daripada menjadi perlu pada mulanya. Tiada satu pun ini menggantikan bina semula apabila ia benar-benar wajar — tetapi bagi kebanyakan laman web, pada kebanyakan masa, ia wajar untuk menolak tepi kemungkinan bina semula secara jujur sebelum menganggap ia sudah gagal.

WhatsApp