Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Service Catalog Puppet
Service Catalog Puppet è implementato in Python utilizzando AWS l'API Boto3. Questo strumento offre diverse potenti funzionalità per la configurazione e il provisioning dei prodotti Service Catalog. Gli sviluppatori possono configurare le informazioni sul provisioning di prodotti e portfolio di Service Catalog utilizzando modelli YAML che fungono da manifesti. I flussi di lavoro di provisioning di Service Catalog Puppet supportano prodotti che richiedono processi di distribuzione più complessi rispetto a Service Catalog. Supportano inoltre l'ottimizzazione delle prestazioni per fornire prodotti su larga scala entro finestre temporali aggressive.
Service Catalog Puppet accede ai CloudFormation modelli di Service Catalog per la fornitura del prodotto al momento della distribuzione. Richiama CloudFormation direttamente per implementare lo stack di modelli di provisioning per un prodotto e aggira le restrizioni imposte dal processo di provisioning del set di stack di Service Catalog. Se il modello di provisioning utilizza macro per includere altri CloudFormation script o utilizza script annidati, è necessario fornire l'accesso a tali CloudFormation script nell'account di destinazione nella parte di avvio del flusso di lavoro di provisioning.
Per ulteriori informazioni:
-
Consulta la documentazione
e l'GitHubarchivio di Service Catalog Puppet. -
GitOps
è il meccanismo predefinito per la gestione dell'ambiente Service Catalog Puppet.
Service Catalog Puppet è abbastanza facile da imparare per gli sviluppatori. Richiede dimestichezza con l'implementazione dei modelli CloudFormation di provisioning dei prodotti e dei modelli YAML per implementare i manifesti. Sono disponibili ottimi workshop per avvicinare i nuovi sviluppatori, ad esempio workshop personalizzati.
Support per i flussi di lavoro di provisioning
Service Catalog Puppet utilizza il motore di orchestrazione delle attività Python Luigi per implementare i flussi di lavoro di bootstrap e provisioning. Tutti i passaggi di questi flussi di lavoro sono implementati come attività del flusso di lavoro Luigi. Per una panoramica di Luigi e del suo confronto con altri strumenti di workflow più diffusi, consulta Airflow vs. Luigi vs. Argo vs. MLFlow
Luigi consente a Service Catalog Puppet di controllare il numero di lavoratori associati alle attività del flusso di lavoro e di controllare altri aspetti dei flussi di lavoro, per una migliore scalabilità e prestazioni. Service Catalog Puppet fornisce anche un meccanismo depends_on
Modalità di provisioning
Service Catalog Puppet supporta tre modalità di esecuzione: hub, spoke e async
In tutte le modalità di provisioning, Service Catalog Puppet implementa direttamente il provisioning del prodotto senza richiamare il processo di provisioning di Service Catalog. È possibile configurare un manifesto di provisioning per utilizzare le specifiche del ruolo e dell'account di destinazione in un vincolo di set di stack Service Catalog esistente. Service Catalog Puppet utilizza queste informazioni per eseguire autonomamente il provisioning con i flussi di lavoro Luigi.
È possibile definire obiettivi per la fornitura del portafoglio di prodotti sulla base di un approccio di etichettatura degli account, oltre a specificare direttamente i nostri account. OUs Nel provisioning basato su tag di account, un prodotto di portafoglio viene fornito a tutti gli account che hanno tutti i tag del set di tag di provisioning manifesto specificato. Ad esempio, se desiderate emettere un prodotto in portafoglio per tutti gli account di produzione istituzionali nelle regioni orientali degli Stati Uniti, potete specificare i tag type:prod
e. partition:us-east
scope:institutional-client
È inoltre possibile dichiarare esclusioni di account e unità organizzative per vietare l'approvvigionamento verso gli account con i tag specificati dall'utente OUs o per gli account che fanno parte degli obiettivi specificati dall'unità organizzativa. Per ulteriori informazioni sull'etichettatura degli account, consulta la documentazione di Service Catalog Tools
modalità Hub
In modalità hub provisioning, tutti i flussi di lavoro Luigi per gli account spoke sono gestiti dall'account hub centrale designato. L'account hub assume un ruolo IAM che gli consente di eseguire azioni in un account spoke, ma la gestione delle attività avviene dall'interno dell'account hub. L'account hub attende in modo sincrono il completamento di tutte le attività di provisioning degli account spoke, con esito positivo o negativo. Quindi riporta lo stato finale. La modalità account hub è la modalità di provisioning più vecchia e matura. Tuttavia, molti utenti sono passati alla modalità di provisioning Spoke per ottenere una maggiore velocità e velocità di provisioning.
Modalità Spoke
In modalità spoke, l'account dell'hub Service Catalog avvia i flussi di lavoro Luigi da eseguire negli account spoke bootstrap designati. L'account hub riceve una notifica quando i flussi di lavoro spoke vengono completati. I guasti in un account spoke si ripercuotono sull'account hub. L'account hub interroga l'account spoke per vedere se è terminato e per determinarne lo stato.
È meno probabile che la modalità Spoke richieda aumenti di Servizio AWS quota perché quasi tutto viene eseguito negli account spoke separati. La modalità Spoke offre inoltre una concorrenza molto maggiore rispetto alla modalità hub, pur mantenendo il controllo centralizzato. Può migliorare la velocità di provisioning dell'800% rispetto alla modalità hub. La modalità Spoke supporta la concatenazione dei prodotti attraverso DependsOn
le relazioni tra i prodotti, il che garantisce che un prodotto da cui dipende sia già stato fornito. Un prodotto che comprende prodotti concatenati può fornire anche un prodotto concatenato a componenti. È inoltre possibile utilizzare chiamate di AWS Lambda funzioni specializzate per eseguire i passaggi richiesti. I guasti di un raggio sono isolati dagli altri raggi.
La modalità Spoke viene utilizzata dalle aziende con oltre 980 account in un massimo di 7 regioni. Queste aziende sono generalmente in grado di fornire un prodotto a tutte le regioni e a tutti gli account della loro infrastruttura entro un'ora.
Nota
Questi risultati potrebbero variare in base a fattori quali l'infrastruttura di rete, il carico di lavoro e le quote previste per gli account AWS Organization Hub and Spoke. Dipendono anche dalle risorse del prodotto che vengono fornite, dai tempi di creazione intrinseci e dalla loro dipendenza da altre risorse.
Modalità asincronica
La modalità asincrona avvia i flussi di lavoro di provisioning negli account spoke, ma non attende né riceve risposte di completamento dagli spoke.
Caching
Un altro meccanismo utilizzato da Service Catalog Puppet per ottimizzare la velocità dei flussi di lavoro consiste nel memorizzare nella cache le attività comuni che rappresentano le fasi del flusso di lavoro. Quando un'attività memorizzata nella cache è completa, scrive il suo output su Amazon Simple Storage Service (Amazon S3). La volta successiva che l'attività viene richiamata nella stessa sessione con gli stessi parametri, Service Catalog Puppet utilizza i valori memorizzati nella cache anziché eseguire nuovamente l'attività. Per ulteriori informazioni, consulta la sezione Caching
DevSecOps supporto per il ciclo di vita
Service Catalog Puppet include il supporto per la gestione della DevSecOps pipeline. Puoi utilizzare le azioni di Service Catalog Tools (come illustrato nella panoramica di Service Catalog Puppet
Per garantire che eventuali problemi relativi a una modifica del prodotto vengano rilevati prima dell'uso diffuso in produzione, Service Catalog Puppet richiede almeno un account Canary per la distribuzione iniziale. Dopo aver testato e acquisito fiducia nella nuova versione, puoi promuoverla presso account di produzione diversi da Canary. Se identificate dei problemi, potete ripristinare la release e reintrodurla quando i problemi saranno risolti. Quando si utilizza questo approccio, potrebbero verificarsi problemi di produzione se si rilascia una versione di Canary che presenta problemi agli account di produzione. Come approccio alternativo, è possibile eseguire test di regressione completi per ogni modifica del prodotto prima di rilasciare la modifica alla produzione. Ciò comporta un sovraccarico aggiuntivo nel processo CI/CD, ma aiuta a evitare problemi di produzione. È responsabilità dell' DevSecOps amministratore determinare gli scenari e gli approcci di rilascio delle funzionalità migliori per i propri team di sviluppo.
Service Catalog Puppet consente a più team di sviluppare e testare contemporaneamente la fornitura di soluzioni di prodotto Service Catalog. Come best practice, un prodotto non dovrebbe essere modificato da più sviluppatori contemporaneamente. Puoi invece suddividere i prodotti in componenti più dettagliati per modifiche separate e simultanee.
Service Catalog Puppet aiuta anche ad automatizzare i test tramite una dichiarazione di asserzione che fornisce funzionalità statiche e di unit test. È possibile testare le policy di controllo dei servizi (SCPs) e le policy IAM utilizzando simulatori di policy. Si tratta di end-to-end test tecnici, ma possono essere utilizzati in ambienti di test di integrazione di sistemi (SIT). Per ulteriori informazioni, vedere Utilizzo delle simulazioni delle politiche
Maturità, completezza e supporto
Sebbene Service Catalog Puppet non sia supportato ufficialmente Servizio AWS, è stato ampiamente adottato. Questo strumento è stato utilizzato da grandi organizzazioni negli ultimi anni per fornire con successo e centralmente i prodotti a centinaia di account di unità organizzative entro le finestre temporali di provisioning desiderate. Ha dimostrato di fornire prodotti con tolleranza ai guasti su larga scala. Gli utenti che riscontrano problemi con Service Catalog Puppet possono registrarli nel GitHub repository