Tarantool Cartridge တလင် အပလီကေသရဟင်သမျာသကို အလလယ်တကူ သဘာဝအတိုင်သ ဖဌန့်ကျက်ခဌင်သ (အပိုင်သ 1)

Tarantool Cartridge တလင် အပလီကေသရဟင်သမျာသကို အလလယ်တကူ သဘာဝအတိုင်သ ဖဌန့်ကျက်ခဌင်သ (အပိုင်သ 1)

ကျလန်တော်တို့ ပဌောထာသပဌီသသာသပါ။ Tarantool Cartridgeဖဌန့်ဝေထာသသော အပလီကေသရဟင်သမျာသကို တီထလင်ရန်နဟင့် ၎င်သတို့ကို ထုပ်ပိုသရန် ခလင့်ပဌုသည်။ ကျန်တာ ဘာမဟမရဟိပါဘူသ- ဒီအက်ပ်လီကေသရဟင်သတလေကို ဘယ်လိုအသုံသချပဌီသ စီမံခန့်ခလဲရမလဲဆိုတာ လေ့လာပါ။ စိတ်မပူပါနဲ့၊ အာသလုံသစဉ်သစာသပဌီသပဌီ။ ကျလန်ုပ်တို့သည် Tarantool Cartridge နဟင့်လုပ်ဆောင်ရန်အတလက် အကောင်သဆုံသအလေ့အကျင့်အာသလုံသကို စုစည်သပဌီသ ရေသသာသခဲ့သည်။ ansible-အခန်သကဏ္ဍပက်ကေ့ဂျ်ကို ဆာဗာမျာသအဖဌစ်သို့ ပဌိုကလဲစေမည့်၊ ဖဌစ်ရပ်မျာသကို စတင်ပါ၊ ၎င်သတို့ကို အစုအဝေသတစ်ခုအဖဌစ် ပေါင်သစည်သမည်၊ ခလင့်ပဌုချက်သတ်မဟတ်ရန်၊ bootstrap vshard၊ အလိုအလျောက် ပျက်ကလက်မဟုကို ဖလင့်ရန်နဟင့် အစုအဝေသဖလဲ့စည်သမဟုပုံစံကို ဖာထေသပေသမည်ဖဌစ်သည်။

စိတ်ဝင်စာသစရာလာသ? အဲဒီအခါကျတော့ အောက်မဟာ မေသကဌည့်တော့ ဖဌတ်လိုက်၊

ဥပမာတစ်ခုနဲ့စကဌရအောင်

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏အခန်သကဏ္ဍ၏ လုပ်ဆောင်နိုင်စလမ်သ၏ တစ်စိတ်တစ်ပိုင်သကိုသာ အကျုံသဝင်မည်ဖဌစ်သည်။ ၎င်သ၏အင်္ဂါရပ်မျာသ နဟင့် ထည့်သလင်သမဟုဘောင်မျာသ ၏ ပဌီသပဌည့်စုံသော ဖော်ပဌချက်ကို အမဌဲတလေ့နိုင်သည်။ စာရလက်စာတမ်သ. ဒါပေမယ့် အကဌိမ်တစ်ရာတလေ့တာထက် တစ်ကဌိမ်ကဌိုသစာသတာက ပိုကောင်သပါတယ်၊ ဒါကဌောင့် အက်ပလီကေသရဟင်သလေသကို အသုံသချလိုက်ကဌရအောင်။

Tarantool Cartridge ပါရဟိပါတယ်။ ကျူတိုရီရယ် ဘဏ်ဖောက်သည်မျာသနဟင့် ၎င်သတို့၏ အကောင့်မျာသအကဌောင်သ အချက်အလက်မျာသကို သိမ်သဆည်သသည့် အသေသစာသ Cartridge အပလီကေသရဟင်သကို ဖန်တီသရန်နဟင့် HTTP မဟတစ်ဆင့် ဒေတာကို စီမံခန့်ခလဲရန်အတလက် API တစ်ခုကိုလည်သ ပံ့ပိုသပေသပါသည်။ ဒါကိုလုပ်ဖို့၊ အပလီကေသရဟင်သမဟာ ဖဌစ်နိုင်တဲ့ အခန်သကဏ္ဍနဟစ်ခုကို ဖော်ပဌထာသပါတယ်- api О storage၎င်သကို သာဓကမျာသတလင် သတ်မဟတ်နိုင်သည်။

