Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Lakebase Autoscaling berada di Beta di wilayah berikut: eastus2, , westeuropewestus.
Lakebase Autoscaling adalah versi terbaru Lakebase dengan komputasi penskalaan otomatis, skala-ke-nol, percabangan, dan pemulihan instan. Untuk perbandingan fitur dengan Lakebase Provisioned, lihat memilih antar versi.
Pencabangan di Lakebase memungkinkan Anda membuat versi, menguji, dan mengembangkan lingkungan data Anda dengan aman, mirip dengan mencabangkan kode Anda di Git. Anda dapat langsung membuat cabang yang terisolasi dan berfungsi penuh untuk perubahan skema pengembangan, eksperimen, atau pengujian, tanpa memengaruhi beban kerja produksi.
Secara default, Lakebase membuat satu production cabang saat Anda membuat proyek baru. Ini adalah cabang default Anda, yang dimaksudkan untuk menampung data produksi aplikasi Anda.
Anda dapat membuat cabang tambahan sesuai kebutuhan agar sesuai dengan alur kerja Anda. Misalnya, tambahkan development cabang untuk membangun dan menguji, staging cabang untuk pengujian pra-produksi, atau buat cabang individual untuk setiap pengembang guna isolasi lengkap. Setiap cabang beroperasi secara independen—perubahan pada anak tidak pernah memengaruhi induknya. Dengan pengaturan ulang cabang, Anda dapat menyegarkan cabang anak apa pun dari cabang induknya untuk mendapatkan skema dan data terbaru, tanpa penanaman data atau skrip pembongkaran.
Cara kerja cabang
Hubungan induk-anak
Setiap cabang (kecuali cabang akar) memiliki induk. Ini membuat hierarki:
production (root branch)
├── staging (child of production)
│ └── feature-test (child of staging)
└── development (child of production)
└── bugfix-branch (child of development)
Hierarki ini memberi Anda isolasi penting: perubahan yang Anda buat pada cabang anak tidak memengaruhi induknya, dan perubahan pada induk tidak muncul secara otomatis pada anak-anak. Saat Anda memerlukan data yang diperbarui dari induk, Anda dapat mengatur ulang cabang anak. Anda juga dapat membuat cabang dari titik mana pun dalam riwayat induk, yang berguna untuk pemulihan titik waktu, pengujian terhadap data historis, atau skenario kepatuhan.
Saat membuat cabang, Anda memilih apakah akan menginisialisasinya dari data saat ini atau dari titik waktu tertentu. Lihat Membuat cabang untuk instruksi langkah demi langkah dan detail pada setiap opsi.
Penyimpanan salin-saat-tulis
Lakebase menggunakan teknologi copy-on-write untuk mengoptimalkan percabangan induk-anak secara efisien. Saat Anda membuat cabang baru, cabang tersebut mewarisi skema dan data dari induknya, tetapi berbagi penyimpanan yang mendasar melalui pointer ke data yang sama. Hanya saat Anda memodifikasi data, Lakebase menulis data baru. Ini berarti:
- Cabang Anda muncul secara instan; ukuran database Anda tidak berdampak pada waktu pembuatan cabang
- Anda hanya membayar untuk data yang benar-benar berubah di antara cabang
- Membuat cabang tidak memiliki dampak performa pada beban kerja produksi Anda
production branch child branch (at creation)
┌─────────────────┐ ┌─────────────────┐
│ [Data A] │◄──────│ → Data A │ (shared)
│ [Data B] │◄──────│ → Data B │ (shared)
│ [Data C] │◄──────│ → Data C │ (shared)
└─────────────────┘ └─────────────────┘
After modifying data in child branch:
┌─────────────────┐ ┌─────────────────┐
│ [Data A] │◄──────│ → Data A │ (shared)
│ [Data B] │ │ [Data B'] │ (changed)
│ [Data C] │◄──────│ → Data C │ (shared)
└─────────────────┘ └─────────────────┘
Only changed data is stored separately
Bekerja dengan cabang
Reset cabang
Reset cabang langsung memperbarui cabang anak agar sesuai dengan status induknya saat ini. Ini berguna ketika Anda ingin memperbarui cabang pengembangan atau penahapan Anda dengan data terbaru dari induk. Operasi selesai secara instan menggunakan teknologi copy-on-write, dan detail koneksi Anda tetap sama.
Reset cabang hanya berfungsi satu arah (induk → turunan). Untuk memindahkan perubahan dari anak ke induk, gunakan alat migrasi standar Anda untuk menerapkan perubahan skema. Lihat Mereset cabang untuk langkah dan skenario terperinci.
Pemulihan ke titik waktu tertentu
Anda dapat membuat cabang dari titik waktu tertentu dalam jendela pemulihan Anda, yang berguna untuk memulihkan dari kesalahan data seperti penghapusan yang tidak disengaja, menyelidiki masalah sebelumnya, atau mengakses data historis untuk tujuan audit dan kepatuhan. Misalnya, jika sebuah tabel penting terhapus kemarin pukul 10:23 pagi, Anda dapat membuat cabang yang disetel ke 10:22 pagi untuk mengambil data yang hilang. Demikian pula, Anda dapat membuat cabang yang mencerminkan status database Anda pada tanggal tertentu untuk rekonsiliasi keuangan, audit peraturan, atau analisis forensik. Tidak seperti pengaturan ulang cabang (yang memperbarui cabang yang sudah ada di tempat), pemulihan tepat waktu (point-in-time recovery) membuat cabang baru sebagai akar dari data historis sambil membiarkan cabang asli Anda tetap tidak berubah dan berfungsi. Lihat Pemulihan titik waktu untuk detailnya.
Jenis cabang khusus
Cabang utama
Saat membuat proyek Lakebase, Anda secara otomatis mendapatkan satu production cabang sebagai cabang default Anda. Mulai kosong, siap untuk data Anda. Anda dapat membuat cabang anak untuk pengembangan dan pengujian—uji perubahan skema Anda di cabang anak, kemudian jalankan migrasi yang sama terhadap production ketika Anda yakin bahwa itu berfungsi.
Cabang utama bawaan Anda tidak pernah mengurangi skala ke nol, memastikan tetap tersedia meskipun komputasi cabang lain menurunkan skala saat tidak aktif.
Cabang yang dilindungi
Cabang yang dilindungi memiliki perlindungan untuk mencegah perubahan yang tidak disengaja. Mereka tidak dapat dihapus atau diatur ulang dari induknya, dan dikecualikan dari pengarsipan otomatis karena tidak aktif. Cabang yang dilindungi juga memblokir penghapusan proyek saat ada, memastikan Anda tidak dapat menghapus infrastruktur penting secara tidak sengaja. Gunakan cabang yang dilindungi untuk data penting seperti produksi. Lihat Cabang yang dilindungi untuk detailnya.
Bagaimana percabangan berdampak pada konsumsi sumber daya
Dengan cabang, Anda hanya membayar apa yang sebenarnya Anda gunakan.
Penyimpanan: Anda hanya membayar untuk perubahan data. Jika Anda membuat cabang pengembangan dan memodifikasi 1GB data dalam database 100GB, Anda membayar sekitar 1GB penyimpanan, bukan 200GB. 99GB yang tidak berubah dibagikan antar cabang.
Komputasi: Setiap cabang memiliki komputasinya sendiri yang dapat Anda skalakan secara independen. Anda hanya membayar untuk jam komputasi aktif. Komputasi menskalakan ke nol saat diam. Ini berarti cabang pengembangan yang Anda gunakan kadang-kadang biayanya jauh lebih murah daripada menjalankan server pengembangan khusus 24/7.
Cabang bawaan: Kapasitas komputasi cabang bawaan Anda tidak pernah diskalakan menjadi nol, memastikan beban kerja produksi Anda tetap tersedia.
Strategi cabang
Berikut adalah beberapa cara umum tim mengatur cabang mereka:
Sederhana (individu dan tim kecil)
Gunakan cabang default Anda dengan satu cabang pengembangan:
production
└── development
Cabang development adalah tempat Anda membangun fitur baru dengan aman. Anda dapat membuat perubahan skema, menambahkan data pengujian, dan bereksperimen tanpa risiko apa pun ke cabang produksi Anda. Setelah siap, jalankan migrasi skema yang diuji terhadap production (menggunakan alat migrasi Anda), lalu atur ulang development untuk memulai fitur berikutnya dengan data baru.
Dengan penahapan
Tambahkan cabang staging untuk pengujian pra-produksi:
production
├── staging
└── development
Jika Anda memerlukan pengujian pra-produksi, pertahankan staging cabang yang mencerminkan data cabang produksi Anda. Sebarkan aplikasi Anda di sana, jalankan pengujian integrasi dan performa terhadap data realistis, dan dapatkan kepercayaan diri sebelum ditayangkan. Reset staging secara berkala dari production untuk merefresh data pengujian Anda.
Cabang per pengembang
Setiap pengembang bekerja dalam isolasi lengkap:
production
└── development
├── dev-alice
├── dev-bob
└── dev-charlie
Pola ini mencegah pengembang mengganggu pekerjaan satu sama lain dan memungkinkan semua orang untuk menguji perubahan skema secara independen. Setiap pengembang dapat bereksperimen dengan perubahan skema dan modifikasi data mereka sendiri tanpa memengaruhi orang lain, lalu menerapkan migrasi yang telah diuji ke cabang bersama development atau production saat siap.
Langkah selanjutnya
- Mengelola cabang untuk mempelajari cara membuat, mengatur ulang, dan menghapus cabang
- Cabang yang dilindungi untuk melindungi cabang-cabang penting