Home Research DevOps

 

DevOps

From DevOps to NoOps

In an ever-changing landscape of software technology, new development paradigms, novel infrastructure technologies and emerging application domains reveal exciting opportunities, but also unprecedented challenges for developers, practitioners and software engineers. Amongst this innovation, containers as infrastructure support, data-intensive application as a domain and DevOps as a development paradigm have gained significant popularity recently. In our work, we focus on these concepts with the goal to enable quality assurance (QA) for developers. Since developers may not always have the skills or the knowledge set to ensure quality, the intention is to automate as much of the operation processes as possible and incorporate them directly in development. Towards this end, we work to implement autoscaling solutions and autonomic management systems for multi-tier, multi-layer, data-intensive applications on the cloud. These solutions are meant to ensure high availability, through high throughput and high quality of service, through low response times, for microservice architectures. Containers are an exceptionally fitting technologies for these tasks as they are fast and lightweight software delivery method and they are flexible and versatile in being scaled on demand and at wil.

Publications

1. Fokaefs, M., Barna, C., Veleda, R., Litoiu, M., Wigglesworth, J., Mateescu, R., “Enabling DevOps for Containerized Data-Intensive Applications: An Exploratory Study,” 26th annual International Conference on Computer Science and Software Engineering Conference (CASCON), 2016, Markham, ON, Canada (best paper award) [paper]

2. Barna, C., Fokaefs, M., Litoiu, M., Shtern, M., and Wigglesworth, J., “Cloud Adaptation with Control Theory in Industrial Clouds,” IEEE International Conference on Cloud Engineering (IC2E) 2016 Industry Track, pp. 231-238 2016, Berlin, Germany [paper]

Presentations

1. CASCON Workshop on Continuous Software Engineering, Toronto, November 2016: From DevOps to NoOps and the integration with BizOps.

2. CASCON ’16, Toronto, November 2016: Enabling DevOps for Containerized Data-Intensive Applications: An Exploratory Study [slides]

3. 8th CASCON Workshop on Cloud Computing, Toronto, November 2016: Enabling DevOps for Containerized Data-Intensive Applications: An Exploratory Study

4. CASCON ’16 Expo: Enabling DevOps for Containerized Data-Intensive Applications: An Exploratory Study (poster) (Best Exhibit Award)

Web Tutorials on Containers (by Cornel Barna)

1. Creating a Cluster in VirtualBox

2. Create a Web Application

3. Monitoring a VM with SNMP

4. Docker Swarm

…and the integration with BizOps

Recent advancements in software technology, including virtualization, microservices, and cloud computing, have created novel challenges and opportunities on developing and delivering software. Additionally, it has given rise to DevOps, a hybrid team responsible for both developing and managing the software system, and has led to the development of tools that take advantage of the enhanced flexibility and enable the automation of the software management cycle. In this new world characterized by volatility and speed, the Business Operations (BizOps) team is lagging behind and still remains disconnected from the DevOps team. BizOps views software as a product and is responsible for defining the business and economic strategy around it.

The goal of our work is to imbue DevOps tools and processes with BizOps knowledge and metrics through formal models and methods. Currently, BizOps receives the software system or service as a finished product, a black box, on which a price has to be put and be offered to clients. The price and the marketing strategy are usually defined at the beginning of a sales cycle (e.g. a year) and remain the same for the entirety of the cycle. However, this is in contrast to the great volatility of the service itself. In most cases, the strategies are based on the instinct of managers with high acumen and experience and broad marketing surveys or one-to-one negotiations with clients, information that can easily change and may remain disconnected from the software development. The end product of our work is a set of economic and performance models to connect the DevOps and BizOps processes during the software’s lifecycle and eventually incorporate them in automated tools to adapt and scale the system in production and enable continuous development, integration and delivery. In addition, the aim is to develop adaptive business policies in response to the adaptive nature of cloud-deployed software systems.

Publications

1. Fokaefs, M., Barna, C., Litoiu, M., “An Economic Model for Scaling Cloud Applications,” 9th IEEE International Conference on Cloud Computing (CLOUD), 2016, San Francisco, CA, USA [paper]

2. Fokaefs, M., Barna, C., Litoiu, M., “Economics-Driven Resource Scalability on the Cloud,”11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, pp. 129-139, 2016, Austin, TX, USA [paper]

3. Fokaefs, M., Stroulia, E., “Software Evolution in Web-Service Ecosystems: A Game-Theoretic Model,” INFORMS Service Science, pp. 1-18, 8 (1), 2016 [paper]

4. Fokaefs, M., Stroulia, E., Messinger, P. R., “Software Evolution in the Presence of Externalities: A Game-Theoretic Approach,” in Economics-Driven Software Architecture, I. Mistrik, R. Bahsoon, R. Kazman, K. Sullivan, and Y. Zhang, Eds. Elsevier, 2014, pp. 243-258. [paper]

Presentations

1. IEEE CLOUD ’16, San Francisco, CA, June 2016: An Economic Model for Scaling Cloud Applications

2. CSER Spring Meeting ’16, Edmonton, June 2016: Economics-aware cloud scaling: An evolutionary research process

3. SEAMS ’16, Austin, TX, May 2016: Economics-driven resource scalability on the cloud

4. 7th CASCON Workshop on Cloud Computing, Toronto, November 2015: Cloud Engineering Economics: The autoscaling problem

5. CASCON '15 Technical Showcase, Toronto, November 2015: Engineering Economics of Everything-as-a-Service (XaaS) (poster)

6. CSER Fall Meeting '15, Toronto, November 2015: Software Engineering Economics: The Cloud Case Study

 

Continuous Software Engineering

Development is the team who is primarily responsible for functionality. They implement the required features at development time, but also determine and document the quality parameters and non-functional properties of the system by dynamically analysing and profiling the system at runtime. The team will also need to define the value created by the functional properties of the system. The operations team is concerned with the quality and performance of the system mainly at runtime. At deployment time, the input from the development team is analysed to determine the resources needed to deploy the system and make it available to users. Secondly, the team builds the performance models of the system, based on the same input and the available resources, to manage the software at runtime and determine the client utility and generated value based on its runtime quality. Finally, the business operations heeds the client needs and how the competition addresses those to find what are the features that are to be focused on and passes those to the other teams before development. After deployment, the team is responsible to maintain the system's profitability and its competitiveness within the ecosystem by dynamically adapting the strategies and policies according to environment changes and input from the other teams.

In the new vision for Software Engineering, development is concerned with continuous integration, in other words the ability of the development team to push changes, e.g., bug fixes or new features, in the system while this is in production phase (i.e., after development and release). Operations management is concerned with continuous delivery or the capability to guarantee that the system or service will always be available to users with the highest quality. Business operations management is concerned with continuous profitability making sure to strike a balance between costs and revenues so that the system will in most cases produce profits for the provider. The intersection between development and operations guarantees continuous deployment implying that any changes, which are to be integrated in the system will do so without any disruption to users ensuring the same quality as before. Between operations management and business operations management lies continuous utility, i.e., the ability of the system to create value for its users after considering the impact that price and quality have on them. The integration between development and business operations management ensures continuous sustainability for the extended business ecosystem of the software by addressing competition and client needs. Eventually, the integration of all three teams enables continuous software engineering, which covers the entire spectrum.

 

 
Copyright © 2019 Marios Fokaefs's Home Page. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.