La gente è strana

26 Febbraio 2008

Intanto vi indico la recensione di Infoworld su Windows Server 2008. Mi piace il sottotitolo:

Microsoft’s slimmer and stronger server OS, bolstered by virtualization, networking, and security advances, is an upgrade that IT can’t refuse, a 200-pound gorilla that eats commercial Linux

Notevole commento! Soprattutto per una rivista che ha aperto una petizione per salvare XP. Comunque è vero che Windows Server 2008 piace a tanti, veramente tanti. Persino ad utilizzatori di Linux (religiosi a parte ovviamente). Mi aspetto molte altre recensioni favorevoli.

Vista e 2008 sono le due facce della stessa medaglia e sono progettati per lavorare insieme. Tanto è vero che lo scopo principale dell’SP1 di Vista era proprio quello di allineare i due kernel.

Quello che però mi lascia perplesso è che in giro ci sono diverse persone che dicono che XP è meglio di Vista e che Vista doveva essere come Windows Server 2008 (qualcuno arriva persino a teorizzare versioni desktop di Windows Server 2008). E’ abbastanza incredibile visto che le somiglianze fra Vista e 2008 sono molte più delle differenze (non dimentichiamo la modularità di questi sistemi). Persino molti driver di Vista funzionano su 2008 come molti di XP funzionavano su 2003.

La gente è strana.

WSUS 3.0 SP1

08 Febbraio 2008

Come previsto è uscito il WSUS 3.0 SP1, una vecchia conoscenza per gli amministratori Windows. Questo service pack aggiunge una funzione estremamente importante: il supporto a Windows Server 2008. E’ un elemento fondamentale per completare la nostra migrazione (e dei clienti).

Nei prossimi mesi penso ci sarà parecchia attività da parte della mia società su Windows Server 2008 sia sulla struttura interna che su quella di diversi clienti. Si va dal rinnovo di generico dei sistemi alla creazione di soluzioni (di test per il momento) di virtualizzazione, dalla sperimentazione di IPv6 alla creazione di nuovi server Windows Terminal e cose così.

Windows Server 2008 non è un semplice upgrade. Partendo dal nuovo kernel (allineato a quello Vista) e arrivando ai nuovi servizi o alle nuove implementazioni dei vecchi servizi si notano una miriade di cambiamenti. Con l’uscita dell’SP1 di Vista, che fondalmentalmente allinea quest’ultimo al Windows Server 2008, si dovrebbero notare diversi benefici anche per gli utenti dell’ultimo sistema operativo per desktop.

Trovo notevole anche II7, soprattutto per i programmatori WCF. E per i programmatori indico il link all’SDK.

Su questo blog racconterò le nostre esperienze nel proseguio di queste attività.

Visto la maggioranza degli utenti Windows Vista che lo utilizzano, il prossimo step sarà l’aggiornamento del nostro file server principale, una macchina Windows Server 2008 a 64 bit.

Windows 2008 via RDP!

07 Febbraio 2008

E’ utilizzabile anche con la mia pessima connessione a banda stretta (da casa).

Oggi abbiamo upgradato il primo server da Windows Server 2003 R2 Standard x86 a Windows Server 2008 Standard x86 definitivo in azienda su un sistema di produzione. Si tratta di una macchinetta senza particolari configurazioni hardware.

Inserito il DVD nel lettore è partito il programma di installazione/aggiornamento molto simile a quello di Windows Vista. Scaricati gli aggiornamenti consigliati, l’installatore ha proseguito il suo lavoro chiedendo quale versione di 2008 installare. Spiccano le versioni Core. Scelta la versione (Standard) l’installatore ha proposto una clean installation visto che su questo server erano installati i WDS (Windows Deployment Services) in una modalità che non gli piaceva. Siccome l’idea era di provare un aggiornamento abbiamo disinstallato WDS e abbiamo rilanciato l’installazione seguendo la stessa trafila. Stavolta abbiamo potuto scegliere l’aggiornamento. Fatti i controlli l’installatore ha chiesto di disinstallare la PowerShell. Nel mentre facevamo questa operazione abbiamo pensato di copiare il contenuto del DVD nel disco fisso. A questo punto abbiamo rilanciato l’installazione dal disco fisso (né più né meno quello che si fa talvolta con Vista). E finalmente è partita.

