Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Similar documents
Running MarkLogic in Containers (Both Docker and Kubernetes)

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

Docker and Oracle Everything You Wanted To Know

Kuberiter White Paper. Kubernetes. Cloud Provider Comparison Chart. Lawrence Manickam Kuberiter Inc

Kuber-what?! Learn about Kubernetes

/ Cloud Computing. Recitation 5 February 14th, 2017

Important DevOps Technologies (3+2+3days) for Deployment

Cloud I - Introduction

Microservices. Chaos Kontrolle mit Kubernetes. Robert Kubis - Developer Advocate,

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Docker Live Hacking: From Raspberry Pi to Kubernetes

Ingress Kubernetes Tutorial

Getting Started With Serverless: Key Use Cases & Design Patterns

/ Cloud Computing. Recitation 5 September 26 th, 2017

Think Small to Scale Big

Kubernetes made easy with Docker EE. Patrick van der Bleek Sr. Solutions Engineer NEMEA

WHITEPAPER. Embracing Containers & Microservices for future-proof application modernization

Knative: Building serverless platforms on top of Kubernetes

Go Faster: Containers, Platforms and the Path to Better Software Development (Including Live Demo)

AGILE RELIABILITY WITH RED HAT IN THE CLOUDS YOUR SOFTWARE LIFECYCLE SPEEDUP RECIPE. Lutz Lange - Senior Solution Architect Red Hat

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

YOUR APPLICATION S JOURNEY TO THE CLOUD. What s the best way to get cloud native capabilities for your existing applications?

Pontoon An Enterprise grade serverless framework using Kubernetes Kumar Gaurav, Director R&D, VMware Mageshwaran R, Staff Engineer R&D, VMware

Microservices with Red Hat. JBoss Fuse

Container Orchestration on Amazon Web Services. Arun

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

Kubernetes Integration Guide

Red Hat OpenShift Roadmap Q4 CY16 and H1 CY17 Releases. Lutz Lange Solution

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

[Docker] Containerization

Oracle Container Natve Applicaton Development Platorm. Edgars Ruņģis Cloud Soluton Architect

OpenShift on Public & Private Clouds: AWS, Azure, Google, OpenStack

Continuous Delivery for Cloud Native Applications

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

IBM Bluemix compute capabilities IBM Corporation

Serverless Architecture Hochskalierbare Anwendungen ohne Server. Sascha Möllering, Solutions Architect

Serverless in the Java ecosystem

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Containers & Microservices For Realists. Karthik

Serverless Computing and the Apache OpenWhisk Project

Designing MQ deployments for the cloud generation

DevOps Workflow. From 0 to kube in 60 min. Christian Kniep, v Technical Account Manager, Docker Inc.

STATE OF MODERN APPLICATIONS IN THE CLOUD

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Cloud providers, tools and best practices in running Magento on Kubernetes. Adrian Balcan MindMagnet Software

Reactive Microservices Architecture on AWS

AZURE CONTAINER INSTANCES

How to Keep UP Through Digital Transformation with Next-Generation App Development

Industry-leading Application PaaS Platform

DevOps Course Content

Openshift: Key to modern DevOps

The Long Road from Capistrano to Kubernetes

MOBILIZING AND SECURING RED HAT JBOSS BPM SUITE & BRMS

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY

CONTINUOUS DELIVERY IN THE ORACLE CLOUD

CLOUD-NATIVE APPLICATION DEVELOPMENT/ARCHITECTURE

What s New in K8s 1.3

Overview of Container Management

Oracle Application Container Cloud

Kubernetes: Integration vs Native Solution

Getting Started With Containers

How to go serverless with AWS Lambda

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

VMWARE PIVOTAL CONTAINER SERVICE

ovirt and Docker Integration

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

利用 Mesos 打造高延展性 Container 環境. Frank, Microsoft MTC

Container in Production : Openshift 구축사례로 이해하는 PaaS. Jongjin Lim Specialist Solution Architect, AppDev

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

Ruby in the Sky with Diamonds. August, 2014 Sao Paulo, Brazil

DevOps on AWS Deep Dive on Continuous Delivery and the AWS Developer Tools

VMWARE PKS. What is VMware PKS? VMware PKS Architecture DATASHEET

Deploying and Operating Cloud Native.NET apps

DevOps Technologies. for Deployment

An Introduction to Kubernetes

Serverless architectures with Fn Project

InterSystems Cloud Manager & Containers for InterSystems Technologies. Luca Ravazzolo Product Manager

