SERVERLESS COMPUTING DEVELOPER EMPOWERMENT REACHES NEW HEIGHTS.

Similar documents
ACHIEVING A SERVERLESS DEVELOPMENT EXPERIENCE

GUIDE The Enterprise Buyer s Guide to Public Cloud Computing

Creating an integrated plug-and-play supply chain with serverless computing

Microsoft Azure Essentials

JourneyApps. Platform. The Competitive Edge In Industrial Digitalization. Copyright of JourneyApps 2018 All Rights Reserved

Secure information access is critical & more complex than ever

Customer Challenges SOLUTION BENEFITS

BRIDGE INSURANCE SOFTWARE SUITE. Modern Approach For An Increasingly Complex Market

Understanding Your Enterprise API Requirements

DRAFT ENTERPRISE TECHNICAL REFERENCE FRAMEWORK ETRF WHITE PAPER

Adobe Cloud Platform

ApiOmat. Case Study. Challenge

Microsoft FastTrack For Azure Service Level Description

Integration in a Cloud native world

Capgemini Cloud Platform. Migrate, operate, and innovate every aspect of your business in the cloud

DevOps: Driving Organizational Change and Agility with PaaS

CONTENT AND EXPERIENCE CLOUD. Deliver Engaging Digital Experiences Across Multiple Channels

Azure Stack. Unified Application Management on Azure and Beyond

Scalr empowers enterprises to safely and rapidly deploy to the cloud by addressing the four major problem areas:

Understanding the Business Value of Docker Enterprise Edition

Architecting Microsoft Azure Solutions

Red Hat Container Technology Strategy

Building a Data Lake on AWS EBOOK: BUILDING A DATA LAKE ON AWS 1

THE MAGIC OF DATA INTEGRATION IN THE ENTERPRISE WITH TIPS AND TRICKS

Applicazioni Cloud native

Prepare for GDPR today with Microsoft 365

Bitnami Stacksmith. What is Stacksmith?

A Cloud Migration Checklist

SUSiEtec The Application Ready IoT Framework. Create your path to digitalization while predictively addressing your business needs

Course 20535A: Architecting Microsoft Azure Solutions

From... to cloud ready in less than one day with Parallels and ThinPrint

TechArch Day Digital Decoupling. Oscar Renalias. Accenture

Central Role of Messaging Middleware in Cloud and Digital Transformation Initiatives

Architecting Microsoft Azure Solutions

THETARAY ANOMALY DETECTION

Automating Your Way to Simplified Application Management

Bring Your Own License. and Universal Credits: Cloud Essentials. Simplifying Cloud Purchasing and Consumption

Understanding The Value of Containers in a World of DevOps. Advice that empowers. Technology that enables.

A CONTAINER-PLATFORM APPROACH TO DIGITAL TRANSFORMATION AND DEVOPS. Diógenes Rettor Principal Product Manager, OpenShift

Application Migration Patterns for the Service Oriented Cloud

DEVELOPING APPLICATIONS USING MICROSERVICES AND MICROSOFT AZURE SERVICE FABRIC 1

7 reasons why your business should invest in container technology

Thought Leadership From the IT Trendz BLOG, IBM Systems Magazines and Destination z

INTRODUCTION AUX APPLICATIONS CLOUD NATIVE AVEC PIVOTAL READY SYSTEM

Solution Brief. An Agile Approach to Feeding Cloud Data Warehouses

"Charting the Course... MOC A: Architecting Microsoft Azure Solutions. Course Summary

Application & Data Modernization enabling your Digital Transformation. Dennis Lauwers European Technical Leader Hybrid Cloud

Guide to Modernize Your Enterprise Data Warehouse How to Migrate to a Hadoop-based Big Data Lake

TECHNICAL WHITE PAPER. Rubrik and Microsoft Azure Technology Overview and How It Works

Business is being transformed by three trends

Split Primer. split.io/primer. Who is Split?

Actian DataConnect 11