image

L’aggiornamento è stato completato in un’ora circa senza nessun problema. Una volta riavviato abbiamo aggiunto alcune feature.

image

Prossimamente aggiorneremo altre macchine.

In queste ultime settimane abbiamo avuto diversi problemi con alcuni server HP recenti e con Windows 2003 presso diversi clienti. Sembra che firmware o driver abbiano causato questi problemi. In pratica ci siamo trovati con macchine che ripartivano senza motivo e con cluster con nodi che si attivavano e si disattivavano. Senza indugio abbiamo provveduto ad aggiornare tutti i driver e i firmware delle macchine, delle schede di rete LAN, delle schede in fibra con le ultimissime versioni. Oltre a questo su alcune macchine abbiamo aggiunto anche un fix che aumenta la stabilità di Windows in presenza di alcuni tipi di processori. Ora i problemi sembrano spariti. Purtroppo non siamo in grado di indicare dov’era effettivamente il problema perchè, come al solito, non c’è mai tempo di fare un reale test. Presi dalla fretta si aggiorna tutto l’aggiornabile e si rimanda a dopo l’indagine. Se però le cose vanno a posto l’indagine è impossibile.

E’ interessante notare che questo tipo di problemi capitavano anche ai primi tempi di Vista quando spesso si doveva aggiornare il firmware per avere un comportamento corretto della macchina (durante il beta testing ho aggiornato il BIOS del mio portatile 3 volte). Ma la stabilità/vecchiaia di un sistema non elimina questo tipo di problemi… li rende solo meno probabili.

Windows sconosciuto

22 Settembre 2007

I “tifosi” di Linux lamentano il fatto che spesso l’utente non conosce bene l’oggetto della loro passione. Pur essendo meno appassionato anche io lamento il fatto che l’azienda media e piccola non conosce Windows (Server). E questo accade nonostante abbia un bel po’ di macchine Windows installate e collegate tra loro (magari con una bella rete Active Directory).

Nelle ultime settimane ho incontrato diverse aziende medie e piccole e parlato con loro dei diversi progetti che si troveranno ad affrontare nei prossimi mesi (siamo in tempo di budget). Inevitabilmente il discorso è caduto anche su argomenti infrastrutturali. Non voglio parlare di quali sono i doloretti che disturbano queste aziende ma a me sembra evidente un tema ricorrente: buona parte di questi dolori potrebbero sparire o essere estremamente mitigati sfruttando quello che hanno già in casa e che fornisce il sistema Windows. Di più molti apparati/appliance/software potrebbero non essere acquistati/installati/gestiti perchè assolutamente inutili in quanto il sistema Windows fornisce un bel po’ delle funzionalità richieste ad un prezzo più basso o magari già pagato.

Un inciso sulla virtualizzazione: mi è capitato di trovare due aziende i cui fornitori hanno proposto la virtualizzazione come soluzione (?) di alcuni di questi problemi. Peccato che non sia proprio così. E’ interessante notare che questa “soluzione” è stata proposta dai fornitori dell’hardware. Nessuno di loro ha proposto ai clienti di utilizzare quello che hanno già pagato. Fa pensare. 

Ho proposto a diverse di queste aziende una serie di attività e ho ottenuto un notevole interesse. Direi che nei prossimi mesi su alcuni di questi (futuri) clienti ci sarà da lavorare parecchio. E anche l’arrivo di 2008 può essere una buona occasione per affrontare in modo più strutturato e chiaro il problema dell’infrastruttura. Dal mio punto di vista è interessante notare che tutta la nostra esperienza fatta su reti di grandi aziende (banche soprattutto) possa essere calata su medie e piccole aziende. Windows rende economicamente favorevole sia per il fornitore che per il cliente questa operazione.

P.S.: Vista comincia ad essere presente in modo significativo e persino i produttori di software più restii (la causa principale del non uso) cominciano finalmente ad adeguarsi.

