Skip to content

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

jagaweb.

Penyelenggaraan & Penjagaan Laman

Apa Itu Persekitaran Staging, dan Kenapa Perniagaan Perlu Berkeras Mahukannya

Bacaan 6 minitOleh JagaWeb

Staging berbanding local dan production, cara mengelakkannya daripada terindeks Google, dan bagaimana perubahan patut mengalir ke laman live.

Persekitaran staging adalah salinan laman web yang peribadi dan berfungsi — kod yang sama, plugin atau framework yang sama, salinan kandungan yang terkini — terletak di suatu tempat yang tidak boleh dicapai orang awam dan tidak boleh diindeks oleh enjin carian. Tugasnya hanya satu: menjadi tempat sesuatu perubahan diuji sebelum ia menjadi masalah semua orang serentak. Kebanyakan perniagaan yang tidak pernah mempunyai staging tidak akan merindukannya sehingga minggu mereka benar-benar memerlukannya, dan mendapati tiada tempat selamat untuk mencuba sesuatu terlebih dahulu.

Tiga persekitaran berbeza, tiga tugas berbeza

Wajar untuk tepat tentang perbezaan ini, kerana ketiga-tiganya sering dikelirukan.

Local development berjalan pada komputer pembangun sendiri. Ia cepat untuk bekerja dan boleh dibuang begitu sahaja, tetapi ia jarang sepadan tepat dengan server live — versi PHP atau Node yang berbeza, saiz pangkalan data yang berbeza, tiada corak trafik sebenar, kadangkala langsung tiada HTTPS. Di sinilah kod ditulis, bukan di mana ia dibuktikan selamat.

Staging adalah salinan production, dihoskan pada infrastruktur yang menyerupai server live sedekat mungkin secara praktikal, dengan salinan kandungan sebenar yang terkini. Di sinilah kemas kini plugin, perubahan reka bentuk, atau integrasi baharu disemak berbanding sesuatu yang hampir dengan realiti sebelum ia sampai kepada pelanggan.

Production adalah laman live — laman yang benar-benar berinteraksi dengan pelanggan, enjin carian, dan pemproses pembayaran. Ia sepatutnya menjadi tempat terakhir sesuatu dicuba buat kali pertama, bukan tempat pertama.

Melangkau terus daripada laptop pembangun ke laman live menghapuskan satu-satunya langkah di mana muka surat checkout yang rosak, ralat fatal PHP, atau susun atur yang runtuh pada mudah alih ditangkap oleh orang yang membuat perubahan itu, bukan oleh pelanggan.

Kenapa perniagaan perlu berkeras mahukannya — bukan hanya pembangun

Persekitaran staging cenderung dianggap sebagai keutamaan pembangun, bukan keperluan perniagaan, dan ini menyebabkan keutamaan tersalah letak. Perniagaanlah pihak yang paling rugi apabila sesuatu rosak di laman live: pesanan hilang semasa gangguan, peti masuk sokongan penuh dengan aduan yang sama, kekelutan untuk mengenal pasti apa yang berubah antara sebanyak mana pun kemas kini yang dikeluarkan pada hari itu. Persekitaran staging adalah insurans yang murah terhadap perkara ini, dan adalah munasabah bagi pemilik perniagaan untuk bertanya, sebagai syarat mana-mana hubungan dengan agensi atau pembangun, "di mana perubahan diuji sebelum ia sampai kepada pelanggan saya?" Jika jawapan jujurnya ialah "di laman live," itu adalah jurang yang wajar ditutup sebelum ia memakan kos.

Ia juga mengubah nada setiap perbualan tentang kemas kini. Berbanding "kami rasa ini patut okay," pembangun yang bekerja dengan staging boleh berkata "kami sudah uji ini dan inilah rupanya sebelum kami lancarkannya" — satu dakwaan yang jauh lebih bertanggungjawab dan bermakna.

Memastikan data staging selamat dan tidak muncul dalam hasil carian

Laman staging biasanya mengandungi salinan kandungan sebenar yang berfungsi, dan kadangkala data pelanggan sebenar jika ia diklonkan daripada laman e-dagang atau keahlian (membership) yang live. Dua masalah berasingan timbul daripada ini, dan masing-masing memerlukan penyelesaian berasingan.

Mengelakkannya daripada terindeks Google. Kaedah paling boleh dipercayai, dan yang ditunjukkan secara langsung oleh dokumentasi rasmi Google sendiri, ialah menyekat akses, bukan bergantung kepada enjin carian untuk mengabaikan muka surat itu secara sopan. Panduan Google tentang mengawal apa yang anda kongsikan menyatakan dengan jelas bahawa jika terdapat kandungan yang anda tidak mahu menjadi awam, "you need to password protect it to ensure only authorized users can access it," dan berbuat demikian akan "prevent that content from appearing in Google Search, or if it already appears, it will eventually remove that content from our search results" (Google Search Central: Control the content you share). Perlindungan kata laluan (pengesahan asas HTTP, dinding log masuk, atau sekatan IP) adalah lapisan yang benar-benar menghalang crawler.

