Dalam dunia teknologi yang berkembang pesat, manajemen basis data tetap menjadi aspek yang krusial, meskipun menantang, bagi banyak organisasi. Percona, penyedia solusi basis data sumber terbuka terkemuka, hadir dengan produk terbarunya, yang kini dalam fase beta: Percona Everest . Tulisan ini bertujuan untuk menjelaskan apa itu Percona Everest, cara kerjanya, dan dampak potensialnya pada manajemen basis data.
Apa alat ini? Apa itu Percona Everest?
Percona telah lama dikenal karena kontribusinya terhadap komunitas sumber terbuka, menawarkan versi MySQL, MongoDB, dan Postgres yang disempurnakan. Solusinya, termasuk Percona Xtrabackup , Percona Monitoring and Management(PMM) , dan Percona Toolkit , telah membantu administrator basis data (DBA) dengan menyediakan alternatif untuk solusi berpemilik, sehingga mencegah ketergantungan pada vendor.
Tambahan terbaru pada rangkaian alat Percona, Percona Everest, bertujuan untuk mendefinisikan ulang penggunaan dan pengelolaan basis data. Dibangun di atas fondasi Percona Operators, Everest menyederhanakan siklus hidup basis data, meliputi penyediaan, konfigurasi, dan pengelolaan, dengan tujuan utama menghemat waktu dan sumber daya yang secara tradisional didedikasikan untuk pengelolaan basis data atau penawaran Database as a Service (DBaaS).
Memulai dengan Percona Everest
Langkah awal untuk menggunakan Percona Everest melibatkan penyiapan kluster Kubernetes, sebuah proses yang didukung oleh Google Kubernetes Engine (GKE) dan Amazon Elastic Kubernetes Service (EKS). Sebagai ilustrasi, postingan ini merinci proses penggunaan GKE dan klien Everest yang berjalan pada MacOS Sonoma dengan silikon Apple, dimulai dengan penggunaan CLI gcloud
dan dilanjutkan ke pembuatan kluster Kubernetes.
Langkah pertama adalah membuat cluster Kubernetes di GKE:
|
$ gcloud container clusters create \
> --machine-type n1-standard-4 \
> --num-nodes 3 \
> --zone us-central1-b \
> --cluster-version latest vinnie1-k8s
Default change: VPC-native is the default mode during cluster creation for versions greater than 1.21.0-gke.1500. To create advanced routes based clusters, please pass the `--no-enable-ip-alias` flag
Default change: During creation of nodepools or autoscaling configuration changes for cluster versions greater than 1.24.1-gke.800 a default location policy is applied. For Spot and PVM it defaults to ANY, and for all other VM kinds a BALANCED policy is used. To change the default values use the `--location-policy` flag.
Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster vinnie1-k8s in us-central1-b... Cluster is being health-checked (master is healthy)...done.
Created [https://container.googleapis.com/v1/projects/support-211414/zones/us-central1-b/clusters/vinnie1-k8s].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-b/vinnie1-k8s?project=support-211414
kubeconfig entry generated for vinnie1-k8s.
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
vinnie1-k8s us-central1-b 1.29.0-gke.1381000 34.136.183.215 n1-standard-4 1.29.0-gke.1381000 3 RUNNING
|
Menggunakan Percona Everest
Setelah instalasi selesai, fokus beralih ke penginstalan klien Everest . Caranya mudah karena kita hanya perlu mengunduh biner (dan dokumentasinya sudah menyediakan perintah-perintahnya):
|
$ curl -sSL -o everestctl-darwin-arm64 https://github.com/percona/percona-everest-cli/releases/latest/download/everestctl-darwin-arm64
$ sudo install -m 555 everestctl-darwin-arm64 /usr/local/bin/everestctl
$ everestctl version
ProjectName: everestctl
Version: 0.8.0
FullCommit: 2fe2cb9246c8e185a91e775fdf4855511def411a
|
Setelah klien terinstal, kami akan melakukan instalasi Operator Percona:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
$ everestctl install
? Namespaces managed by Everest (comma separated) default
? What operators do you want to install? MySQL, MongoDB, PostgreSQL
2024-02-28T23:36:56Z info install/install.go:430 Installing Operator Lifecycle Manager {"component": "install"}
2024-02-28T23:37:25Z info install/install.go:435 OLM has been installed {"component": "install"}
2024-02-28T23:37:25Z info install/install.go:436 Installing Percona OLM Catalog {"component": "install"}
2024-02-28T23:38:09Z info install/install.go:441 Percona OLM Catalog has been installed {"component": "install"}
2024-02-28T23:38:09Z info install/install.go:419 Creating namespace everest-monitoring {"component": "install"}
2024-02-28T23:38:10Z info install/install.go:425 Namespace everest-monitoring has been created {"component": "install"}
2024-02-28T23:38:10Z info install/install.go:238 Preparing k8s cluster for monitoring {"component": "install", "action": "monitoring"}
2024-02-28T23:38:10Z info install/install.go:208 Creating operator group for everest {"component": "install"}
2024-02-28T23:38:10Z info install/install.go:212 Installing victoriametrics-operator operator {"component": "install"}
2024-02-28T23:38:36Z info install/install.go:228 victoriametrics-operator operator has been installed {"component": "install"}
2024-02-28T23:38:48Z info install/install.go:246 K8s cluster monitoring has been provisioned successfully {"component": "install", "action": "monitoring"}
2024-02-28T23:38:48Z info install/install.go:419 Creating namespace default {"component": "install"}
2024-02-28T23:38:49Z info install/install.go:425 Namespace default has been created {"component": "install"}
2024-02-28T23:38:49Z info install/install.go:311 Installing operators into default namespace {"component": "install"}
2024-02-28T23:38:49Z info install/install.go:478 Installing percona-xtradb-cluster-operator operator {"component": "install"}
2024-02-28T23:39:10Z info install/install.go:520 percona-xtradb-cluster-operator operator has been installed {"component": "install"}
2024-02-28T23:39:10Z info install/install.go:478 Installing percona-server-mongodb-operator operator {"component": "install"}
2024-02-28T23:39:38Z info install/install.go:520 percona-server-mongodb-operator operator has been installed {"component": "install"}
2024-02-28T23:39:38Z info install/install.go:478 Installing percona-postgresql-operator operator {"component": "install"}
2024-02-28T23:40:09Z info install/install.go:520 percona-postgresql-operator operator has been installed {"component": "install"}
2024-02-28T23:40:09Z info install/install.go:315 Creating role for the Everest service account {"component": "install"}
2024-02-28T23:40:10Z info install/install.go:321 Binding role to the Everest Service account {"component": "install"}
2024-02-28T23:40:12Z info install/install.go:419 Creating namespace everest-system {"component": "install"}
2024-02-28T23:40:12Z info install/install.go:425 Namespace everest-system has been created {"component": "install"}
2024-02-28T23:40:12Z info install/install.go:255 Creating operator group for everest {"component": "install"}
2024-02-28T23:40:13Z info install/install.go:478 Installing everest-operator operator {"component": "install"}
2024-02-28T23:40:36Z info install/install.go:520 everest-operator operator has been installed {"component": "install"}
2024-02-28T23:40:36Z info install/install.go:278 Deploying Everest to everest-system {"component": "install"}
2024-02-28T23:40:53Z info install/install.go:293 Updating cluster role bindings for everest-admin {"component": "install"}
2024-02-28T23:40:54Z info install/install.go:577 Creating token for Everest {"component": "install"}
2024-02-28T23:40:55Z info install/install.go:185
Here's your authorization token for accessing the Everest UI and API:
k7DcNAJyCsUFgReBJOZ4dH43G8Bc864cZ23keHckPbcTOpYK58B7MAZYHiuAHRahFONUdOXLeY4ZBws5azQLqrb1Gpxjrg6UoBQJrEg67E1dAtOH1URvlamrJ87j99C
Store this token securely as you will not be able to retrieve it later. If you ever need to reset it, use the following command:
everestctl token reset
{"component": "install"}
|
Sangat penting untuk menyimpan token, karena kita akan menggunakannya nanti di antarmuka UI.
Setelah instalasi selesai, kita perlu mengaktifkan penerusan port sehingga kita dapat menggunakan antarmuka UI:
|
$ kubectl port-forward svc/everest 8080:8080 -n everest-system
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080
|
Dan kita buka browser kita menggunakan port yang diteruskan (8080) di localhost ( http://127.0.0.1:8080/login ):
Dengan Everest UI, kita dapat mulai mengelola basis data dan membuat contoh pertama kita. Saya tidak akan membahas detail setiap opsi (mungkin di kesempatan lain), tetapi ini mirip dengan penerapan layanan DBaaS (misalnya, RDS):
Setelah semua langkah selesai, kita akan melihat inisialisasi database kita:
Dan kami dapat mengonfirmasi bahwa pod sedang dipasang:
|
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mysql-boring-haproxy-0 2/2 Running 0 2m59s
mysql-boring-haproxy-1 2/2 Running 0 95s
mysql-boring-haproxy-2 2/2 Running 0 75s
mysql-boring-pxc-0 1/1 Running 0 3m
mysql-boring-pxc-1 1/1 Running 0 98s
mysql-boring-pxc-2 0/1 Running 0 27s
percona-postgresql-operator-c5c44c589-5c6zg 1/1 Running 0 20m
percona-server-mongodb-operator-668566bcbc-r5kqp 1/1 Running 5 (10m ago) 20m
percona-xtradb-cluster-operator-56486d5b7d-pdrf6 1/1 Running 5 (10m ago) 21m
|
Bahasa Indonesia: Merefleksikan perjalanan dari praktik manajemen basis data tradisional ke pendekatan modern dan otomatis yang difasilitasi oleh teknologi seperti Kubernetes, evolusi ini menyoroti pergeseran industri menuju efisiensi dan kesederhanaan. Munculnya kontainer dan pengenalan orkestrasi dan otomatisasi oleh Kubernetes telah menjadi pengubah permainan. Inovasi-inovasi ini menggarisbawahi sifat dinamis teknologi, di mana perubahan dan evolusi berkelanjutan adalah satu-satunya yang konstan. Pengembangan yang serba cepat ini memerlukan cara yang lebih cerdas dan lebih ramping untuk menyebarkan basis data, sejalan dengan perspektif yang dibagikan oleh Jensen Huang, CEO Nvidia, tentang sifat transformatif teknologi dan apa yang disebut " kematian pengkodean ". Visi Huang menunjukkan pergeseran paradigma di mana esensi inovasi dan penciptaan produk tidak lagi terikat pada keahlian teknis yang mendalam di area tertentu tetapi dapat diakses oleh mereka yang memiliki visi dan ide.
Percona Everest merupakan lambang dari pergeseran ini, menawarkan platform yang mendemokratisasi manajemen basis data dengan mengabstraksikan kompleksitas administrasi basis data tradisional. Platform ini memberdayakan bisnis, terutama perusahaan rintisan dengan sumber daya terbatas, untuk berfokus pada tujuan inti mereka, bukan pada kerumitan manajemen basis data dan infrastruktur. Dengan meminimalkan kebutuhan akan pengetahuan khusus dalam operasi basis data, Everest memungkinkan para inovator dan kreator untuk merebut kembali peran mereka di garis depan pengembangan dan inovasi produk.
Tidak ada komentar:
Posting Komentar