15 research outputs found
The DevOps Goes to the Embedded System
Lately, DevOps has been widely discussed in various papers, in addition the industry has implemented it to be a solution for developing and distributing software for general purposes. However, the application of DevOps to embedded systems is still quite difficult, and there is still lack of paper to discuss it. The purpose of this study is to explore the DevOps approach in developing embedded systems. The method used in this research is to use the Object-Oriented Software Engineering approach. Various tools used to support the development of embedded systems include Visual Paradigm, Quantum Modeling. The results explain that DevOps can be applied in the development of embeded systems through Forward and Reverse Engineering. Forward engineering includes analysis, design of the class, design of the state machine, design of coding, generate code, uploading some codes into board. While reverse engineering is reverse from forward engineering. However, the applying of DevOps is not still one stop services. It is signed by the displacement of tools when doing state-machine design, there is a shift in the use of tools, from the visual paradigm to quantum modeling
Herramientas de infraestructura como código: Ansible, Terrafom, Chef, Puppet
Infrastructure tools such as code (IaC) allow the tasks performed by IT departments to be automated quickly and dynamically through the use of scripting languages, which allow managing, creating, manipulating and distributing multiple large-scale computing resources within of Cloud Computing infrastructure. Infrastructure tools such as Ansible code, Terrafom, Chef, Puppet, generate a virtual representation of all the physical and scalable infrastructure of a Cloud Computing and Data Center platform, making it easy to program and dynamic.Las herramientas de Infraestructura como código (IaC) permiten automatizar las tareas realizadas por los departamentos de IT de forma rápida y dinámica mediante el uso de lenguajes de programación de scripts, que permiten administrar, crear, manipular y distribuir múltiples recursos informáticos a gran escala dentro de una infraestructura de Cloud Computing. Las herramientas de Infraestructura como código Ansible, Terrafom, Chef, Puppet generan una representación virtual de toda la infraestructura física y escalable de una plataforma Cloud Computing y de Centro de Datos, facilitando que esta sea programable y dinámica. 
DevOps model in practice: Applying a novel reference model to support and encourage the adoption of DevOps in a software development company as case study
DevOps has emerged as an approach to help organizations automate, cost optimization, increase profitability, improve the stability of the software development process and the responsiveness of organizations, and create a more agile development and release pipeline. However, its adoption, maintenance and evaluation continue to be a challenge for software organizations, due to the absence of solutions that formalize process elements in a detailed way, such as: practices, roles, artifacts, objectives, among others. This paper presents a DevOps Model, this model to support the adoption of DevOps, which provides a set of fundamental and complementary values, principles, dimensions, and practices. The practices suggest a set of items such as purpose, specific objectives and expected artifacts. The elements defined in proposed DevOps Model arise from the elements found in the studies analyzed through a systematic mapping study. Model evaluation was carried out through a software development company as case study. The results obtained have allowed the case study company to evaluate, diagnose and identify improvement opportunities to be carried out in the processes and projects where a DevOps-based approach is used, the above in a practical, useful, and adequate way that allows this type of companies and with a low use of resources, both economic investment and time. This is how the DevOps Model could guide professionals and organizations towards a better understanding of DevOps, in addition to minimizing the subjectivity and error of its interpretation, adoption and evaluation
An Analysis of Multi-domain Command and Control and the Development of Software Solutions through DevOps Toolsets and Practices
Multi-Domain Command and Control (MDC2) is the exercise of command and control over forces in multiple operational domains (namely air, land, sea, space, and cyberspace) in order to produce synergistic effects in the battlespace, and enhancing this capability has become a major focus area for the United States Air Force (USAF). In order to meet demands for MDC2 software, solutions need to be acquired and/or developed in a timely manner, information technology infrastructure needs to be adaptable to new software requirements, and user feedback needs to drive iterative updates to fielded software. In commercial organizations, agile software development methodologies and concepts such as DevOps have been implemented to meet these demands. However, the USAF has been slow to adopt modern agile software development concepts such as DevOps in favor of traditional software development lifecycles and large contracts that can go nearly a decade without any value being released to the users. This work explores MDC2 software use cases and aims to show that MDC2 software can be successfully developed using modern agile software development practices in a timely manner
DevOps practices in development and maintenance of educational systems
DevOps on kasvattanut suosiotaan viimeisen viiden vuoden aikana varsin tasaisesti Google Trends -palvelun perusteella. Myös tieteellinen kiinnostus termiä kohtaan on kasvanut: esimerkiksi IEEE:n Xplore-hakupalvelussa suoritettujen hakujen perusteella IEEE on julkaissut yli tuplaten DevOpsiin liittyviä artikkeleita vuonna 2017 verrattuna vuoteen 2015. DevOpsin käsite on kuitenkin vielä monitulkintainen.
DevOpsia on myös opetettu. Esimerkiksi Japanin Saga Cityn yliopisto on hyödyntänyt siihen liittyviä työkaluja opetuksessaan, ja Moroccon Cadi Ayyad University on järjestänyt aiheesta kurssin. Myös Tampereen teknillisessä yliopistossa ja nykyisessä Tampereen yliopistossa opetetaan ilmiöön liittyviä käytäntöjä.
On kuitenkin epäselvää, tehdäänkö niin kuin opetetaan eli hyödynnetäänkö itsekin DevOpsiin liittyviä käytäntöjä. Tämän diplomityön tutkimustavoitteena onkin selvittää, hyödynnetäänkö opetusjärjestelmien kehittämisessä ja ylläpidossa näitä käytäntöjä, ja miten niiden hyödyntämistä voisi kehittää.
Koska DevOpsiin liittyy käytäntöjä, joita on mahdollista suorittaa erilaisilla työkaluilla, on tarpeen selvittää sellaiset työkalut, joita yliopistolla on jo tarjota käytettäväksi. Koska ohjelmistojen suoritusympäristöjen esittäminen ohjelmakoodina liittyy DevOpsiin, on myös saatavilla olevien suoritusympäristöjen selvittäminen oleellista. Tällä tavalla voidaan saada tietoa, onko yliopistossa edellytykset DevOpsin hyödyntämiselle.
Opetusjärjestelmien DevOps-käytäntöjen hyödyntämistä on selvitetty niihin perustuvalla tapaustutkimuksella. Työkalut ja suoritusympäristöt on selvitetty sähköpostiviestein ja yliopiston intrasivustoa tutkimalla.
Tutkimuksen tulokset osoittavat, että yliopistolla on tarjota työkaluja DevOps-käytäntöjen hyödyntämiseen. Suoritusympäristöjen dokumentaation osalta on kuitenkin kehitettävää. Opetusjärjestelmistä Repolainen noudattaa parhaiten DevOpsiin liittyviä käytäntöjä, mutta kaikissa tutkituissa opetusjärjestelmissä on parannettavaa sovelluksen monitoroinnin, suunnittelun ja IT-infrastruktuurin ohjelmakoodina esittämisen suhteen.
Repolaisen osalta toimenpiteet työssä esitettäviin kehitysideoihin perustuen on aloitettu, mutta Tietotekniikan yksikölle suositellaan myös muiden ideoiden kokeilemista soveltuvuusselvityksien muodossa. Myös ideoiden jatkokehitys ryhmissä ja aivoriihien järjestäminen voivat olla hyödyllisiä.DevOps has gained popularity during the last five years based on Google Trends. Interest in the science community has also increased. For example searches performed at the IEEE Xplore Digital Library indicate that the IEEE published double the amount of research papers on DevOps in 2017 compared to 2015. However the term DevOps is still ambiguous.
DevOps has also been teached. For example Saga University in Japan has utilized an education system which took advantage on tools related to DevOps and Cadi Ayyad University in Morocco has organized a course about DevOps. Tampere University of Technology which is nowadays Tampere University has also teached DevOps practices.
It is though unclear whether we follow the guidelines we teach in other words, whether we utilize DevOps practices ourselves. The aim of this research is therefore to find out do the development and maintenance processes of IT systems used in teaching utilize DevOps practices and could that utilizing be developed in some way.
Because certain practices are related to DevOps and they can be implemented with various technologies it is worthwhile to discover if the university offers some of these technologies. Since infrastructure as code is a part of DevOps figuring out the available software execution environments is also essential. By investigating these aspects it is possible to discover whether the university provides prerequisites for utilizing DevOps practices.
Study on the utilization of DevOps practices in the development and maintenance of educational systems is performed by a case study. Technologies and execution environments available are discovered by email messages and searching them from the intranet website of the university.
The results of the study indicate that the university does offer tools to utilize DevOps practices but the documentation on execution environments is lacking. Of the educational systems Repolainen is best at utilizing DevOps practices but all educational systems studied in this thesis have rough edges on continuous monitoring and planning and sharing the IT infrastructure as code.
Actions based on the development ideas presented in this thesis considering Repolainen have been started but proof of concept implementations based on the other ideas as well are recommended for the Computing unit. Getting together to develop the ideas further and arranging brainstorms could also be beneficial
Towards RegOps : A DevOps Pipeline for Medical Device Software
The manufacture of medical devices is a strictly regulated domain in the European Union. Traditionally, medical software compliance activities have been considered manual, document-centric, and burdensome. At the same time, over the last decade, software companies have maintained competitiveness and improved by relying on essential practices of DevOps, such as process automation and delivery pipelines. However, applying the same principles in medical software can be challenging due to regulatory requirements. In this paper, we utilize a systematic approach to align the essential medical device software regulatory requirements from the standards IEC 62304 and IEC 82304-1 and integrate them into the software delivery pipeline, which is the main contribution of our work. The outcome supports practitioners to establish more efficient software delivery models while maintaining compliance with the medical device standards.acceptedVersionPeer reviewe
Integração contínua no 5GinFIRE
With the current evolution of network connectable devices, traffic demands are
becoming very high. Network operators need to ensure that they can provide new
services faster but with the same quality while keeping the costs low. Given the
traditional network architecture, that is not possible because the high demands require
new hardware, and its substitution is costly and not flexible. By introducing
the decoupling of network functions from traditional hardware, NFV is the technology
that enables the step that network operators are trying to take. However, this
approach also brings reliability concerns since it is mandatory to ensure that the
virtual network functions (VNFs) behave as expected. 5GinFIRE is a project that
aims to provide a 5G-NFV enabled experimental testbed. As this project handles
multiple VNFs from the various experimenters, it is necessary to have an automated
mechanism to validate VNFs. This dissertation provides a solution for the stated
problem by having a system that verifies the syntax, semantics, and references of a
VNF in an automated way without needing any further human interaction. As a result,
a fully integrated testing platform is deployed in the 5GinFIRE infrastructure,
and the results of the tests are issued in this Document.Com a evolução dos equipamentos com capacidade de se ligar à rede, as exigências
de tráfego tornam-se muito altas. Os operadores precisam de garantir que oferecem
os seus serviços rapidamente, com a mesma qualidade, mas mantendo os custos
baixos. Dada a arquitetura tradicional de redes, isso não é possível uma vez que
para alcançar essas necessidades é fundamental a aquisição de novos equipamentos,
sendo que a sua substituição é cara e pouco flexível. Com a proposta de separação
de funções de rede do seu hardware específico, NFV é a tecnologia que permite
aos operadores alcançar o pretendido. No entanto, esta abordagem traz consigo
problemas relacionados com a fiabilidade do código produzido, uma vez que é
imperativo assegurar que as funções de rede implementadas (VNFs) se comportam
como esperado. O 5GinFIRE é um projeto que tem como objetivo manter uma
plataforma de experimentação de 5G-NFV. Como este projeto lida com múltiplas
VNFs de vários colaboradores, é necessário haver um mecanismo automatizado
que valida as mesmas. Esta dissertação aborda a solução referenciada tendo em si
descrito um sistema que valida a sintaxe, semântica e referências de uma VNF de
uma forma totalmente automatizada e sem qualquer necessidade de intervenção
humana. Assim, o 5GinFIRE contém já uma plataforma de testes totalmente
integrada no seu sistema e os seus resultados são analisados neste Documento.Mestrado em Engenharia de Computadores e Telemátic
An Assessment of DevOps Maturity in a Software Project
DevOps is a software development method, which aims at decreasing conflict between software developers and system operators. Conflicts can occur because the developers’ goal is to release the new features of the software to production, whereas the operators’ goal is to keep the software as stable and available as possible. In traditional software development models, the typical amount of time between deployments can be long and the changes in software can become rather complex and big in size.
The DevOps approach seeks to solve this contradiction by bringing software developers and system operators together from the very beginning of a development project. In the DevOps model, changes deployed to production are small and frequent. Automated deployments decrease human errors that sometimes occur in manual deployments. Testing is at least partly automated and tests are run after each individual software change.
However, technical means are only one part of the DevOps approach. The model also emphasizes changes in organizational culture, which are ideally based on openness, continuous learning, and experimentation. Employees possess the freedom of decision-making while carrying the responsibility that follows. In addition to individual or team-based goals, each employee is encouraged to pursue the common goals.
The aim of this thesis is two-fold. Firstly, the goal is to understand and define the DevOps model through a literature review. Secondly, the thesis analyzes the factors that contribute to the successful adoption of DevOps in an organization, including those with the possibility of slowing down or hindering the process.
A qualitative case study was carried out on a system development project in a large Finnish technology company. The data consists of semi-structured open-ended interviews with key personnel, and the findings are analyzed and compared to factors introduced in previous DevOps literature, including the DevOps maturity model. The case project is also assessed in terms of its DevOps maturity. Finally, impediments and problems regarding DevOps adoption are discussed.
Based on the case study, major challenges in the project include the large size and complexity of the project, problems in project management, occasional communication problems between the vendor and the client, poor overall quality of the software, and defects in the software development process of the vendor. Despite the challenges, the company demonstrated progress in some aspects, such as partly automating the deployment process, creating basic monitoring for the software, and negotiating development and testing guidelines with the vendor
MoCIP: Un enfoque dirigido por modelos para el aprovisionamiento de infraestructura en la nube
[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.Sandobalín Guamán, JC. (2020). MoCIP: Un enfoque dirigido por modelos para el aprovisionamiento de infraestructura en la nube [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/139077TESI