Come già detto non sono un grande fan della virtualizzazione. Spesso noi abbiamo a che fare con sistemi complessi e la virtualizzazione in questi sistemi non risulta per nulla trasparente provocando cali di efficienza o, peggio, veri e propri malfunzionamenti. Mi è persino capitato di trovare casi in cui alcuni fornitori hanno consigliato al cliente l’acquisto di prodotti di virtualizzazione per scoprire poi che il loro stesso software non girava sulla virtualizzazione da loro stessi proposta! E comunque a volte proprio non serve visto che la piattaforma applicativa stessa fornisce le caratteristiche per cui la virtualizzazione viene scelta.

Però poco tempo fa BEA ha annunciato una nuova versione del loro application server WebLogic in grado di girare nell’ipervisore senza richiedere il sistema operativo. Per un application server J2EE questo ha molto senso visto che l’ambiente Java stesso maschera il sistema operativo sottostante: fornire quindi un ambiente minimale necessario alla JVM può essere efficiente. Quindi a maggior ragione si può eliminare il sistema operativo completo sostituendolo con uno strato molto meno complesso che fornisce le funzioni di base. E’ un modello molto interessante e che dimostra ancora una volta di più cosa si intende per piattaforma quando si parla di Java. In effetti noi utilizziamo spesso lo stack Java di IBM (WebSphere in parole povere) dove quasi sempre il resto (e soprattutto il sistema operativo) è irrilevante.

Tra parentesi di solito il cliente medio sceglie come sistema operativo Windows perchè non ha né voglia né tempo di gestire sistemi operativi alternativi. Questo fatto è stata uno delle motivazioni che mi ha convinto qualche anno fa a riproporre Windows in modo pesante nonostante la nostra grande esperienza su altri sistemi.

Tornando al discorso della virtualizzazione sarà interessante vedere come questa si inquadrerà in una architettura Windows.

Attualmente molte applicazioni Microsoft fanno uso di alcuni servizi comuni come Active Directory e SQL Server. AD è il cuore di una rete Windows ed è bene avere almento due server in azienda. Io penso che, per questioni di ridondanza e resistenza e sicurezza, è bene averli su macchine fisiche separate. Se si utilizza molto SQL Server, allora anche questo è bene averlo ridondato su macchine fisiche: in fondo un SQL Server è in grado di sfruttare memoria e thread in modo efficiente da solo. Con una organizzazione di questo tipo è possibile ospitare applicazioni IIS (che utilizzano la struttura SQL Server per i dati) su vari server: bilanciamento e ridondanza sono offerti dall’IIS stesso. I server di posta evoluti sono sistemi spesso critici e che oggi hanno un  bisogno di elevato I/O. Al momento attuale non ho esperienza di virtualizzazione di grossi sistemi questo tipo in quanto tutti i clienti li preferiscono su macchine dedicate (in cluster tra loro). I sistemi di messaggistica integrata con funzionalità VOIP richiedono molta CPU, molta banda, schede di rete veloci e poco disco. Anche questi probabilmente funzionano meglio su macchine fisiche. Aggiungo, poi, che il supporto al framework .NET è e sarà sempre più embeddato nel sistema operativo (in pratica “application server” .NET e Windows saranno sempre più la stessa cosa). A tutti questi fattori vanno aggiunti i cali dei costi delle SAN che permettono di centralizzare facilmente lo storage “fisico” delle varie macchine e la disponibilità di dispostivi blade. E, se proprio si vuole, esiste un Microsoft Virtual Server che permette di gestire bene e facilmente macchine virtuali per altri scenari.

E’ però vero che sul mercato oggi si trovano processori quadricore a prezzo basso e, pare, anche chipset e motherboard in grado di sfruttare queste caratteristiche in modo più efficiente. Potrebbe non essere lontano il momento in cui alcune delle applicazioni descritte potrebbero girare meglio su sistemi virtualizzati. Microsoft, oltre ai classici strumenti già esistenti per gestire sistemi e aggiornamenti, avrà Windows Server 2008 che è assai più modulare delle versioni precedenti, uscirà con un ipervisore incorporato nel server e ha oggi un sistema di management per i sistemi virtualizzati. E quindi sicuramente ben posizionata per sfruttare queste funzionalità.