Middleware Modernization: lay the foundation to your digital success

The Leading Low-code Application Platform For Modern Work Management

Hortonworks Connected Data Platforms

Architecting an Open Data Lake for the Enterprise

White paper The evolution of hybrid cloud management. From uncontrolled sprawl to a unified, adaptive IT services architecture

Intelligence, Automation, and Control for Enterprise DevOps

WHITE PAPER Migrating to the Cloud

SKF Digitalization. Building a Digital Platform for an Enterprise Company. Jens Greiner Global Manager IoT Development

Realize the potential of a connected factory

Loading. Do s and Don ts of App Development. 15 tips for the business and development team when developing or improving mobile or web applications

Architecting Microsoft Azure Solutions

FROM SHORE TO SHIP: USING MESOSPHERE ENTERPRISE DC/OS TO DELIVER REAL TIME MICROSERVICES TO A GLOBAL FLEET OF SHIPS

Open Banking, PSD2 and the New API Economy

MEETS MOBILE MAINFRAME. Access information anytime, anywhere

Loading. Do s and Don ts of App Development. 15 tips for the business and development team when developing or improving mobile or web applications

BRIDGE SPECIALTY SUITE

A Reference Architecture for Hybrid Integration. Peter Broadhurst Senior Technical Staff Member for IBM App Connect

How In-Memory Computing can Maximize the Performance of Modern Payments

Understanding How Velostrata Technology Works

IBM Cloud Operating Environment

Analytics in the Cloud, Cross Functional Teams, and Apache Hadoop is not a Thing Ryan Packer, Bank of New Zealand

According to the Enterprise Cloud

Fast Innovation requires Fast IT

Amsterdam. (technical) Updates & demonstration. Robert Voermans Governance architect

David Linthicum, Managing Director, Chief Cloud Strategy Officer, Deloitte Consulting LLP

IBM Cloud White Paper. How to get the benefits of cloud behind your firewall: IBM Cloud Private

Hybrid Container Orchestration for a UK based Insurance Solutions Software Provider Company ATTENTION. ALWAYS.

5 Microservice Initiatives for Digital Business

Your Enterprise Cloud-Native App Platform: An Introduction to Pivotal Cloud Foundry Richard August 31, 2017 #CNA3430BU CONFIDENTIAL

Understanding the Velostrata technology for mass migrations into Google Cloud Platform

Top six performance challenges in managing microservices in a hybrid cloud

Peak Performance. Always.

Integrating Configuration Management Into Your Release Automation Strategy

Why an Open Architecture Is Vital to Security Operations

Akana, All Rights Reserved Contact Us Privacy Policy. Microservices: What, Why and How

JOURNEY TO AS A SERVICE

White Paper: VANTIQ Competitive Landscape

Why Machine Learning for Enterprise IT Operations

OS A superior platform for business. Operate seamlessly, automatically, and intelligently anywhere in the world

Transforming large scale Software portfolio with Containers and Microservices at the speed of DevOps

CloudShell Pro. Self-Service Sandbox Environments for Physical, Virtual, and Hybrid-Cloud D ATA SHEET. The Need for Cloud Sandboxing

Solution Overview Enabling the efficient management of justice

AN EMM CHECKLIST FOR CIOs. Factors to Consider When Choosing an EMM Solution. Whitepaper

Latest Technology Advances in the Distribution Center. Copyright 2016 Tompkins International. All Rights Reserved

Chapter 3. The Integration as a Service Paradigm

How to start your cloud transformation journey

WebSphere for SOA. BPM with SOA: Your Most Potent Weapon to Take on Business Complexity

Microsoft Azure Architect Design (AZ301)

Transcription:

SERVERLESS COMPUTING DEVELOPER EMPOWERMENT REACHES NEW HEIGHTS www.iron.io

