Kuongeza kasi ya Ansible na Mitogen

Inawezekana ikawa moja ya maarufu zaidi Usimamizi wa Usanidi wa Mfumo. Baada ya ilinunuliwa na Red Hat mwaka 2015 idadi washiriki wa mradi ilizidi maelfu na Ansible ikawa labda mfumo unaotumika zaidi wa kupeleka na wa okestration. Utumizi wake mbalimbali unavutia sana.

Ansible hufanya kazi kupitia miunganisho ya SSH kwa seva pangishi za mbali. Inafungua kikao cha SSH, inaingia, inakili nambari ya Python kwenye mtandao na kuiandika kwa faili tofauti ya muda. Baada ya hayo, inaendesha faili hii kwenye mashine ya mbali. Mlolongo huu wote wa utendakazi ni mrefu na wa kuchosha, kwa hivyo kuna njia mbalimbali za kuuboresha.

Moja ya njia hizi ni Mabomba ya SSH ambayo hukuruhusu kutumia kipindi kimoja cha SSH kutekeleza maagizo, badala ya kufungua kipindi kipya kila wakati, ambacho kinaweza kutuokoa muda mwingi. (Kumbuka tu kuzima requiretty kuweka kwa sudo katika yako /etc/sudoers faili kwenye mashine ya mbali)

Njia mpya ya overclock Ansible ni maktaba ya python inayoitwa Mitojeni. Ikiwa mtu yeyote hajaisikia, nitaelezea kwa ufupi utendaji wake. Inaruhusu utekelezaji wa haraka wa nambari ya python kwenye mashine ya mbali, na Ansible ni mfano mmoja tu wa matumizi. Mitogen hutumia bomba la UNIX kwenye mashine ya mbali na huhamisha msimbo wa chatu uliobanwa na zlib na kupangwa kwa kachumbari. Hii husaidia kuikamilisha haraka na kuokoa trafiki. Ikiwa una nia ya maelezo ya kina zaidi, ni bora kusoma kuhusu hilo kwenye ukurasa "Inavyofanya kazi". Lakini leo tutazingatia tu jinsi maktaba inavyofanya kazi na Ansible.

Mitogen katika hali fulani inaweza kuongeza kasi ya nambari yako ya Ansible mara kadhaa na kupunguza kwa kiasi kikubwa matumizi ya trafiki. Wacha tuangalie kesi maarufu za utumiaji na tuone ni kiasi gani inatusaidia.

Ninatumia Ansible zaidi kwa: kuunda faili za usanidi kwenye mashine ya mbali, kusanikisha vifurushi, kunakili faili kwenda na kutoka kwa mashine ya mbali. Labda unayo mifano mingine - andika kwenye maoni.

Hebu kwenda!

Usanidi wa Mitogen kwa Ansible ni rahisi sana:
Sakinisha maktaba ya Mitogen:

pip install mitogen

Sasa kuna njia mbili zinazofanana - ama kusanidi chaguo katika faili ya usanidi ya ansible.cfg, au kuweka vigezo muhimu vya mazingira.

Wacha tufikirie kuwa njia ya Mitogen iliyosanikishwa itakuwa /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Kisha:

export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear

au