Ma per il momento la maggior parte del software, di famosi e meno famosi produttori, a volte non è in grado di lavorare al massimo delle proprie capacità o è addirittura non pienamente supportato su macchine virtuali. E allora io continuo a preferire le macchine fisiche che danno meno problemi. 

Una delle cose che più mi affascina nel sistema Windows è la forte integrazione presente tra vari elementi. E questa una particolarità che lo rende più adatto di altri in molti scenari aziendali. E per sistema Windows intendo sia i sistemi desktop che i server che altro. Fulcro principale di questa integrazione è sicuramente Active Directory, un contenitore gerarchico che si occupa di gestire le informazioni relative alla maggior parte degli elementi come utenti, computer, certificati, stampanti, applicazioni e altro.

Uno di questi elementi, fornito con il server Windows, sono i Certification Services. La mia esperienza nelle aziende mi induce a pensare che siano inspiegabilmente poco conosciuti e quindi poco installati. Questi servizi, integrati con Active Directory, forniscono a Windows una completa struttura di Certification Authority (CA) per la gestione dei certificati digitali standard che permette operazioni come la richiesta, la revoca e la distribuzione di questi elementi oggi fondamentali. Alcune di queste operazioni su alcuni tipi di certificati sono automatiche e trasparenti per l’utilizzatore. I certificati sono assolutamente standard tanto è vero che noi li utilizziamo anche nei nostri server Domino, Apache e WebSphere.

Oltre ad autentificazione e crittografia una delle funzionalità fornite da una struttura di certificati è la firma digitale del codice. Questo è molto importante per aumentare il livello di sicurezza del codice che viene eseguito nella rete. Ad esempio io li utilizzo anche per firmare gli script PowerShell.

In pratica un mio PC dove sviluppo il codice ha un livello relativamente blando di sicurezza (RemoteSigned) ma i server, invece, richiedono codice firmato. Quindi io scrivo uno script sul PC e, una volta testato, lo copio nel server e lo firmo per autorizzarne l’esecuzione. L’utilizzo del certificato rilasciato dalla CA integrata fa sì che la firma sia conosciuta da tutti i computer del dominio. Questo dovrebbe impedire l’esecuzione di script malevoli scritti da persone che non possono firmare digitalmente lo script utilizzando la CA o dovrebbe contribuire all’individuazione dell’autore.

Per attivare questi meccanismi (che peraltro possono essere usati per la firma di altro tipo di codice) ho utilizzato i Certification Services (installati come una CA di livello Enterprise). In questo modo ho una CA “autocertificata” che certifica tutti i certificati rilasciati (e questo mi permette di utilizzare certificati dove voglio all’interno della mia rete) e che sono riconosciuti dalle macchine, dagli utenti e dai software che fanno parte del dominio. Fatto questo ho abilitato il template per il Code Signing usando la console sul server. Sul PC dove voglio firmare lo script richiedo il certificato usando l’apposito plugin per MMC (digitando certmgr.msc si lancia una console con il plugin già caricato per i certificati personali).

image

A questo punto è possibile firmare il codice. Il resto è storia e ben descritto nell’help della PowerShell (digitate help about_signing). Comunque per farla breve ho dovuto impostare il livello di esecuzione del codice nella shell:

Set-ExecutionPolicy AllSigned

In seguito ho firmato lo script:

$cert = @(dir cert:\\CurrentUser\\My -codesigning)[0]
Set-AuthenticodeSignature .\\mioscript.ps1 $cert

In questo modo ho potuto eseguirlo:

mioscript

Cosa succede se non firmo lo script? PowerShell si rifiuta di eseguirlo. Cosa succede se lo script è firmato con un certificato non noto (cioè un autocertificato o un certificato non facenti parte della stessa catena di autorizzazione)? Il sistema si rifiuta di eseguirlo.

Una nota sulla istruzione dir usata nel codice di cui sopra: utilizza l’accesso ai certificati attraverso un provider per gli store dei certificati.