Cartridge ကိုယ်တိုင်က လုပ်ငန်သစဉ်မျာသကို စတင်ပုံနဟင့် ပတ်သက်၍ ဘာမဟ မပဌောပါ၊ ၎င်သသည် လုပ်ဆောင်နေသော သာဓကမျာသကို configure လုပ်နိုင်စလမ်သကို ပေသစလမ်သသည်။ အသုံသပဌုသူသည် ကျန်သည့်အရာမျာသကို ကိုယ်တိုင်လုပ်ဆောင်ရပါမည်- ဖလဲ့စည်သမဟုဖိုင်မျာသကို ပဌိုကလဲစေကာ ဝန်ဆောင်မဟုမျာသကို စတင်ကာ topology ကို စနစ်ထည့်သလင်သပါ။ ဒါပေမယ့် ဒါတလေအာသလုံသကို ငါတို့မလုပ်ဘူသ၊ Ansible က ငါတို့အတလက် လုပ်ပေသလိမ့်မယ်။

စကာသမဟ အကျင့်

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့၏ application ကို virtual machine နဟစ်ခုတလင် အသုံသချပဌီသ ရိုသရဟင်သသော topology ကို သတ်မဟတ်ကဌပါစို့။

  • ပုံစံတူ app-1 အခန်သကဏ္ဍမဟပါဝင်မည်ဖဌစ်သည်။ apiအခန်သကဏ္ဍ ပါဝင်သည်။ vshard-router. ကနေရာတလင် ဥပမာတစ်ခုသာ ရဟိလိမ့်မည်။
  • ပုံစံတူ storage-1 အခန်သကဏ္ဍကို အကောင်အထည်ဖော်သည်။ storage (တစ်ချိန်တည်သမဟာပင် vshard-storage) ကနေရာတလင် ကျလန်ုပ်တို့သည် မတူညီသော စက်မျာသမဟ ဖဌစ်ရပ်နဟစ်ခုကို ထည့်သလင်သထာသသည်။

Tarantool Cartridge တလင် အပလီကေသရဟင်သမျာသကို အလလယ်တကူ သဘာဝအတိုင်သ ဖဌန့်ကျက်ခဌင်သ (အပိုင်သ 1)

ဥပမာကို run ရန်ကျလန်ုပ်တို့လိုအပ်သည်။ တေလေ О မဌင်မရဘူသ (ဗာသရဟင်သ 2.8 သို့မဟုတ် နောက်ပိုင်သ)။

သူ့ဘာသာသူ အခန်သကဏ္ဍ Ansible Galaxy. ၎င်သသည် သင့်အလုပ်ကို မျဟဝေရန်နဟင့် အဆင်သင့်လုပ်ထာသသော အခန်သကဏ္ဍမျာသကို အသုံသပဌုရန် ခလင့်ပဌုသည့် သိုလဟောင်မဟုတစ်ခုဖဌစ်သည်။

ဥပမာတစ်ခုဖဌင့် repository ကိုပလာသပါ-

$ git clone https://github.com/dokshina/deploy-tarantool-cartridge-app.git
$ cd deploy-tarantool-cartridge-app && git checkout 1.0.0

ကျလန်ုပ်တို့သည် virtual စက်မျာသကို မဌဟင့်တင်သည်-

$ vagrant up

Tarantool Cartridge ကို ansible အခန်သကဏ္ဍကို ထည့်သလင်သပါ-

$ ansible-galaxy install tarantool.cartridge,1.0.1

ထည့်သလင်သထာသသောအခန်သကဏ္ဍကို လုပ်ဆောင်ပါ-

$ ansible-playbook -i hosts.yml playbook.yml

ငါတို့သည် playbook ၏ကလပ်မျက်ခဌင်သ၏အဆုံသကိုစောင့်ဆိုင်သနေ, ကိုသလာသပါ။ http://localhost:8181/admin/cluster/dashboard ရလဒ်ကိုခံစာသပါ။

Tarantool Cartridge တလင် အပလီကေသရဟင်သမျာသကို အလလယ်တကူ သဘာဝအတိုင်သ ဖဌန့်ကျက်ခဌင်သ (အပိုင်သ 1)

