
kontaktiere uns


In den letzten acht Jahren haben wir die Entwicklung von Web-Ökosystemen mit besonderer Aufmerksamkeit beobachtet wie Rubin und Ruby on Rails, was ist eines der wichtigsten Tools für die Backend-Infrastruktur die wir auf beiden verwenden Entwicklung von Web- und mobilen Apps.
Acht Jahre sind eine lange Zeit im Leben einer Technologie in einem nie endenden Evolutionsprozess. Aus diesem Grund haben wir Projekte gesehen, die in fast vergessenen Gebieten gebaut wurden Schienen 3.1 oben auf Rubin 1.9, ohne Schlüsselwortargumente oder Operatoren für sichere Navigation, zur neuesten Schienen 5.2.2 auf Rubin 2.5.3. Fügen Sie nun mehrere verschiedene Versionen von Gems und eine Prise Paketabhängigkeiten hinzu — zusätzlich zu den verschiedenen Betriebssystemen — und wir erhalten eine Vielzahl von Projektumgebungen.
In solchen Szenarien wird es zu einer kritischen und dringenden Aufgabe, eine Entwicklungsumgebung einzurichten, die es ermöglicht, die Bedingungen zu replizieren, um einen Fehler zu reproduzieren, oder sogar eine schnelle Möglichkeit zu haben, den aktuellen Stand des Projekts zu überprüfen, um den Aufwand für die Einführung einer neuen Funktion abzuschätzen.
Der Wechsel zwischen Projekten mit unterschiedlichen Konfigurationen und Umgebungen wird schwieriger, und der Übergang zu alten Projekten, um einen Hotfix bereitzustellen, wird zu einer schrecklichen und frustrierenden Aufgabe.
Das liegt daran, dass die Einrichtung alter Projekte länger dauert als die Zeit, einen neuen Hotfix zu reproduzieren, zu reparieren und bereitzustellen.
Das macht keinen Spaß.
Das ist nicht gesund.
Das ist nicht effizient.
Es wurde deutlich, dass die Entwicklungsumgebung portabel und begrenzt erhalten werden muss, um einen reibungsloseren Übergang zwischen Projekten zu ermöglichen.
Das ist wann Landstreicher trat in Aktion.
Landstreicher ist ein beliebtes Open-Source-Tool zur Deklaration und Verwaltung virtueller Maschinen von Haschi Corp.. Seine Popularität kommt vom Einfachen Rubin Syntax, die eine Ressource aus dem Basisimage, die Funktion zur Ressourcenzuweisung und andere kleinere Bereitstellungskonfigurationen beschreibt, z. B. wie ein gemeinsam genutzter Ordner bereitgestellt wird, oder Hook-Bereitstellungsskripts zur Vorbereitung der Entwicklungsumgebung.
Es gibt auch eine Vielzahl von Anbietern, die Folgendes unterstützen können Landstreicher auf mehreren Plattformen, mit der Erstellung einer lokalen virtuellen Maschine auf Virtuelle Box, VMWare und Hyper-V.
Darüber hinaus wurde es von der Community erweitert, um beliebte Hosting-Dienste wie Amazon Web Services oder Digitaler Ozean, sodass sie als Anbieter arbeiten und den gesamten Erstellungs- und Verwaltungsprozess von abstrahieren können Tröpfchen und EC2-Instanzen.
Auf diese Weise können Entwickler mehrere Knotenarchitekturen über eine vertraute Oberfläche simulieren und koordinieren. Und das Beste daran? Alle Spezifikationen werden in einer einzigen Textdatei erstellt, die einfach zu einem Projekt gebündelt und unter Versionskontrolle aufbewahrt werden kann, sodass Sie sie auschecken können.
Landstreicher bietet eine schnelle und saubere Art der Interaktion mit Entwicklungsumgebungen und verwendet dabei ein Betriebssystem, das Staging und Produktion ähnelt. Dies erhöht die Widerstandsfähigkeit von Anwendungen und macht sie weniger anfällig für Fehler, die in Entwicklungsumgebungen verborgen bleiben. Vagrant allein ist jedoch nicht das beste Tool zur Bereitstellung einer virtuellen Maschine.
In Anbetracht dessen Ansible war unsere bevorzugte Waffe für die Bereitstellung der virtuellen Maschinen. Es erfordert keinen Agenten, der auf der virtuellen Maschine ausgeführt wird, wie andere Alternativen wie Chefkoch und Marionette würde und erledigt den größten Teil seiner Arbeit Drücken, über SSH.
Seine Spezifikationen sind gemacht in YAMLDadurch ist es gut lesbar und leicht verständlich, sodass jeder schnell jede Anweisung übernehmen und ein Bereitstellungsskript an neue Bedürfnisse anpassen kann, z. B. um eine zusätzliche Systembibliothek für ein neues Gem hinzuzufügen. Die Gesamtstruktur der Skripte ermöglicht zudem einen klaren Überblick über die Änderungen, die gerade eingeführt werden. Das hilft dabei, die neuen Abhängigkeiten mit einzubeziehen, die bei Code-Reviews und Sicherheitsaudits hinzugefügt wurden. Das ist leicht zu übersehen, wenn man ein einfaches Shell-Skript mit langen Befehlen evaluiert, das wie ein endloser Güterzug aussieht.
Mit Landstreicher, Ansibles Skripte sind nur Klartext, der zusammen mit dem Projekt unter Versionscode gespeichert werden kann.
Ähnlich wie bei jeder anderen Innovation Landstreicher und Ansibles Die Einführung kann bei ihrer Verabschiedung auf unterschiedlich starken Widerstand stoßen. Entwickler, die über einen längeren Zeitraum mit nur einem Projekt befasst sind, sind sich dieser Notwendigkeit möglicherweise nicht voll bewusst oder schätzen dessen Portabilität nicht voll und ganz, und das ist verständlich.
Wenn Entwickler jedoch von Projekt zu Projekt springen und täglich an verschiedenen Dingen herumbasteln, werden sie besser verstehen, wie wertvoll Vagrant ist. Es ist kein ungewöhnliches Szenario, etwas an einem alten zu reparieren Python Projekt am Morgen, wechsel zu Rubin Wartung am Nachmittag und basteln Node.js Am nächsten Tag zum Beispiel.
Vagrant ermöglicht es effizient, den Kontext des Projekts zu ändern.
Ansible alone ist ein leistungsstarkes Bereitstellungstool, das effektiv mit mehreren interagiert VPS und kann verwendet werden, um Änderungen in großen Clustern bereitzustellen. Während einer massiven Nutzung von Ansible Die Verwaltung großer Cluster ist in naher Zukunft nicht absehbar. Wenn man es konsequent einsetzt, kann man die bereits erstellten Ansible-Skripte wiederverwenden, um virtuelle Entwicklungsmaschinen einzurichten und die bereitzustellen VPS das sowohl Staging- als auch Produktionsumgebungen hosten wird.
Es orientiert sich größtenteils an den Best Practices der Entwicklung, da es gute und flexible Bereitstellungsskripte erstellt, die mehr als nur die Bereitstellung einer virtuellen Maschine ermöglichen und sie wiederverwenden können, wenn versucht wird, die Anwendung in mehreren Umgebungen bereitzustellen.
Während Landstreicher kann als Tool zum Erstellen und Verwalten verwendet werden VPS Für die Entwicklung oder sogar für die Erstellung von Staging- und Produktionsumgebungen gibt es andere Tools, mit denen dieselben Ziele erreicht werden können, wie z. Terraform.
Aber das ist eine ganz neue Geschichte für einen anderen Tag...
Fanden Sie diesen Artikel interessant? Diese könnten dir auch gefallen!
Your everyday web developer who likes to hide in the backend. Javascript and Ruby are my jam. I still fumble with Docker and my builds break quite often.
People who read this post, also found these interesting: