11 resultados para DevOps


Relevância:

20.00% 20.00%

Publicador:

Resumo:

Workshop at Open Repositories 2014, Helsinki, Finland, June 9-13, 2014

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Pratiche agili come CI, CD e movimenti come DevOps sono ora più che mai rilevanti nel settore del software. Il mercato del software, le esigenze aziendali e gli utenti finali richiedono rilasci sempre più rapidi e non sono più disposti ad aspettare mesi o anni per nuove funzionalità. Le pratiche citate hanno lo scopo di aiutare l'organizzazione a riuscire a lungo termine a soddisfare le esigenze degli utenti, rivendicando vantaggi in molti aspetti del processo di consegna. Sfortunatamente, molte aziende, pur adottando pratiche più agili, incontrano sfide che possono essere difficili da superare, a volte richiedono uno sforzo aggiuntivo e una ristrutturazione dell'organizzazione. Questa tesi è inserita in un contesto di adozione DevOps di un'azienda di consulenza informatica, che cerca di migliorare il proprio processo di delivery rendendolo più fluido e introducendo pratiche di automazione. Lo studio è stato condotto come etnografia, con il laureando che è entrato in azienda per un periodo di sei mesi lavorando fianco a fianco con le persone coinvolte nel processo. Il processo aziendale è stato studiato e analizzato, individuando le problematiche che rallentavano il processo di consegna e pianificando i successivi miglioramenti pratici.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Il mercato IT è in costante evoluzione e il termine DevOps sta diventando sempre più popolare. Però, come tutte le altre metodologie, ha i suoi vantaggi e svantaggi. Qui li mostrerò e vedremo una sua applicazione attraverso un'esperienza personale.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Distribuire un’applicazione che soddisfi i requisiti del cliente e che sia in grado di accogliere rapidamente eventuali modifiche è, al giorno d’oggi, d’obbligo per aziende che si occupano di applicazioni mobile che vogliano rimanere competitive sul mercato. Il principale fattore chiave in grado di mantenere un’azienda al passo con la continua evoluzione sia del mercato che delle tecnologie mobile è la continua innovazione e ottimizzazione dell’intero processo di sviluppo. La collaborazione e la comunicazione tra diversi team, l’utilizzo di cicli iterativi di sviluppo, i rilasci frequenti e l’automazione dei test sono alcune delle pratiche incentivate dalla cultura DevOps, adottabile con successo (si vedrà in questa tesi) anche per lo sviluppo di applicazioni mobile. Innovare e ottimizzare il processo di sviluppo non significa solo automatizzare l’esecuzione dei task. Un ruolo importante è giocato anche da aspetti legati all’applicazione: l’architettura, il paradigma di programmazione, e gli strumenti utilizzati. In particolare, al fine di applicare il principio “Don’t repeat yourself ” (DRY) e semplificare la manutenzione, diversi moderni framework per lo sviluppo di applicazioni mobile, detti multipiattaforma, propongono meccanismi che consentono di condividere codice tra piattaforme differenti. L’obiettivo di questa tesi è dunque quello di discutere (capitoli 1, 2 e 3) e mostrare, applicate ad un caso di studio industriale (capitoli 4, 5 e 6), l’uso di tecniche DevOps nell’ambito di applicazioni mobile, ed in particolare mostrando come queste siano applicabili in congiunzione ai framework di sviluppo multipiattaforma (in particolare, Kotlin Multiplatform).

Relevância:

10.00% 10.00%

Publicador:

Resumo:

El següent article pretén analitzar les tasquesd'un administrador, veure si es poden identificar patrons comuns que es puguin aplicar a laautomatització en grans infraestructures ipresentar la seva implementació en Python.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Applikationsövervakning är en term för att i realtid övervaka applikationer och kunna upptäcka fel innan slutanvändaren märker av ett problem. Med övervakning av applikationer menas inte bara den enskilda programvaran utan allt som rör applikationen i fråga. Trafikverkets önskemål är att leverera en hög kvalité i sina applikationer. I nuläget har utvecklare ingen eller dålig insyn i hur en applikation levererar i en skarp miljö efter att de lämnat över ansvaret till drift. För att kunna hålla en bra kvalité i sina applikationer så vill de undersöka hur applikationsövervakning kan hjälpa till att se behov av ändringar i applikationer innan större problem uppstår. I en fallstudie bestående av intervjuer och dokumentstudier kommer genom användning av situationsbaserad FA/SIMM nuvarande arbetssätt fångas. Samt fånga mål och problem som uttrycks i verksamheten kring utveckling & förvaltning och drift av applikationer. Dessa kommer sedan analyseras för att undersöka på vilket sätt applikationsövervakning skulle hjälpa utvecklare & förvaltare, men även driftspersonal i deras arbete. Resultatet av detta visar att de problem och mål som tas upp dels är organisatoriska i sin natur och arbetssättet DevOps framhålls som en möjlig lösning. Även att applikationsövervakning de facto skulle kunna bidra till en ökad kvalité i applikationerna genom att tillföra en möjlighet att arbeta mer proaktivt.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

