Ricerca in FOLBlog

[SdSM] Money for (almost) Nothing

 Scritto da alle 06:27 del 03/02/2013  Aggiungi commenti
Feb 032013
 
closeQuesto articolo è stato pubblicato 4 anni 3 mesi 25 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

Moneydownthedrain

Forse non ve ne sarete accorti (se cosi’:buon per voi) ma siamo sempre in piena crisi economica. Il che significa che un sacco di societa’ e dittarelle varie stanno cercando di risparmiare soldi in ogni modo possibile immaginabile e qualche volta pure impossibile ed inimmaginabile. E parecchie di tali ‘dittarelle’ sono anche nostre clienti.

Un po’ di tempo fa arrivo’ fresca fresca $noiguardiamolavostrarobba, che proponeva un servizio di monitoring di… qualche cosa. Puo’ essere che abbia gia’ parlato di sta gente. Comunque sia all’inizio l’SL della situazione si era lanciato ed aveva richiesto due server, uno dedicato come Database server ed uno come application server. Entrambi con Windows Server. Una sorta di applicazione era stata sviluppata dal programmatroto di turno e la ditta aveva cominciato a raccattare clienti.

Poi avevano scoperto che superato un certo numero di clienti due pezzi della suddetta applicazione entravano in conflitto tra di loro provocando un bel crash dell’intero sistema. La ditta che questa gente aveva contattato per sviluppare l’applicazione in questione, non avendo la piu’ pallida idea di come risolvere il problema aveva suggerito di aggiungere un altro server e ‘spezzare’ l’applicazione sui due. Il che significa un incremento dei costi del 33% secco. Poi hanno cominciato ad avere problemi con la quantita’ (per non parlare della qualita’) dei dati che venivano scaricati sul database.

Ora, dire che MS SQL Server sia un database ‘pesante’ e’ dire poco, quando poi il programmatroto di turno non si prova nemmeno a fare un minimo di analisi e decidere se la struttura dati sia ottimale o meno non ne parliamo. Se poi si cerca di scaricare dati in quasi-real-time al ritmo di ennemila transazioni al secondo si va cercare dei guai con una lente d’ingrandimento gigante. Il risultato e’ stato che il sistema ha subito diversi tracolli abbastanza preoccupanti.

Per qualsiasi ditta che prentende di fornire servizi con “99% di uptime” il che non e’ molto bello. Il programmatroto di turno non sapendo che pesci pigliare lamenta che sul sistema di test funziona tutto perfettamente. Qualche cosa mi fa pensare che il sistema di test ha un decimo dei dati ed un centesimo delle richieste, rendendolo praticamente inutile come sistema di test. Qualche altra cosa mi fa pensare che la ‘ditta di sviluppo’ e’ composta dal programmatroto e dal di lui cane (il quale pero’ non scrive codice purtroppo).

Dopo una serie di vari casini, l’SL della situazione ha lasciato il campo a qualcun altro (non so se la dipartita e’ stata volontaria o meno). Ed un nuovo e brillante SL ha deciso che la cosa migliore era rifare il tutto daccapo. Per il rifacimento e’ stata scelta una piattaforma basata su 6 server Linux con Postgre come database e JBoss come application server (??). Il software, riscritto da un programmatroto ‘interno’ invece che essere fatto all’esterno (non che vi sia una grande differenza in sostanza ma per qualche motivo il ‘fatto fuori’ sembra meglio del ‘fatto dentro’).

Il rifacimento viene rifacito ed i due ambienti (vecchio e nuovo) sono in funzione in parallelo. Il nuovo ambiente si rivela purtroppo stabile quanto il vecchio se non meno. Il DB server (che per qualche motivo si ritrova a fare anche da sftp server) risulta incriccato con un load average di circa 8. Dopo un po’ di tira e molla SL consente all’aggiunta di una extra CPU alla macchina. Poi ci sono un po’ di casini con uno degli elementi che pare crashare con regolarita’ inquietante sempre alle 3 del mattino, con grande felicita’ del pinguino in ‘standby’ che viene svegliato regolarmente. Per risolvere la situazione viene decisa l’installazione di una seconda istanza di JBoss sulla stessa macchina perche’ pare che quell’applicazione non possa funzionare nella stessa istanza con un’altra applicazione (???). Poi ci sono problemi con un’altra applicazione (su un’altra macchina) che per riavviarla richiede un reboot dell’intero server (?!??).