[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy

Wacha tusakinishe Ansible katika virtualenv, pamoja na bila Mitogen:

virtualenv mitogen_ansible
./mitogen_ansible/bin/pip install ansible==2.7.10 mitogen
virtualenv pure_ansible
./pure_ansible/bin/pip install ansible==2.7.10

Tafadhali kumbuka kuwa Mitogen 0.2.7 haifanyi kazi na Ansible 2.8 (kuanzia Mei 2019)

Kufanya lakabu:

alias pure-ansible-playbook='$(pwd)/pure_ansible/bin/ansible-playbook'
alias mitogen-ansible-playbook='ANSIBLE_STRATEGY_PLUGINS=$(pwd)/mitogen_ansible/lib/python3.7/site-packages/ansible_mitogen/plugins/strategy ANSIBLE_STRATEGY=mitogen_linear $(pwd)/mitogen_ansible/bin/ansible-playbook'

Sasa hebu tujaribu kuendesha kitabu cha kucheza ambacho huunda faili kwenye mashine ya mbali:

---
- hosts: all
  gather_facts: false
  tasks:
    - name: Create files with copy content module
      copy:
        content: |
          test file {{ item }}
        dest: ~/file_{{ item }}
      with_sequence: start=1 end={{ n }}

Na wacha tuiendeshe na bila Mitogen kuunda faili 10:

time mitogen-ansible-playbook file_creation.yml -i hosts -e n=10 &>/dev/null

real    0m2.603s
user    0m1.152s
sys     0m0.096s

time pure-ansible-playbook file_creation.yml -i hosts -e n=10 &>/dev/null

real    0m5.908s
user    0m1.745s
sys     0m0.643s

Tunaona uboreshaji wa mara 2. Wacha tuangalie faili 20, 30, ..., 100:

time pure-ansible-playbook file_creation.yml -i hosts -e n=100 &>/dev/null

real    0m51.775s
user    0m8.039s
sys     0m6.305s

time mitogen-ansible-playbook file_creation.yml -i hosts -e n=100 &>/dev/null

real    0m4.331s
user    0m1.903s
sys     0m0.197s

Kwa hivyo, tuliharakisha utekelezaji kwa zaidi ya mara 10!
Sasa hebu tujaribu hali tofauti na tuone jinsi kila kitu kinavyofanya kazi kwa haraka zaidi:

  • Hati ya kunakili faili kwa seva pangishi ya mbali kutoka ya ndani (pamoja na moduli copy):
    Kuongeza kasi ya Ansible na Mitogen

  • Hati ya kuunda faili kwenye seva pangishi ya mbali na copy moduli:
    Kuongeza kasi ya Ansible na Mitogen

  • Hali ya kupakua faili kutoka kwa seva pangishi ya mbali hadi ya ndani:
    Kuongeza kasi ya Ansible na Mitogen

Wacha tujaribu hali na mashine kadhaa (3) za mbali, kwa mfano hali ya kunakili faili kwa mwenyeji wa mbali:
Kuongeza kasi ya Ansible na Mitogen

Kama unavyoona, Mitogen hutuokoa wakati na trafiki katika hali hizi. Lakini ikiwa chupa haiko katika Ansible, lakini kwa mfano katika I / O ya diski au mtandao, au mahali pengine, basi ni vigumu kutarajia kwamba Mitogen itatusaidia.

Wacha tujaribu maandishi na kusanikisha vifurushi na moduli za yum/dnf na python kwa kutumia bomba. Vifurushi vilihifadhiwa ili zisitegemee hitilafu za mtandao:

---
- hosts: all
  gather_facts: false
  tasks:
    - name: Install packages
      become: true
      package:
        name:
          - samba
          - httpd
          - nano
          - ruby
        state: present

    - name: Install pip modules
      become: true
      pip:
        name:
          - pytest-split-tests
          - bottle
          - pep8
          - flask
        state: present

Na Mitogen ilichukua sekunde 12, sawa na bila hiyo.
Kwenye ukurasa Mitogen kwa ukurasa unaowezekana unaweza kuangalia alama na vipimo vingine. Kama ukurasa unavyosema:

Mitogen haiwezi kuharakisha moduli wakati inafanya kazi. Inaweza tu kufanya utekelezaji wa moduli hii haraka iwezekanavyo.

Kwa hiyo, ni muhimu kupata vikwazo vyako katika kupelekwa kwako na ikiwa ni kutokana na Ansible, basi Mitogen itakusaidia kutatua na kuharakisha kwa kiasi kikubwa utekelezaji wa vitabu vyako vya kucheza.

Chanzo: mapenzi.com

Kuongeza maoni