MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Otomasi Penerapan Basis Data MongoDB

Organisasi memanfaatkan infrastruktur di cloud karena menawarkan kecepatan, fleksibilitas, dan skalabilitas. Anda dapat membayangkan jika kita dapat menjalankan instance database baru hanya dengan satu klik, dan dibutuhkan beberapa menit hingga siap, kita juga dapat menerapkan aplikasi lebih cepat dibandingkan jika dibandingkan dengan lingkungan lokal.

Kecuali jika Anda menggunakan layanan cloud MongoDB sendiri, penyedia cloud utama tidak menawarkan layanan MongoDB terkelola sehingga tidak benar-benar operasi satu klik untuk menerapkan satu instance atau cluster. Cara yang umum adalah dengan memutar VM dan kemudian menerapkannya pada ini. Deployment perlu diperhatikan dari A hingga Z - kita perlu menyiapkan instance, menginstal perangkat lunak database, menyetel beberapa konfigurasi, dan mengamankan instance. Tugas-tugas ini penting, meskipun tidak selalu diikuti dengan benar - dengan konsekuensi yang berpotensi menimbulkan bencana.

Otomasi memainkan peran penting dalam memastikan semua tugas mulai dari instalasi, konfigurasi, pengerasan dan hingga layanan database siap. Di blog ini, kita akan membahas otomatisasi penerapan untuk MongoDB.

Orkestra Perangkat Lunak

Ada banyak perangkat lunak baru untuk membantu para insinyur menerapkan dan mengelola infrastruktur mereka. Manajemen konfigurasi membantu para insinyur menerapkan lebih cepat dan efektif, mengurangi waktu penerapan untuk layanan baru. Pilihan populer termasuk Ansible, Saltstack, Chef, dan Puppet. Setiap produk memiliki kelebihan dan kekurangan, tetapi semuanya bekerja dengan sangat baik dan sangat populer. Menyebarkan layanan stateful seperti MongoDB ReplicaSet atau Sharded Cluster bisa menjadi sedikit lebih menantang karena ini adalah pengaturan multi-server dan alat tersebut memiliki dukungan yang buruk untuk koordinasi inkremental dan lintas node. Prosedur penerapan biasanya memerlukan orkestrasi di seluruh node, dengan tugas yang dilakukan dalam urutan tertentu.

Tugas Penerapan MongoDB untuk Diotomatisasi

Penempatan server MongoDB melibatkan beberapa hal; tambahkan repositori MongoDB ke lokal, instal paket MongoDB, konfigurasikan port, nama pengguna, dan mulai layanan.

Tugas:menginstal MongoDB

- name: install mongoDB
  apt: 
    name: mongodb
    state: present
    update_cache: yes

Tugas:salin mongod.conf dari file konfigurasi.

- name: copy config file
  copy:
    src: mongodb.conf
    dest: /etc/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

Tugas:membuat konfigurasi batas MongoDB:

- name: create /etc/security/limits.d/mongodb.conf
  copy:
    src: security-mongodb.conf
    dest: /etc/security/limits.d/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

Tugas:mengonfigurasi swappiness

- name: config vm.swappiness
  sysctl:
    name: vm.swappiness
    value: '10'
    state: present

Tugas:mengkonfigurasi waktu TCP Keepalive

- name: config net.ipv4.tcp_keepalive_time
  sysctl:
    name: net.ipv4.tcp_keepalive_time
    value: '120'
    state: present

Tugas:memastikan MongoDB akan mulai secara otomatis

- name: Ensure mongodb is running and and start automatically on reboots
  systemd:
    name: mongodb
    enabled: yes
    state: started

Kami dapat menggabungkan semua tugas ini ke dalam satu buku pedoman dan menjalankan buku pedoman untuk mengotomatiskan penerapan. Jika kami menjalankan playbook Ansible dari konsol:

$ ansible-playbook -b mongoInstall.yml

Kami akan melihat kemajuan penerapan dari skrip Ansible kami, hasilnya akan seperti di bawah ini:

PLAY [ansible-mongo] **********************************************************

GATHERING FACTS ***************************************************************
ok: [10.10.10.11]

TASK: [install mongoDB] *******************************************************
ok: [10.10.10.11]

TASK: [copy config file] ******************************************************
ok: [10.10.10.11]

TASK: [create /etc/security/limits.d/mongodb.conf]*****************************
ok: [10.10.10.11]


TASK: [config vm.swappiness] **************************************************
ok: [10.10.10.11]

TASK: [config net.ipv4.tcp_keepalive_time]*************************************
ok: [10.10.10.11]

TASK: [config vm.swappiness] **********************************************
ok: [10.10.10.11]

PLAY RECAP ********************************************************************
[10.10.10.11]          : ok=6    changed=1    unreachable=0    failed=0

Setelah penerapan, kita dapat memeriksa layanan MongoDB di server target.

Otomasi Penerapan MongoDB menggunakan GUI ClusterControl

Ada dua cara untuk menyebarkan MongoDB menggunakan ClusterControl. Kita dapat menggunakannya dari dasbor ClusterControl, ini berbasis GUI dan hanya membutuhkan 2 dialog hingga memicu pekerjaan baru untuk penerapan baru MongoDB.

Pertama kita mengisi SSH User dan password, isi Cluster Name seperti gambar di bawah ini:

Dan kemudian, pilih vendor dan versi MongoDB, tentukan pengguna dan password, dan yang terakhir isikan IP Address target

Otomasi Penerapan MongoDB menggunakan s9s CLI

Dari antarmuka baris perintah, seseorang dapat menggunakan alat s9s. Penyebaran MongoDB menggunakan s9s hanyalah satu baris perintah seperti di bawah ini:

$ s9s cluster --create --cluster-type=mongodb --nodes="10.10.10.15"  --vendor=percona --provider-version=4.2 --db-admin-passwd="12qwaszx" --os-user=vagrant --cluster-name="MongoDB" --wait
Create Mongo Cluster
/ Job 183 FINISHED   [██████████] 100% Job finished.


Jadi menerapkan MongoDB, baik itu ReplicaSet atau Sharded Cluster, sangat mudah, dan sepenuhnya otomatis oleh ClusterControl.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah saya perlu menutup koneksi luwak secara manual?

  2. Mendapatkan hasil $grup dengan jumlah grup

  3. Mongoose mengisi array bersarang

  4. Bagaimana cara menggunakan $elemMatch pada proyeksi agregat?

  5. Beberapa Hitungan dengan satu permintaan di mongodb