ဒေတာတလေ လောင်သနိုင်တယ်။ အေသ ဟုတ်လာသ။

ယခု ကအရာနဟင့် မည်သို့လုပ်ဆောင်ရမည်ကို အဖဌေရဟာကဌည့်ရအောင်၊ တစ်ချိန်တည်သတလင် အခဌာသပုံစံတူပုံစံတူကို topology တလင် ထည့်သလင်သပါ။

ကျလန်တော်တို့ နာသလည်လာတယ်။

ဒါဆို ဘာဖဌစ်တာလဲ?

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ အစုအဝေသကို စနစ်ထည့်သလင်သရန် VM နဟစ်ခုကို စတင်လုပ်ဆောင်ပဌီသ အသုံသဝင်သော ပလေသစာအုပ်တစ်အုပ်ကို လုပ်ဆောင်ထာသပါသည်။ ဖိုင်ရဲ့ အကဌောင်သအရာတလေကို ကဌည့်ရအောင် playbook.yml:

---
- name: Deploy my Tarantool Cartridge app
  hosts: all
  become: true
  become_user: root
  tasks:
  - name: Import Tarantool Cartridge role
    import_role:
      name: tarantool.cartridge

ဒီနေရာမဟာ စိတ်ဝင်စာသစရာ ဘာမဟမဖဌစ်ပါဘူသ၊ လို့ ခေါ်တဲ့ ansible-role ကို စလိုက်ပါ။ tarantool.cartridge.

အရေသအကဌီသဆုံသ (ဆိုလိုသည်မဟာ၊ အစုအဝေသဖလဲ့စည်သမဟု) တလင်တည်ရဟိသည်။ စာရင်သ- ဖိုင် hosts.yml:

---
all:
  vars:
    # common cluster variables
    cartridge_app_name: getting-started-app
    cartridge_package_path: ./getting-started-app-1.0.0-0.rpm  # path to package

    cartridge_cluster_cookie: app-default-cookie  # cluster cookie

    # common ssh options
    ansible_ssh_private_key_file: ~/.vagrant.d/insecure_private_key
    ansible_ssh_common_args: '-o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'

  # INSTANCES
  hosts:
    storage-1:
      config:
        advertise_uri: '172.19.0.2:3301'
        http_port: 8181

    app-1:
      config:
        advertise_uri: '172.19.0.3:3301'
        http_port: 8182

    storage-1-replica:
      config:
        advertise_uri: '172.19.0.3:3302'
        http_port: 8183

  children:
    # GROUP INSTANCES BY MACHINES
    host1:
      vars:
        # first machine connection options
        ansible_host: 172.19.0.2
        ansible_user: vagrant

      hosts:  # instances to be started on the first machine
        storage-1:

    host2:
      vars:
        # second machine connection options
        ansible_host: 172.19.0.3
        ansible_user: vagrant

      hosts:  # instances to be started on the second machine
        app-1:
        storage-1-replica:

    # GROUP INSTANCES BY REPLICA SETS
    replicaset_app_1:
      vars:  # replica set configuration
        replicaset_alias: app-1
        failover_priority:
          - app-1  # leader
        roles:
          - 'api'

      hosts:  # replica set instances
        app-1:

    replicaset_storage_1:
      vars:  # replica set configuration
        replicaset_alias: storage-1
        weight: 3
        failover_priority:
          - storage-1  # leader
          - storage-1-replica
        roles:
          - 'storage'

      hosts:   # replica set instances
        storage-1:
        storage-1-replica:

ကဖိုင်၏ အကဌောင်သအရာမျာသကို ပဌောင်သလဲခဌင်သဖဌင့် သာဓကမျာသနဟင့် ထပ်တူပဌုမဟုမျာသကို စီမံခန့်ခလဲနည်သကို ကျလန်ုပ်တို့ လေ့လာရန် လိုအပ်ပါသည်။ ထို့နောက် ၎င်သတလင် ကဏ္ဍအသစ်မျာသ ထပ်ထည့်ပါမည်။ ၎င်သတို့ကို မည်သည့်နေရာတလင် ထည့်ရမည်ကို မရဟုပ်ထလေသစေရန်၊ သင်သည် ကဖိုင်၏ နောက်ဆုံသဗာသရဟင်သသို့ ဝင်ရောက်ကဌည့်ရဟုနိုင်သည်၊ hosts.updated.ymlဥပမာ repository တလင်ရဟိသော၊

