Lewati ke konten
Jelajahi situs web
Diskusikan proyek Anda

contact@almousa.dev

PRAKTIK PENYERAHAN HASIL KERJA / DARI KODE KE OPERASI

Rekayasa dan operasi

Pekerjaan kami mencakup peninjauan oleh orang lain serta penggunaan GitHub Actions untuk pengujian dan build. Halaman ini menjelaskan kebijakan penyerahan hasil kerja dan pengoperasian kami. Setiap kontrol diterapkan dan diverifikasi dalam ruang lingkup proyek yang disepakati; pencantumannya di sini tidak membuktikan bahwa setiap pengaturan diaktifkan untuk semua proyek.

Dari Perubahan Kode hingga Produksi

  1. Git

    Lacak perubahan, berikan tujuan yang jelas pada setiap perubahan dan kelola melalui pull request yang dapat ditinjau.

  2. Tinjauan Kode

    Mintalah orang lain meninjau perubahan tersebut. Penggabungan memerlukan persetujuan, dan modifikasi selanjutnya memerlukan tinjauan ulang.

  3. CI

    Jalankan pemeriksaan otomatis melalui GitHub Actions dan wajibkan semua pemeriksaan yang diwajibkan lulus sebelum penggabungan.

  4. Tes

    Verifikasi perilaku yang terkena dampak perubahan dan tambahkan pengujian yang sesuai dengan risiko dan cakupannya.

  5. Membangun

    Menghasilkan rilis yang dapat diidentifikasi dan dilacak setelah pemeriksaan yang diperlukan berhasil.

  6. Staging

    Uji rilis di lingkungan yang terpisah dari produksi, menggunakan data pengujian dan rahasia terpisah.

  7. Penerimaan

    Pimpinan teknis tim menyetujui kesiapan teknis, dan klien atau perwakilan mereka menyetujui kesesuaian dengan persyaratan, sesuai dengan besarnya perubahan. Dokumentasikan penerimaan.

  8. Produksi

    Terapkan rilis yang disetujui menggunakan izin yang ditentukan, dan blokir penerapan jika gerbang wajib gagal.

  9. Pemantauan

    Periksa kesehatan layanan setelah penerapan dan pantau ketersediaan, kinerja, dan kesalahan secara internal.

Ini adalah tahapan logis; pengujian dan pembangunan dapat dijalankan dalam CI. Gerbang penerimaan dan izin ditentukan untuk setiap proyek sebelum penerapan.

Kontrol berikut adalah kebijakan yang disetujui untuk diterapkan dan diverifikasi dalam perjanjian proyek. Tanggung jawab pengoperasian sebenarnya adalah tanggung jawab yang diberikan dalam kontrak pengoperasian atau dukungan.

Pencatatan

Log terbatas pada informasi yang diperlukan untuk mendiagnosis kegagalan dan mendukung operasi. Informasi sensitif disamarkan, dan akses dibatasi hanya untuk orang yang berwenang. Periode retensi ditentukan berdasarkan kebutuhan operasional, dengan penghapusan otomatis ketika periode tersebut berakhir. Kata sandi dan kunci akses tidak boleh dicatat, dan konten permintaan sensitif tidak boleh dicatat secara menyeluruh.

Pelacakan Kesalahan

Kesalahan dikumpulkan dan diprioritaskan berdasarkan dampaknya terhadap layanan, dengan peringatan yang membantu penanggung jawab menyelidiki dan menindaklanjutinya. Informasi yang perlu dilindungi disamarkan sebelum data dikirim ke alat pelacakan, dan diagnostik tidak boleh berubah menjadi pengumpulan data pengunjung yang tidak diperlukan.

Pemantauan

Kebijakan yang disetujui memerlukan pemantauan otomatis atas ketersediaan, kinerja, dan kesalahan, dengan orang yang ditunjuk bertanggung jawab untuk menerima dan menindaklanjuti peringatan. Perjanjian operasi atau dukungan menentukan jam cakupan, waktu respons, dan tanggung jawab. Kebijakan ini tidak menjanjikan pemantauan manusia sepanjang waktu atau persentase ketersediaan tertentu.

Cadangan

Kebijakan yang disetujui memerlukan pencadangan otomatis dan terenkripsi yang diisolasi dari sistem utama, dengan periode penyimpanan yang ditentukan dan pengujian pemulihan berkala. Kontrak tersebut mengidentifikasi siapa yang bertanggung jawab atas pencadangan, tindak lanjut, dan pemulihan; tanggung jawab tidak secara otomatis berpindah ke pengembang hanya karena mereka membangun situs web.

Cakupan pencadangan didasarkan pada data yang benar-benar ada: file situs web, aset, konfigurasi yang diperlukan untuk pemulihan, dan perubahan data, jika ada. Pekerjaan pencadangan yang berhasil saja tidak cukup; pemulihan harus diverifikasi. Frekuensi pencadangan, kehilangan data yang dapat diterima, dan waktu pemulihan ditentukan oleh kebutuhan layanan dan perjanjian, tanpa komitmen numerik yang tidak disetujui.

Kembalikan

Pertahankan rilis stabil dan siapkan prosedur rollback yang telah teruji, dengan pemeriksaan kesehatan layanan setelah penerapan dan setelah rollback. Perubahan basis data, jika ada, memerlukan rencana terpisah untuk melindungi data dan memverifikasi kompatibilitas. Memulihkan file aplikasi tidak boleh dianggap memulihkan data secara otomatis.

Manajemen Rahasia

Kata sandi layanan dan kunci API disimpan di manajer rahasia khusus. Rahasia pengujian dan produksi dipisahkan, dan akses dibatasi sesuai kebutuhan. Rahasia tidak boleh muncul dalam kode sumber, file frontend publik, atau log. Mereka dicabut dan diganti ketika ada dugaan paparan, dan izin akses ditinjau.