Digital transformation is at the top of mind across every organization, regardless of how rooted in technology they may be. Continually keeping up with the rapid pace of innovation is essential to maintain competitive advantage, and smart companies have recognized that it s the developers that hold the keys to success with their ability to build and ship software. Technological advancements across the entire cloud ecosystem, complemented by cultural shifts within organizations, have helped remove roadblocks from the software development lifecycle, further paving the way for developers to deliver continuous innovation. Now imagine a future where the notion of provisioning and managing infrastructure resources is completely removed from the development process in production and at any level of scale. Distributed systems are constructed to react to surrounding environments by spinning up ephemeral compute resources that process dynamic workloads on demand. For the developer, the only interface is APIs the systems are intelligent enough to automate the workloads entirely behind the scenes, while being fully aware of the surrounding environments at all times. While this may appear out of reach, it represents a future that has already arrived through a new architectural pattern, aptly named serverless. TABLE OF CONTENTS 3 4 6 10 14 Introduction to Serverless Concepts The Evolution of the Modern Cloud Preparing To Go Serverless The Serverless Development Lifecycle Why Serverless Matters ABOUT THE AUTHOR IVAN DWYER Ivan is Head of Business Development at Iron.io, working with partners across the entire cloud technology and developer services ecosystem to form strategic alliances around real world business solutions. This white paper details the key benefits and implications of a serverless architecture by walking through the entire development lifecycle. While a key tenet of this theme is abstracting away the underlying operations, having a clear understanding of what s happening behind the scenes will allow developers, architects, and business owners to make educated decisions about the future direction of their systems and applications. 2. 2016 Iron.io, Inc.

INTRODUCTION TO SERVERLESS CONCEPTS Despite the implications, a serverless architecture doesn t mean getting rid of the data center through some form of black magic that powers compute cycles in thin air. At its core, the concept promises a serverless experience for developers; as in never having to think about provisioning or managing infrastructure resources to power workloads at any scale. This is done by decoupling application components as independent microservices that automatically run when a predetermined event occurs. These events arise from a variety of sources from an application such as a webhook, in the real world such as a sensor capture, within a system such as a database change, or on a schedule such as a cron job. The automated workflow happens entirely behind the scenes without any need for manual intervention spin up, execute, tear down. Rinse and repeat at massive scale. It s important to note that nothing about this pattern discounts the importance of proper infrastructure management. The primary goal is to abstract the complexities away from the development process, which in fact places even more emphasis on finely tuned system administration in order to enable such automated capabilities. DevOps best practices have set the stage within the modern enterprise by promoting continuous integration and delivery models that allow for dozens, or even hundreds of deploys per day. What s different about the serverless architecture is that the underlying operations are manipulated via API instead of through scripts. In shifting the configuration from the systems layer to the application layer, the mantra Infrastructure as Code thus becomes Infrastructure in Response to Code. KEY BENEFITS FASTER TIME TO MARKET Developers with a clear path to delivery are able to focus their core efforts on building the features that drive the business forward in shorter release cycles. MORE EFFICIENT USE OF RESOURCES Breaking down applications into smaller, discrete units of compute that only use up resources when needed makes the most of what s available and reduces overall spend. LOWER TOTAL COST OF OWNERSHIP Investing in workload optimization and intelligent systems design upfront leads to lower administrative costs over time, and sets the foundation for future growth. LESS MAINTENANCE Fully automated workflows removes the need for manual oversight, enabling a fully streamlined development lifecycle. IN SHIFTING THE CONFIGURATION FROM THE SYSTEMS LAYER TO THE APPLICATION LAYER, THE MANTRA INFRASTRUCTURE AS CODE THUS BECOMES INFRASTRUCTURE IN RESPONSE TO CODE. 3. 2016 Iron.io, Inc.

THE EVOLUTION OF THE MODERN CLOUD While many of the associated concepts and patterns have existed for some time, it s been the convergence of a few parallel evolutions that have truly brought forth this serverless future. Without any of the following, we wouldn t be able to have this conversation. 4. 2016 Iron.io, Inc.