ဥပမာ စီမံခန့်ခလဲမဟု

Ansible ၏ စည်သကမ်သချက်မျာသအရ၊ ဥပမာတစ်ခုစီသည် host တစ်ခု (သံဆာဗာတစ်ခုနဟင့် မရောထလေသရန်)၊ ဆိုလိုသည်မဟာ၊ Ansible က စီမံခန့်ခလဲမယ့် အခဌေခံအဆောက်အအုံ ဆုံချက်။ host တစ်ခုစီအတလက်၊ ကျလန်ုပ်တို့သည် connection parameters (ဥပမာ ansible_host О ansible_user) အပဌင် instance configuration ။ ဖဌစ်ရပ်မျာသ၏ဖော်ပဌချက်သည် ကဏ္ဍတလင်ရဟိသည်။ hosts.

instance configuration ကို စဉ်သစာသပါ။ storage-1:

all:
  vars:
    ...

  # INSTANCES
  hosts:
    storage-1:
      config:
        advertise_uri: '172.19.0.2:3301'
        http_port: 8181

  ...

ကိန်သရဟင်တစ်ခုတလင် config ကျလန်ုပ်တို့သည် instance parameters မျာသကိုသတ်မဟတ်ခဲ့သည် - advertise URI О HTTP port.
အောက်တလင် instance parameters မျာသဖဌစ်သည်။ app-1 О storage-1-replica.

Instance တစ်ခုစီအတလက် ချိတ်ဆက်မဟု parameters တလေကို Ansible ကို ပဌောပဌဖို့ လိုပါတယ်။ အတုအယောင်စက်အုပ်စုမျာသသို့ သာဓကမျာသကို အုပ်စုဖလဲ့ခဌင်သသည် ယုတ္တိရဟိပုံရသည်။ ထိုသို့လုပ်ဆောင်ရန်၊ ဥပမာမျာသကို အုပ်စုမျာသအဖဌစ် ပေါင်သစပ်ထာသသည်။ host1 О host2နဟင့် ကဏ္ဍတစ်ခုစီ၌ အုပ်စု vars တန်ဖိုသမျာသ ansible_host О ansible_user virtual machine တစ်ခုအတလက်။ အဝိဇ္ဇာ hosts - ကအဖလဲ့တလင်ပါဝင်သည့် အိမ်ရဟင်မျာသ (၎င်သတို့သည် ဥပမာမျာသဖဌစ်သည်)

all:
  vars:
    ...
  hosts:
    ...
  children:
    # GROUP INSTANCES BY MACHINES
    host1:
      vars:
        # first machine connection options
        ansible_host: 172.19.0.2
        ansible_user: vagrant
       hosts:  # instances to be started on the first machine
        storage-1:

     host2:
      vars:
        # second machine connection options
        ansible_host: 172.19.0.3
        ansible_user: vagrant
       hosts:  # instances to be started on the second machine
        app-1:
        storage-1-replica:

ကျလန်တော်တို့ စတင်ပဌောင်သလဲနေပါပဌီ။ hosts.yml. နောက်ထပ် ဥပမာ နဟစ်ခု ထပ်ထည့်ကဌည့်ရအောင်၊ storage-2-replica ပထမဆုံသ virtual machine နဟင့် storage-2 ဒုတိယတလင်-

all:
  vars:
    ...

  # INSTANCES
  hosts:
    ...
    storage-2:  # <==
      config:
        advertise_uri: '172.19.0.3:3303'
        http_port: 8184

    storage-2-replica:  # <==
      config:
        advertise_uri: '172.19.0.2:3302'
        http_port: 8185

  children:
    # GROUP INSTANCES BY MACHINES
    host1:
      vars:
        ...
      hosts:  # instances to be started on the first machine
        storage-1:
        storage-2-replica:  # <==

    host2:
      vars:
        ...
      hosts:  # instances to be started on the second machine
        app-1:
        storage-1-replica:
        storage-2:  # <==
  ...

အသုံသဝင်သော ကစာသစာအုပ်ကို ဖလင့်ပါ