Al tutto si aggiunge una ennesima applicazione che gira su TomCat (per la serie “non abbiamo abbastanza problemi”), ed una ridda di rewrite e redirect che per mantenerle ci vuole la pazienza di Giobbe.

Nel frattempo le release e sottorelease si susseguono ed ovviamente ogni volta e’ un casino perche’ si tratta di fare rilasci su ‘n’ sistemi in parallelo ognuno con le sue idiosincrasie (non puoi avviare l’applicazione A sul server 1 in concorrenza con l’applicazione B sul server 2 altrimenti tirano giu’ il database che manda in coma l’applicazione C sul server 3…) ed operazioni “speciali” (prima di fermare l’applicazione A sul server 3 bisogna mettere la pagina di manutenzione sul server 4…) ovviamente ogni rilascio richiede un’ora e passa ed e’ un miracolo se non si verifica nessun problema (il programmatroto tende a dimenticarsi i pezzi nelle query SQL per l’aggiornamento del database).

Poi veniamo informati che SL ed UL (che apparentemente sono l’intero IT) vogliono assumere un ruolo piu’ “attivo” nella gestione della cosa per cui vogliono i diritti di eseguire rilasci e modifiche. Ovviamente questo fa’ scattare una immediata uscita dei server incriminati dal monitoraggio 24×7 il che ha provocato non poche discussioni ovviamente.

Adesso siamo arrivati alla fase di ‘transizione’ tra il sistema vecchio e quello nuovo, non c’e’ bisogno di dire che non appena il carico di lavoro ha cominciato a passare sul server Postgre, il load average a superato la soglia di guardia. Finalmente, dopo uno straziante tira-e-molla, SL ha acconsentito all’aggiunta di UNA cpu extra sul server (3 CPU… ma quando mai?) il che ha riportato il carico sui livelli di guardia ma non eccessivi. Poi oggi e’ arrivata la novella che i server Windows verranno dismessi a fine settimana e tutto il carico passera’ sui nuovi server. Dato che oramai quella roba e’ solo in locazione (noi facciamo a malapena i normali updates dell’OS) non e’ che la cosa mi preoccupi molto. Comunque per pura formalita’ vado ad informarmi della cosa.

IO – …quindi mi chiedevo come gestirsi il supporto dei server.
DB – Mah, l’unico supporto che forniamo adesso e’ quello base dell’hardware
e dell’OS.
IO – Appunto. Non facciamo nemmeno piu’ i backup perche’ se ci proviamo il database diventa talmente lento che l’intera cosa si siede per terra.
DB – Si appunto… ma tanto il contratto e’ stato modificato.
IO – E se ci sono problemi?
DB – Sono problemi loro. D’altra parte non mi aspetto che rimangano in funzione per molto.
IO – (drizzando le orecchie) Come?
DB – Mah sai… prima hanno cominciato a perdere clienti, poi hanno cominciato a perdere dipendenti che non sono stati sostituiti… adesso stanno cercando di tagliare i costi…
IO – Piu’ tagliati di cosi’…
DB – Appunto. Quindi non mi aspetto che rimangano in vita molto a lungo.

Per la serie “avevano tante ambizioni”. Ma la cosa che mi lascia un pelo perplesso e’: se fossero partiti con una analisi coerente fin dall’inizio, sarebbe andata diversamente?

Davide

legenda personaggi

Articoli simili:

  • Facebook
  • Twitter
  • Delicious
  • StumbleUpon
  • Wikio
  • Reddit
  • Technorati
  • Segnalo
  • Live
  • Add to favorites
  • Email
  • RSS

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(richiesto)

(richiesto)

Pinterest
EmailEmail
PrintPrint
%d blogger hanno fatto clic su Mi Piace per questo: