MoCIP: Un enfoque dirigido por modelos para el aprovisionamiento de infraestructura en la nube

Autor: Sandobalín Guamán, Julio César
Jazyk: Spanish; Castilian
Rok vydání: 2020
Předmět:
Zdroj: RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
instname
Popis: [ES] DevOps (Development & Operations) es un nuevo movimiento que fomenta la colaboración entre los desarrolladores y el personal de operaciones a través de un conjunto de principios, prácticas y herramientas para optimizar el tiempo de entrega del software. En particular, la práctica del despliegue continuo de software es una gran fuente de problemas y genera mucha atención cuando los artefactos de software se entregan tarde o cuando un defecto crítico llega a producción. Al mismo tiempo, la práctica del despliegue continuo es la frontera entre los desarrolladores y el personal de operaciones en el ciclo de entrega del software. En consecuencia, se recomienda iniciar la implantación de DevOps con la práctica del despliegue de software. Para enfrentar este desafío, los profesionales e investigadores están utilizando la Infraestructura como Código (Infrastructure as Code, IaC), que es un enfoque para la automatización de la infraestructura basado en prácticas de desarrollo de software. El objetivo de IaC es definir en un script todas las instrucciones para crear, actualizar y ejecutar recursos de infraestructura. En este escenario, la automatización del aprovisionamiento de la infraestructura acelera la práctica del despliegue continuo en el ciclo de entrega del software. La computación en la nube se ha convertido en el principal modelo de pago por uso utilizado por profesionales e investigadores para conseguir servicios en la nube en un corto período de tiempo. En este escenario, las compañías están pasando de generar potencia informática in-house hacia la obtención de recursos informáticos provistos en la nube a través de internet como servicios web. Al mismo tiempo, IaC y la computación en la nube están promoviendo algunos cambios en la industria. Por ejemplo, los equipos de operaciones pasan todo su tiempo trabajando en software, en lugar de configurar servidores y conectar cables de red. Existe una variedad de herramientas IaC que utilizan scripts para definir y ejecutar los recursos de infraestructura en diferentes proveedores de servicios IaaS (Infrastructure as a Service). Sin embargo, la diversidad de lenguajes de scripting de las herramientas IaC junto con la heterogeneidad del tipo de infraestructura que ofrece cada proveedor de servicios IaaS, han ocasionado que utilizar scripts IaC para el aprovisionamiento de infraestructura sea una actividad lenta y propensa a errores. El objetivo del proyecto de doctorado es proponer una solución a la diversidad de los lenguajes de scripting ¿de las herramientas IaC¿ y a la heterogeneidad del tipo de infraestructura que ofrece cada proveedor de servicios IaaS respecto al aprovisionamiento de infraestructura en la nube. Para afrontar estos desafíos se propone MoCIP (A Model-Driven Approach to Cloud Infrastructure Provisioning). MoCIP es un enfoque dirigido por modelos para el aprovisionamiento de la infraestructura en la nube que soporta IaC mediante la Ingeniería de Software Dirigida por Modelos (Model-Driven Engineering, MDE). MoCIP utiliza los dos principios fundamentales de MDE: abstracción y automatización. En primer lugar, se desarrolló el lenguaje específico de dominio ArgonML para abstraer las capacidades de la computación en la nube, tales como cómputo, elasticidad, almacenamiento y redes. El lenguaje ArgonML permite modelar los recursos de infraestructura de la nube. En segundo lugar, se desarrolló la herramienta ARGON para automatizar el aprovisionamiento de infraestructura en la nube. ARGON realiza transformaciones de modelo a modelo para generar modelos que representan la infraestructura de diferentes proveedores de servicios IaaS. Además, ARGON realiza transformaciones de modelo a texto para generar scripts IaC con la información subyacente de cada proveedor de servicios IaaS y de cada herramienta de aprovisionamiento de infraestructura.
[CA] DevOps (Development & Operations) és un nou moviment que fomenta la col·laboració entre els desenvolupadors i el personal d'operacions a través d'un conjunt de principis, pràctiques i eines per a millorar el temps de lliurament del programari. En particular, la pràctica del desplegament continu de programari és una gran font de problemes i genera molta atenció quan els artefactes de programari s'entreguen tard o quan un defecte crític arriba a producció. Al mateix temps, la pràctica del desplegament continu és la frontera entre els desenvolupadors i el personal d'operacions en el cicle de lliurament del programari. En conseqüència, es recomana iniciar la implantació de DevOps amb la pràctica del desplegament de programari. Per a enfrontar aquest desafiament, els professionals i investigadors estan utilitzant la Infraestructura com a Codi (Infrastructure as Code, IaC), que és un enfocament per a l'automatització de la infraestructura basat en pràctiques de desenvolupament de programari. L'objectiu de IaC és definir en un script totes les instruccions per a crear, actualitzar i executar recursos d'infraestructura. En aquest escenari, l'automatització de l'aprovisionament de la infraestructura accelera la pràctica del desplegament continu en el cicle de lliurament del programari. La computació en el núvol s'ha convertit en el principal model de pagament per ús utilitzat per professionals i investigadors per a aconseguir serveis en el núvol en un curt període de temps. En aquest escenari, les companyies estan passant de generar potència informàtica in-house cap a l'obtenció de recursos informàtics proveïts en el núvol a través d'internet com a serveis web. Al mateix temps, IaC i la computació en el núvol estan promovent alguns canvis en la indústria, per exemple, els equips d'operacions passen tot el seu temps treballant en programari, en lloc de configurar servidors i connectar cables de xarxa. Existeix una varietat d'eines IaC que utilitzen scripts per a definir i executar els recursos d'infraestructura en diferents proveïdors de serveis IaaS (Infrastructure as a Service). No obstant això, la diversitat de llenguatges de scripting de les eines IaC juntament amb l'heterogeneïtat del tipus d'infraestructura que ofereix cada proveïdor de serveis IaaS, han ocasionat que utilitzar scripts IaC per a l'aprovisionament d'infraestructura siga una activitat lenta i propensa a errors. L'objectiu del projecte de doctorat és proposar una solució a la diversitat dels llenguatges de scripting ¿de les eines IaC¿ i a l'heterogeneïtat del tipus d'infraestructura que ofereix cada proveïdor de serveis IaaS respecte a l'aprovisionament d'infraestructura en el núvol. Per a afrontar aquests desafiaments es proposa MoCIP (A Model-Driven Approach to Cloud Infrastructure Provisioning). MoCIP és un enfocament dirigit per models per a l'aprovisionament de la infraestructura en el núvol que suporta IaC mitjançant l'Enginyeria de Programari Dirigida per Models (Model-Driven Engineering, MDE). MoCIP utilitza els dos principis fonamentals de MDE: abstracció i automatització. En primer lloc, es va desenvolupar el llenguatge específic de domini ArgonML per a abstraure les capacitats de la computació en el núvol tals com còmput, elasticitat, emmagatzematge i xarxes. El llenguatge ArgonML permet modelar els recursos d'infraestructura del núvol. En segon lloc, es va desenvolupar l'eina ARGON per a automatitzar l'aprovisionament d'infraestructura en el núvol. ARGON realitza transformacions de model a model per a generar models que representen la infraestructura de diferents proveïdors de serveis IaaS. A més, ARGON realitza transformacions de model a text per a generar scripts IaC amb la informació subjacent de cada proveïdor de serveis IaaS i de cada eina d'aprovisionament d'infraestructura.
[EN] DevOps (Development & Operations) is a new movement that encourages collaboration between developers and operation staff through a set of principles, practices, and tools in order to optimize the software delivery time. In particular, continuous deployment is a software practice, which is a great source of problems and generates a lot of attention when software artifacts are delivered late, or a critical defect comes to production. At the same time, continuous deployment is the border between developers and operation staff in the software delivery cycle. Consequently, it is recommended to start the DevOps implantation with continuous deployment practice. To address this challenge, practitioners and researchers are using Infrastructure as Code (IaC), which is an approach to infrastructure automation based on software development practices. The aim of IaC is to define in a script all the instructions to create, update and execute infrastructure resources. In this scenario, infrastructure provisioning automation accelerates the continuous deployment in the software delivery cycle. Cloud computing has become the principal pay-as-you-go model used by practitioners and researchers to obtain cloud services in a short period of time. In this scenario, companies are moving from generating in-house computing power into obtaining computing resources provided by cloud computing through the Internet as web services. At the same time, IaC and cloud computing are promoting some changes in the industry. For instance, operation teams spend all their time working on software, instead of racking servers and plugging in network cables. There is a diversity of IaC tools that use scripts to define and execute infrastructure resources in different IaaS (Infrastructure as a Service) service providers. However, the diversity of scripting languages of IaC tools along with the heterogeneity of the type of infrastructure offered by each IaaS service provider have caused that the use of IaC scripts for infrastructure provisioning to be a time-consuming and error-prone activity. The aim of the Ph.D. project is to propose a solution to the diversity of scripting languages of IaC tools along with the heterogeneity of the type of infrastructure offered by each IaaS service provider regarding the cloud infrastructure provisioning. To face these challenges, a Model-Driven Approach to Cloud Infrastructure Provisioning (MoCIP) is proposed. MoCIP is a model-driven approach to cloud infrastructure provisioning that supports IaC through Model-Driven Engineering (MDE). MoCIP uses the fundamental principles of MDE: abstraction and automation. First, the domain-specific language called ArgonML was developed to abstract the capabilities of cloud computing such as computing, elasticity, storage, and networking. The ArgonML language allows modeling the cloud infrastructure. Second, the ARGON tool automates the cloud infrastructure provisioning. ARGON performs model-to-model transformations to generate models that represent the infrastructure of different IaaS service providers. In addition, ARGON performs model-to-text transformations to generate IaC scripts with the underlying information of the IaaS service provider along with the infrastructure provisioning tool.
Databáze: OpenAIRE