MICROSERVICES Born from the challenges of running distributed applications at scale, microservices has emerged as a dominant pattern for breaking apart applications into more manageable pieces. By decoupling application components as independent services that each perform a single responsibility, individual workloads become portable enough to distribute via automated workflows. CONTAINERS Portability is meaningless without consistency across environments. Container technologies such as Docker have taken the industry by storm through effective process isolation. Containers allows microservices to be developed, deployed and executed anywhere with the confidence that the runtime will be as expected. EVENT-DRIVEN The rise of all kinds of connected devices has led to a transition from the traditional request/response model of instantiation towards more responsive models. With the ability to react to device, system and application changes automatically, containerized microservices run entirely behind the scenes without manual intervention. DEVOPS These reactive workflows then need to be complemented with automated provisioning and deprovisioning to fully realize a serverless experience. The goal is to abstract away everything but the API, but that means the underlying system must be capable of handling all the infrastructure operations beyond just scale, including health monitoring and failure handling. Serverless computing represents the intersection of these modern cloud movements; where architectural patterns meets development culture in a way that delivers true value to the business. Smaller development teams who can confidently claim ownership and responsibility enable the continuous innovation required to stay competitive. SMALLER DEVELOPMENT TEAMS WHO CAN CONFIDENTLY CLAIM OWNERSHIP AND RESPONSIBILITY ENABLE THE CONTINUOUS INNOVATION REQUIRED TO STAY COMPETITIVE. 5. 2016 Iron.io, Inc.

PREPARING TO GO SERVERLESS Any new development trend capturing headlines needs to be backed up with real world solutions in order to escape from the hype cycle to the enterprise. Given that serverless computing is the culmination of several parallel evolutions that have already taken root in today s enterprises, it is poised to become the next significant technology shift. With that in mind, let s examine what it takes to implement these patterns into our own applications. IDENTIFYING THE RIGHT CANDIDATES BACKEND TRANSACTIONS These include individual user or device actions such as processing a credit card or sending an email. When applications demand real-time responses, any processing should be offloaded to the background, so it doesn t interfere with the user experience. Individual transactions are easy to decouple as containerized microservices, at which point they can be triggered to execute asynchronously without the need for an immediate response. BATCH PROCESSES Likely candidates for serverless batch processing are heavy lifting workloads for crunching a large data set or encoding a multimedia file. The most common pattern in the history of computing still has a strong 6. 2016 Iron.io, Inc.

place in the modern cloud. What s changed the most aside from the compute environment is the need for a manual start. An event can trigger a workflow that runs batch jobs concurrently across a pool of available compute resources. DATA PIPELINES A data pipeline may include extraction, transformation, and loading of data such as analyzing machine data for an IoT system or delivering filtered logs to a data warehouse. The explosion of connected devices has brought forth exponential growth in the number of data sources and sheer volume, requiring an awful lot of processing power to extract meaningful insight. Getting data from source to destination happens in the background, with any logic inserted along the way. BOTS With automated workflows being a key theme with serverless computing, a natural extension is automated services. Chatbots or integration hooks are meant to run independently in response to events - user or system generated. The input is taken in as a payload, the process is executed, and then the results are delivered back. SCHEDULED JOBS Examples of scheduled jobs could be regular occurring jobs such as a daily web scraper or weekly email blast. Cron jobs are a staple of any system, but are also easy to forget and hard to manage. With a serverless architecture, a schedule is simply a form of event trigger, used to kick off any type of background workflow as shown here. 7. 2016 Iron.io, Inc.

