
A Software Architecture Framework for Quality-Aware DevOps Elisabetta Di Nitto Pooyan Jamshidi Michele Guerriero Politecnico di Milano Imperial College London Politecnico di Milano Milan, Italy London, UK Milan, Italy [email protected] [email protected] [email protected] Ilias Spais Damian A. Tamburri ATC Politecnico di Milano Athens, Greece Milan, Italy [email protected] [email protected] ABSTRACT Technology) departments are struggling to accelerate the de- DevOps is an emerging software engineering strategy entail- livery of applications and services while preserving produc- ing the joined efforts of development and operations people, tion and operations stability [6]. On one hand, ICT opera- their concerns and best practices with the purpose of realis- tors lack understanding of the application internals including ing a coherent working group for increased software develop- system architecture and the design decisions behind archi- ment and operations speed. To allow software architecture tectural components [2, 4]. On the other hand, development practitioners to enrich and properly elaborate their archi- teams are not aware of operation details including the infras- tecture specifications in a manner which is consistent with tructure, its limitations and benefits. In response to these DevOps, we surveyed a number of DevOps stakeholders. We challenges, DevOps emerges as a set of software engineering studied concerns and challenges to be tackled with respect strategies to create a more cohesive working group inter- to preparing a software architecture which is DevOps-ready, mixing development and operations people, concerns and i.e., described in all details needed to enact DevOps sce- approaches with the aim of increasing the speed to which a narios. Subsequently, we introduce SQUID, that stands for design changes reaches operational software within specified Specification Quality In DevOps. SQUID is a software archi- quality constraints [2]. tecture framework that supports the model-based documen- In this paper we aim at enriching the state of the art in tation of software architectures and their quality properties DevOps with an architecture framework called SQUID, that in DevOps scenarios with the goal of providing DevOps- stands for \Specification Quality In Devops". The SQUID ready software architecture descriptions. We illustrate our framework shows the following key features: (a) is based on framework in a case-study in the Big Data domain. the empirical investigation of software architecture stake- holders, concerns [1] and challenges around specifying and using software architectures in DevOps scenarios; (b) allows CCS Concepts the functional and non-functional specification of software •Software and its engineering ! Software notations architectures in a manner which is most consistent with De- and tools; Designing software; System description lan- vOps scenarios; (c) extends a well known software architec- guages; ture framework, i.e., Philippe Kruchten's original 4+1 Views [9]; (d) conforms to the standard conceptual overview pre- sented in the ISO / IEC 42010 standard for architecture Keywords description [8]. Architecture Frameworks, Model-Driven Design, QoS, QoD Illustrating SQUID we observed that it does indeed pro- vide a valuable starting point to elaborate strategic software 1. INTRODUCTION architecture descriptions within DevOps scenarios -these de- scriptions are in fact, DevOps-ready, i.e., they provide full Today, most organizations face high market pressure, and details concerning the architectural aspects and properties their supporting ICT (i.e., Information and Communication needed in DevOps scenarios. Nevertheless, using SQUID in action as part of a Big Data application description fea- turing DevOps, we also observed that much work still lies ahead around several challenges, such as: (a) using SQUID descriptions as recipes in DevOps-based refactoring; (b) us- ing SQUID descriptions for DevOps-based coordination and division of work; (c) provide appropriate DevOps tooling for the proposed architecture framework. The rest of this paper is structured as follows. Section 2 elaborates on our investigation of the DevOps architecture landscape. Sections 3 and 4 outline the original 4+1 frame- improve the architecture based on performance bot- work and how it is augmented towards elaborating SQUID tlenecks and reliability issues that have been detected while Section 5 applies SQUID to elaborate a Big-Data ap- based on monitoring of the system on real platforms. plication description from a real-life industrial scenario. Fi- nally, Section 6 concludes the paper hinting to future work. 3. Lack of tools and methods adaptable to hetero- geneous DevOps maturity in industry: Devel- 2. DEVOPS PEOPLE AND THEIR ISSUES oping and maintaining modern IT applications (e.g., data-intensive applications) is key to IT market diver- By means of market-scanning and Business-Model Can- sity, spanning from big industrial players and small- vas modelling [5] within the DICE EU H2020 project con- /medium-enterprises. However, there exists a huge sortium's industrial partners we observed several key stake- variety of software processes in this diversity. Such holders, concerns and challenges in the DevOps context - diversity is seldom taken into account from a method- we argue that understanding and covering these is critical ological and technological standpoint. For example, to DevOps success. To understand the DevOps dimensions very few evaluations show the applicability of certain inherent in our scenario, we carried out over 30+ interviews data-intensive design methods within IT companies as well as 3 focus-groups with DICE industrial partners consistent with CMMI (Capability Maturity Model In- concerning what are the practical requirements to support tegration) Level 4 (Quantitatively Managed) or level 2 DevOps-based software development and operations for big (Managed), yet, the industrial adoption of those design data applications. We analysed results through coding and methods may depend greatly on such evaluations. scenario analysis. The results of this exercise are outlined as follows. 4. Lack of Continuous Analytics Frameworks for 2.1 Relevant Stakeholders and Concerns Business Needs and Technical QoS: All types of organizations need to move fast, and need to align IT Table 1 outlines the stakeholders that play a key role in assets to their needs (create new assets or adapt ex- specifying and using software architectures within DevOps isting ones). Therefore, ICT departments need to as- scenarios according to our investigation. Column 1 names sure that their ICT platforms and infrastructures are the stakeholder while Columns 2 and 3 outline a brief de- flexible enough to adopt business changes, regardless scription of the stakeholder's role in the context of DevOps of the type of IT infrastructures used to create those and the concerns this role entails. data intensive applications, whether they are built us- The table essentially shows how the stakeholders and roles ing open-source software or data services offered by typically involved in software engineering [13] are accompa- public cloud providers. In other words, they should nied by a number of stakeholders (e.g., Middleware commu- avoid technological lock-in as much as possible. nities or standardization bodies) that do not have a direct relation to the product but account for the product's or- 5. Lack of Explicit Support for Continuous Ar- ganizational stability, e.g., so that the DevOps cycle may chitecture Refactoring: The tenets behind DevOps be enacted in a long-lived fashion and without hindrance. entail producing actionable architectures that can be Conversely, imagine a scenario where a product is being de- operated and monitored as soon as possible so that as- veloped in a DevOps fashion but software architects and pects such as efficiency, reliability and safety of appli- product owners do not account for standards or middleware cations can be improved incrementally in testing and providers / communities. In this same scenario, proceeding production environments, with metrics and data that without measurement or quantification of the middleware feedback directly and quickly to development teams for community health may lead to community failure and mid- faster testing, improvement and adjustment to meet dleware discontinuation. service level goals. 2.2 DevOps: Industrial Challenges 6. Continuous Fine-Grained Application Monitor- The following key challenges were elicited as part of our ing and Anomaly Detection: Access to live data investigation: gathered by monitoring engines should also provide 1. Lack of automated tools for quality-aware De- performance and reliability data for observed appli- vOps: industries recognise the lack of development cations in production to gauge the need for identifying and continuous delivery of products that has been ver- outliers and detecting any anomaly that may harm ified in terms of quality assurance. In other words, continuous business processes that are dependent to there exists many different frameworks that software such data intensive applications. Moreover, such mon- vendors can adopt in order to develop their applica- itoring data should assist application architects and tions. However, there is no automated mechanism to developers in building toward an optimized target in- enable them to verify software quality across such dif- frastructure. ferent technological stack
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages6 Page
-
File Size-