Ich denke, ein Entwickler-Hintergrund macht es schwieriger, ein "Entwickler" zu werden. Ihre Frage ist fast 3 Jahre alt. Es wäre interessant zu hören, wie Sie die Reise finden. Ich werde aus der Sicht von eine Antwort geben der sys admin über die von ihnen oben erwähnten anwendungen und hoffentlich gibt er etwas lichtes oder eine nicht-technische perspektive, die erklären kann, warum eine person (admin oder dev) genau darüber nachdenken würde, was sie zb von den devops gefragt haben Perspektive Wie ist die Beziehung zwischen x, y, z? Sind diese Werkzeuge größer als die Summe ihrer Teile?
Ich denke tatsächlich, dass Sys-Administratoren hier die Oberhand haben. Die meisten der in Ihrer Frage erwähnten Anwendungen lösen Administrationsprobleme und bieten auf diese Weise eine abstraktere Rechenzentrumsumgebung, die wiederum für Entwickler und neue Benutzer besser programmierbar ist. devops 'strategie (lies strategie / team, devops ist keine person). Wie ist also die Beziehung zu den Apps, die Sie erwähnen? Wie ergibt sich ein ganzheitlicher Ansatz für den IT-Service?
OpenStack: Ein Tool, mit dem Sie Ihre eigene private Cloud erstellen können, also vergleichbar mit etwas wie AWS
Das ist was es ist, aber was macht es? - Das Betriebssystem mit dem meistens treffenden Namen war DOS - Es betrieb Ihre Festplatte durch Abstraktion des BIOS, OpenStack betreibt Ihr Rechenzentrum und abstrahiert Ihre Infrastruktur (IaaS - ist Jargon für das Betriebssystem des Rechenzentrums). Jetzt verfügt Ihr Rechenzentrum über eine API, eine Befehlssyntax und eine GUI. OpenStack kann Hypervisoren, Switches, Router, Firewalls, Storage Area Networks, Load Balancer, Docker-Hosts usw. steuern. Openstack verwendet das Plug-In Ihres Hardwareherstellers oder die jeweilige Funktion kann nur in Software als Software existieren, die etwas definiertoder Netzwerkfunktionsvirtualisierung. Darüber hinaus können OpenStack und alle anderen Clouds ihre eigene Infrastruktur orchestrieren, indem Sie Skripte lesen, die Sie in die Orchestrierungs-Engine einschleusen oder die auf Regeln basieren (Skalieren, Skalieren usw.). Openstack ist also eine riesige Abstraktionsebene, z. B. ist es mir egal, welchen Switch ich habe, geben Sie mir ein Netzwerk mit diesem Befehl, oder erstellen Sie mir einen komplizierten Lastenausgleich, HA, öffentlich verfügbar, automatische Skalierung, registrierter Domainname, Speicher beigefügte Sache - mit diesem Skript fand ich im Internet.
Docker: Eine "schlanke VM", die auf einigen Linux-Kernelkonzepten basiert und zum isolierten Ausführen von Prozessen verwendet werden kann, z. B. in einer gemeinsam genutzten Webhosting-Umgebung.
Docker ist eine weitere Abstraktionsebene und wie Cloud eine disruptive Technologie ist, verändert sie die Branche, da sie viele betriebliche "Probleme" wie Softwareabhängigkeiten, Upgrades, Datenisolierung und reine Portabilität löst. Java wurde populär wegen seiner Quellcode-Portabilität, über die Entwickler nicht nachdenken mussten. Eine laufende JVM bedeutete, dass ihr Code auf der Kaffeemaschine ausgeführt werden sollte, solange sie Java unterstützt. Docker löst ein ähnliches Problem. Um meine App auszuführen, benötigen Sie einen Docker-Host, nicht, du brauchst diese Version von Python, diesen Kernel, diese Linux-Distribution und so weiter, die App hat natürlich immer noch diese Abhängigkeiten, aber der zugrunde liegende Host kümmert sich nicht darum und der Administrator kümmert sich nicht darum, was du in einem isolierten Container tust ( bis zu einem Punkt). Docker verändert sowohl das Entwicklungs- als auch das Betriebsparadigma und behandelt ein gesamtes Betriebssystem und dessen Dienste wie eine Binärdatei. wir können sie aus einem Repository holen , versionieren, modifizieren, mit Parametern ausführen usw.
Chef: Ein Tool zum Einrichten und Konfigurieren eines Betriebssystems, z. B. innerhalb einer VM.
Ja, und nicht so störend wie die ersten beiden: Chef, Marionette, Ansible, Salt, System Center Operations Manager und eine Vielzahl anderer Anwendungen in diesem Bereich bieten Entwicklern und Administratoren die Möglichkeit, Bereitstellungen, Upgrades und andere Aktionen zu modellieren (config Änderungen), scheint es keinen Standard zu geben, der diese Bemühungen wie bei der Cloud beurteilt . Aber wir haben es nicht mit etwas so Bestimmtem wie der Infrastruktur zu tun, daher ist es schmerzhafter, dies zu lernen, und es ist nicht viel von einem zum anderen übertragbar.
Vagrant: Meines Erachtens geht es darum, die Erstellung und Verwaltung von VMs zu automatisieren: Sie werden eingerichtet, gestartet und gestoppt. Dies kann mit einer lokalen VM oder remote erfolgen, z. B. auf einer Cloud-Plattform.
Dies ist die ungerade aus der Liste der Apps, die Sie erwähnen. Vagrant ist ein Tool für Entwickler und ein Spielzeug für Administratoren. Mit Vagrant können Sie schnell eine Entwicklungsumgebung aufbauen. Ich möchte z. B. eine Android-App entwickeln, eine IDE von holen Vagabund, ich denke, es wird bald von Docker überholt.
Können Sie mir einen Rat geben, wie ich mit all dem anfangen soll (es ist ziemlich viel zur gleichen Zeit und ich weiß noch nicht, wo ich anfangen soll)?
Aus diesem Grund denke ich, dass Administratoren die Oberhand haben. Wir mussten das meiste manuell erledigen und wissen, was schief gehen kann. Puppenmanifeste, Cloud-Computing und Docker-Orchestrierung werden uns leichter fallen Rat an potenzielle Entwickler ist, zuerst Administrator zu sein.