UNDERSTANDING EVENT TRIGGERS The event-driven methods for instantiating workloads means giving extra care to what happens once invoked. Real world events have a tendency to pile up, which can quickly lead to system overload or resource maxing if not careful. If you treat each event as an API endpoint, then you ll want to ensure you have the right policies in place for authentication, authorization, rate limiting, error handling, and more. First things first, it s important to understand where different events can be sourced. When triggered, the job is posted to a queue that either pushes the message to a running worker node, or holds the message until a worker node is available. SYSTEM CHANGES Infrastructure resources can be wired to capture internal events, which are then passed as messages to trigger a workflow. For example, this can be a notification when a file is uploaded or when a database record is changed. APPLICATION CHANGES Applications can incorporate webhook urls as a trigger method. Many services now incorporate webhooks across events, allowing developers to map the url to an API endpoint that automatically invokes a workflow. STREAM Data as a stream of events is common in modern applications, with a strong need for heavy processing capabilities at the end. Workers can be configured to concurrently process data across a pool of compute resources. SCHEDULE Regular occurring jobs such as a daily web scraper or weekly email blast are a staple of any application, but are also easy to forget and 8. 2016 Iron.io, Inc.

hard to manage through cron for example. In this context, a schedule is simply a form of event that triggers the workflow in the background. MANUAL Any job can be invoked manually, either via direct API call or CLI. Aside from testing purposes, some jobs are built to be executed on demand such as a database query or system cleaner. When invoked, the job is placed in the queue just as any other event-driven method. NAVIGATING THE VENDOR LANDSCAPE While many of the associated concepts have existed for some time, the serverless trend really caught on with the introduction of AWS Lambda in late 2014. Not to be outdone, Microsoft and Google recently announced their own versions, Functions and Google Functions, respectively. Although you may think the clear choice would be to pick the infrastructure provider where your applications are running, there are some additional points to consider. While a key benefit to an IaaS-native solution is the ability to leverage internal system events to trigger the automated workflows, this could also be seen as a strong deterrent in terms of vendor lock-in at the technology level. Once you start coupling your business logic to the surrounding system, you are stuck in that environment much like the legacy middleware era we ve done such a great job escaping. Unless you are confident that you are going to run in the same, single cloud provider for the next 5-10 years, it s worth considering what it means to lock-in at that level. For a solution independent of any sole infrastructure provider, Iron.io offers a container-based serverless computing platform that is available in any cloud, public, private, or hybrid. As more and more developers adopt Docker as the preferred development environment, it becomes more natural to work in this style with a portable, containerbased solution. 9. 2016 Iron.io, Inc.

THE SERVERLESS DEVELOPMENT LIFECYCLE Shifts in application architecture mean making adjustments to the development process in order to reap the benefits. The serverless experience we re looking to achieve will kick in once the jobs are developed and properly prepared for automated execution. Iron.io provides developers and end-to-end platform for powering job-centric workloads through an easy to use API and interface. The following is a walkthrough of the Iron.io development process, with some best practices along the way. 1. BUILDING THE JOB Developing with Docker is a breeze as you can work across multiple languages and environments without clutter or conflict. When your job logic in place, you specify the runtime by writing a Dockerfile that sets the executable, dependencies, and any additional configuration needed for the process. TIPS Choose a lightweight base layer. This can be a minimal Linux distribution such as Alpine or Busybox. Read about microcontainers on the Iron.io blog. Keep the layers to a minimum. Don t run an update on the OS and consolidate RUN operations inline using && when possible. Limit the external dependencies to only what s needed for the process itself, and vendor ahead of time so there s no additional importing when the job is started. 2. UPLOADING THE IMAGE Each serverless job is built as a Docker image and pushed to a registry, where it can be pulled on demand. This can be a third party public image repository such as Docker Hub, Quay.io, or your own private registry. TIPS Incorporate the job code into a CI/CD pipeline, building the container image and uploading to a repository. Version your images using Docker tags and document properly. Don t rely on :latest as what should always run. 10. 2016 Iron.io, Inc.

