Trending
  • Java 17 รจ arrivato
  • Google Cloud Platform via Proxy
  • Microsoft lancia VSCode.Dev
  • The Future of Java: Records, Sealed...
  • Come creare immagini Docker x86 (e altre!)...
NodeX
Navigate
  • Home
  • Cloud
  • Tools
  • DevOps
GitHub Actions o Jenkins?

GitHub Actions o Jenkins?

0
By Admin on Jan 21, 2021 DevOps

Negli ultimi anni, DevOps è diventato una parte cruciale del ciclo di vita del software. Ciò ha alimentato la crescita di molti strumenti e pratiche DevOps. È possibile trovare una gamma di strumenti per supportare il processo CI/CD. Jenkins e GitHub Actions sono probabilmente ora gli strumenti di punta.

Introduzione Jenkins e GitHub Actions

Cominciamo con Jenkins. Ecco una breve descrizione, “Jenkins è un server di automazione gratuito e Open Source. Aiuta ad automatizzare le parti dello sviluppo del software relative alla creazione, al test e alla distribuzione, facilitando l'integrazione continua e il deploy". ~ Da Wikipedia

Allo stesso modo, GitHub Actions è l'ultima delle due offerte da GitHub come offerta SaaS.
"GitHub Actions ora rende più semplice automatizzare il modo in cui crei, collaudi e distribuisci i tuoi progetti su qualsiasi piattaforma, inclusi Linux, MacOS e Windows. Esegui i tuoi flussi di lavoro in un contenitore o in una macchina virtuale ". ~ Dal blog di GitHub

Prima di decidere se vale la pena cambiare, capiamo chi dovrebbe considerarlo in primo luogo.

Dovresti considerare il passaggio da Jenkins?

Se tutto funziona per te con Jenkins, sei sicuro della tua configurazione pur avendo il pieno controllo e il costo non è un problema, consiglierei di rimanere con Jenkins. Per coloro che utilizzano GitHub come piattaforma di controllo del codice sorgente e già sentono di non essere sicuri della configurazione di Jenkins e cercano un'alternativa migliore, le azioni di GitHub diventeranno la scelta principale da prendere in considerazione.

Poiché GitHub Actions è un servizio completamente gestito da GitHub, non è necessario sapere come ridimensionare e utilizzare l'infrastruttura per eseguirlo.
Questo è il motivo principale per cui ho scelto di trasferirmi da Jenkins, dove non avevo il pieno controllo di ciò che stava accadendo con le mie pipeline CI/CD.

Alcune delle sfide che ho dovuto affrontare su Jenkins:

  • Mantenere aggiornati i plugin.
  • La mia singola build del server Jenkins costa denaro anche se non eseguo nessuna build.
  • Non coerente su build simultanee.
  • Ho dovuto dipendere da diversi plugin, che vengono forniti con aggiornamenti che devo gestire di volta in volta.
  • So che esistono soluzioni con Jenkins per risolvere alcuni di questi problemi, ma ne avevo abbastanza e sono passato a una piattaforma gestita.

Diamo un'occhiata alle funzionalità offerte da GitHub Actions per considerare questa mossa.

Facilità di installazione: è tutto gestito da GitHub
Il primo e più importante punto di forza delle azioni GitHub su Jenkins, a mio parere, è la facilità di installazione in GitHub Actions. Le azioni di GitHub operano nel cloud. Hai anche la possibilità di eseguirlo localmente, funzionalità che si chiama runner. Al contrario, Jenkins non dispone di un'offerta di servizi gestiti ufficialmente. E potrei non scegliere alcuna offerta gestita da terze parti per Jenkins. Ritengo che sia troppo rischioso cedere l'accesso al codice sorgente e alle informazioni sensibili a un provider di terze parti.

Per questo motivo, il server Jenkins necessita di installazione, mentre GitHub Actions non ne ha bisogno. Di conseguenza, il processo di configurazione è molto conveniente nelle azioni di GitHub. Inoltre, le GitHub Actions sono una serie di docker runs. Richiede solo una docker build e docker run. Questo lo rende molto facile da eseguire ed eseguire il debug.

All'inizio, Jenkins sembra più flessibile delle azioni di GitHub. Jenkins si basa principalmente su account e trigger e si concentra sulle build. Questi non sono conformi agli eventi GitHub. Al contrario, le GitHub Actions coprono un'ampia gamma. Pertanto, c'è un'azione GitHub per ogni evento GitHub.

Le azioni di GitHub supportano molti linguaggi e framework e sono anche scritte in YAML. Pertanto, questi possono essere modificati, riutilizzati, condivisi proprio come il codice. È semplice da usare con GitHub perché quando esegui il fork di un repository, le azioni vengono automaticamente duplicate con fork.

Ciò consente di testare e creare progetti in modo molto efficiente e persino di eseguirli più vicino allo sviluppatore. Inoltre, hai un accesso immediatamente disponibile all'API GitHub, rendendola più popolare tra gli sviluppatori.