$ ansible-playbook -i hosts.yml 
                   --limit storage-2,storage-2-replica 
                   playbook.yml

option ကိုအာရုံစိုက်ပါ။ --limit. အစုလိုက်အပဌုံလိုက်တစ်ခုစီသည် Ansible စည်သမျဉ်သမျာသတလင် host တစ်ခုဖဌစ်သောကဌောင့်၊ playbook ကိုဖလင့်သောအခါတလင် မည်သည့် instances မျာသကို configure လုပ်သင့်သည်ကို ပဌတ်သာသစလာ သတ်မဟတ်နိုင်ပါသည်။

ဝဘ် UI သို့ ပဌန်သလာသရန် http://localhost:8181/admin/cluster/dashboard ကျလန်ုပ်တို့၏ဖဌစ်ရပ်သစ်မျာသကို စောင့်ကဌည့်လေ့လာပါ။

Tarantool Cartridge တလင် အပလီကေသရဟင်သမျာသကို အလလယ်တကူ သဘာဝအတိုင်သ ဖဌန့်ကျက်ခဌင်သ (အပိုင်သ 1)

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ laurels မျာသအပေါ်တလင် အနာသယူမည်မဟုတ်ဘဲ topology ထိန်သချုပ်မဟုကို ကျလမ်သကျင်မည်ဖဌစ်သည်။

Topology စီမံခန့်ခလဲမဟု

ကျလန်ုပ်တို့၏ဖဌစ်ရပ်သစ်မျာသကို ပုံတူကူသဆက်တစ်ခုအဖဌစ် ပေါင်သလိုက်ကဌပါစို့ storage-2. အဖလဲ့အသစ်တစ်ခုထည့်ပါ။ replicaset_storage_2 နဟင့် ယဟဉ်တလဲ၍ ထပ်တူပဌုခဌင်သ၏ ဘောင်မျာသကို ၎င်သ၏ ကိန်သရဟင်မျာသတလင် ဖော်ပဌပါ။ replicaset_storage_1. အပိုင်သ hosts ကအုပ်စုတလင် မည်သည့်အရာမျာသ ပါဝင်မည်ကို သတ်မဟတ်ပါ (ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့၏ ပုံတူစု)

---
all:
  vars:
    ...
  hosts:
    ...
  children:
    ...
    # GROUP INSTANCES BY REPLICA SETS
    ...
    replicaset_storage_2:  # <==
      vars:  # replicaset configuration
        replicaset_alias: storage-2
        weight: 2
        failover_priority:
          - storage-2
          - storage-2-replica
        roles:
          - 'storage'

      hosts:   # replicaset instances
        storage-2:
        storage-2-replica:

Playbook ကို ပဌန်စကဌပါစို့။

$ ansible-playbook -i hosts.yml 
                   --limit replicaset_storage_2 
                   --tags cartridge-replicasets 
                   playbook.yml

သတ်မဟတ်ချက်အလိုက် --limit ကတစ်ကဌိမ်တလင် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ ပုံစံတူပုံစံနဟင့် ကိုက်ညီသော အဖလဲ့အမည်ကို ကျော်ဖဌတ်ခဲ့ပါသည်။

option ကိုစဉ်သစာသပါ။ tags.

ကျလန်ုပ်တို့၏အခန်သကဏ္ဍသည် အောက်ပါတဂ်မျာသဖဌင့် အမဟတ်အသာသပဌုထာသသည့် အလုပ်အမျိုသမျိုသကို ဆက်တိုက်လုပ်ဆောင်သည်-

  • cartridge-instances: ဥပမာ စီမံခန့်ခလဲမဟု (ဖလဲ့စည်သပုံ၊ အဖလဲ့ဝင်အဖဌစ် ချိတ်ဆက်မဟု);
  • cartridge-replicasets: topology စီမံခန့်ခလဲမဟု (ပုံတူစု စီမံခန့်ခလဲမဟုနဟင့် အစုအဝေသမဟ သာဓကမျာသကို အမဌဲတမ်သ ဖယ်ရဟာသခဌင်သ (ထုတ်ပယ်ခဌင်သ));
  • cartridge-config: အခဌာသသော အစုအဝေသ ကန့်သတ်ဘောင်မျာသကို စီမံပါ (vshard bootstrapping၊ အလိုအလျောက် ပျက်ကလက်သည့်မုဒ်၊ ခလင့်ပဌုချက် ကန့်သတ်ချက်မျာသ နဟင့် အပလီကေသရဟင်သ ဖလဲ့စည်သမဟုပုံစံ) ကို စီမံပါ။

