Halo semuanya! Pernahkah Anda mendengar sesuatu tentang fenomena
Baader-Meinhof ? Ini adalah distorsi kognitif yang lucu, yang ternyata menarik untuk dicontoh. Pada 2016,
artikel ulasan tentang teknologi Delphix diterbitkan di Habré. Seperti teori bagus yang Anda konsumsi dalam ton setiap hari untuk diketahui, Anda benar-benar lupa sekitar 80 persen, tanpa mempraktikkannya. Itu juga terjadi pada saya - saya dengan cepat melupakan posting itu dan Delphix, sampai sekitar setahun yang lalu, sebagai hasil dari layanan saya, saya menjumpai penulis produk dan produk itu sendiri. Memiliki kesempatan untuk mempelajari topik bukan dalam teori, tetapi dalam praktiknya,
LANIT terjun ke teknologi ini begitu dalam sehingga dalam artikel ini saya ingin mensistematisasikan pengetahuan yang didapat dan menganalisis pengalaman yang diperoleh.
Gambar milik hasil pencarian Yandex.Apa itu Delphix?
Delphix adalah perangkat lunak yang berjalan pada mesin virtual dengan Solaris OS, yang Anda perlukan untuk menghubungkan sistem penyimpanan untuk menyimpan salinan database agar berfungsi dengan baik. Perangkat lunak dikirimkan dalam bentuk gambar siap pakai dari mesin virtual (alat virtual). Gambar dapat digunakan di VmWare, atau di infrastruktur cloud AWS / Azure. Untuk tes, pada prinsipnya, Anda dapat meningkatkannya secara lokal di workstation Anda.
Jika diringkas dengan sangat kuat dan sangat singkat, Delphix memvirtualisasikan data dan menyediakan basis data siap pakai yang dapat Anda gunakan. Dia mengambil salinan dari basis data sumber (disebut dSource) dan meletakkannya di penyimpanannya (partisi VM lokal, yang terhubung ke penyimpanan eksternal). Menggunakan algoritma, ini mengurangi volume salinan ini hingga 60% (tergantung pada tipe data, tentu saja). Kemudian, dari salinan yang sama, Anda dapat menggunakan database ini di host lain dalam beberapa menit. Database semacam itu disebut Virtual Database - VDB. File database di-mount ke host target melalui NFS, dan karenanya tidak memakan ruang pada mereka. Artinya, memiliki 1 dSource per 500 GB dan 5 VDB, total ruang yang ditempati oleh kasing ini pada penyimpanan akan sekitar 350 GB (atau lebih).
Apakah ini proses penyalinan satu kali?
Setelah langkah inisialisasi dan langkah bootstrap dari database sumber di Delphix berlalu, mesin Delphix mempertahankan sinkronisasi konstan dengan database ini berdasarkan kebijakan yang Anda pilih, misalnya, sinkronisasi setiap hari atau setiap jam, atau beberapa saat setelah transaksi.
Kecepatan membuat salinan database pertama secara langsung tergantung pada bandwidth jaringan antara database sumber dan Delphix, karena cadangan ditransmisikan melalui jaringan.
Setelah mengikat ke basis data sumber, Delphix mendukung apa yang disebut TimeFlow (mesin waktu) dari basis data sumber, fungsi yang mirip dengan kontrol versi. Setiap versi dari database dalam interval waktu ini dapat dihubungkan ke database target. Mengapa Misalnya, untuk menyelidiki insiden.
Gambar 1: Kemampuan untuk menggunakan VDB pada waktu tertentu ...Gambar 2: ... baik pada snapshot basis data yang dibuat secara manualVDB berada pada level yang sama, jadi baik pengguna maupun administrator tidak memerlukan sumber daya penyimpanan tambahan.
Anda dapat dengan cepat menghubungkan versi VDB ini ke database target. VDB tidak tergantung satu sama lain dan berada dalam mode Baca-Tulis. Perubahan baru yang dibuat untuk VDB ditulis ke blok baru di toko Delphix.
Anda dapat membuat VDB berdasarkan VDB lain dan memperbaruinya atau memutar kembali sesuai kebutuhan.
Bagaimana aplikasi akan bereaksi terhadap ini?
Anda dapat bekerja dengan VDB seperti "suka dengan database biasa". Aplikasi tidak akan melihat apa pun. Jelas bahwa binari DBMS harus sudah diinstal pada server ini, karena hanya file database itu sendiri yang dikloning.
VDB semacam itu digunakan terutama untuk pengujian fungsional atau sebagai kotak pasir. Dalam kebanyakan kasus, itu tidak layak mengemudi beban pada VDB, karena karena koneksi database via NFS, menafsirkan hasil pengujian beban tersebut akan sangat bermasalah. Meskipun jika Anda memiliki database di Prom bekerja dengan penyimpanan melalui NFS, maka, mungkin, Anda bisa.
Dijamin, Anda dapat mengandalkan operasi yang stabil jika Anda menggunakan Oracle (termasuk yang memiliki dukungan multitenant dan RAC), MS SQL, SAP ASE, IBM DB2, Oracle EBS, SAP HANA. Konfigurasi semacam itu didukung oleh vendor.
Selain itu, Anda dapat memvirtualkan file biasa (pertimbangkan basis data apa saja, tetapi dengan beberapa keterbatasan dalam fungsi). Sebagai contoh, sebagai pembuktian konsep untuk pengujian internal, kami melakukan virtualisasi contoh PostgreSQL dari salah satu proyek kami. Saya tidak akan mengatakan apa yang terjadi sekali atau dua kali, tetapi pada akhirnya skema dengan PostgreSQL berfungsi, meskipun vendor saat ini tidak secara resmi mendukung PostgreSQL.
Mengapa ini diperlukan jika fungsionalitas serupa dibangun ke dalam sistem penyimpanan?
Tak perlu dikatakan bahwa sistem penyimpanan memiliki fungsi untuk snapshot dan provisi tipis untuk waktu yang lama. Namun, jika basis data dan dudukan yang produktif terletak pada sistem penyimpanan vendor yang berbeda, maka solusi seperti itu tidak akan berfungsi. Dan tidak semua sistem penyimpanan dapat melakukan ini.
Dengan menggunakan Delphix, Anda dapat dengan sukses menyebarkan lingkungan pengujian pada sistem penyimpanan yang usang dan usang secara teknologi yang telah dinonaktifkan. Akibatnya, kami secara signifikan mengurangi biaya penyimpanan data uji.
Dimungkinkan juga untuk mendapatkan salinan fisik dari database dari snapshot ini, misalnya, untuk membuat siaga atau untuk mentransfer database ke sistem penyimpanan lain.
Komponen penting adalah swalayan. Menggunakan Delphix JetStream GUI, bahkan pengembang / penguji yang tidak terlatih pun dapat memutar kembali / memperbarui versi basis data dudukan mereka sendiri dan tidak menarik administrator beberapa kali seminggu.
Gambar 3. Menggunakan JetStream, gambar tersebut menunjukkan masa brunch dari versi utama VDB, menciptakan snapshot dari versi dan beberapa kickbacks untuk snapshot ini.Delphix mendukung sinkronisasi terus menerus VDB dengan database produktif menggunakan arsip / file log transaksional. Untuk implementasi serupa berdasarkan penyimpanan, Anda harus melakukan ... dua puluh foto per hari.
Seperti Oracle Enterprise Manager juga tahu cara mengkloning database
Ya, itu bisa, tetapi hanya Oracle DBMS yang didukung di dalamnya. Karena itu, tidak dapat digunakan untuk sisa DBMS.
Pertanyaan kuncinya adalah mengapa itu menghasilkan laba?
Pertama, mari kita cari tahu siapa dan apa yang bisa menguntungkan Delphix. Keuntungannya adalah sebagai berikut:
- pengurangan waktu yang dihabiskan untuk persetujuan pendirian baru,
- pengurangan ruang penyimpanan yang digunakan untuk tempat uji,
- kemampuan untuk menggunakan sistem penyimpanan non-khusus dari berbagai vendor,
- pengurangan waktu untuk penempatan alas ke dudukan,
- pengurangan waktu untuk memperbarui basis data di tribun.
Sekarang secara singkat untuk setiap item.
Pengurangan waktu yang dihabiskan untuk koordinasi untuk tegakan baru. Ya, di beberapa perusahaan tempat kami bekerja, menyetujui untuk memasang stan baru membutuhkan waktu dua minggu. Dan jika tidak ada jumlah sumber daya yang diperlukan atau organisasi tampil sangat solid dan sangat birokratis, maka, katakanlah dengan hati-hati, istilahnya disebut "from a month".
Ruang penyimpanan berkurang untuk bangku tes. Menurut vendor perangkat keras, biaya layanan 1 TB data penyimpanan adalah dari 800 euro per tahun. Angka-angka ini perkiraan, tetapi urutannya. Jika Anda memiliki basis data produktif berukuran 2 TB dan 3 bangku tes dengan VDB, volume total yang ditempati oleh perbaikan akan sekitar 2 TB. Indikator-indikator tersebut dicapai karena fakta bahwa untuk semua database pengujian hanya diperlukan satu layanan umum, yang, dalam kasus umum, akan menempati basis data yang tidak jauh lebih produktif. Tentu saja, itu semua tergantung pada jumlah perubahan yang dilakukan pada database pengujian. Lebih banyak perubahan - penyimpanan akan "membengkak" lebih banyak karena penyimpanan delta. Untuk membayangkan ini, Anda dapat membayangkan diagram dengan snapshot dari mesin virtual.
Jumlah total kemungkinan basis data yang terhubung (termasuk basis data sumber dan basis data uji) ke satu instance Delphix adalah sekitar 300.
Mengurangi waktu untuk memasang pangkalan ke dudukan. Daripada berjam-jam operasi rutin untuk menggulung cadangan versi tertentu ke dudukan, Anda perlu menekan 3 tombol. Bagi mereka yang terbiasa bekerja di konsol atau menggunakan API yang kuat, ada CLI dan API.
Mengurangi waktu untuk memperbarui basis data di tribun. Mesin Delphix mendukung sinkronisasi konstan dengan basis data sumber (menggunakan catatan arsip / catatan transaksi dari basis data), dan semua perubahan dari basis data ini dapat disebarkan ke VDB yang terhubung.
Bagaimana ini diterapkan secara teknis?
Sistem file Delphix berisi blok data (level terendah dalam gambar). Delphix membuat indeks B-tree yang mengarah ke blok data ini. Selain itu, blok root indeks (yang paling atas) sangat menentukan. Ini adalah keadaan sistem pada waktu t0.
Sekarang bayangkan bahwa blok data yang dimodifikasi b 'dan c' telah tiba, dan sistem telah beralih ke status t1.
Delphix tidak menggiling blok data lama, tetapi membuat blok baru berdampingan. Untuk mengaksesnya, blok indeks root baru dibuat yang menunjuk ke blok data baru.
Berkat indeks, sistem memiliki dua versi, yang masing-masing dapat dioperasikan dengan menghubungkan ke blok akar yang sesuai dari indeks t0 atau t1.
Misalnya, ketika terhubung ke blok indeks t1, sistem akan terlihat seperti ini:
Ketika Delphix mengambil cadangan dari database sumber, itu membuat indeks seperti itu di dalam dirinya sendiri. Itu secara otomatis menerapkan cadangan tambahan untuk yang asli, tetapi tidak menggosok blok, tetapi menulis mereka berdampingan dan membuat blok akar baru dari indeks.
Oleh karena itu, selalu mungkin untuk mendapatkan snapshot database pada titik waktu tertentu dan menggunakan VDB darinya.
Ada
sebuah video di YouTube yang dijelaskan oleh Jonathan Lewis (pengoptimalan / pengoptimal terbaik Oracle dan masalah kinerja penulis buku Oracle Fundamentals-Based-Cost yang bagus dan banyak buku lain yang bermanfaat).
Seberapa jauh lebih nyaman daripada solusi khusus (skrip, misalnya)?
Dengan cukup banyak orang, waktu, uang, dan kesabaran, Anda dapat menulis apa pun dengan skrip. Namun, biaya dukungannya dan banyak nuansa lain akan langsung bergantung pada kompleksitas keputusan semacam itu. Satu perusahaan tempat kami bekerja dan berteman, mempertimbangkan pro dan kontra, mengevaluasi kekuatan departemen TI-nya dan memutuskan untuk menulis analog Delphix secara independen pada skrip dan ZFS. Ini adalah opsi yang cukup, jika Anda memerlukan solusi khusus untuk satu sistem, Anda yakin dengan kemampuan Anda. Ya, itu sudah ada di sana, kami sendiri suka sekali menulis skrip ...
Di suatu tempat di atas, tentang topeng, ada apa?
Alat masking data tambahan dapat ditambahkan ke fungsionalitas inti Delphix. Ini akan memungkinkan Anda untuk mengenkripsi data pribadi, misalnya, nomor kartu kredit, nama, nama keluarga, dll. Fungsi yang sangat populer di kalangan bank dan mereka yang memenuhi semua persyaratan 149- dan 152-.
Biasanya, pengembang memerlukan data dari basis data yang produktif ketika itu terjadi:
- mengembangkan aplikasi baru,
- mendukung atau meningkatkan aplikasi,
- pengujian fungsional di bangku tes.
Tidaklah baik untuk secara langsung menghubungkan siapa pun ke basis data industri secara langsung, tetapi Anda harus bekerja entah bagaimana dan entah bagaimana memberikan setiap orang yang membutuhkannya dengan struktur data industri dan volume data industri kesempatan untuk bekerja. Lebih penting lagi, dengan "profil" industri data. Mengingat bahwa data produktif seringkali berisi informasi rahasia, termasuk data pribadi, untuk mentransfernya ke area pengujian atau memberikannya kepada pengembang biasanya merupakan tugas yang mustahil.
Anda dapat menulis artikel terperinci yang terpisah tentang hal ini, tetapi singkatnya, opsi penyembunyian data menyembunyikan atau memodifikasi data yang tidak dapat dipindahkan di luar area yang dikendalikan dari sirkuit industri dan memungkinkan Anda untuk mentransfer data yang sudah ditutup-tutupi ke lingkungan pengembangan dan pengujian.
Masking Engine (mesin penutup) menghapus atau memodifikasi informasi yang dilindungi dan meninggalkan analog data, sehingga memungkinkan pengembang dan penguji untuk bekerja dengan data yang sama. Penyembunyian data diimplementasikan oleh komponen Mesin Masking Delphix.
Mengapa tidak menggunakan IBM Optim / Oracle Masking / analog sebagai masking?
Tentu saja, ada solusi lain yang memiliki fungsi serupa. Misalnya, Masking Oracle, Masking Informatica, dll. Plus, seperti dalam kasus Delphix sendiri, Anda dapat menulis skrip masking Anda sendiri. Namun, kelemahan umum yang signifikan adalah kebutuhan untuk membeli sejumlah besar lisensi / perangkat lunak tambahan yang lebih mahal.
- Untuk Oracle, ini adalah lisensi setiap server dengan masking (ini adalah lisensi Masking dan Database Gateway untuk database non-Oracle).
- Informatica memiliki PowerCenter ETL, Desainer, dan Manajemen Siklus Hidup. Dan jika Anda ingin mengencangkannya ke SAP, maka Anda masih harus membayarnya.
- Skrip - dengan skrip semuanya tergantung pada keyakinan Anda pada diri sendiri dan kepercayaan pada kepemimpinan Anda.
Agar tidak membebani teks, kami akan meninggalkan ilustrasi yang lebih rinci tentang prinsip-prinsip fungsi masking dalam artikel terpisah.
Jika Anda dapat memberikan contoh alat masking lain yang Anda ketahui digunakan dalam praktik dan menyelesaikan masalah, alangkah baiknya melihat beberapa kata dari Anda tentang mereka di komentar.
Saya masih ingin menulis naskah masking saya ...
Dimungkinkan untuk menggunakan yang ditulis sendiri, tetapi orang harus memahami bahwa dengan tingkat tinggi menjalankan skrip pada database uji dalam jumlah, katakanlah, 5 TB, akan memakan waktu yang sangat lama. Dan penulisan algoritma dan skrip sendiri dapat bertahan lebih lama.
Ketika perlu untuk dengan cepat dan terjamin menyelesaikan masalah baru dan harus bekerja "seperti jam", menutupi "di luar kotak" untuk Delphix akan bekerja. Script, kemungkinan besar, harus "selesai" untuk tugas baru (struktur data, jenis database, dll.).
Apa yang bisa dilakukan Mesin Masking Delphix di luar kotak- Pencarian Aman - menggantikan data asli, misalnya, "Vasya" -> "Petya". Dalam algoritma ini, tabrakan dapat terjadi ketika data yang diganti sama.
- Pemetaan tersegmentasi - membagi nilai menjadi beberapa segmen dan mengganti segmen-segmen ini satu per satu. Sebagai contoh, angka NM831026-04 dapat dibagi menjadi tiga bagian, dimana huruf-huruf NM tidak menutupi, nilai setelah transformasi adalah NM390572-50. Ini berlaku untuk masking nilai kolom yang digunakan sebagai kunci utama atau untuk kolom unik.
- Algoritma Pemetaan - untuk operasinya, perlu menunjukkan korespondensi yang tepat dari nilai asli dan yang diganti. Dalam hal ini, tidak akan ada tabrakan, karena nilai asli langsung diganti oleh yang spesifik. Sebagai contoh, nama "Alexey" akan selalu diganti oleh "Nikita".
- Algoritma Binary Lookup - menggantikan nilai clob / blob di kolom, dll. Delphix tidak tahu bagaimana cara mengganti nilai dalam gambar / teks, tetapi Anda dapat memilih gambar atau teks pengganti.
- Algoritma Tokenisasi adalah jenis enkripsi data di mana data input dikonversi ke token yang memiliki atribut serupa (panjang string, nilai digital atau teks), tetapi tidak memiliki makna. Dengan menggunakan algoritma, Anda dapat mengenkripsi / mendekripsi data ini. Misalnya, Anda bisa menyembunyikan data dan mengirimkannya ke vendor produk. Dia akan menganalisis mereka dan menandai data yang tidak benar (misalnya, salah mengisi), dan kemudian mengirimkannya kembali.
- Algoritma Min Max adalah algoritma yang rata-rata semua nilai dalam kolom untuk menyembunyikan nilai maksimum dan minimum (misalnya, gaji).
- Algoritma Pembersihan Data - tidak menutupi, tetapi membakukan data. Misalnya, Anda dapat menetapkan aturan dengan mana nilai Ru, Rus, R dikonversi ke format RU tunggal.
Ok Saya sudah menyadari bahwa kita membutuhkan Delphix. Untuk memperkenalkan untuk waktu yang lama? Seperti apa prosesnya?
Implementasi dimulai dengan proyek percontohan. Pertama, wawancara dilakukan dengan pelanggan, dan di sini untuk interaksi penuh kita hanya perlu satu insinyur yang bertanggung jawab (DBA atau administrator sistem). Kami memiliki kuesioner kuesioner khusus yang membantu untuk mengetahui karakteristik lingkungan komputasi pelanggan.
Kami juga akan memerlukan informasi tentang sistem yang dapat menjadi kandidat untuk virtualisasi (baik basis data terpisah atau seluruh sistem SAP / Dynamics). Bersama-sama, kami dalam mode dialog menentukan kriteria pengujian, kriteria keberhasilan dan waktu proyek percontohan. Lebih lanjut, saat pelanggan sedang mempersiapkan infrastruktur untuk pilot, kami menerima lisensi uji dari vendor.
Teknisi kami datang ke situs pelanggan, mengatur mesin dan menghubungkan database sumber ke sana. Bergantung pada aturan internal pelanggan mengenai keamanan informasi, sumber mana yang terhubung dan ketersediaan tim teknisnya, penerapan dan konfigurasi awal dapat dilakukan bukan oleh kami, tetapi oleh tim TI pelanggan sendiri, baik di bawah pengawasan kami atau sesuai dengan instruksi vendor dengan saran kami.
Selanjutnya, jika pelanggan memiliki keinginan untuk memompa timnya (dan biasanya ada keinginan seperti itu), kami melakukan pelatihan untuk administrator infrastruktur dan DBA. Untuk tujuan pelatihan, kami menggunakan satu atau lebih database virtual dengan mereka dan menjalankan semua skrip.
Biasanya, uji coba berlangsung 2 hingga 4 minggu, jika proses internal pelanggan dapat dengan cepat menyiapkan infrastruktur yang diperlukan. Sebagai aturan, selama waktu ini pada sistem nyata adalah mungkin untuk menguji semua fungsionalitas perangkat lunak dan mengevaluasi sejauh mana manfaat yang dihasilkan.
Berdasarkan hasil tes, sebuah laporan dikompilasi di mana semua proses uji coba dianalisis, angka "sudah-jadi" diberikan dan kesimpulan dibuat tentang kelayakan hubungan jangka panjang. Jika manajemen membuat keputusan positif, proses "transisi ke rel industri" adalah masalah beberapa jam, seperti selama proses uji coba, kesulitan utama biasanya diatasi, dan "pengembalian" dan "efek proyek" dimulai secara harfiah pada hari berikutnya.
Apakah ada poin negatif? Apa yang tidak suka?
Terus terang, produknya tidak murah. Itu tidak akan bekerja pada torrent, dan untuk menggunakan solusi, Anda harus membayar biaya tahunan kepada vendor. Skema lisensi - untuk jumlah data tervirtualisasi.
Manfaat maksimum dari menggunakan Delphix tercapai ketika Anda perlu membuat sejumlah besar salinan dari sumber basis data yang berbeda dalam jumlah besar (jumlah sumber basis data> = 1), misalnya, untuk membuat sekelompok singkatan khas analis, layanan pengujian, layanan dukungan untuk bermain cacat dengan produksi, dll., di mana Anda memerlukan salinan pangkalan tempur dengan data bertopeng, atau salinan pangkalan uji yang sangat besar, dan dengan cepat dan untuk periode waktu yang relatif singkat (menciptakan klon, menyelesaikan masalah, membunuh klon, membuat segar dan dll.)
Jika ini adalah kasus Anda, pertimbangkan TCO (kami dapat membantu melakukannya dengan benar) dan memutuskan apakah itu cocok untuk Anda atau tidak. Kalau tidak, itu benar-benar alat kotak yang sangat menarik (ini penting!) Yang memecahkan tugas yang cukup dimengerti dari sudut pandang teknis.Dan kami juga memiliki lowongan. Sebagai kesimpulan, kami ingin melakukan survei kecil untuk memahami bagaimana alat ini dapat bermanfaat bagi Anda.