Cloud Native Programming - overview
The emergence of cloud computing and the 'as a service' software delivery model drastically changed the way we develop, deploy, and manage software. Agility, namely the ability to deliver new software capabilities with speed, based on insight and with reduced risk, quickly became a key business imperative and sparked great technological advancements.
Agility is based on three pillars: (1) containers, offering lightweight and portable software packaging; (2) DevOps practices, methodologies, and tools supporting immutable infrastructure and end-to-end automation in the spirit of everything-as-code; and (3) a software-architecture style where applications comprise fine-grained, loosely coupled components, called microservices, designed for resiliency.
Agility and cloud-native principles and practices fundamentally changed the software lifecycle. Some activities traditionally performed at runtime are now being performed before deployment ("shifted to the left"); for instance, image content and code are analyzed early in a delivery pipeline so that problems and vulnerabilities are detected before deployment is allowed. Conversely, testing has morphed into problem determination, as the development cycle has significantly shortened, enabling some tests to be performed in production through techniques such as canary releases.
Our Research team is focused on the new challenges and opportunities that arise with cloud-native computing, and the platform and tools needed to help organizations deliver innovation with speed, security, control, and insight.
We pioneered Istio together with Google based on our earlier research project (amalgam8) . We are continuing to extensively contribute to Istio and shape its evolution, focusing on all aspects of the architecture such as multi-cluster support, user experience, performance, and multi-protocol extensions.
More broadly, we are attacking the challenges of (1) managing multi-cluster and multi-cloud environments, and (2) supporting the development and deployment of applications into these environments.
As part of these efforts, we are expanding the role of Istio to be able to address the need of a diverse class of cloud-native applications, for example, those requiring a combination of the traditional RPC model (synchronous inter-service calls) and event-driven architectures.
In addition, we are developing ecosystem tools and technologies for A/B testing, canary testing, troubleshooting, and analytics for site reliability engineers (SREs). Istio brings with it a great opportunity to be explored in this realm, as it collects a wealth of application-level data and provides routing control. These basic building blocks enable us to apply techniques such as AI to analyze the data to gain the insight necessary to run applications smoothly and securely, and to automatically tune parameters controlling the resiliency of microservices.
Much of our work is done in the open. In addition to our pioneering role in Istio, we have recently open sourced iter8, which is an umbrella project for applying AI/ML techniques to the software lifecycle based on the Istio and Knative platforms.
Context-based analytics - establishing explicit links between runtime traces and source code
Jurgen Cito, Fábio Oliveira, Philipp Leitner, Priya Nagpurkar, and Harald C. Gall
IEEE/ACM 39th International Conference on Software Engineering (ICSE - SEIP), 2017
Opvis: extensible, cross-platform operational visibility and analytics for cloud
Fábio Oliveira, Sahil Suneja, Shripad Nadgowda, Priya Nagpurkar, and Canturk Isci
18th ACM/IFIP/USENIX Middleware Conference (Middleware), pp. 43-49, 2017
Delivering software with agility and quality in a cloud environment
Fábio Oliveira, Tamar Eilam, Priya Nagpurkar, Canturk Isci, Michael Kalantar, Wolfgang Segmuller, and Ed Snible
IBM Journal of Research and Development 60(2-3), 2016
Testing Idempotence for Infrastructure as Code
Waldemar Hummer, Florian Rosenberg, Fábio Oliveira, and Tamar Eilam
14h ACM/IFIP/USENIX Middleware Conference (Middleware), pp. 368-388, 2013