Tag meta noindex atau header X-Robots-Tag juga wajar ditambah, tetapi ia hanya berfungsi jika Google boleh mencapai muka surat itu untuk membaca arahan tersebut pada mulanya — dan ia bukan pengganti kepada menyekat akses. Dokumentasi rasmi Google sendiri tentang menyekat pengindeksan menyatakan dengan jelas bahawa peraturan noindex yang diletakkan dalam fail robots.txt "is not supported by Google," dan jika sesuatu muka surat disekat daripada crawling, "the crawler will never see the noindex rule, and the page can still appear in search results" (Google Search Central: Block Search indexing with noindex). Pada praktiknya, ini bermakna susunan yang berguna adalah: lindungi laman staging dengan kata laluan terlebih dahulu, tambah noindex sebagai lapisan kedua, dan jangan bergantung kepada baris Disallow robots.txt untuk melakukan tugas ini sendirian — URL yang di-disallow masih boleh muncul dalam hasil carian jika ia dipautkan dari mana-mana tempat lain di web, walaupun kandungannya tidak pernah di-crawl.

Memastikan data pelanggan sebenar tidak berada di staging. Di mana praktikal, staging patut berjalan dengan data yang dibersihkan (scrubbed) atau sintetik, bukan klon pangkalan data live — tiada e-mel pelanggan sebenar, tiada kelayakan pembayaran live, tiada kunci API production sebenar. Di mana klon penuh benar-benar diperlukan untuk pengujian, ia patut menggunakan kelayakan berasingannya sendiri untuk apa-apa yang luaran (kunci sandbox get pembayaran, domain penghantaran e-mel berasingan atau alat caught-mail, kunci API tersendiri), disimpan sebagai pemboleh ubah persekitaran (environment variables), bukan dikodkan terus (hardcoded) ke dalam kod, khusus supaya kebocoran di staging tidak boleh menyentuh pelanggan sebenar atau transaksi sebenar. Persekitaran staging yang secara tidak sengaja boleh menghantar e-mel kepada pelanggan sebenar atau mengenakan caj pada kad sebenar tidak melaksanakan satu-satunya tugas yang menjadi sebab kewujudannya.

Bagaimana perubahan patut mengalir daripada staging ke production

Nilai staging datang daripada susunan yang konsisten, bukan daripada sekadar mempunyai persekitaran itu terbiar tidak digunakan:

  1. Bina atau ubah secara local. Iterasi pantas, tiada risiko kepada sesiapa lain.
  2. Deploy ke staging. Kod, plugin dan konfigurasi yang sama yang akan live — bukan "hampir sama."
  3. Semak apa yang benar-benar penting. Bukan setiap muka surat — yang mempunyai akibat sebenar jika rosak: checkout, borang hubungi dan lead, log masuk, apa-apa dengan integrasi pihak ketiga.
  4. Deploy ke production, sebaik-baiknya pada waktu yang tenang, dengan backup terkini yang sudah tersedia sekiranya rollback tetap diperlukan — staging mengurangkan kebarangkalian itu, ia tidak menghapuskannya sepenuhnya.
  5. Semak production itu sendiri selepas deployment. Staging dan production jarang sama sepenuhnya (lapisan cache yang berbeza, trafik yang berbeza, kadangkala konfigurasi server yang berbeza), jadi semakan akhir pada laman live bukan pilihan tambahan hanya kerana staging telah lulus.

Melangkau langkah tiga di bawah tekanan masa adalah cara paling lazim menyebabkan persekitaran staging berhenti berbaloi — ia masih wujud, tetapi tiada sesiapa benar-benar menggunakannya untuk menyemak apa-apa sebelum deploy.

Apa yang tidak diselesaikan oleh staging

Wajar untuk jujur tentang hadnya. Staging menangkap masalah yang kelihatan apabila perubahan itu digunakan dan diuji — susun atur yang rosak, ralat fatal, borang yang berhenti menghantar. Ia tidak akan menangkap masalah yang hanya muncul di bawah jumlah trafik production sebenar, kes tepi (edge case) get pembayaran yang hanya berlaku dengan kad sebenar, atau kemerosotan prestasi perlahan yang hanya kelihatan sebaik sahaja pelawat sebenar mula mencapai server. Ia adalah penapis untuk kegagalan yang jelas, bukan jaminan bahawa tiada apa akan tersasar selepas pelancaran — dan ia jauh lebih baik daripada tiada penapis langsung.


Menyediakan aliran kerja staging yang betul, dan memastikan perubahan benar-benar mengalir melaluinya sebelum sampai ke laman live, adalah sebahagian daripada apa yang diliputi oleh penjagaan laman web berterusan. JagaWeb Care (RM450 sebulan) adalah salah satu pilihan untuk memastikan proses itu terus berjalan dari bulan ke bulan pada satu laman web — bukan satu-satunya cara untuk melakukannya, dan bukan jaminan bahawa tiada apa akan pernah rosak, hanya disiplin tetap untuk menangkap masalah sebelum pelanggan yang menemuinya. Butiran di jagaweb.my atau sales@jagaweb.my.

WhatsApp