Panoramica
Podman Desktop è uno strumento open source gratuito pensato per semplificare l'utilizzo dei container in ambienti di sviluppo locali. Podman Desktop consente agli sviluppatori di gestire i container tramite un'interfaccia utente grafica (GUI) coerente in tutti gli ambienti locali Windows, macOS e Linux®.
Podman Desktop è legato al progetto Podman, uno strumento progettato per la gestione dei container, e Red Hat è uno dei principali contributori ai progetti open source Podman e Podman Desktop.
A cosa servono i container e Kubernetes?
Podman Desktop è una soluzione che permette di massimizzare i vantaggi offerti dai container. I container raggruppano tutti i file necessari per l'esecuzione di un'applicazione in un'immagine che si può distribuire nei diversi ambienti informatici in modo semplice e coerente. Le applicazioni containerizzate sono unità isolate, per cui un problema su un'applicazione non pregiudica il funzionamento delle altre. Funzionando in maniera indipendente, i container possono quindi essere arrestati e riavviati senza necessità di interrompere gli altri container e servizi.
I container offrono un approccio ottimale per lo sviluppo in ambienti cloud ibridi perché i team possono creare e testare un'applicazione e sapere che funzionerà allo stesso modo in tutti gli ambienti di sviluppo, test e produzione, di qualsiasi tipologia siano tali ambienti: on premise, nel cloud o multicloud.
Ipotizziamo ora di adottare un servizio containerizzato per supportare uno scenario di utilizzo aziendale di grandi dimensioni in cui più container operano in sinergia e attingono da un pool condiviso di risorse di elaborazione. Questo è il contesto in cui si inserisce Kubernetes, una piattaforma open source per l'orchestrazione dei container prettamente pensata per la gestione scalabile di grandi gruppi di container. Grazie allo sviluppo containerizzato e a Kubernetes, i team del software possono supportare progetti di importanti dimensioni senza compromettere iterazione rapida e scalabilità. Possono inoltre introdurre controlli per la sicurezza dei container all'interno della pipeline di integrazione e distribuzione continue (CI/CD).
Nonostante i notevoli vantaggi, i team possono trovarsi ad affrontare anche delle difficoltà. Questo perché per utilizzare i container è necessario che i team delle applicazioni progettino e creino i software per Kubernetes, e la maggior parte dei team dedicati al software ha un'esperienza limitata con Kubernetes. In quest'ottica, Podman Desktop si configura come uno strumento pratico a supporto degli sviluppatori che questi possono sfruttare, oltre che per gestire lo sviluppo di applicazioni containerizzate in ambienti locali, anche per acquisire maggiore dimestichezza con i container e approfondire le proprie conoscenze su Kubernetes.
Podman Desktop consente di svolgere le attività di sviluppo in ambienti locali senza conseguenze sulle risorse esterne e senza dover attendere che il team operativo effettui il provisioning dell'infrastruttura.
Prima di illustrare nel dettaglio Podman Desktop, spieghiamo cos'è il progetto Podman e quali sono i suoi obiettivi.
Risorse da Red Hat
Cos'è Podman?
Podman (contrazione di POD manager) è uno strumento open source che agevola lo sviluppo e l'utilizzo dei container, ed è la base di Podman Desktop. Per impostazione predefinita, Podman supporta i container rootless, un approccio che limita l'assegnazione di privilegi root, migliora la sicurezza e riduce il rischio di generare vulnerabilità nei sistemi.
Podman raggruppa i container in pod, che vengono eseguiti simultaneamente e condividono le stesse risorse, in modo simile ai pod Kubernetes. Podman gestisce i pod tramite un'interfaccia a riga di comando (CLI) e la libreria libpod, che fornisce le interfacce di programmazione delle applicazioni (API) per la gestione di container, pod, immagini di container e volumi.
Per impostazione predefinita, Podman crea e supporta i container Open Container Initiative (OCI), pensati per soddisfare gli standard di settore in termini di runtime e formati dei container. Esegue anche immagini formattate in Docker. Podman è uno strumento completo che si può utilizzare in alternativa o congiuntamente a Docker, poiché le due soluzioni sono compatibili.
Quali attività è possibile eseguire con Podman Desktop?
Con la GUI Podman Desktop è possibile creare, eseguire, gestire e applicare correzioni a container e pod in locale dal proprio laptop o dalla propria workstation. Si possono inoltre eseguire i pod, con o senza Kubernetes, e gestire più motori per container.
Interoperabilità con i container
Podman Desktop consente non solo di estrarre le immagini di container da qualunque registro, ma fornisce anche una visualizzazione unificata di tutti i container e un'interfaccia intuitiva con cui avviarli, arrestarli, eliminarli, eseguirne il riavvio, esportarli e distribuirli. Podman Desktop permette di:
- Visualizzare i registri ed eseguire l'accesso shell a container in esecuzione senza lasciare l'interfaccia Podman Desktop.
- Creare le proprie immagini di container e inviarle a qualunque registro.
- Raggruppare i container in pod per le applicazioni e visualizzare i registri unificati per i pod.
Interoperabilità con Kubernetes
Adottare Podman Desktop è un'ottima soluzione per acquisire i concetti di base di Kubernetes, come architettura daemonless e pod, per poi applicarli in pratica per i propri obiettivi. Podman Desktop permette di:
- Preparare le applicazioni per i deployment Kubernetes generando istruzioni per Kubernetes in formato YAML.
- Testare il linguaggio YAML per Kubernetes in locale prima di procedere al deployment in un cluster.
- Avviare un cluster Kubernetes in locale e testare le applicazioni.
- Inviare le applicazioni nel processo di deployment.
Funzionalità di livello enterprise
Podman Desktop include funzionalità essenziali per gli ambienti aziendali di grandi dimensioni. Permette di configurare reti private virtuali (VPN) e proxy, interagire con più registri di immagini e connettersi ed eseguire il deployment in cluster remoti tramite Red Hat® OpenShift®.
Compatibilità con i container di avvio
I container di avvio sono container che hanno al loro interno un intero sistema operativo. L'estensione bootc di Podman Desktop permette di creare immagini di container di avvio nei principali formati per hardware bare metal, Amazon Web Services, macchine virtuali e così via.
Nuove funzionalità con le estensioni di Podman Desktop
È possibile aggiungere nuove funzionalità a Podman Desktop con le estensioni. Le estensioni permettono di integrare: motori per i container, funzionalità Kubernetes, azioni, menu, configurazioni e altre funzionalità.
Passiamo ora a illustrare due pacchetti di estensione concepiti per semplificare l'utilizzo dei modelli linguistici di grandi dimensioni (LLM) e delle piattaforme Red Hat.
Cos'è Podman AI Lab?
Il pacchetto di estensione Podman AI Lab consente di trasformare Podman Desktop in un punto di accesso facile e veloce per lo sviluppo di applicazioni di intelligenza artificiale generativa (IA gen).
Podman AI Lab offre una GUI per la creazione, il test e l'esecuzione delle applicazioni basate su modelli linguistici di grandi dimensioni (LLM) in ambienti locali. Eseguire gli LLM in locale semplifica l'architettura ed elimina il rischio di condividere dati sensibili al di fuori dei servizi di IA.
Podman AI Lab include un catalogo di soluzioni per i principali scenari di utilizzo dell'IA gen, come ad esempio chatbot e generazione di codice, e una selezione di LLM con licenza open source che gli utenti possono scaricare ed eseguire in locale. L'estensione permette inoltre di configurare un ambiente playground in pochi semplici passaggi dove provare i diversi LLM.
Cos'è il pacchetto di estensione Red Hat per Podman Desktop?
Il pacchetto di estensione Red Hat per Podman Desktop è uno strumento pensato per agevolare l'utilizzo delle piattaforme Red Hat. All'utente, ad esempio, che intende sviluppare un'applicazione da distribuire su Red Hat OpenShift, queste estensioni gratuite offrono la possibilità di creare un collegamento tra l'ambiente locale e quello di produzione.
Estensione Red Hat OpenShift Local
Red Hat OpenShift è una piattaforma applicativa di livello enterprise. Sfrutta questa estensione per utilizzare Red Hat OpenShift in ambienti locali e scopri come adottare e configurare un cluster Red Hat OpenShift a nodo singolo.
Estensione Developer Sandbox for Red Hat OpenShift
La Developer Sandbox for Red Hat OpenShift permette di condividere un ambiente Red Hat OpenShift remoto per lo sviluppo, il test, l'esame, la correzione di bug e il deployment delle applicazioni.
Estensione Red Hat SSO
La tecnologia single sign-on (SSO) di Red Hat velocizza la procedura di creazione di un account Red Hat e di login. L'estensione Red Hat SSO permette di registrarsi al programma Red Hat Developer, offre l'accesso ai file binari della modalità immagine per Red Hat Enterprise Linux e molto altro.
Estensione bootc
I container di avvio sono immagini del disco che includono un intero sistema operativo in un container. L'estensione bootc permette di distinguere in Podman Desktop i container di avvio da quelli normali.
Le differenze fra Podman Desktop e Docker Desktop
Sono l'azienda Docker e la sua community ad aver definito e promosso lo standard di settore per le applicazioni containerizzate. Docker offre una GUI, chiamata Docker Desktop, disponibile gratuitamente per un numero limitato di scenari di utilizzo.
Per quanto Podman Desktop e Docker Desktop siano entrambe interfacce grafiche per la gestione dei container, i due strumenti presentano alcune differenze fondamentali.
La differenza principale tra Podman e Docker è a livello architetturale. L'architettura di Podman è daemonless, una caratteristica che si coniuga perfettamente con le peculiarità di Kubernetes rendendolo la scelta ideale per chi desidera allineare le attività di sviluppo in locale agli ambienti Kubernetes. L'architettura daemonless non basa l'esecuzione dei container su un processo con privilegi root e questo migliora l'accessibilità dell'ambiente containerizzato e riduce i rischi di sicurezza. Le versioni desktop di Podman e Docker presentano le medesime differenze.
Poiché Red Hat è uno dei principali collaboratori al progetto Podman Desktop, lo strumento si integra perfettamente con le altre tecnologie del nostro portafoglio, come Red Hat OpenShift.
Podman e Docker sono comunque compatibili, questo significa che i container creati su una piattaforma si possono eseguire anche sull'altra. È anche possibile eseguire le estensioni di Docker Desktop in Podman Desktop.
Il ruolo di Red Hat
Podman Desktop aiuta ad acquisire esperienza con i container e i pod Kubernetes e offre una soluzione intuitiva a supporto delle altre tecnologie Red Hat per i container, come Red Hat Enterprise Linux e Red Hat OpenShift.
Red Hat Enterprise Linux è uno standard per l'esecuzione di container Linux in ambienti aziendali. Permette di avviare con facilità i container, di gestire i deployment e di accelerare lo sviluppo di nuove applicazioni. Inoltre, la portabilità delle applicazioni e dei container creati su Red Hat Enterprise Linux per gli ambienti di cloud ibrido e aperto assicura alle organizzazioni l'agilità necessaria per adattarsi all'evoluzione degli obiettivi aziendali.
Red Hat OpenShift è una piattaforma affidabile, completa e coerente che consente di realizzare, modernizzare e distribuire applicazioni in maniera scalabile. Basato su Kubernetes, Red Hat OpenShift include una serie di servizi che contribuiscono ad accelerare il rilascio di nuove applicazioni sul mercato e a distribuire un'infrastruttura che rispecchia le esigenze aziendali. Red Hat OpenShift permette agli sviluppatori di creare nuove applicazioni containerizzate, ospitarle e distribuirle nel cloud con i livelli di scalabilità, controllo e orchestrazione necessari per trasformare rapidamente le idee migliori in nuove opportunità di business.
Il blog ufficiale di Red Hat
Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.