Un caso d'uso popolare di un'integrazione così stretta può essere visto quando si usa Bit (Github). Bit è uno strumento e una piattaforma che semplifica la condivisione di componenti JS (Node, React, Vue, Angular, ecc.) Da qualsiasi repository al servizio cloud di Bit e da lì ad altri repository.

Il servizio cloud di Bit può generare automaticamente richieste pull a tutti i repository Github interessati da una modifica apportata a un componente condiviso. Questi PR generati automaticamente possono fungere da trigger per le azioni GitHub.  Tutto ciò significa che una modifica apportata a un singolo componente (condiviso) può propagarsi in tutti i repository che lo utilizzano , attivando CI che convalidano che nulla sia stato corroto in tutti i progetti

Un'altra grande "caratteristica" delle GitHub Actions è che possono essere condivise tra loro tramite GitHub Marketplace. Potresti riutilizzare le azioni scritte da altri sviluppatori, il che potrebbe farti risparmiare molto tempo ed evitare di riscrivere il codice già disponibile.

Le GitHub Actions per impostazione predefinita seguono il modello master-slave (coordinatore e nodi di compilazione) in contrasto con la pipeline sequenziale che Jenkins ci offre.
Tuttavia, è importante notare che una configurazione simile è possibile con Jenkins, ma richiederà ulteriori sforzi e conoscenze per renderlo operativo.

Se utilizzi Jenkins, la configurazione predefinita eseguirà ogni passaggio della pipeline di distribuzione in modo sincrono. Ad esempio, se è necessario eseguire test unitari, test di integrazione e alcune verifiche sonar, dovranno essere eseguiti in un unico ambiente server. Potrebbe ritardare le esecuzioni in base alle risorse disponibili nel tuo server. Inoltre, non dovrai compiere ulteriori sforzi per rendere affidabili le condutture.

Con l'uso di GitHub Actions, queste possono essere parallelizzate.

Abbiamo esaminato criticamente alcune aree in cui le azioni di GitHub precedono Jenkins per quanto riguarda i loro vantaggi. Inoltre, le azioni GitHub stanno crescendo più velocemente di Jenkins, dove migliaia di azioni GitHub vengono rilasciate sul mercato GitHub. La comunità attorno a questo sta anche migliorando dove ci sono repository dedicati per le azioni GitHub. Cosa significa?

Fonte: bitsrc.io

Tagged In News Devops Bit Jenkins Github actions 
Share Twitter Facebook Google+ Pinterest LinkedIn Tumblr Email
comments powered by Disqus
    • Popular
    • Recent
    • Hot
    • The Future of Java: Records, Sealed Classes and Pattern...
      Nov 24, 2021 0 The Future of Java: Records, Sealed Classes and Pattern...
    • Comandi Kafka
      Jan 16, 2021 0 Comandi Kafka
    • Apache Spark porta l'API Pandas con la versione 3.2
      Nov 12, 2021 0 Apache Spark porta l'API Pandas con la versione 3.2
    • The Future of Java: Records, Sealed Classes and Pattern...
      Nov 24, 2021 0 The Future of Java: Records, Sealed Classes and Pattern...
    • CNCF pubblica l'ultimo radar tecnologico incentrato su...
      Nov 22, 2021 0 CNCF pubblica l'ultimo radar tecnologico incentrato su...
    • Elaborazione degli eventi in tempo reale exactly-once su...
      Nov 15, 2021 0 Elaborazione degli eventi in tempo reale exactly-once su...
    • Come funzionano le Pull Request di GitHub
      Jan 21, 2021 0 Come funzionano le Pull Request di GitHub
    • Comandi Kafka
      Jan 16, 2021 0 Comandi Kafka
    • Google Cloud Platform via Proxy
      Jan 10, 2021 0 Google Cloud Platform via Proxy
  • Latest News

  • Latest Reviews

  • About

    NodeX

    DevOps News

    Parliamo di Cloud computing, Continuous Integration, Continuous Delivery, DevOps, Docker, Kubernetes, Terraform, GitHub e molto altro...

  • Popular Posts

    • The Future of Java: Records, Sealed Classes and Pattern...
      Nov 24, 2021 0 The Future of Java: Records, Sealed Classes and Pattern...
    • Comandi Kafka
      Jan 16, 2021 0 Comandi Kafka
    • Apache Spark porta l'API Pandas con la versione 3.2
      Nov 12, 2021 0 Apache Spark porta l'API Pandas con la versione 3.2
  • News Stream

    The Future of Java:...
    CNCF pubblica l'ultimo...
    Elaborazione degli eventi...
    Apache Spark porta l'API...
    GCE: Provided scope(s) are...
    Java Novembre 2021
    Java 17 รจ arrivato
    Microsoft lancia VSCode.Dev
    AWS annuncia la...
    Datadog monitoring per...
    Java - Observability con...
    I moduli in Terraform
Copyright © 2021. Powered by Powerpad CMS Reloaded
  • About
  • Privacy
  • Contact
Home Devops
^ Top