La tesi inserita in un periodo di forte transizione dai sistemi On­premises a sistemi Cloud ha avuto l'esigenza di risolvere alcune problematiche legate alla definizione delle infrastrutture. Come poter scalare le risorse all'evenienza ricreando gli stessi ambienti, monitorandoli e mettendo in sicurezza i dati critici delle applicazioni? La tesi ha risposto proprio a questa domanda definendo un nuovo paradigma nel concepire le infrastrutture chiamato Infrastructure as Code. La tesi ha approfondito le pratiche e le metodologie che si sono legate maggiormente all'Infrastructure as Code tra le quali Version Control, Configuration Management, Continuous Integration e Continuous Delivery. La tesi inoltre ha previsto la realizzazione di un prototipo finale nato dallo studio del flusso di sviluppo software aziendale, definendo gli ambienti in accordo ai sistemi di Version Control e Configuration Management, applicando pratiche di integrazione continua per giungere ad una deployment pipeline funzionale.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Las metodologías de desarrollo ágiles han sufrido un gran auge en entornos industriales durante los últimos años debido a la rapidez y fiabilidad de los procesos de desarrollo que proponen. La filosofía DevOps y específicamente las metodologías derivadas de ella como Continuous Delivery o Continuous Deployment promueven la gestión completamente automatizada del ciclo de vida de las aplicaciones, desde el código fuente a las aplicaciones ejecutándose en entornos de producción. La automatización se ve como un medio para producir procesos repetibles, fiables y rápidos. Sin embargo, no todas las partes de las metodologías Continuous están completamente automatizadas. En particular, la gestión de la configuración de los parámetros de ejecución es un problema que ha sido acrecentado por la elasticidad y escalabilidad que proporcionan las tecnologías de computación en la nube. La mayoría de las herramientas de despliegue actuales pueden automatizar el despliegue de la configuración de parámetros de ejecución, pero no ofrecen soporte a la hora de fijar esos parámetros o de validar los ficheros que despliegan, principalmente debido al gran abanico de opciones de configuración y el hecho de que el valor de muchos de esos parámetros es fijado en base a preferencias expresadas por el usuario. Esto hecho hace que pueda parecer que cualquier solución al problema debe estar ajustada a una aplicación específica en lugar de ofrecer una solución general. Con el objetivo de solucionar este problema, propongo un modelo de configuración que puede ser inferido a partir de instancias de configuración existentes y que puede reflejar las preferencias de los usuarios para ser usado para facilitar los procesos de configuración. El modelo de configuración puede ser usado como la base de un proceso de configuración interactivo capaz de guiar a un operador humano a través de la configuración de una aplicación para su despliegue en un entorno determinado o para detectar cambios de configuración automáticamente y producir una configuración válida que se ajuste a esos cambios. Además, el modelo de configuración debería ser gestionado como si se tratase de cualquier otro artefacto software y debería ser incorporado a las prácticas de gestión habituales. Por eso también propongo un modelo de gestión de servicios que incluya información relativa a la configuración de parámetros de ejecución y que además es capaz de describir y gestionar propuestas arquitectónicas actuales tales como los arquitecturas de microservicios. ABSTRACT Agile development methodologies have risen in popularity within the industry in recent years due to the speed and reliability of the processes they propose. The DevOps philosophy and specifically the methodologies derived from it such as Continuous Delivery and Continuous Deployment push for a totally automated management of the application lifecycle, from the source code to the software running in production environment. Automation in this regard is used as a means to produce repeatable, reliable and fast processes. However, not all parts of the Continuous methodologies are completely automatized. In particular, management of runtime parameter configuration is a problem that has increased its impact in deployment process due to the scalability and elasticity provided by cloud technologies. Most deployment tools nowadays can automate the deployment of runtime parameter configuration, but they offer no support for parameter setting o configuration validation, as the range of different configuration options and the fact that the value of many of those parameters is based on user preference seems to imply that any solution to the problem will have to be tailored to a specific application. With the aim to solve this problem I propose a configuration model that can be inferred from existing configurations and reflect user preferences in order to ease the configuration process. The configuration model can be used as the base of an interactive configuration process capable of guiding a human operator through the configuration of an application for its deployment in a specific environment or to automatically detect configuration changes and produce valid runtime parameter configurations that take into account those changes. Additionally, the configuration model should be managed as any other software artefact and should be incorporated into current management practices. I also propose a service management model that includes the configuration information and that is able to describe and manage current architectural practices such as the microservices architecture.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Vengono analizzate le strategie di rilascio delle principali Distribuzioni Linux e i metodi per la compilazione automatizzata del software. Si propone quindi una nuova metodologia sia per il rilascio di media installabili e sia per la pacchettizzazione. Sfruttando le tecnologie del campo DevOps, si introduce quindi un alto grado di scalabilità anche in ambienti Cloud, grazie anche alla riproducibilità di ogni componente dell'infrastruttura proposta. Vedremo quindi come questo approccio aumenta l'automatizzazione nei cicli produttivi per la realizzazione della Distribuzione Sabayon Linux e per la definizione di un'infrastruttura automatizzata attualmente in production.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Con la crescita in complessità delle infrastrutture IT e la pervasività degli scenari di Internet of Things (IoT) emerge il bisogno di nuovi modelli computazionali basati su entità autonome capaci di portare a termine obiettivi di alto livello interagendo tra loro grazie al supporto di infrastrutture come il Fog Computing, per la vicinanza alle sorgenti dei dati, e del Cloud Computing per offrire servizi analitici complessi di back-end in grado di fornire risultati per milioni di utenti. Questi nuovi scenarii portano a ripensare il modo in cui il software viene progettato e sviluppato in una prospettiva agile. Le attività dei team di sviluppatori (Dev) dovrebbero essere strettamente legate alle attività dei team che supportano il Cloud (Ops) secondo nuove metodologie oggi note come DevOps. Tuttavia, data la mancanza di astrazioni adeguata a livello di linguaggio di programmazione, gli sviluppatori IoT sono spesso indotti a seguire approcci di sviluppo bottom-up che spesso risulta non adeguato ad affrontare la compessità delle applicazione del settore e l'eterogeneità dei compomenti software che le formano. Poichè le applicazioni monolitiche del passato appaiono difficilmente scalabili e gestibili in un ambiente Cloud con molteplici utenti, molti ritengono necessaria l'adozione di un nuovo stile architetturale, in cui un'applicazione dovrebbe essere vista come una composizione di micro-servizi, ciascuno dedicato a uno specifica funzionalità applicativa e ciascuno sotto la responsabilità di un piccolo team di sviluppatori, dall'analisi del problema al deployment e al management. Poichè al momento non si è ancora giunti a una definizione univoca e condivisa dei microservices e di altri concetti che emergono da IoT e dal Cloud, nè tantomento alla definzione di linguaggi sepcializzati per questo settore, la definzione di metamodelli custom associati alla produzione automatica del software di raccordo con le infrastrutture potrebbe aiutare un team di sviluppo ad elevare il livello di astrazione, incapsulando in una software factory aziendale i dettagli implementativi. Grazie a sistemi di produzione del sofware basati sul Model Driven Software Development (MDSD), l'approccio top-down attualmente carente può essere recuperato, permettendo di focalizzare l'attenzione sulla business logic delle applicazioni. Nella tesi viene mostrato un esempio di questo possibile approccio, partendo dall'idea che un'applicazione IoT sia in primo luogo un sistema software distribuito in cui l'interazione tra componenti attivi (modellati come attori) gioca un ruolo fondamentale.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Il processo di sviluppo di un’applicazione comprende più fasi, ognuna strettamente correlata alle altre. Una delle fasi di questo processo è il rilascio del software, che consiste nel rendere disponibile agli utenti l’applicazione caricandone l’eseguibile su un server, sul quale verrà poi eseguita. Per un’azienda di sviluppo software è particolarmente importante automatizzare e standardizzare il processo di rilascio del software, allo scopo di renderlo più veloce e di diminuire il tempo che intercorre fra una modifica e il momento in cui questa viene effettivamente resa disponibile per gli utenti, ottimizzando infine l’impegno degli sviluppatori. La presente tesi descrive l’implementazione di un sistema di Continuous Integration e Continuous Deliveliry scalabile su una software house con più di 900 dipendenti suddivisi in decine di team, ognuno dei quali ha in carico lo sviluppo di vari software. Le applicazioni realizzate dai team sono generalmente microservizi in esecuzione all’interno di container su piattaforma Kubernetes. Sono state quindi valutate le varie alternative per la realizzazione di questo sistema, analizzandone pro e contro, scegliendo infine GitLab per la parte di Continuous Integration e ArgoCD per la parte di Continuous Deployment. Nei vari capitoli viene quindi analizzata l’infrastruttura esistente e vengono illustrati i vantaggi e svantaggi delle varie soluzioni considerate. Per i due software selezionati viene invece descritto il lavoro svolto, con dettagli sul funzionamento del sistema e la configurazione necessaria per il corretto funzionamento dell’intero processo. La soluzione realizzata effettua build, test, code validation e deploy delle applicazioni seguendo un pattern GitOps, con un repository git contenente la configurazione attuale delle applicazioni, permettendo rollback in caso di problematiche e garantendo un alto livello di sicurezza attraverso il mantenimento dello storico della configurazione e della versione delle applicazioni.