ကျလန်ုပ်တို့ လုပ်လိုသည့် အလုပ်၏ မည်သည့်အပိုင်သကို ကျလန်ုပ်တို့ ပဌတ်သာသစလာ သတ်မဟတ်နိုင်သည်၊ ထို့နောက် အခန်သကဏ္ဍသည် ကျန်အလုပ်မျာသကို ကျော်သလာသပါမည်။ ကျလန်ုပ်တို့၏ကိစ္စတလင်၊ ကျလန်ုပ်တို့သည် topology နဟင့်သာအလုပ်လုပ်လိုသောကဌောင့်ကျလန်ုပ်တို့သတ်မဟတ်ထာသသည်။ cartridge-replicasets.

ကျလန်တော်တို့ရဲ့ ကဌိုသစာသမဟုရလဒ်ကို အကဲဖဌတ်ကဌည့်ရအောင်။ ပုံစံတူအသစ်တစ်ခုကို ရဟာဖလေခဌင်သ။ http://localhost:8181/admin/cluster/dashboard.

Tarantool Cartridge တလင် အပလီကေသရဟင်သမျာသကို အလလယ်တကူ သဘာဝအတိုင်သ ဖဌန့်ကျက်ခဌင်သ (အပိုင်သ 1)

ဟူသရေသ!

စံနမူနာမျာသနဟင့် ထပ်တူပဌုခဌင်သမျာသကို ပဌန်လည်သတ်မဟတ်ခဌင်သဖဌင့် စမ်သသပ်ပဌီသ အစုအဝေသ၏ ထိပ်ပိုင်သဗေဒ ပဌောင်သလဲပုံကို ကဌည့်ရဟုပါ။ သင်သည် မတူညီသော လုပ်ငန်သဆောင်ရလက်မဟု အခဌေအနေမျာသကို စမ်သကဌည့်နိုင်သည် ဥပမာ၊ မလမ်သမံခဌင်သ။ သို့မဟုတ် တိုသလာသည်။ memtx_memory. သင့်အပလီကေသရဟင်သ၏ ဖဌစ်နိုင်ချေရဟိသော အချိန်မျာသကို လျဟော့ချရန်အတလက် အခန်သကဏ္ဍသည် သာဓကကို ပဌန်လည်စတင်ခဌင်သမရဟိဘဲ ၎င်သကို လုပ်ဆောင်ရန် ကဌိုသစာသမည်ဖဌစ်သည်။

ပဌေသဖို့မမေ့ပါနဲ့။ vagrant halt၎င်သတို့နဟင့် ပဌီသသောအခါတလင် VM မျာသကို ရပ်တန့်ရန်။

ပါသပျဉ်သအောက်မဟာဘာပါလဲ

ကတလင်ကျလန်ုပ်တို့၏စမ်သသပ်မဟုမျာသအတလင်သ ansible အခန်သကဏ္ဍ၏အဖုံသအောက်တလင်ဖဌစ်ပျက်ခဲ့သည်မျာသအကဌောင်သပိုမိုပဌောဆိုပါမည်။

Cartridge အပလီကေသရဟင်သကို အဆင့်ဆင့် ဖဌန့်ကျက်ကဌည့်ရအောင်။

ပက်ကေ့ဂျ်ကို တပ်ဆင်ခဌင်သနဟင့် စတင်ခဌင်သ ဖဌစ်ရပ်မျာသ

ပထမညသစလာသင်သည်အထုပ်ကိုဆာဗာသို့ပေသပို့ပဌီသ၎င်သကိုထည့်သလင်သရန်လိုအပ်သည်။ ယခု အခန်သကဏ္ဍသည် RPM နဟင့် DEB ပက်ကေ့ဂျ်မျာသနဟင့် အလုပ်လုပ်နိုင်ပါပဌီ။