Serverless The Future of the Cloud?!

OpenShift Roadmap Enterprise Kubernetes for Developers. Clayton Coleman, Architect, OpenShift

Securing Microservices Containerized Security in AWS

Kubernetes 101. Doug Davis, STSM September, 2017

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Native Cloud Applications: Why Monolithic Virtualization Is Not Their Foundation

Docker Universal Control Plane Deploy and Manage On-Premises, Your Dockerized Distributed Applications

São Paulo. August,

VMWARE ENTERPRISE PKS

How Container Runtimes matter in Kubernetes?

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Code: Slides:

FROM VSTS TO AZURE DEVOPS

CS-580K/480K Advanced Topics in Cloud Computing. Container III

Kubernetes: Twelve KeyFeatures

A Glance Over the Serverless Framework

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

IBM Cloud Developer Tools (IDT) and App Service Console Overview

Going cloud-native with Kubernetes and Pivotal

개발자와운영자를위한 DevOps 플랫폼 OpenShift Container Platform. Hyunsoo Senior Solution Architect 07.Feb.2017

DevOps Tooling from AWS

Transcription:

Containers, Serverless and Functions in a nutshell Eugene Fedorenko

About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo

Agenda Containers Microservices Docker Kubernetes Container Native Development Platform Serverless Functions

Start

The Idea. DEV TEST PROD

The Idea. Virtual Machine

Container A lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Containers share the host operating system rather than the hardware directly Way more lightweight than a VM Docker is the most popular implementation

Multilayered Application

Microservices and Containers Loans Deposits Forex

Microservices An architecture pattern decomposing vertically a monolith system into loosely coupled subsystems (microservices). Nothing more. The pattern doesn't dictate how it should be done technically. Just to highlight it: Microservices and Containers are not the same and totally independent. You can use Docker with a monolith app, and you can have several microservices without using Docker at all.

Architecture patterns. Evolution Monolith distributed horizontally on Prem/Cloud/Hybrid containerized horizontally Microservices distributed vertically and horizontally on Prem/Cloud/Hybrid containerized vertically and horizontally

Players (some of them) Player Cloud Container oriented service Serverless Project Oracle Oracle Cloud Oracle Container Cloud Service Oracle Container Native Application Development Platform Amazon AWS Elastic Container Service (ECS) Elastic Container Service for Kubernetes (EKS) Fn AWS Lambda Microsoft AZURE Azure Container Service (AKS) Azure Functions Google Google Cloud Google Kubernetes Engine (GKE) Google Cloud Functions Cloud Native Computing Foundation

Open Source Platforms and Projects Docker Container manager Docker Hub Docker Cloud Kubernetes

Docker Container Manager

Docker vs VM

Docker Hub Cloud based registry Public (free) Private Centralized resource for container images Repositories Automated Builds (based on Dockerfile) Docker CLI provides access to Docker Hub docker search, pull, login, push

Docker Cloud Built on top of Docker Hub Builds, Tests and Deploys Images Manages Infrastructure Serves as a facade Backed up by AWS, Azure, Digital Ocean, SoftLayer, Packet Operated with docker-cloud CLI API (Rest, Go, Python)

Agenda Containers Microservices Docker Kubernetes Container Native Development Platform Serverless Functions

Kubernetes Open Source platform (Google born) Orchestration engine for Ops A level of abstraction hiding the complexity of a hybrid environment (prem/cloud) Configuration properties Load balancing Scalability Security Visibility

Kubernetes Architecture Cluster. Set of physical or VMs. Masters and workers. Node. Worker. Minion. A physical or virtual machine. Docker is installed on it. Kubelet. Internal service running on each worker node and managed by a master node. Makes sure that everything works according to configuration files.

Kubectl. Kubernetes CLI. REST API. Dashboard. Kubernetes Architecture

Kubernetes Architecture Pod. Logical set of containers. A smallest deployable and scalable unit Replica set. Defines how many instances of a pod should be alive

Kubernetes Architecture Service. Logical set of pods with a stable ip/access rules and name. Has a lightweight internal load balancer. Internal, External

Container Native Application Development Platform

Oracle Cloud Infrastructure

Container Native Application Development Platform

FlexDeploy Pipeline

Architecture patterns. Evolution Location Prem -> Cloud -> Hybrid Platform Host -> VM -> Container Distribution Client -> Client/Sever -> 3-tier -> multi tier Composition Program + Platform -> Container Tendency decompose into small, independent, self-running pieces-of-work distributed across the globe