3. DETERMINING EVENT TRIGGERS TIPS Once the job image is uploaded, it becomes ready to execute, either through an event or manually. With Iron.io, events can be set via API, native SDK, or dashboard. The automated workflow will then occur when the event happens or when the job is explicitly called. Map each job to your API, at a minimum within your documentation, but you can also set endpoints for direct requests. Using an API Gateway is a common way to manage events and endpoints across systems. Use a load balancer for synchronous requests and a message queue for asynchronous requests to throttle and buffer requests when load is high. With Iron.io, a message queue is built in to the system. 4. CONFIGURING THE RUNTIME ENVIRONMENT Operational complexities such as service registration and container orchestration are abstracted away from the development lifecycle; however, it is recommended to not just set it and forget it when running in a production environment. TIPS Profile your workloads for their most optimal compute environment. For example, some workloads are more memory intensive and need more resources allocated to the container. Set how many concurrent jobs can execute at any given time. This can help keep costs down and ensure you don t overload the system. Determine what happens when the job fails. If you want to auto-retry, set the maximum number of times with a delay in between. 5. SECURING AND MONITORING THE JOB To be production-grade, wrapping the environment with proper security and monitoring is essential. Given the levels of abstraction that serverless computing provides, it s even more important to gain insight into what s happening behind the scenes. TIPS Payload data should be encrypted at the source and then decrypted within the job code itself. Public key is a common technique in this scenario. Connections to databases from within a job process that are outside the network should be secure, either through a VPN or IP whitelisting. Inspect stdout and stderr for each job process. You can pipe these logs to syslog or a 3rd party logging service. 11. 2016 Iron.io, Inc.

UNDERLYING OPERATIONS Even though the end-to-end operations are meant to be abstracted away from the developers, it s worth knowing what s happening behind the scenes to have a clear understanding of the lifecycle of your workloads. When an event triggers an Iron.io job, the following process takes place: 1. QUEUE JOB The job is posted to a message queue, which acts as the temporary store, holding the job in a persisted state until completed. The message includes the job metadata, runtime parameters, and any payload data to be passed into the job process itself. 2. GET JOB Worker nodes are continually monitoring associated queues for new jobs. When capacity is available, the worker pops a job off the queue and pulls the associated Docker image from its registry if a cached version of the image isn t already on the machine. 3. EXECUTE PROCESS The worker then runs the container process with its given resource allocation. When the process is complete, the container is gracefully stopped and the resources are freed up for another job. 4. CAPTURE RESULTS: The container s stdout/stderr logs are captured and delivered back to the system or a 3rd party service for further inspection. If the process fails or timeouts, the job is placed back in the queue where it can be retried or canceled. 12. 2016 Iron.io, Inc.

THE IRON.IO PLATFORM Iron.io operates an enterprise-grade Platform as a Service specifically meant for powering job-centric workloads throughout their entire lifecycle. Working with Iron.io is a serverless experience because the only interface to developers is an API. If you follow the software development lifecycle and best practices put forth in this whitepaper, you will be able to extract the true value from the underlying technology, which results in true meaning for the business. 13. 2016 Iron.io, Inc.

WHY THIS MATTERS The explosion of container technologies and microservices-oriented development patterns have shaken up the entire IT ecosystem, forcing enterprises and vendors alike to modernize how applications are built and delivered. Much of the initial rush has been focused on the infrastructure layer, such as orchestration of containers across a distributed environment effectively. While an incredibly important topic worthy of its own studies, orchestration only provides the foundation for the end goal of developer empowerment. What this new serverless trend has done, and done very well, is focus on the developer experience at the application layer. This intersection between the infrastructure layer and the application layer is where Iron.io sits, further closing the gap between APIs and containers by improving the developer experience while removing the operational complexities. The value to any organization is the ability to keep the focus where it matters most - continuous innovation. THIS INTERSECTION BETWEEN THE INFRASTRUCTURE LAYER AND THE APPLICATION LAYER IS WHERE IRON. IO SITS, FURTHER CLOSING THE GAP BETWEEN APIS AND CONTAINERS BY IMPROVING THE DEVELOPER EXPERIENCE WHILE REMOVING THE OPERATIONAL COMPLEXITIES. 14. 2016 Iron.io, Inc.

15. 2016 Iron.io, Inc.