841 research outputs found

    Microservices Architecture Enables DevOps: an Experience Report on Migration to a Cloud-Native Architecture

    Get PDF
    This article reports on experiences and lessons learned during incremental migration and architectural refactoring of a commercial mobile back end as a service to microservices architecture. It explains how the researchers adopted DevOps and how this facilitated a smooth migration

    Report from GI-Dagstuhl Seminar 16394: Software Performance Engineering in the DevOps World

    Get PDF
    This report documents the program and the outcomes of GI-Dagstuhl Seminar 16394 "Software Performance Engineering in the DevOps World". The seminar addressed the problem of performance-aware DevOps. Both, DevOps and performance engineering have been growing trends over the past one to two years, in no small part due to the rise in importance of identifying performance anomalies in the operations (Ops) of cloud and big data systems and feeding these back to the development (Dev). However, so far, the research community has treated software engineering, performance engineering, and cloud computing mostly as individual research areas. We aimed to identify cross-community collaboration, and to set the path for long-lasting collaborations towards performance-aware DevOps. The main goal of the seminar was to bring together young researchers (PhD students in a later stage of their PhD, as well as PostDocs or Junior Professors) in the areas of (i) software engineering, (ii) performance engineering, and (iii) cloud computing and big data to present their current research projects, to exchange experience and expertise, to discuss research challenges, and to develop ideas for future collaborations

    Chaos Engineering for Microservices

    Get PDF
    Chaos engineering is a relatively new concept that is growing in popularity as it helps companies to be more resilient in the face of unexpected networking or software failure. The idea behind chaos engineering is that if you can create controlled failures, you can discover where your system is weak and then fix those weaknesses before something happens to your production environment. This research has been done on microservices, which are small pieces of code that perform specific tasks on behalf of a larger application. Microservices are often hosted on different servers and run by different teams, so they are much more fragile than monolithic applications. Microservices also tend to be written in different languages, which makes them more difficult to understand and test for bugs. The goal of this study was to determine whether microservices can be made more resilient through chaos engineering or not; specifically, if it is possible to find out what kinds of failures occur most often and how long they take to resolve

    Orquestração de um pipeline de ferramentas para apoio ao ensino

    Get PDF
    The variety and nature of tools that are nowadays used on both academic and professional contexts have been increasing over the past few years. With the non stopping evolving cycle that technology suffers on a daily basis, this is a consequence that will be even more noticeable in a not so distant future. As a result, several problems have emerged. How to handle all of the crucial tools in a simple and reliable way? How to structure that process so it can scale, in order to apply it whenever the tools are being used by several people? Services specialization, such as microservices, taking advantage of the core tools features, allows the automation of almost all the needed configurations required. This thesis focus on the design and implementation of a solution that enhances the ease and efficiency of creating and configuring working environments either of students or workers, being, however, more focused on the academic environment. To achieve this, a prototype tool has been developed, which consists in several services that when combined together are capable of creating and configuring a software development integration pipeline. The prototype is responsive to a certain configuration input and handles all the tasks needed in between the configuration steps, keeping the resulting pipeline always up to date.A variedade e natureza das ferramentas que são hoje em dia utilizadas tanto em contextos académicos como profissionais têm vindo a aumentar nos últimos anos. Com o constante ciclo evolutivo que a tecnologia sofre diariamente, este aumento é um fator que será ainda mais percetível num futuro próximo. Por conseguinte, vários problemas têm surgido. Como lidar com todas as ferramentas cruciais de uma forma simples e fiável? Como estruturar esse processo para que possa ser escalado, a fim de o aplicar a situações em que as ferramentas estejam a ser utilizadas por várias pessoas? A especialização em serviços, surgindo aqui o conceito de microserviços, aproveitando algumas das funcionalidades oferecidas por parte das ferramentas, permite a automação de quase todas as configurações necessárias. Esta tese tem como foco a conceção e implementação de uma solução que torne mais simples e eficiente o processo de criação e configuração de ambientes de trabalho, quer de estudantes quer de trabalhadores dando, no entanto, mais foco à vertente académica. Para o conseguir, foi desenvolvido um protótipo, que consiste em vários serviços que, quando combinados, são capazes de criar e configurar uma pipeline de integração de software. O protótipo tem como input uma determinada estrutura de dados e trata de todas as tarefas necessárias entre as etapas de configuração, mantendo assim a pipeline sempre atualizada. Esta tese relata todo o processo envolvido na elaboração da solução final em cima descrita, estando inerentes as fases de estudo acerca dos conceitos fulcrais ao problema, análise de valor e de negócio, proposta de design, implementação e avaliação da solução desejada

    ACCOUNTING AND FINANCIAL STATEMENTS AUTO ANALYSIS SYSTEM

    Get PDF
    This project was motivated by the need to revolutionize the generation of financial statements and financial analysis process thus speeding up business decision making. The research questions were: 1) How can machine learning increase the speed of financial statement preparation and automate financial statements analysis? 2) How can businesses balance the benefits of automating financial analysis with potential concerns around privacy, data security, and bias? 3) Can the Java J2EE framework provide a reliable running environment for machine learning? The findings were: 1) Machine learning can significantly increase the accuracy and speed of financial analysis. Using machine learning algorithms, financial data can be processed and analyzed in real-time, allowing for quicker and more precise financial analysis. Machine learning models can identify patterns and trends in financial data that may not be easily detectable by humans, leading to more accurate financial statements and analysis. Additionally, machine learning can automate repetitive tasks in the financial analysis process, saving time and resources for businesses. 2) Businesses need to carefully balance the benefits of automating financial analysis with potential concerns around privacy, data security, and bias. While machine learning can offer significant advantages in terms of accuracy and speed, it also requires handling sensitive financial data. Therefore, it is crucial for businesses to implement robust data security measures to protect against potential data breaches and ensure compliance with privacy regulations. Additionally, businesses need to be mindful of potential biases in machine learning algorithms, as biased algorithms can result in biased financial analysis. Regular audits and monitoring of machine learning models should be conducted to address and mitigate any potential biases. 3) The Java J2EE framework can provide a reliable running environment for machine learning. Java J2EE (Java 2 Platform, Enterprise Edition) is a widely used and mature framework for developing enterprise applications, including machine learning applications. It offers scalability, reliability, and security features that are essential for running machine learning algorithms in a production environment. Java J2EE provides robust support for distributed computing, allowing for efficient processing of large financial datasets. Furthermore, it offers a wide range of libraries and tools for implementing machine learning algorithms, making it a viable choice for running machine learning applications in the financial industry. The conclusions were: 1) Machine learning has the potential to significantly increase the accuracy and speed of financial analysis, thereby revolutionizing the generation of financial statements and the financial analysis process. Various machine learning algorithms, such as decision trees, random forests, and deep learning algorithms, can be utilized to identify patterns, trends, and hidden risks in financial data, leading to more informed and efficient business decision making. 2) Businesses need to carefully balance the benefits of automating financial analysis with potential concerns around privacy, data security, and bias. While machine learning can offer significant advantages in terms of accuracy and speed, there are ethical considerations that need to be addressed, such as ensuring data privacy, implementing effective data security measures, and mitigating biases in machine learning algorithms used in financial analysis. Businesses should adopt a responsible approach to machine learning implementation, considering the potential risks and benefits. 3) The Java J2EE framework can provide a reliable running environment for machine learning applications, but further research is needed to evaluate the performance and scalability of machine learning models in this framework. Identifying potential optimizations for running machine learning applications at scale in the Java J2EE framework can lead to more efficient and effective implementation of machine learning in financial analysis and decision-making processes. Further research in this area can contribute to the development of robust and scalable machine learning applications for financial analysis in the business domain. Areas for further study include: 1) Exploring different machine learning algorithms and techniques to further improve the accuracy and speed of financial analysis. 2) Conducting research on the impact of machine learning on financial decision making and business performance. 3) Investigating methods for addressing and mitigating biases in machine learning algorithms used in financial analysis. 4) Evaluating the effectiveness of different data security measures in protecting sensitive financial data in machine learning applications. 5) Studying the performance and scalability of machine learning models in the Java J2EE framework and identifying potential optimizations for running machine learning applications at scale

    Microservice Testing Approaches: A Systematic Literature Review

    Get PDF
    Testing is a crucial part of each code development method to which organizations devote extensive time and effort. The ever-changing industry needs of business necessitate that experts adopt and support themselves to meet the requirements in microservice testing, and in the process of doing so, contribute escalation to newer approaches and essential techniques of architecture in microservice testing from the perspective of microservice testing, the advancement of “microservice†is the result of such an activity to make the testing quality better and its impact penetrates down to the quality assurance teams. Working on testing microservice has become a newer structure of this testing architecture. This study explains the challenges that the testing world has to deal with and the effective strategies that can be predicted to overcome them while testing for applications and its design with a microservice testing approaches. This study can also serve as a guide to anyone who wants apparition into microservices and would like to know more about microservice. Testing approaches that can be developed and successfully applied while working within such a landscape. However, one of the major advantages of using microservice that it offers, efficient, flexible, effective, reusability mechanism. Furthermore, it is a secure way to reduce the development and testing time and cost. The security, performance, traceability, compatibility, complexity, effectiveness and scalability become some of the major concerns when testing approaches, frameworks, tools and models are applied for each microservice repository and no previous research addresses these concerns. In this review, we present some testing approaches, frameworks, tools and models to address all these concerns

    Future proofing Lovelace system development environment

    Get PDF
    Abstract. Software development methods and tools improve continuously to improve the development process. Modern software architecture has paved the way for microservice based architecture. The main point of microservice architecture is to split a system to small independent parts that can be deployed separately without affecting the other parts of the system. With microservices and tools, a system can achieve fault tolerance, scalability and faster release cycle with automation. The use of container technologies has increased and popularized with microservices, because containers simplify the deployment process. In this project, a modern development environment was introduced to help future development of a Virtual Learning Environment. The development environment included a public repository, containers, a container registry, container orchestration, server confguration and automated deployment. After successful implementation the simple mock up system was tested by smoke, load and spike testing methods. Overall the implementation and confguration was successful, however for implementing it for the Lovelace system in University of Oulu’s environment, some confguration and tool choices may need to be changed.Lovelace järjestelmän modernisointi tulevaisuuden kehitykseen. Tiivistelmä. Ohjelmistokehityksen tavat ja työkalut kehittyvät jatkuvasti helpottamaan, sekä parantamaan ohjelmiston kehitysprosesseja. Moderni ohjelmistoarkkitehtuuri on luonut tietä mikropalveluarkkitehtuurille, jonka päätarkoituksena on pilkkoa järjestelmä pieniin lähes itsenäisiin osiin, joita voidaan erikseen kehittää vaikuttamatta järjestelmän muihin osiin. Mikropalveluiden ja muiden työkalujen avulla järjestelmä saavuttaa vikasietoisuutta, skaalautuvuutta sekä nopeamman julkaisusyklin automaation ansiosta. Konttiteknologioiden käyttö on myös yleistynyt mikropalveluiden myötä, jotka helpottaa ohjelmiston toimittamista servereille. Tämän projektin aikana implementoitiin moderni kehitysympäristö helpottamaan jatkokehitystä Lovelace systeemille. Kehitysympäristö sisälsi julkisen säilön, kontin, kontti rekisterin, konttien orkesterointi työkalun, serveri confguroinnin ja automaattisen sijoituksen. Onnistuneen implementaation jälkeen, yksinkertainen järjestelmä testattiin savu, kuorma ja piikki testi metodeilla. Kokonaisuudessaan implementaatio ja confgurointi onnistuivat, mutta Lovelace implementaatio Oulun Yliopiston ympäristöön vaatii confgurointi muutoksia ja mahdollisesti muutamien työkalujen vaihtamista

    Developing Self-Adaptive Microservice Systems: Challenges and Directions

    Full text link
    A self-adaptive system can dynamically monitor and adapt its behavior to preserve or enhance its quality attributes under uncertain operating conditions. This article identifies key challenges for the development of microservice applications as self-adaptive systems, using a cloud-based intelligent video surveillance application as a motivating example. It also suggests potential new directions for addressing most of the identified challenges by leveraging existing microservice practices and technologies.Comment: 8 pages, 1 figur
    corecore