SlideShare una empresa de Scribd logo
1 de 44
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 micro-
services 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)
Cloud Native Computing Foundation
Player Cloud Container oriented service Serverless Project
Oracle Oracle Cloud • Oracle Container Cloud Service
• Oracle Container Native Application
Development Platform
Fn
Amazon AWS • Elastic Container Service (ECS)
• Elastic Container Service for
Kubernetes (EKS)
AWS Lambda
Microsoft AZURE • Azure Container Service (AKS) Azure Functions
Google Google Cloud • Google Kubernetes Engine (GKE) Google Cloud Functions
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.
Kubernetes Architecture
• Kubectl. Kubernetes CLI.
• REST API.
• Dashboard.
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
• 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
Architecture patterns. Evolution
• Functionality
– Data driven -> Process Oriented
Process Oriented Architecture
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
Serverless Platforms
• AWS Lambda
• Azure Functions
• OpenWhisk
– Open Source / Apache
• 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
fn apps create ojetpipeline
fn routes create ojetpipeline /build efedorenko/ojetbuilder:latest
curl http://localhost:8080/r/ojetpipeline/build
efedorenko/ojetbuilder
efedorenko/jetapplicationDocker Hub Automated Builds
Deploy Function
• “Deployer” Docker image
• Kubectl
• K8s credentials
• K8s deployment profile (yaml)
fn routes create ojetpipeline /deploy efedorenko/k8sdeployer:latest
curl http://localhost:8080/r/ojetpipeline/deploy -d "google-cloud-k8s-dev efedorenko/jetapplication:latest"
efedorenko/k8sdeployer
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

Más contenido relacionado

La actualidad más candente

Orchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStackOrchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStackTrevor Roberts Jr.
 
DockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System ToolkitDockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System ToolkitDocker, Inc.
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and dockerAlessandro Martellone
 
Kubernetes Frankfurt
Kubernetes FrankfurtKubernetes Frankfurt
Kubernetes Frankfurtloodse
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...All Things Open
 
Docker meets Kubernetes
Docker meets KubernetesDocker meets Kubernetes
Docker meets Kubernetesloodse
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetesElad Hirsch
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with KubernetesCarlos Sanchez
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Daniel Krook
 
Building Big Architectures
Building Big ArchitecturesBuilding Big Architectures
Building Big ArchitecturesRamit Surana
 
How kubernetes works community, velocity, and contribution - osls 2017 (1)
How kubernetes works  community, velocity, and contribution - osls 2017 (1)How kubernetes works  community, velocity, and contribution - osls 2017 (1)
How kubernetes works community, velocity, and contribution - osls 2017 (1)Brian Grant
 
Kubernetes-Presentation-Syed-Murtaza-Hassan
Kubernetes-Presentation-Syed-Murtaza-HassanKubernetes-Presentation-Syed-Murtaza-Hassan
Kubernetes-Presentation-Syed-Murtaza-HassanSyed Murtaza Hassan
 
LISA2017 Big Three Cloud Networking
LISA2017 Big Three Cloud NetworkingLISA2017 Big Three Cloud Networking
LISA2017 Big Three Cloud NetworkingChris McEniry
 
All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...Jimmy Lu
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)Gourav Varma
 
Webcast - Making kubernetes production ready
Webcast - Making kubernetes production readyWebcast - Making kubernetes production ready
Webcast - Making kubernetes production readyApplatix
 

La actualidad más candente (20)

Orchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStackOrchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStack
 
DockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System ToolkitDockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System Toolkit
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and docker
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Kubernetes Frankfurt
Kubernetes FrankfurtKubernetes Frankfurt
Kubernetes Frankfurt
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
 
Docker meets Kubernetes
Docker meets KubernetesDocker meets Kubernetes
Docker meets Kubernetes
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!
 
Building Big Architectures
Building Big ArchitecturesBuilding Big Architectures
Building Big Architectures
 
How kubernetes works community, velocity, and contribution - osls 2017 (1)
How kubernetes works  community, velocity, and contribution - osls 2017 (1)How kubernetes works  community, velocity, and contribution - osls 2017 (1)
How kubernetes works community, velocity, and contribution - osls 2017 (1)
 