Process Oriented Architecture Functionality Data driven -> Process Oriented

Serverless A unit of work consumes resources only when it is used Function is a unit of work stateless serves one goal arguments (input) and result (output) Orchestration of independent pieces of work (functions as a service FaaS) Carrying state of the entire flow (program) Error handling Transaction management

Serverless Code centric paradigm. Hyde Infrastructure. Focus on coding resolving business problems and forget about infrastructure Everything is working on some computing resources Scalability Developers don't do anything for scaling. Scaling is handled automatically. Billing Don't pay for idle time Pay for milliseconds Utilization Many small pieces running for short time on same VM

Serverless There is no such thing as serverless computing. However, there is such a thing as dedicated serverless computing. Lucas Jellema. Oracle ACE Director. AMIS. CTO

AWS Lambda Azure Functions OpenWhisk Open Source / Apache Serverless Platforms Fn Open Source / Oracle container native OpenFaaS Open Source / Alex Ellis container native

Function (modern / Container-as-a-Function view) Static self-running piece-of-work wrapped into a container with everything it needs for its work code + platform stateless single purposed arguments (input) and result (output)

AWS Lambda (old generation) One of the first Function projects on the market The idea is: You have your code written with one of supported languages (limited list, binaries are preconfigured by AWS) Your code exposes some standardized API You upload your code (in a zip file) to AWS Lambda Basing on event (e.g. request on URL) AWS Lambda allocates resources for your code, invokes a function and releases the resource at the end The flow is orchestrated with AWS Step Functions Visual Flow designer

Fn Fn Platform (Fn Server and CLI) Based on Docker Functions are packaged into Docker images A custom Docker image can be used as a function A container lives as long as the function is being executed Fn FDK Libraries, annotations for standard input/output handling, configurations,... Polyglot. Supports a long list of languages (Java, Node.js, Python, Ruby, Go,...) Interaction with functions is based on Rest over HTTP or CLI Fn Flow Orchestration of function graph: state, transactions, exception handling Based on Java SE 8 API CompletionStage It's awesome! Like a good old Lisp. UI Dashboard visualizing flow executions

Fn Fn components are Docker containers Requires only Docker engine Can run on Kubernetes cluster

Function Flow Example Build Build Oracle Jet application Build a Docker Image (Nginx + Jet application) Push image to Docker Hub Deploy Accept image name and cluster name as parameters Deploy image to K8s cluster

Build Function Builder Docker image GIT client Node.js Ojet CLI efedorenko/ojetbuilder fn apps create ojetpipeline fn routes create ojetpipeline /build efedorenko/ojetbuilder:latest curl http://localhost:8080/r/ojetpipeline/build Docker Hub Automated Builds efedorenko/jetapplication

Deploy Function Deployer Docker image Kubectl K8s credentials K8s deployment profile (yaml) efedorenko/k8sdeployer fn routes create ojetpipeline /deploy efedorenko/k8sdeployer:latest curl http://localhost:8080/r/ojetpipeline/deploy -d "google-cloud-k8s-dev efedorenko/jetapplication:latest" efedorenko/jetapplication google-cloud-k8s-dev

Pipeline Function Flow public class PipelineFunction { public void pipeline(string cluster) { Flow fl = Flows.currentFlow(); FlowFuture<HttpResponse> pipeline = fl.invokefunction("./build", HttpMethod.POST, Headers.emptyHeaders(), input.getbytes()).thenapply(httpresponse::getbodyasbytes).thencompose((image) -> fl.invokefunction("./deploy", HttpMethod.POST, Headers.emptyHeaders(), (cluster + " " + new String(image)).getBytes())).exceptionally((err) -> { throw new RuntimeException("Pipeline error:" + err); }); } } fn deploy -app ojetpipeline curl http://localhost:8080/r/ojetpipeline/pipeline -d "google-cloud-k8s-dev"

Containers and Database Does not make sense for enterprise systems in terms of DevOps Data and PL/SQL code should be separated Containers are good for upper layers of the system (middleware, UI) Configuration properties are handled by the orchestration engine (Kubernetes, Docker swarms, etc.) Database may work in containers for benefits such as scalability, maintenance, abstraction from infrastructure, etc. Works perfectly for sample applications and test automation

Containers and SOA Containers/Kubernetes/Functions easily resolve Small loosely coupled services Handling of invocation traffic Process work flow Focus on implementing services and don't think about composing them

Q&A