Cum faci management centralizat la zeci de servere ?

Atentie, post tehnic.

Din start NewsmanApp a fost gandit sa scaleze pe orizontala. Asta inseamna baze de date distribuite (Cassandra), load balancers, MULTE servere, lots of configs (multe repetitive). Pana nu demult fiecare setup de server nou intrat in sistem se facea manual. Adica, avem documentat procesul in WIKI-ul intern si oricine cu acces poate urma pasii pentru SETUP. Copy command, paste, run, check config, restart service (postfix, munin, monit, etc).

Treaba asta a functionat o perioada dar treptat a devenit o munca de rutina neatragatoare. Cum procedezi cand trebuie sa faci update la ultima versiune a aplicatiei pe 60+ de servere ?

Varianta 1) MANUAL. ssh remotehost. Copy new files from repository, restart services. A functionat pentru cateva servere, de la 20 in sus deja era problematic. In plus, persoana care facea update-ul trebuia sa fie highly trusted (vechime in firma, incredere dovedita). Ssh keys are not for everybody.

Varianta 2) Fabric. We love Python. Fabric a fost o alegere naturala. Ok, fa script-ul de deploy via ssh, run script and wait. Conectarea remote facea tot prin SSH. Deploy via ssh e slow si problema de securitate (persoana highly trusted) persista.

Varianta 3) Debian repository si saltstack. Am inceput sa cautam solutii alternative gen: Chef sau Puppet. Chef e Ruby (no love for Ruby here). Puppet e prea Enterprise. Am dat in schimb peste saltstack. Python, YAML configs si Zero MQ. Rezultatul ? Amazing speed. Un deploy simultan pe 60+ servere dureaza mai putin de 1 minut. Instalarea unui server nou s-a redus la: instalare salt-minion (saltstack slave) si la a rula o comanda (salt-call state.sls install). Migrand totul pe saltstack am rezolvat problema de viteza si de securitate. Persoana din firma care face setarile pe un server nou NU trebuie sa aibe acces la cheile ssh sau la master server.

Post din categoria: ce ma bucur ca am terminat procesul de automatizare si pot pleca in concediu :)

Postat în Noutati, Tehnic si etichetat , , , , , , , , , 2 comentarii

Comentarii recente

  1. Pingback: A SaltStack blog post roundup | Salt CookBook

  2. Pingback: A SaltStack blog post roundup | SaltStack

Postează un comentariu

*
*

Trimite-ţi gândurile