SCCM gegen Marionette
Open Source vs. proprietär? Im Software-Universum tobt diese Debatte in fast allen Teilsektoren - Betriebssysteme, Datenbanken und sogar in der CM-Arena, wo SCCM vs. Puppet zwei der Schwergewichtschampions sind, die sich den Kampf liefern. Aber abgesehen von diesem philosophischen Unterschied in der Herkunft gehen sie auch zwei völlig unterschiedliche Wege, um das Leben des Systemadministrators zu erleichtern. Darüber hinaus haben diese beiden Konfigurationsmanagement-Tools unterschiedliche Lernkurven, die sich darauf auswirken, wie schnell Sie produktiv sein können.
SCCM ist ein Microsoft-Produkt, was natürlich bedeutet, dass es sich sehr gut in Windows-Umgebungen einfügt, insbesondere in Unternehmensumgebungen, aber SCCM 1906, das 2019 veröffentlicht wurde (mehr dazu gleich) und andere neuere Versionen unterstützen Clients, auf denen andere Betriebssysteme ausgeführt werden. Puppet ist ein Open-Source-Produkt, das Linux-, Unix-, Windows- und sogar Mac OS-Umgebungen verwalten kann, obwohl es natürlich nicht mit den Fähigkeiten von SCCM unter Windows mithalten kann. Wenn Sie sich in einer DevOps-Umgebung mit nur einem einzigen Betriebssystem befinden und es sich nicht um Windows handelt, scheint die Auswahl von Puppet richtig zu sein. Komplexer wird es jedoch, wenn Sie mit mehreren Betriebssystemen arbeiten müssen. Angesichts der Beliebtheit von Windows unter den Betriebssystemen in Unternehmen ist dies ein Szenario, mit dem viele DevOps-Teams konfrontiert sind. Welche sollten Sie also für die Verwaltung Ihres Rechenzentrums oder einer Vielzahl von Servern wählen, die außer Kontrolle zu geraten drohen? Lassen Sie uns ein wenig mehr in sie eintauchen, um es herauszufinden.
SCCM vs. Puppet: Detaillierte, große Unterschiede
Puppet ist das modellgetriebene Open-Source-CM von PuppetLabs. Es ist in Ruby geschrieben und verfügt sowohl über eine gut entwickelte Benutzeroberfläche als auch über eine CLI, die entweder eine von Ruby abgeleitete DSL oder reinen Ruby-Code verwendet, obwohl diese letztere Option veraltet ist. Der Gründer von PuppetLabs, Luke Kanies, erklärte: "Einer der Vorteile von Puppets DSL - abgesehen von der Einfachheit - besteht darin, dass es den mentalen Wandel fördert, den Puppet erfordert. Um Puppet effektiv zu nutzen, müssen Sie in Ressourcen und nicht in Dateien oder Befehlen denken. Wenn Sie Ihre Konfigurationen in Ruby geschrieben haben, könnten Sie problemlos den ganzen Tag lang Dateien öffnen und Befehle ausführen, aber mit der DSL müssen Sie lernen, in Ressourcen zu denken. ”
Der Benutzer beschreibt Systemressourcen und deren Zustände und speichert diese Informationen in Dateien, die als Manifeste bezeichnet werden. Puppet enthält eine "Ressourcenabstraktionsschicht", die es Administratoren ermöglicht, die Konfigurationen, die sie verwalten möchten, und die Aktionen, die sie ausführen möchten, in allgemeinen Begriffen mit der DSL zu beschreiben. Und ein großer Vorteil dieses Infrastructure-as-DSL-Code-Ansatzes ist, dass Sie sich keine Gedanken über betriebssystemspezifische Befehle und Schlüsselwörter machen müssen. Puppet verfügt auch über eine großartige browserbasierte Benutzeroberfläche für begrenzte Konfigurations- und Einrichtungsaufgaben, aber die meisten Benutzer werden die GUI eher als Anzeige- und Berichtstool verwenden. Dies führt dazu, dass der Großteil der Softwarebereitstellung und der feinkörnigen Arbeit unweigerlich mit der Notwendigkeit verbunden ist, den Umgang mit der CLI zu erlernen.
Microsofts SCCM (Systems Center Configuration Manager), oder um den offiziellen Namen ConfigMgr zu verwenden, war früher als Systems Management Server (SMS) bekannt. Die neueste Version ist SCCM 2019 und kann Umgebungen mit den folgenden unterstützten Betriebssystemen verwalten:
- Windows 10, 8 und 7 mit SP1
- Windows Server 2008-2019
- Windows Embedded Computer (ausgewählte Versionen) und Windows CE (7.0 ARM und x86 Prozessoren)
- 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, bis Mojave/macOS 10.14)
- mobile Betriebssysteme: Windows Phone, iOS und Android.
Die Clientunterstützung kann plattformübergreifend sein, jedoch muss die Serverkonsole auf einem Windows-Server installiert sein, und es gibt keine Punkte, um zu erraten, auf welcher Betriebssystemplattform sie am besten funktioniert. Wie bei anderen Microsoft-Produkten wird auch hier fast die gesamte Arbeit an der GUI erledigt, mit etwas zusätzlicher Unterstützung für programmatische Schnittstellen wie VB-Skripte. Dadurch ist es schneller zu erlernen und zu verwenden, aber weniger flexibel als ein CLI-zentriertes Tool wie Puppet. Die Unterschiede zu einem deklarativen Konfigurationsmanagement stellen im Vergleich zur Ausdruckskraft von Puppet einen Nachteil dar.
Das CLI-System auf Windows-Betriebssystemen wird jedoch immer besser. Zum Beispiel tragen Tools wie Chocolatey jetzt dazu bei, die DevOps-Erfahrung viel besser zu machen, mit einfach zu bedienenden CLI-Schnittstellen für die Ersteinrichtung von Software, Patches und mehr. Für einen zweiten deklarativen Ansatz für die Konfigurationsverwaltung für Windows-Systeme können Sie Powershell DSC (Desired State Configuration) in Betracht ziehen. DSC ist in PowerShell 4 und höher verfügbar und übernimmt viele der Konfigurationsverwaltungskonzepte von Puppet, um die Verwaltung Ihrer Umgebungen zu vereinfachen. Der deklarative Ansatz wird auch in Ansible, einem weiteren beliebten Automatisierungstool, verwendet. Ansible verwendet YAML anstelle einer benutzerdefinierten domänenspezifischen Sprache.
Neueste Versionsversionen und Versionsverlauf
SCCM 1906, veröffentlicht im Juli 2019, ist die neueste verfügbare Version von SCCM. Diese Version fügte einige bemerkenswerte Funktionen und Verbesserungen hinzu, darunter:
- Ermittlung von Azure Active Directory-Benutzergruppen
- Detailliertere Analysen für Desktop-Apps
- Neue Registerkarte "Wartungsaufgaben" für die Verwaltung von Wartungsaufgaben
- Neuer Tasksequenzdebugger für die Problembehandlung bei Betriebssystembereitstellungen
- Verbesserte Unterstützung für SQL Server AlwaysOn-Gruppen
- Weitere Anpassungsoptionen für Software Center
In Bezug auf die Leistungsfähigkeit ist SCCM eine Kraft, mit der man rechnen muss, wenn es um die Verwaltung aller Windows-Ressourcen Ihres Unternehmens geht. Es kann alles tun, von der Bereitstellung von Software an mehreren Standorten bei gleichzeitiger Reduzierung der Bandbreite über das Patch-Management bis hin zur Einführung von Echtzeit-Schwachstellenbehebungen im gesamten Unternehmen. SCCM 1906 ist die jüngste in einer Reihe von massiven Transformationen der Software, die sich über mehr als ein Jahrzehnt seit SCCM 2007 erarbeitet haben. SCCM 2007 löste Systems Management Server 2003 ab, die aktualisierte Version des Konfigurationstools, das Microsoft 1994 für die Verwaltung von Windows-Bereitstellungen eingeführt hatte. Seit diesem Datum haben die folgenden wesentlichen Änderungen stattgefunden.
- SCCM 2007: Erste Version, die Unterstützung für Windows Vista, Exchange Server 2008 und Windows Server 2008 bietet. Diese Version verbesserte auch die Kontrolle über Assets sowie den Einblick der Systemadministratoren in die Assets sowie die Systemkonformität.
- SCCM 2012: Es wurden wichtige Änderungen eingeführt, einschließlich der Unterstützung von BYOD (Bring Your Own Device). Microsoft erkannte, dass Benutzer zunehmend Geräte verwenden, die nicht von der IT-Abteilung ihres Arbeitsplatzes gekauft wurden, und fügte daher eine Möglichkeit hinzu, solche Geräte automatisch in das SCCM-gesteuerte Netzwerk einzubinden. SCCM verwendet und integriert sich natürlich sehr gut in Active Directory und Gruppenrichtlinien, um den Überblick zu behalten und Updates auf allen Geräten auszurollen. Endbenutzer können über ein Self-Service-Software-Center nach Anwendungen suchen und die Zeiten festlegen, zu denen Installationen und Upgrades stattfinden. WSUS (Windows Server Update Services) und Network Access Protection sorgen für die Durchsetzung und Einführung von Richtlinien und Sicherheit, während EndPoint Protection Manager, ehemals ForeFront, Datensicherheit und Verschlüsselung auf Geräten bietet.
- SCCM 1511: Microsoft hat diese monumentale Version speziell für das damals brandneue Betriebssystem Windows 10 entwickelt. Windows 10 baut auf den Enterprise-Supportfunktionen früherer Versionen auf, und SCCM 1511 hat der Version 2015 seines Konfigurationsmanagementprodukts umfassende Unterstützung für Windows 10 hinzugefügt. Zu den Funktionen gehören die Möglichkeit, Geräte auf Windows 10 bereitzustellen, bereitzustellen und zu aktualisieren, sowie die vollständige Verwaltung von Windows 10-Geräten.
Im Gegensatz zu SCCM verfolgt Puppet ein Dual-Release-Modell, bei dem sowohl die Open-Source-Version Puppet als auch die Enterprise-Version veröffentlicht werden. In der Enterprise-Version von Puppet wurde die letzte große Versionsänderung am 9. Oktober 2018 mit der Einführung von Puppet Enterprise 2019.0.0 erstmals veröffentlicht. Zu den wichtigsten Änderungen in dieser Version gehörten die folgenden:
- Unterstützung für eine schnellere Automatisierung komplexer und heterogener Infrastrukturen, ohne dass Agenten erforderlich sind. Dies ist eine innovative Option, die das bestehende Modell, das Agenten zu einer Voraussetzung machte, flexibler macht.
- Verbesserte Verwaltung von Geheimnissen
- Neue CI/CD-Funktionen, die den Continuous-Delivery-Prozess für Teams vereinfachen
- Die Möglichkeit, Aufträge während Wartungsfenstern zu planen, um ungünstiges Timing für einmalige Aufträge zu vermeiden
- Übernimmt die Puppet 6-Plattform, die in der neuesten Open-Source-Variante verfügbar ist, als Basis für die neueste Puppet Enterprise-Version. Die Puppet 6-Plattform ermöglicht eine bessere Verwaltung von Geheimnissen sowie Aktualisierungen der Ressourcen-API von Puppet, die die Modellierung von Betriebssystemressourcen in Puppet umfasst.
Seitdem gab es eine Reihe weiterer Updates für Puppet, darunter Puppet Enterprise Version 2019.1.0 und Puppet Enterprise Version 2019.1.1. Letzteres wurde am 30. Juli 2019 eingeführt. Besonders hervorzuheben für diejenigen, die daran interessiert sind, Puppet auszuprobieren, ist die Enterprise-Version in STS (Short Term Support) und LTS (Long Term Support). Zum Zeitpunkt der Erstellung dieses Artikels war die letzte LTS-Hauptversion 2018.1 (LTS). Diese Version erschien erstmals am 1. Mai 2018 und wird im November 2020 eingestellt und überlebt die Version 2019.1.1 neben allen anderen STS-Versionen. STS-Versionen haben einen Lebenszyklus von 6 Monaten, während die LTS-Versionen einen Lebenszyklus von 18 Monaten haben.
Konfigurationsmanagement im Allgemeinen
Die philosophischen Unterschiede und Fähigkeiten von SCCM und Puppet sind symptomatisch für eine breitere Konfigurationsmanagement-Szene, die sich in Bezug auf Innovationen in halsbrecherischer Geschwindigkeit bewegt. Zu den wichtigsten Projekten, die alternative Ansätze zu diesen beiden bieten, gehören:
- Saltstack - Saltstack ist das Unternehmen, das hinter dem Salt-Tool zur Verwaltung der Remote-Cluster-Konfiguration steht. Saltstack gibt es sowohl als Open-Source- als auch als Enterprise-Version. Es verwendet einen Master- und einen Minion-Ansatz, um Server in definierten Zuständen zu halten. Mit YAML, Jinja oder Python können Sie Formeln oder Zustände für die Installation und Orchestrierung von Paketen auf Saltstack-Minions definieren.
- Terraform - Im Gegensatz zu Konfigurationsmanagement-Tools wie SCCM und Puppet ist Terraform ein Bereitstellungstool, das ein unveränderliches Infrastrukturparadigma verwendet. Dies trägt dazu bei, die Konfigurationsabweichung zu reduzieren, die auf allen Ihren Servern auftreten kann, da jeder Server einen eindeutigen Verlauf von Konfigurationsänderungen entwickelt. Terraform stellt einheitliche Images oder Container mit Tools wie Docker oder Packer bereit.
- Azure Automation - Ein weiteres Cloud-basiertes Konfigurationsmanagement- und Automatisierungstool von Microsoft. Es bietet die Konfiguration des gewünschten Zustands und andere Infrastrukturverwaltungen für Windows- und Linux-Clouds. Es ist ein potenzieller Ersatz für Rechenzentrumsmanagement-Tools wie Orchestrator und ein hochmodernes Tool im Arsenal von Microsoft, da es mit AWS um Cloud-Marktanteile konkurriert.
- AWS CloudFormation - Amazons Infrastrukturbereitstellungs-, Konfigurations- und Verwaltungstool für AWS-Umgebungen. AWS CloudFormation vereinfacht die Bereitstellung von AWS-Ressourcen sowie deren Änderungen und Aktualisierungen. Es kann zusammen mit AWS Systems Manager Automation sowohl für die Definition der Cloud-Infrastruktur als auch für die Konfiguration der Betriebssysteme der Instanzen verwendet werden.
Community, Support, Preisgestaltung
Open-Source-Plattformen haben in der Regel ein viel größeres Zusammengehörigkeitsgefühl und Produkteigenverantwortung. Dies ist im Fall von Puppet nicht anders - eine aktive Benutzergemeinschaft und schnelles Feedback und eine schnelle Lösung sind da, wenn es nötig ist. Der Quellcode von Puppet ist auf Github verfügbar und Puppet ist der größte Akteur auf dem Open-Source-Markt für Konfigurationsmanagement. Mit dieser Größe geht eine gewisse Trägheit gegenüber Veränderungen und ein Verlust der Agilität einher. Es gab einige kleine, aber lautstarke Proteste in Diskussionsforen über Dinge wie die Langsamkeit von PuppetLabs bei der Behebung von Fehlern und das Drängen der Benutzer zur kommerziellen Unternehmensversion, wo sie ihr Geld verdienen.
Puppet rühmt sich auch, einige große Firmenkunden an Bord zu haben - Reddit, Dell, PayPal, Oracle, Los Alamos Labs und die Stanford University. Wenn man gegen einen namhaften etablierten Giganten wie Microsoft antritt, bieten solche Kunden eine große Glaubwürdigkeit in den Köpfen potenzieller Kunden und Benutzer. Wie die Open-Source-Version ist auch Puppet Enterprise für die ersten 10 Knoten kostenlos, kostet danach aber 120 US-Dollar pro Knoten und Jahr. Gestaffelte Rabatte sind ebenfalls bis zu 2500 Knoten verfügbar. Wie bereits erwähnt, funktioniert Puppet auf fast allen Plattformen, kann aber einfach nicht mit den Fähigkeiten von SCCM unter Windows mithalten. Sie können Puppet z. B. nicht zum Bereitstellen und Bereitstellen neuer Windows-Server verwenden, und AD kann nicht direkt aktualisiert werden, um den Status von Maschinen im Netzwerk widerzuspiegeln. Sie können den Puppet-Master jedoch in einem Container auf einem Windows-Computer ausführen.
Bei SCCM haben viele zunächst einmal ein Problem mit seiner geschlossenen, proprietären Natur. Allerdings ist auch die Unterstützung durch die Benutzergemeinschaft sehr gut. Das ist bei der Dominanz der Microsoft-Produkte nicht verwunderlich, und man bekommt auch hervorragende Antworten und Unterstützung von engagierten hauseigenen SCCM-Profis, á la der Genius-Bar im Apple Store.
Die SCCM-Preise sind kompliziert und nicht so einfach wie die von Puppet, insbesondere wenn Sie mehrere Server hinzufügen, aber dies ist bei fast allen Microsoft-Produkten üblich. Zur Veranschaulichung dieser übersichtlichen Preisgestaltung benötigen Sie sowohl clientverwaltete Lizenzen (MLs) als auch serververwaltete Lizenzen. Der Preis für Server-MLs hängt davon ab, ob Sie sich für die Option "Standard" oder "Datacenter" entscheiden, und variiert auch je nach Anzahl der Prozessoren, die Sie haben. So kostet beispielsweise das Spitzenmodell mit 4 Prozessoren für Rechenzentrumsserver 7230 US-Dollar, und dann müssen Sie immer noch die Kosten für Client-MLs (62 bis 121 US-Dollar) berücksichtigen. SCCM wird in der Regel viel teurer sein als Puppet, ist das, was wir hier zu sagen versuchen. Lesen Sie hier mehr über die SCCM-Preise.
SCCM vs. Puppet Fazit
Wenn Sie sich zwischen Puppet und SCCM entscheiden müssen, beschreiben Sie zunächst Ihre Anforderungen und suchen Sie dann nach dem Tool, das diesen Anforderungen am besten entspricht. Und denken Sie daran, Sie können sich glücklich schätzen, überhaupt eine solche Wahl zu haben - noch vor 10 Jahren gab es im Grunde nur ein CM-Tool! Die folgende Vor- und Nachteilsanalyse kann Ihnen bei der Entscheidungsfindung helfen, ebenso wie diese Website, die die Funktionen von SCCM und Puppet zusammenfasst und vergleicht.
| Profis | Nachteile | |
| SCCM |
|
|
| Marionette |
|
|