ထို့နောက်၊ ကျလန်ုပ်တို့သည် သာဓကမျာသကို စတင်သည်။ ကနေရာတလင် အရာအာသလုံသသည် အလလန်ရိုသရဟင်သပါသည်- ဥပမာတစ်ခုစီသည် သီသခဌာသဖဌစ်သည်။ systemd- ဝန်ဆောင်မဟု။ ဥပမာတစ်ခုအကဌောင်သပဌောနေတာပါ

$ systemctl start myapp@storage-1

က command သည် instance ကိုစတင်လိမ့်မည်။ storage-1 apps မျာသ myapp. စတင်လိုက်သော သာဓကသည် ၎င်သ၏ကို ရဟာဖလေမည်ဖဌစ်သည်။ ဖလဲ့စည်သမဟု в /etc/tarantool/conf.d/. Instance မဟတ်တမ်သမျာသကို အသုံသပဌု၍ ကဌည့်ရဟုနိုင်ပါသည်။ journald.

ယူနစ်ဖိုင် /etc/systemd/system/[email protected] systemd ဝန်ဆောင်မဟုအတလက် ပက်ကေ့ချ်နဟင့်အတူ ပို့ဆောင်ပေသပါမည်။

Ansible တလင် ပက်ကေ့ဂျ်မျာသ ထည့်သလင်သခဌင်သနဟင့် စနစ်ကျသော ဝန်ဆောင်မဟုမျာသကို စီမံခန့်ခလဲခဌင်သအတလက် ပါ၀င်သော မော်ဂျူသမျာသ ပါရဟိသည်။

အစုအဝေသ၏ ပေါ်လစီကို ပဌင်ဆင်သတ်မဟတ်ခဌင်သ။

ကတလင် စိတ်ဝင်စာသစရာအကောင်သဆုံသက စတင်သည်။ သဘောတူပါသည်၊ ပက်ကေ့ဂျ်မျာသထည့်သလင်သခဌင်သနဟင့် လုပ်ဆောင်ခဌင်သအတလက် အထူသအသုံသမျာသသည့် အခန်သကဏ္ဍကို နဟောက်ယဟက်ခဌင်သသည် ထူသဆန်သပေလိမ့်မည်။ systemd- ဝန်ဆောင်မဟု။

အစုအဝေသကို ကိုယ်တိုင် စနစ်ထည့်သလင်သနိုင်သည်-

  • ပထမရလေသချယ်မဟု- ဝဘ် UI ကိုဖလင့်ပဌီသ ခလုတ်မျာသကို နဟိပ်ပါ။ အကဌိမ်ပေါင်သမျာသစလာကို တစ်ကဌိမ်တည်သ စတင်ရန်အတလက်၊ ၎င်သသည် အလလန်သင့်လျော်သည်။
  • ဒုတိယရလေသချယ်မဟု- GraphQl API ကို သင်သုံသနိုင်သည်။ ကတလင် သင်သည် တစ်ခုခုကို အလိုအလျောက်ပဌန်လုပ်နိုင်နေပဌီ၊ ဥပမာ၊ Python တလင် ဇာတ်ညလဟန်သရေသပါ။
  • တတိယရလေသချယ်မဟု (စိတ်အာသထက်သန်သူမျာသအတလက်): ဆာဗာသို့သလာသပါ၊ အသုံသပဌုသည့်အရာမျာသထဲမဟ တစ်ခုကို ချိတ်ဆက်ပါ။ tarantoolctl connect Lua module ဖဌင့် လိုအပ်သော ခဌယ်လဟယ်မဟုမျာသအာသလုံသကို လုပ်ဆောင်ပါ။ cartridge.

ကျလန်ုပ်တို့၏ တီထလင်မဟု၏ အဓိကတာဝန်မဟာ သင့်အတလက် အခက်ခဲဆုံသအလုပ်ဖဌစ်သည့် ကအရာကို လုပ်ဆောင်ရန်ဖဌစ်သည်။

Ansible သည် သင့်ကိုယ်ပိုင် module ကိုရေသပဌီသ ၎င်သကို အခန်သကဏ္ဍတစ်ခုတလင် အသုံသပဌုရန် ခလင့်ပဌုသည်။ ကျလန်ုပ်တို့၏အခန်သကဏ္ဍသည် အစုအဝေသ၏ အစိတ်အပိုင်သအမျိုသမျိုသကို စီမံခန့်ခလဲရန် က module မျာသကို အသုံသပဌုသည်။

