225 research outputs found

    Cloud provider independence using DevOps methodologies with Infrastructure-as-Code

    Get PDF
    On choosing cloud computing infrastructure for IT needs there is a risk of becoming dependent and locked-in on a specific cloud provider from which it becomes difficult to switch should an entity decide to move all of the infrastructure resources into a different provider. There’s widespread information available on how to migrate existing infrastructure to the cloud notwithstanding common cloud solutions and providers don't have any clear path or framework for supporting their tenants to migrate off the cloud into another provider or cloud infrastructure with similar service levels should they decide to do so. Under these circumstances it becomes difficult to switch from cloud provider not just because of the technical complexity of recreating the entire infrastructure from scratch and moving related data but also because of the cost it may involve. One possible solution is to evaluate the use of Infrastructure-as-Code languages for defining infrastructure (“Infrastructure-as-Code”) combined with DevOps methodologies and technologies to create a mechanism that helps streamline the migration process between different cloud infrastructure especially if taken into account from the beginning of a project. A well-structured DevOps methodology combined with Infrastructure-as-Code may allow a more integrated control on cloud resources as those can be defined and controlled with specific languages and be submitted to automation processes. Such definitions must take into account what is currently available to support those operations under the chosen cloud infrastructure APIs, always seeking to guarantee the tenant an higher degree of control over its infrastructure and higher level of preparation of the necessary steps for the recreation or migration of such infrastructure should the need arise, somehow integrating cloud resources as part of a development model. The objective of this dissertation is to create a conceptual reference framework that can identify different forms for migration of IT infrastructure while always contemplating a higher provider independence by resorting to such mechanisms, as well as identify possible constraints or obstacles under this approach. Such a framework can be referenced from the beginning of a development project if foreseeable changes in infrastructure or provider are a possibility in the future, taking into account what the API’s provide in order to make such transitions easier.Ao optar-se por infraestruturas de computação em nuvem para soluções de TI existe um risco associado de se ficar dependente de um fornecedor de serviço específico, do qual se torna difícil mudar caso se decida posteriormente movimentar toda essa infraestrutura para um outro fornecedor. Encontra-se disponível extensa documentação sobre como migrar infraestrutura já  existente para modelos de computação em nuvem, de qualquer modo as soluções e os fornecedores de serviço não dispõem de formas ou metodologias claras que suportem os seus clientes em migrações para fora da nuvem, seja para outro fornecedor ou infraestrutura com semelhantes tipos de serviço, caso assim o desejem. Nestas circunstâncias torna-se difícil mudar de fornecedor de serviço não apenas pela complexidade técnica associada à criação de toda a infraestrutura de raiz e movimentação de todos os dados associados a esta mas também devido aos custos que envolve uma operação deste tipo. Uma possível solução é avaliar a utilização de linguagens para definição de infraestrutura como código (“Infrastructure-as-Code”) em conjunção com metodologias e tecnologias “DevOps” de forma a criar um mecanismo que permita flexibilizar um processo de migração entre diferentes infraestruturas de computação em nuvem, especialmente se for contemplado desde o início de um projecto. Uma metodologia “DevOps” devidamente estruturada quando combinada com definição de infraestrutura como código pode permitir um controlo mais integrado de recursos na nuvem uma vez que estes podem ser definidos e controlados através de linguagens específicas e submetidos a processos de automação. Tais definições terão de ter em consideração o que existe disponível para suportar as necessárias operações através das “API’s” das infraestruturas de computação em nuvem, procurando sempre garantir ao utilizador um elevado grau de controlo sobre a sua infraestrutura e um maior nível de preparação dos passos necessários para recriação ou migração da infraestrutura caso essa necessidade surja, integrando de certa forma os recursos de computação em nuvem como parte do modelo de desenvolvimento. Esta dissertação tem como objetivo a criação de um modelo de referência conceptual que identifique formas de migração de infraestruturas de computação procurando ao mesmo tempo uma maior independência do fornecedor de serviço com recurso a tais mecanismos, assim como identificar possíveis constrangimentos ou impedimentos nesta aproximação. Tal modelo poderá ser referenciado desde o início de um projecto de desenvolvimento caso seja necessário contemplar uma possível necessidade futura de alterações ao nível da infraestrutura ou de fornecedor, com base no que as “API’s” disponibilizam, de modo a facilitar essa operação.info:eu-repo/semantics/publishedVersio

    Dynamic composition and adaptation in adapt-medium

    Get PDF
    International audienceIn the presence of operational context changes, many applications must use dynamic adaptations in order to meet requirements. When an application has a set of distributed objects that collaborates to offer a particular function, adaptations involving simultaneous distributed processes may affect such collaborations, planning distributed adaptations is thus a complex task for developers. This paper presents Adapt-Medium, an architecture of adaptive distributed components. In the architecture, adaptations are realized by performing dynamic compositions of distributed components. We introduce a model-based process for 1) specifying architecture variants of such distributed components and 2) automatically generating adaptation plans that are performed at runtime to switch between architecture variants

    Fundamental Approaches to Software Engineering

    Get PDF
    This open access book constitutes the proceedings of the 23rd International Conference on Fundamental Approaches to Software Engineering, FASE 2020, which took place in Dublin, Ireland, in April 2020, and was held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The 23 full papers, 1 tool paper and 6 testing competition papers presented in this volume were carefully reviewed and selected from 81 submissions. The papers cover topics such as requirements engineering, software architectures, specification, software quality, validation, verification of functional and non-functional properties, model-driven development and model transformation, software processes, security and software evolution

    DevOps for Digital Leaders

    Get PDF
    DevOps; continuous delivery; software lifecycle; concurrent parallel testing; service management; ITIL; GRC; PaaS; containerization; API management; lean principles; technical debt; end-to-end automation; automatio

    Fundamental Approaches to Software Engineering

    Get PDF
    computer software maintenance; computer software selection and evaluation; formal logic; formal methods; formal specification; programming languages; semantics; software engineering; specifications; verificatio

    A Co-evolution Framework towards Stable Designs from Radical Innovations for Organizations Using IT

    Get PDF
    The purpose of this paper is to theoretically and empirically explore how organizations can enable radical product innovations to cumulate as stable designs. Radical product innovations are organizational responses to external triggers that cause transitions. To manage in transitions, it is necessary for radical product innovations to cumulate as stable designs. Organizations ability to co-evolve with the environment does influence innovations to cumulate as stable designs; to examine this, the author selected public procurement that uses IT as radical product innovation with pronounced environmental influence, government’s interventionist approach. The author used multiple case-study and obtained diverse analytic and heuristic views. From the cases, the author noted that actors did consider local and contingent factors only that resulted in certain radical innovations cumulating as stable designs. As an initial starting point, such actions are appropriate but organizational actions to expand their initial actions with a co-evolutionary framework that considers social contexts

    DevOps for Digital Leaders

    Get PDF
    DevOps; continuous delivery; software lifecycle; concurrent parallel testing; service management; ITIL; GRC; PaaS; containerization; API management; lean principles; technical debt; end-to-end automation; automatio

    Job Satisfaction in Agile Development Teams: Agile Development as Work Redesign

    Get PDF
    Agile software-development advocates claim that an important value proposition of agile methods is that they make people more motivated and satisfied with their jobs. While several studies present anecdotal evidence that agile methods increase motivation and satisfaction, research has not theoretically explained or empirically examined how agile development practices relate to team members’ feelings about their work. Drawing on the management and software-development literature, we articulate a model of job design that connects agile development practices to perceptions of job characteristics and, thereby, improve agile team members’ job satisfaction. Using data collected from 252 software-development professionals, we tested the model and found a positive relationship between agile project-management and software-development practices and employees’ perceptions of job characteristics. Further, we found direct effects between agile development-practice use and job satisfaction. Finally, we found interaction effects between the use of agile project-management and software-development approaches and the perception of job autonomy. With this study, we contribute to the literature by theoretically explaining and directly evaluating agile development practices’ impact on individuals’ perceptions about their job characteristics and on their job satisfaction
    corecore