ResearchOps: The case for DevOps in scientific applications

DevOps (a portmanteau of “development” and “operations”) is a software development method that extends the agile philosophy to rapidly produce software products and services and to improve operations performance and quality assurance. It was born to accelerate the delivery of Web-based systems and quickly bring new value to users. Many Web-based systems evolve according to usage trends without a clear long-term goal. Before the widespread use of Web services, most software with a clear goal were delivered as packages that users installed on their own system. New versions were delivered with a much lower frequency, with periods in between versions ranging from months to years. Development cycles were divided into large design, coding and testing phases culminating in the release of a new stable version. In software development in the context of applied science, even when the goal is clear, the process to attain it is not. Hence, working releases that capture the current software state must be released frequently in order to reduce the risks for all stakeholders and to make it possible to assess the current state of a project and steer it in the right direction. This paper explores the usefulness of DevOps concepts to improve the development of software that supports scientific projects. We establish the similarities and differences between scientific projects and Web applications development, and discuss where the related methodologies need to be extended. Unique challenges are discussed herewith developed solutions, and still open questions. Lessons learned are highlighted as best practices to be followed in research projects. This discussion is rooted in our experience in real-life projects at the IBM Research Brazil Lab, which just as well apply to other research institutions.

[1]  Renato Cerqueira,et al.  A Tool to Support Deployment of Scientific Software as a Service , 2014 .

[2]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

[3]  Patrick Debois,et al.  Agile Infrastructure and Operations: How Infra-gile are You? , 2008, Agile 2008 Conference.

[4]  Stephen Childs,et al.  GridBuilder: A Tool for Creating Virtual Grid Testbeds , 2006, 2006 Second IEEE International Conference on e-Science and Grid Computing (e-Science'06).

[5]  P. Mell,et al.  The NIST Definition of Cloud Computing , 2011 .

[6]  Diomidis Spinellis Package Management Systems , 2012, IEEE Software.

[7]  Daniel S. Katz,et al.  Understanding Scientific Applications for Cloud Environments , 2011, CloudCom 2011.

[8]  Dror G. Feitelson,et al.  Development and Deployment at Facebook , 2013, IEEE Internet Computing.

[9]  Cees T. A. M. de Laat,et al.  AMOS: Using the Cloud for On-Demand Execution of e-Science Applications , 2010, 2010 IEEE Sixth International Conference on e-Science.

[10]  Rajkumar Buyya,et al.  Cloud Computing Principles and Paradigms , 2011 .

[11]  James Loope Managing Infrastructure with Puppet , 2011 .

[12]  Maximilien de Bayser,et al.  A System for Runtime Type Introspection in C++ , 2012, SBLP.

[13]  Eric W. Brown Watson: The Jeopardy! Challenge and beyond , 2013, 2013 IEEE 12th International Conference on Cognitive Informatics and Cognitive Computing.

[14]  Diomidis Spinellis,et al.  Don't Install Software by Hand , 2012, IEEE Software.

[15]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[16]  Matthias Marschall Chef Infrastructure Automation Cookbook , 2013 .

[17]  David Thomas,et al.  The Pragmatic Programmer: From Journeyman to Master , 1999 .

[18]  Rogério Abreu de Paula,et al.  A scalable architecture for real-time analysis of microblogging data , 2015, IBM J. Res. Dev..

[19]  Kathryn S. McKinley,et al.  Uncertain: a first-order type for uncertain data , 2014, ASPLOS.

[20]  Carl Kesselman,et al.  Application-Level Resource Provisioning on the Grid , 2006, 2006 Second IEEE International Conference on e-Science and Grid Computing (e-Science'06).

[21]  Michael Hüttermann DevOps for Developers , 2012, Apress.