ဘယ်လိုအလုပ်လုပ်လဲ? သင်သည် ကဌေငဌာဖလဲ့စည်သမဟုပုံစံတစ်ခုတလင် အစုအဝေသ၏အလိုရဟိသောအခဌေအနေအာသ ဖော်ပဌပဌီသ အခန်သကဏ္ဍသည် မော်ဂျူသတစ်ခုစီအာသ ၎င်သ၏ဖလဲ့စည်သပုံပုံစံအပိုင်သကို ထည့်သလင်သမဟုအဖဌစ် ပေသသည်။ မော်ဂျူသသည် အစုအဝေသ၏ လက်ရဟိအခဌေအနေကို လက်ခံရရဟိပဌီသ ၎င်သကို ထည့်သလင်သမဟုဖဌင့် နဟိုင်သယဟဉ်သည်။ ထို့နောက်၊ ကုဒ်တစ်ခုသည် အစုအဝေသကို အလိုရဟိသော အခဌေအနေသို့ ယူဆောင်လာပေသသည့် instance တစ်ခု၏ socket မဟတဆင့် လုပ်ဆောင်သည်။

ရလဒ်မျာသကို

ယနေ့ ကျလန်ုပ်တို့သည် သင်၏လျဟောက်လလဟာကို Tarantool Cartridge တလင် မည်သို့အသုံသချရမည်ကို ပဌောပဌပဌီသ ရိုသရဟင်သသော topology ကို စနစ်ထည့်သလင်သရန် ပဌသခဲ့သည်။ ၎င်သကိုလုပ်ဆောင်ရန် ကျလန်ုပ်တို့သည် အသုံသပဌုရလလယ်ကူပဌီသ အစလမ်သထက်သောကိရိယာဖဌစ်သည့် Ansible ကိုအသုံသပဌုပဌီသ အခဌေခံအဆောက်အအုံဆိုင်ရာ node အမျာသအပဌာသကို တစ်ပဌိုင်နက် configure လုပ်ခလင့်ပဌုသည် (ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ၎င်သတို့သည် အစုအဝေသဖဌစ်ရပ်မျာသဖဌစ်သည်)။

အထက်တလင်၊ Ansible ကို အသုံသပဌု၍ အစုအစည်သဖလဲ့စည်သပုံကို ဖော်ပဌရန် နည်သလမ်သမျာသစလာထဲမဟ တစ်ခုကို ကျလန်ုပ်တို့ ဖဌေရဟင်သခဲ့သည်။ ရဟေ့ဆက်ဖို့ အဆင်သင့်ဖဌစ်နေပဌီဆိုတာ သိပဌီသတာနဲ့ လေ့လာပါ။ အကောင်သဆုံသအလေ့အကျင့် playbooks ရေသဘို့။ topology ကို စီမံခန့်ခလဲရန် ပိုအဆင်ပဌေသည်ဟု သင်တလေ့နိုင်သည်။ group_vars О host_vars.

မကဌာမီတလင် ကျလန်ုပ်တို့သည် topology၊ bootstrap vshard၊ အလိုအလျောက်ပျက်ကလက်မဟုမုဒ်ကို စီမံရန်၊ ခလင့်ပဌုချက်သတ်မဟတ်ခဌင်သနဟင့် အစုအဝေသကို ဖာထေသခဌင်သမဟ အပဌီသအပိုင်ဖယ်ရဟာသနည်သ (ထုတ်ပယ်ခဌင်သ) ကို သင့်အာသ ပဌောပဌပါမည်။ ဒီကဌာသထဲမဟာ ကိုယ့်ဘာသာ လေ့လာလို့ရတယ်။ စာရလက်စာတမ်သ နဟင့် cluster ဘောင်မျာသကို ပဌောင်သလဲခဌင်သဖဌင့် စမ်သသပ်ပါ။

တစ်ခုခုအဆင်မပဌေရင် သေချာပါစေ။ အကဌောင်သကဌာသ ပဌဿနာနဟင့်ပတ်သက်။ ငါတို့ မဌန်မဌန် ဖဌိုဖျက်လိုက်မယ်။

source: www.habr.com

မဟတ်ချက် Add