Kubernetes-Presentation-Syed-Murtaza-Hassan
Kubernetes-Presentation-Syed-Murtaza-HassanKubernetes-Presentation-Syed-Murtaza-Hassan
Kubernetes-Presentation-Syed-Murtaza-Hassan
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
LISA2017 Big Three Cloud Networking
LISA2017 Big Three Cloud NetworkingLISA2017 Big Three Cloud Networking
LISA2017 Big Three Cloud Networking
 
All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Webcast - Making kubernetes production ready
Webcast - Making kubernetes production readyWebcast - Making kubernetes production ready
Webcast - Making kubernetes production ready
 

Similar a Containers, Serverless and Functions in a nutshell

Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Krishna-Kumar
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna KumarCodeOps Technologies LLP
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Patrick Chanezon
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the Worlddamovsky
 
Containerize all the things!
Containerize all the things!Containerize all the things!
Containerize all the things!Mike Melusky
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarCodefresh
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServiceJosh Padnick
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
Intro to docker and kubernetes
Intro to docker and kubernetesIntro to docker and kubernetes
Intro to docker and kubernetesMohit Chhabra
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDStfalcon Meetups
 

Similar a Containers, Serverless and Functions in a nutshell (20)

Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
 
Kubernetes on aws
Kubernetes on awsKubernetes on aws
Kubernetes on aws
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Containerize all the things!
Containerize all the things!Containerize all the things!
Containerize all the things!
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Intro to docker and kubernetes
Intro to docker and kubernetesIntro to docker and kubernetes
Intro to docker and kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes Intro @HaufeDev
Kubernetes Intro @HaufeDev Kubernetes Intro @HaufeDev
Kubernetes Intro @HaufeDev
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 

Último

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 

Último (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Containers, Serverless and Functions in a nutshell

  • 1. Containers, Serverless and Functions in a nutshell Eugene Fedorenko
  • 2. About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo
  • 7. 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
  • 10. 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 micro- services without using Docker at all.
  • 11. 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
  • 12. Players (some of them) Cloud Native Computing Foundation Player Cloud Container oriented service Serverless Project Oracle Oracle Cloud • Oracle Container Cloud Service • Oracle Container Native Application Development Platform Fn Amazon AWS • Elastic Container Service (ECS) • Elastic Container Service for Kubernetes (EKS) AWS Lambda Microsoft AZURE • Azure Container Service (AKS) Azure Functions Google Google Cloud • Google Kubernetes Engine (GKE) Google Cloud Functions
  • 13. Open Source Platforms and Projects • Docker – Container manager – Docker Hub – Docker Cloud • Kubernetes
  • 16. 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
  • 17. 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)
  • 19. 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
  • 20. 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.
  • 21. Kubernetes Architecture • Kubectl. Kubernetes CLI. • REST API. • Dashboard.
  • 22. 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
  • 23. Kubernetes Architecture • Service. Logical set of pods with a stable ip/access rules and name. Has a lightweight internal load balancer. • Internal, External
  • 24. Container Native Application Development Platform
  • 28. • 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 Architecture patterns. Evolution
  • 29. • Functionality – Data driven -> Process Oriented Process Oriented Architecture
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. Serverless Platforms • AWS Lambda • Azure Functions • OpenWhisk – Open Source / Apache • Fn – Open Source / Oracle – container native • OpenFaaS – Open Source / Alex Ellis – container native
  • 34. 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)
  • 35. 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
  • 36. 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
  • 37. Fn • Fn components are Docker containers • Requires only Docker engine • Can run on Kubernetes cluster
  • 38. 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
  • 39. Build Function • “Builder” Docker image • GIT client • Node.js • Ojet CLI fn apps create ojetpipeline fn routes create ojetpipeline /build efedorenko/ojetbuilder:latest curl http://localhost:8080/r/ojetpipeline/build efedorenko/ojetbuilder efedorenko/jetapplicationDocker Hub Automated Builds
  • 40. Deploy Function • “Deployer” Docker image • Kubectl • K8s credentials • K8s deployment profile (yaml) fn routes create ojetpipeline /deploy efedorenko/k8sdeployer:latest curl http://localhost:8080/r/ojetpipeline/deploy -d "google-cloud-k8s-dev efedorenko/jetapplication:latest" efedorenko/k8sdeployer efedorenko/jetapplication google-cloud-k8s-dev
  • 41. 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"
  • 42. 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
  • 43. 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
  • 44. Q&A