SCCM contro burattino
Open-source vs. proprietario? Nell'universo del software, questo dibattito ha imperversato in quasi tutti i sottosettori: sistemi operativi, database e persino nell'arena CM, dove SCCM vs. Puppet sono due dei campioni dei pesi massimi che si sfidano. Ma al di là di questa differenza filosofica di origine, prendono anche due strade completamente diverse per facilitare la vita dell'amministratore di sistema. Inoltre, questi due strumenti di gestione della configurazione sono dotati di curve di apprendimento diverse, che influenzeranno la velocità con cui puoi essere produttivo.
SCCM è un prodotto Microsoft, il che ovviamente significa che si lega molto bene con gli ambienti Windows, in particolare con gli ambienti aziendali, ma SCCM 1906, rilasciato nel 2019 (ne parleremo tra poco) e altre versioni recenti supportano i client che eseguono altri sistemi operativi. Puppet è un prodotto open-source in grado di gestire ambienti Linux, Unix, Windows e persino Mac OS, anche se ovviamente non può eguagliare le capacità di SCCM su Windows. Se ti trovi in un ambiente DevOps con un solo sistema operativo e non è Windows, scegliere Puppet potrebbe sembrare corretto. Tuttavia, le cose diventano più complesse quando si deve lavorare con più sistemi operativi. Data la popolarità di Windows tra i sistemi operativi aziendali, questo è uno scenario che molti team DevOps devono affrontare. Quindi, quale dovresti scegliere per gestire il tuo data center o la molteplicità di server che rischia di sfuggire di mano? Approfondiamoli un po' di più per scoprirlo.
SCCM Vs Puppet: approfondimento, principali differenze
Puppet è il CM open source basato su modelli di PuppetLabs. È scritto in Ruby e ha sia un'interfaccia utente ben sviluppata che una CLI che utilizza un DSL derivato da Ruby o un codice Ruby puro, anche se quest'ultima opzione è stata deprecata. Il fondatore di PuppetLabs, Luke Kanies, ha dichiarato: "Uno dei vantaggi del DSL di Puppet, oltre alla semplicità, è che incoraggia il cambiamento mentale che Puppet richiede. Per utilizzare Puppet in modo efficace, è necessario pensare alle risorse, non ai file o ai comandi. Se scrivessi le tue configurazioni in Ruby, potresti facilmente aprire file ed eseguire comandi per tutta la giornata, ma con il DSL devi imparare a pensare in termini di risorse. ”
L'utente descrive le risorse di sistema e i relativi stati e memorizza queste informazioni in file denominati manifesti. Puppet include un "livello di astrazione delle risorse" che consente agli amministratori di descrivere le configurazioni che desiderano gestire e le azioni che desiderano eseguire in termini di alto livello utilizzando il DSL. E un grande vantaggio di questo approccio Infrastructure-as-DSL-code è che non devi preoccuparti di comandi e parole chiave specifici del sistema operativo. Puppet ha anche un'ottima interfaccia utente basata su browser per attività di configurazione e installazione limitate, ma la maggior parte degli utenti utilizzerà la GUI più come strumento di visualizzazione e reporting. Ciò lascia inevitabilmente la maggior parte della distribuzione del software e del lavoro granulare con la necessità di imparare a utilizzare l'interfaccia della riga di comando.
SCCM (Systems Center Configuration Manager) di Microsoft, o per usare il suo titolo ufficiale ConfigMgr, era precedentemente noto come Systems Management Server (SMS). La versione più recente è SCCM 2019 ed è in grado di gestire ambienti con i seguenti sistemi operativi supportati:
- Windows 10, 8 e 7 con SP1
- Windows Server 2008-2019
- Computer Windows Embedded (versioni selezionate) e Windows CE (processori ARM 7.0 e x86)
- Linux (Red Hat Enterprise Linux, CentOS, Debian, Oracle Linux, SUSE Linux Enterprise Server, Ubuntu)
- Unix (Solaris, AIX)
- Mac OS X (Snow Leopard/macOS 10.6, fino a Mojave/macOS 10.14)
- sistemi operativi mobili: Windows Phone, iOS e Android.
Il supporto client potrebbe essere multipiattaforma, tuttavia, la console del server deve essere installata su un server Windows e non è necessario indovinare in quale piattaforma del sistema operativo funziona meglio. Inoltre, come altri prodotti Microsoft, quasi tutto il lavoro verrà svolto sulla GUI, con l'aggiunta del supporto per le interfacce programmatiche come gli script VB. Ciò lo rende più veloce da imparare e utilizzare, ma meno flessibile di uno strumento incentrato sull'interfaccia della riga di comando come Puppet. Le differenze rispetto a una gestione della configurazione dichiarativa rappresentano uno svantaggio rispetto all'espressività di Puppet.
Tuttavia, il sistema CLI sui sistemi operativi Windows sta migliorando. Ad esempio, strumenti come Chocolatey ora aiutano a migliorare notevolmente l'esperienza DevOps, con interfacce CLI facili da usare per la configurazione iniziale del software, l'applicazione di patch e altro ancora. Per un secondo approccio dichiarativo alla gestione della configurazione per i sistemi Windows, è possibile prendere in considerazione Powershell DSC (configurazione dello stato desiderato). Disponibile in PowerShell 4 e versioni successive, DSC prende in prestito molti dei concetti di gestione della configurazione in Puppet, semplificando la gestione degli ambienti. L'approccio dichiarativo viene utilizzato anche in Ansible, un altro popolare strumento di automazione. Ansible utilizza YAML anziché un linguaggio specifico del dominio personalizzato.
Ultime versioni e cronologia delle versioni
SCCM 1906, rilasciato nel luglio del 2019, è l'ultima versione di SCCM disponibile. Questa versione ha aggiunto alcune caratteristiche e miglioramenti degni di nota, tra cui:
- Individuazione dei gruppi di utenti di Azure Active Directory
- Analisi più dettagliate per le app desktop
- Nuova scheda Attività di manutenzione per la gestione delle attività di manutenzione
- Nuovo debugger della sequenza di attività per la risoluzione dei problemi relativi alle distribuzioni del sistema operativo
- Supporto migliorato per i gruppi AlwaysOn di SQL Server
- Altre opzioni di personalizzazione per Software Center
In termini di funzionalità, SCCM è una forza da non sottovalutare quando si tratta di gestire tutte le risorse Windows dell'organizzazione. È in grado di fare tutto, dalla distribuzione del software a più siti riducendo la larghezza di banda alla gestione delle patch e all'implementazione della correzione delle vulnerabilità in tempo reale in tutta l'organizzazione. SCCM 1906 segna l'ultima di una serie di massicce trasformazioni del software nel corso di oltre un decennio da SCCM 2007. SCCM 2007 ha sostituito Systems Management Server 2003, la versione aggiornata dello strumento di configurazione lanciato da Microsoft nel 1994 per la gestione delle distribuzioni di Windows. Da tale data sono intervenuti i seguenti importanti cambiamenti.
- SCCM 2007: prima versione a fornire supporto per Windows Vista, Exchange Server 2008 e Windows Server 2008. Questa versione ha anche migliorato il controllo sulle risorse, nonché le informazioni degli amministratori di sistema sulle risorse e la conformità dei sistemi.
- SCCM 2012: Introdotte importanti modifiche, tra cui il supporto per BYOD (Bring Your Own Device). Microsoft ha riconosciuto che gli utenti utilizzano sempre più dispositivi non acquistati dall'IT del proprio posto di lavoro, quindi ha aggiunto un modo per integrare automaticamente tali dispositivi nella rete controllata da SCCM. SCCM, naturalmente, utilizza e si integra molto bene con Active Directory e Criteri di gruppo per tenere traccia e distribuire gli aggiornamenti su tutti i dispositivi. Gli utenti finali possono cercare le applicazioni tramite un Software Center self-service e definire gli orari in cui avvengono le installazioni e gli aggiornamenti. WSUS (Windows Server Update Services) e Network Access Protection forniscono l'applicazione e l'implementazione di policy e sicurezza, mentre EndPoint Protection Manager, precedentemente chiamato ForeFront, fornisce la sicurezza e la crittografia dei dati sui dispositivi.
- SCCM 1511: Microsoft ha progettato questa versione monumentale per funzionare specificamente con il suo allora nuovissimo sistema operativo Windows 10. Windows 10 si basa sulle funzionalità di supporto aziendale delle versioni precedenti e SCCM 1511 ha aggiunto il supporto completo per Windows 10 alla versione 2015 del suo prodotto di gestione della configurazione. Le sue funzionalità includono la possibilità di distribuire, eseguire il provisioning e aggiornare i dispositivi a Windows 10, nonché la gestione completa dei dispositivi Windows 10.
A differenza di SCCM, Puppet mantiene un modello a doppia versione, con rilasci sia per Puppet open source che per la versione enterprise. La versione Enterprise di Puppet ha visto il rilascio iniziale dell'ultima versione principale il 9 ottobre 2018 con il lancio di Puppet Enterprise 2019.0.0. Le principali modifiche apportate a questa versione sono le seguenti:
- Supporto per un'automazione più rapida di infrastrutture complesse ed eterogenee senza la necessità di agenti. Si tratta di un'opzione innovativa che aggiunge flessibilità al modello esistente che ha reso gli agenti un requisito.
- Gestione delle chiavi segrete migliorata
- Nuove funzionalità CI/CD che semplificano il processo di distribuzione continua per i team
- La possibilità di programmare i lavori durante le finestre di manutenzione per eliminare i tempi scomodi per i lavori una tantum
- Adotta la piattaforma Puppet 6, disponibile nell'ultima variante open source, come base per l'ultima versione di Puppet Enterprise. La piattaforma Puppet 6 consente una migliore gestione delle chiavi segrete e gli aggiornamenti dell'API delle risorse di Puppet, che comprende la modellazione delle risorse del sistema operativo in Puppet.
Da allora, sono stati apportati numerosi altri aggiornamenti a Puppet, tra cui Puppet Enterprise versione 2019.1.0 e Puppet Enterprise versione 2019.1.1. Quest'ultimo è stato lanciato il 30 luglio 2019. Di particolare rilievo per coloro che sono interessati a provare Puppet, la versione enterprise è disponibile in STS (supporto a breve termine) e LTS (supporto a lungo termine). Al momento della scrittura, l'ultima versione principale di LTS è la 2018.1 (LTS). Questa versione è apparsa per la prima volta il 1° maggio 2018 e terminerà il ciclo di vita a novembre 2020, sopravvivendo alla versione 2019.1.1, insieme a tutte le altre versioni di STS. Le versioni STS hanno cicli di vita di 6 mesi, mentre le versioni LTS hanno cicli di vita di 18 mesi.
Gestione della configurazione in generale
Le differenze filosofiche e le capacità di SCCM e Puppet sono sintomatiche di una scena di gestione della configurazione più ampia che si sta muovendo a una velocità vertiginosa per quanto riguarda l'innovazione. Alcuni dei principali progetti che forniscono approcci alternativi a questi due includono:
- Saltstack - Saltstack è l'azienda dietro lo strumento di gestione della configurazione remota del cluster Salt. Saltstack dispone di versioni open source ed enterprise. Utilizza un approccio master e minion per mantenere i server in stati definiti. Utilizzando YAML, Jinja o Python, è possibile definire formule o stati per l'installazione e l'orchestrazione dei pacchetti sui minion Saltstack.
- Terraform: a differenza degli strumenti di gestione della configurazione come SCCM e Puppet, Terraform è uno strumento di provisioning che utilizza un paradigma di infrastruttura immutabile. Ciò consente di ridurre la deriva della configurazione che può verificarsi in tutti i server, poiché ognuno di essi sviluppa una cronologia univoca delle modifiche alla configurazione. Terraform distribuisce immagini o contenitori uniformi utilizzando strumenti come Docker o Packer.
- Automazione di Azure: un altro strumento di gestione e automazione della configurazione basato sul cloud di Microsoft. Fornisce la configurazione dello stato desiderata e altre operazioni di gestione dell'infrastruttura nei cloud Windows e Linux. Un potenziale sostituto degli strumenti di gestione dei data center come Orchestrator, è uno strumento all'avanguardia nell'arsenale di Microsoft in quanto compete con AWS per la quota di mercato del cloud.
- AWS CloudFormation: lo strumento di provisioning, configurazione e gestione dell'infrastruttura di Amazon per gli ambienti AWS. AWS CloudFormation semplifica il provisioning delle risorse AWS, insieme alle relative modifiche e aggiornamenti. Può essere utilizzato insieme ad AWS Systems Manager Automation sia per la definizione dell'infrastruttura cloud che per la configurazione dei sistemi operativi delle istanze.
Comunità, supporto, prezzi
Le piattaforme open source hanno in genere un senso di unione e di proprietà del prodotto molto maggiore. Questo non è diverso nel caso di Puppet: una comunità di utenti attiva e un rapido feedback e risoluzione sono disponibili quando necessario. Il codice sorgente di Puppet è disponibile su Github e Puppet è il più grande attore nel mercato open source della gestione della configurazione. Con quelle dimensioni arriva un po' di inerzia al cambiamento e perdita di agilità. Ci sono state alcune piccole ma vocali proteste nei forum di discussione su cose come la lentezza di PuppetLabs nel risolvere i bug e il loro spingere gli utenti verso la versione aziendale commerciale, dove fanno i loro soldi.
Puppet vanta anche di avere a bordo alcuni grandi clienti aziendali: Reddit, Dell, PayPal, Oracle, Los Alamos Labs e Stanford University. Quando si confrontano con un colosso affermato come Microsoft, tali clienti offrono molta credibilità nella mente di potenziali clienti e utenti. Come la versione open-source, anche Puppet Enterprise è gratuito per i primi 10 nodi, ma poi costa $120 per nodo all'anno; Sono disponibili anche sconti a più livelli fino a 2500 nodi. Come accennato in precedenza, Puppet funziona su quasi tutte le piattaforme, ma semplicemente non può eguagliare le capacità di SCCM su Windows; ad esempio, non è possibile utilizzare Puppet per il provisioning e la distribuzione di nuovi server Windows e non è possibile aggiornare direttamente AD per riflettere lo stato delle macchine nella rete. Tuttavia, è possibile eseguire il Puppet master in un contenitore su un computer Windows.
Con SCCM, molti hanno prima di tutto un problema con la sua natura chiusa e proprietaria. Detto questo, anche il supporto della comunità degli utenti è molto buono. Ciò non sorprende dato il predominio dei prodotti Microsoft, e ottieni anche risposte e supporto eccellenti da professionisti SCCM interni dedicati, come la barra Genius presso l'Apple Store.
I prezzi di SCCM sono contorti e non così semplici come quelli di Puppet, soprattutto se si aggiungono più server, ma questo è comune in quasi tutti i prodotti Microsoft. Per illustrare questa configurazione dei prezzi chiara, sono necessarie sia le licenze gestite dal client (ML) che le licenze gestite dal server. I ML dei server hanno un prezzo a seconda che tu stia scegliendo l'opzione "Standard" o "Datacenter" e variano anche in base al numero di processori che hai. Quindi, ad esempio, il ML del server per data center a 4 processori top di gamma costerà $7230, e quindi è ancora necessario tenere conto del costo dei ML del client ($62 - $121). SCCM generalmente si rivelerà molto più costoso di Puppet, è quello che stiamo cercando di dire qui. Per saperne di più sui prezzi di SCCM, clicca qui.
SCCM Vs Conclusione del burattino
Se devi fare una scelta tra Puppet e SCCM, prima di tutto dettaglia quali sono le tue esigenze, quindi cerca lo strumento che meglio si adatta a tali esigenze. E ricorda, sei fortunato ad avere una scelta del genere: solo 10 anni fa c'era praticamente un solo strumento CM! L'analisi dei pro e dei contro di seguito può aiutare il tuo processo decisionale, così come questo sito che riassume e confronta le caratteristiche di SCCM e Puppet.
| Pro | Contro | |
| SCCM |
|
|
| Burattino |
|
|