45 research outputs found

    Architecting Enterprise Applications for the Cloud: The Unicorn Universe Cloud Framework

    Full text link
    © Springer International Publishing AG, part of Springer Nature 2018. Recent IT advances that include extensive use of mobile and IoT devices and wide adoption of cloud computing are creating a situation where existing architectures and software development frameworks no longer fully support the requirements of modern enterprise application. Furthermore, the separation of software development and operations is no longer practicable in this environment characterized by fast delivery and automated release and deployment of applications. This rapidly evolving situation requires new frameworks that support the DevOps approach and facilitate continuous delivery of cloud-based applications using micro-services and container-based technologies allowing rapid incremental deployment of application components. It is also becoming clear that the management of large-scale container-based environments has its own challenges. In this paper, we first discuss the challenges that developers of enterprise applications face today and then describe the Unicorn cloud framework (uuCloud) designed to support the development and deployment of cloud-based applications that incorporate mobile and IoT devices. We use a doctor surgery reservation application “Lekar” case study to illustrate how uuCloud is used to implement a large-scale cloud-based application

    If docker is the answer, what is the question? : A case for software engineering paradigm shift towards service agent orientation

    Get PDF
    The recent rise of cloud computing poses serious challenges for software engineering because it adds complexity not only to the platform and infrastructure, but to the software too. The demands on system scalability, performance and reliability are ever increasing. Industry solutions with widespread adoption include the microservices architecture, the container technology and the DevOps methodology. These approaches have changed software engineering practice in such a profound way that we argue that it is becoming a paradigm shift. In this paper, we examine the current support of programming languages for the key concepts behind the change in software engineering practice and argue that a novel programming language is required to support the new paradigm. We report a new programming language CAOPLE and its associated Integrated DevOps Environment CIDE and demonstrate the utility of both

    Towards an Automatic Microservices Manager for Hybrid Cloud Edge Environments

    Get PDF
    Cloud computing came to make computing resources easier to access thus helping a faster deployment of applications/services benefiting from the scalability provided by the service providers. It has been registered an exponential growth of the data volume received by the cloud. This is due to the fact that almost every device used in everyday life are connected to the internet sharing information in a global scale (ex: smartwatches, clocks, cars, industrial equipment’s). Increasing the data volume results in an increased latency in client applications resulting in the degradation of the QoS (Quality of service). With these problems, hybrid systems were born by integrating the cloud resources with the various edge devices between the cloud and edge, Fog/Edge computation. These devices are very heterogeneous, with different resources capabilities (such as memory and computational power), and geographically distributed. Software architectures also evolved and microservice architecture emerged to make application development more flexible and increase their scalability. The Microservices architecture comprehends decomposing monolithic applications into small services each one with a specific functionality and that can be independently developed, deployed and scaled. Due to their small size, microservices are adquate for deployment on Hybrid Cloud/Edge infrastructures. However, the heterogeneity of those deployment locations makes microservices’ management and monitoring rather complex. Monitoring, in particular, is essential when considering that microservices may be replicated and migrated in the cloud/edge infrastructure. The main problem this dissertation aims to contribute is to build an automatic system of microservices management that can be deployed in hybrid infrastructures cloud/fog computing. Such automatic system will allow edge enabled applications to have an adaptive deployment at runtime in response to variations inworkloads and computational resources available. Towards this end, this work is a first step on integrating two existing projects that combined may support an automatic system. One project does the automatic management of microservices but uses only an heavy monitor, Prometheus, as a cloud monitor. The second project is a light adaptive monitor. This thesis integrates the light monitor into the automatic manager of microservices.A computação na Cloud surgiu como forma de simplificar o acesso aos recursos computacionais, permitindo um deployment mais rápido das aplicações e serviços como resultado da escalabilidade suportada pelos provedores de serviços. Computação na cloud surgiu para facilitar o acesso aos recursos de computação provocando um facultamento no deployment de aplicações/serviços sendo benéfico para a escalabilidade fornecida pelos provedores de serviços. Tem-se registado um crescimento exponencial do volume de data que é recebido pela cloud. Este aumento deve-se ao facto de quase todos os dispositivos utilizados no nosso quotidiano estarem conectados à internet (exemplos destes são, relogios, maquinas industriais, carros). Este aumento no volume de dados resulta num aumento da latência para as aplicações cliente, resultando assim numa degradação na qualidade de serviço QoS. Com estes problemas, nasceram os sistemas híbridos, nascidos pela integração dos recursos de cloud com os variados dispositivos presentes no caminho entre a cloud e a periferia denominando-se computação na Edge/Fog (Computação na periferia). Estes dispositivos apresentam uma grande heterogeneidade e são geograficamente muito distribuídos. As arquitecturas dos sistemas também evoluíram emergindo a arquitectura de micro serviços que permitem tornar o desenvolvimento de aplicações não só mais flexivel como para aumentar a sua escalabilidade. A arquitetura de micro serviços consiste na decomposição de aplicações monolíticas em pequenos serviços, onde cada um destes possuí uma funcionalidade específica e que pode ser desenvolvido, lançado e migrado de forma independente. Devido ao seu tamanho os micro serviços são adequados para serem lançados em ambientes de infrastructuras híbridas (cloud e periferia). No entanto, a heterogeneidade da localização para serem lançados torna a gestão e monitorização de micro serviços bastante mais complexa. A monitorização, em particular, é essencial quando consideramos que os micro serviços podem ser replicados e migrados nestas infrastruturas de cloud e periferia (Edge). O problema abordado nesta dissertação é contribuir para a construção de um sistema automático de gestão de micro serviços que podem ser lançados em estruturas hibridas. Este sistema automático irá tornar possível às aplicações que estão na edge possuírem um deploy adaptativo enquanto estão em execução, como resposta às variações dos recursos computacionais disponíveis e suas cargas. Para chegar a este fim, este trabalho será o primeiro passo na integração de dois projectos já existentes que, juntos poderão suportar umsistema automático. Umdeles realiza a gestão automática de micro serviços mas utiliza apenas o Prometheus como monitor na cloud, enquanto o segundo projecto é um monitor leve adaptativo. Esta tese integra então um monitor leve com um gestor automático de micro serviços

    Microservices architectures in healthcare with Apache Kafka

    Get PDF
    Dissertação de mestrado em Informatics EngineeringOver the past few years, we have seen an exponential increase in the amount of data produced. This increase in data is due, in large part, to the massive use of sensors, as well as the immense amount of existing applications. Due to this factor, and in order to obtain relevant information through the data, companies, institutions and the scientific community are constantly looking for new solutions to be able to respond to the challenges. One of the areas where evolution is most needed is the area of healthcare, an area on which we all depend as a society. Every day, traditional healthcare information systems produce a large amount of data, making it complex to manage. Much of this data is produced by IoT devices, such as vital signs monitors, and in many cases can be critical to the patient’s health, as in the case of Intensive Care Units. In this sense, the main objective of this dissertation is to expose the advantages and disadvantages of the applicability of microservices architectures and the use of Apache Kafka in the health area, more specifically in Intensive Care Units where the information flow is critical. In order to support these objectives, a Proof of Concept was developed, based on a future real applicability, which will support the carrying out of analyzes and tests.Durante os últimos anos, temos assistido a um aumento exponencial da quantidade de dados produzida. Este aumento de dados deve-se, em grande parte, à utilização massiva de sensores, assim como à enorme quantidade de aplicações existentes. Devido a esse fator, e de forma a conseguir obter informações relevantes através dos dados, empresas, instituições e comunidade científica, estão constantemente à procura de novas soluções para conseguir responder aos desafios. Uma das áreas onde a evolução é mais necessária é a área da saúde, uma área da qual todos dependemos enquanto sociedade. Todos os dias, os sistemas tradicionais de informação em saúde produzem uma grande quantidade de dados, tornando-os complexos de gerir. Muitos destes dados são produzidos pelos dispositivos IoT, como os monitores de sinais vitais, e em muitos dos casos podem ser fulcrais para a saúde do paciente, como é o caso das Unidade de Cuidados Intensivos. Neste sentido, a presente dissertação tem como objetivo principal expor as vantagens e desvantagens da aplicabilidade das arquiteturas de microservices e da utilização do Apache Kafka na área da saúde, mais concretamente nas Unidades de Cuidados Intensivos onde o fluxo de informação é crítico. De forma a auxiliar estes objetivos, foi desenvolvido uma Prova de Conceito, tendo por base uma futura aplicabilidade real, que servirá de suporte à realização de análises e testes

    The Tech Company: On the neglected second nature of platforms

    Get PDF
    The unprecedented rise of startups such as Google or Amazon has spurred an ongoing debate on the conceptualization of the corporate model these firms represent. Thus far, attention has centered on the analysis of their product and market strategies highlighting their platform nature as common feature and its defining characteristic. By applying and scaling the platform business model these companies have been able to capture value created outside the firm. The focus on the platform nature and the evolution of their external ecosystems, however, has left the work that is done inside these companies to create and provide online platforms largely unnoticed. Against this background, the article seeks to contribute to the debate by analyzing the inner mode of production as an essential component of their corporate model. The second nature of online platform firms, it is argued, is that they are tech companies. Building on this, the article aims to reconstruct how as tech companies they have learned and perfected to continuously develop and operate the internet applications that power their online platforms at global scale

    A Method and Tool for Finding Concurrency Bugs Involving Multiple Variables with Application to Modern Distributed Systems

    Get PDF
    Concurrency bugs are extremely hard to detect due to huge interleaving space. They are happening in the real world more often because of the prevalence of multi-threaded programs taking advantage of multi-core hardware, and microservice based distributed systems moving more and more applications to the cloud. As the most common non-deadlock concurrency bugs, atomicity violations are studied in many recent works, however, those methods are applicable only to single-variable atomicity violation, and don\u27t consider the specific challenge in distributed systems that have both pessimistic and optimistic concurrency control. This dissertation presents a tool using model checking to predict atomicity violation concurrency bugs involving two shared variables or shared resources. We developed a unique method inferring correlation between shared variables in multi-threaded programs and shared resources in microservice based distributed systems, that is based on dynamic analysis and is able to detect the correlation that would be missed by static analysis. For multi-threaded programs, we use a binary instrumentation tool to capture runtime information about shared variables and synchronization events, and for microservice based distributed systems, we use a web proxy to capture HTTP based traffic about API calls and the shared resources they access including distributed locks. Based on the detected correlation and runtime trace, the tool is powerful and can explore a vast interleaving space of a multi-threaded program or a microservice based distributed system given a small set of captured test runs. It is applicable to large real-world systems and can predict atomicity violations missed by other related works for multi-threaded programs and a couple of previous unknown atomicity violation in real world open source microservice based systems. A limitation is that redundant model checking may be performed if two recorded interleaved traces yield the same partial order model

    Performance assessment and analysis of development and operations based automation tools for source code management

    Get PDF
    Development and operations (DevOps), an accretion of automation tools, efficiently reaches the goals of software development, test, release, and delivery in terms of optimization, speed and quality. Diverse set of alternative automation tools exist for different phases of software development, for which DevOps adopts several selection criteria to choose the best tool. This research paper represents the performance evaluation and analysis of automation tools employed in the coding phase of DevOps culture. We have taken most commonly followed source code management tools-BitBucket, GitHub actions, and GitLab into consideration. Current work assesses and analyzes their performance based on DevOps evaluation criteria that too are categorized into different dimensions. For the purpose of performance evaluation, weightage and overall score is assigned to these criteria based on existing renowned literature and industrial case study of TekMentors Pvt Ltd. On the ground of performance outcome, the tool with the highest overall score is realized as the best source code automation tool. This performance analysis or measure will be a great benefit to our young researchers/students to gain an understanding of the modus operandi of DevOps culture, particularly source code automation tools. As a part of future research, other dimensions of selection criteria can also be considered for evaluation purposes
    corecore