2016-06-21 10 views

risposta

13

ci sono alcuni motivi si potrebbe scegliere Spinnaker su Jenkins (2.0) Pipeline come strumento di CD:

  1. Spinnaker include un'interfaccia web che può effettivamente il provisioning delle risorse, e farlo in molteplici ambienti cloud. Quindi, per creare risorse di base come VM, load balancer, cluster, ecc., Puoi farlo dalla stessa interfaccia utente del tuo strumento di consegna.
  2. Se la tua architettura è simile a quella di Netflix, Netflix utilizza questa come l'intera piattaforma di gestione del cloud, così poco o nessun bisogno di strumenti sparsi per supportare la consegna e la gestione dell'infrastruttura.

D'altra parte, ci sono molte ragioni per scegliere Jenkins Pipeline oltre Spinnaker

  1. Spinnaker richiede ancora un tool di creazione, quindi potrebbe essere necessario per mantenere Jenkins in ogni modo. Quindi, se Jenkins Pipeline diventa il tuo strumento CD, può già eseguire in modo nativo le attività specifiche del tuo esecutore.
  2. Spinnaker non ha controlli di accesso a grana fine (e solo l'autenticazione aggiunta di recente di qualsiasi tipo), mentre Jenkins ha molti plug-in e configurazioni native all'interno di Pipeline per offrire il controllo degli accessi a livello di risorse.
  3. Tutto è guidato da un singolo script groovy, quindi è true configuration-as-code. Permette un semplice flusso/logica/controllo che non è possibile (o almeno facile) in altri strumenti CD.
  4. Supporto pipeline multigruppo, creare/rimuovere/cambiare rami facilmente
  5. Supporto plug-in esteso per Jenkins già. Ad esempio, stiamo utilizzando lo AWS ECS Plugin per consentire i nodi di finestra mobile dinamici per le nostre pipeline.
  6. Condividi/condividi facilmente il codice verso le condutture. Si avrà certamente funzioni riutilizzabili che si desidera utilizzare su più oleodotti, Jenkins rende questo facile con strumenti come Remote Loader Plugin
  7. supporto grande comunità

Abbiamo infine scelto Jenkins 2,0 Pipeline come il nostro strumento di CD su Spinnaker e molti altri .

+0

Grazie molto bene a Neil :) –

45

Lavoro intensamente sull'integrazione Jenkins in Spinnaker e nella funzionalità Pipelines su Netflix.

Spinnaker non è mai stato concepito come uno strumento di costruzione end-to-end. Ci sono cose che Jenkins farà meglio in termini di gestione SCM, test, costruzione di pacchetti, plug-in gazillion ecc. Ecc.

La cosa che Spinnaker cerca di fare bene è prendere un pezzo di software che hai pubblicato (un pacchetto debian, un'immagine docker o un JAR distribuibile) ed eseguilo attraverso un prevedibile ciclo di distribuzione del software che è altamente personalizzabile. In altre parole, tutte le funzionalità di Spinnaker sono progettate per semplificare l'implementazione di artefatti multi-account, multi-account e altamente disponibili.

Le condotte dello spinnaker assumono una vista centrata sulla nube. La maggior parte dei nostri stadi di pipeline e controlli API riguardano la creazione di nuovi gruppi di server e la modifica dei gruppi di server esistenti in un modo che sia prevedibile e di facile utilizzo.In caso di dubbio, questo è il caso per cui ottimizziamo.

Abbiamo opinioni più forti su come l'implementazione del cloud è simile e avremo spesso un'interfaccia utente point-and-click quando ci occuperemo di attività di distribuzione del cloud nelle nostre pipeline CD --- trova l'immagine nel cluster x, disabilita questo cluster, ridimensionare un gruppo di server, ridurre questo cluster, rendere questo cluster prendere traffico, distruggere questo vecchio cluster, ecc.

La funzionalità di pipeline Jenkins non era disponibile per noi quando abbiamo iniziato a scrivere Spinnaker 2+ anni fa, quindi abbiamo creato la funzionalità che avevamo bisogno. Il supporto di Jenkins ci è emerso dalle nostre esigenze per aiutare altri team di Netflix a costruire internamente migliaia di pipeline di distribuzione. Dato che Netflix si affida a Jenkins pesantemente per la costruzione e il test, la transizione tra i lavori Jenkins e gli stage di Spinnaker è piuttosto semplice.

Ci sono team in Netflix che non utilizzano la funzionalità della pipeline di Spinnaker e utilizzano invece l'API Spinnaker nei propri lavori Jenkins come scorciatoia per la distribuzione in AWS. Se si utilizzano pipeline Jenkins o strumenti CD simili, Spinnaker rende la fase di implementazione davvero flessibile.

Abbiamo anche le squadre che, come il modo in cui si rompe Spinnaker lavori Jenkins in atomici, le attività riutilizzabili in tutto una sola applicazione. I team che non si distribuiscono sul cloud utilizzano Spinnaker perché i nostri oleodotti soddisfano le loro esigenze meglio di quello che possono trovare nel mondo Jenkins.

Jenkins tubazioni sono abbastanza carino. Non penso che Spinnaker sostituirà mai completamente Jenkins e il milione di cose che fa. Il nostro obiettivo è semplicemente rendere il passaggio "deploy to cloud" più semplice ed estensibile. La scelta di usare l'uno sull'altro, insieme o per niente, dipende da te.

0

Usiamo Maven confezionare intero codice base insieme con configurazioni, proprietà (cioè tutto ciò che è con versione in GitHub) e creare un RPM fuori di esso. Con questo termine di flusso, attiviamo le pipeline di Spinnaker in AWS o in qualsiasi altro cloud per avviare la parte CD.

Spinnaker è molto particolare, con questo dato ambito CD.

  1. Promozione codice: lo stesso RPM che promuoviamo assicura che stiamo rendendo immutabile il nostro codice sottostante/env.

  2. possiamo controllare il ridimensionamento delle istanze dalla console Spinnaker sé

  3. Roll back è un solo click.

  4. Tutti i moderni concetti di distribuzione come il Blu-verde/rosso-nero, canarino, highlander ecc è OOB qui.

  5. tronchi Pipeline offre una visione molto penetranti, sia di alto livello e basso livello

  6. implementazioni regione Multi (DR strategica)

se qualcuno ha bisogno di un aiuto (aiuto!) Su come installare Spinnaker in RHEL, puoi farmelo sapere.

Ma devo dire che usiamo Spinnaker solo per il cloud deployment centric.

Problemi correlati