2017-08-09 1 views
1

Im Moment verwenden wir eine Kombination aus Jenkins Pipelines und Ansible Playbooks. Normalerweise enden wir mit kurzen ansprechbaren Spielbüchern, die entweder innerhalb der Jenkins-Pipeline oder einfach als Jenkins-Job laufen.Ansible oder Jenkins Pipelines für größere Jobs

Was wäre ein besserer Ansatz für kompliziertere, mehrstufige Jobs?

Zum Beispiel ein Job besteht aus:

  1. starten EC2-Instanz von AMI
  2. Run Migrationen
  3. neuesten Code Ziehen, kompilieren und starten
  4. neue AMI Erstellen von temporären Instanz
  5. Terminate temporäre Instanz

Ich mag die Tatsache, dass ich Benutzereingaben in Jenkins-Pipelines sowie die grafische Darstellung jedes Schrittes in der Pipeline handhaben kann. Im obigen Beispiel wäre jeder Schritt wahrscheinlich sein eigenes kleines sprechbares Spielbuch. Das Übergeben von Parametern von Spielbuch zu Spielbuch ist nicht so einfach, aber wir wissen, wie es geht.

Ich bin nicht 100% sicher, wenn ich dies bis zum besten Standard tue, da während der Erstellung dieser Pipelines denke ich, dass dies wahrscheinlich ansible und anders herum sein sollte.

Gibt es einen Sweet Spot, wie man diese beiden zusammen benutzt?

Antwort

2

Nun, Sie sind in der Tat kennt die Einschränkungen, die jedes Werkzeug auf den Tisch bringt,

Der Sweet Spot wäre, was das Beste für Sie und Ihr Unternehmen, fragen jetzt, selbst, welcher Ansatz wäre einfacher managen? welcher würde beim Skalieren zu kompliziert werden?

Ich habe beide Ansätze gemacht und festgestellt, dass die Pipelinetools von Jenkins die beste Wirkung in Bezug auf "Lesbarkeit" und Leichtigkeit der Verwaltung zu haben scheinen, dies ist besonders offensichtlich, wenn wir die Chance hatten, neue Mitglieder auf die team und sie können einen schnellen überblick über die prozesse bekommen, indem sie einfach unsere pipeline auf jenkins anschauen,

Jetzt haben wir auch eine kombination von jenkins (nur ci) + nexus (artefakt management) + octopus (nur cd) + ansible (provisioning), um alles an komplizierten Pipelines zu handhaben,

Noch einmal, fragen Sie sich, was einfacher zu verwalten wäre, und was am ehesten mit der Zeit wachsen wird (Anzahl der Schritte auf dem Pipeli ne, die Anzahl der Pipelines oder Jobs, die Anzahl der Server zu verwalten, etc ...) und eine Entscheidung auf dieser Grundlage nehmen,

Mit besten Grüßen,

+0

Ja, ich dachte, es ist nicht gerade nach vorne gehen zu beantworten. Ich mag definitiv Ansible für Dinge wie Deployment, Architekturmanagement usw., einfach wegen seiner Plugins und der einfachen Verbindung zu skalierbaren Instanzen. Aber Pipelines scheinen die bessere Wahl zu sein, um den gesamten Prozess zu orchestrieren. – Tom

+0

Genau, selbst dann könnte man einfach Zeug wie ein dynamisches Inventar haben und einen Schritt auf einer Jenkins-Pipeline machen, um die ganze Serverflotte bereitzustellen. Sie können auch Release-Management-Tools betrachten, ich habe keine Alternative zu Octopus-Deploy in der Benutzerfreundlichkeit gefunden, und die Tatsache, dass es Ihrem Team hilft, eine höhere Ansicht des Prozesses zu erhalten, auf diese Weise wissen Sie, in welcher Umgebung welcher Zustand und kann ältere Releases leicht reproduzieren und auf eine sicherere Weise zurückrollen! –

+0

Fast fertig die Pipeline, die ich ursprünglich geschrieben hatte, lernte definitiv viel. Ansible und Jenkins Dokumentation ... oh Junge ... Ich habe Octopus gesehen, aber ich denke, wir haben es abgewiesen, weil es zu teuer war – Tom

Verwandte Themen