SlideShare a Scribd company logo
1 of 74
Download to read offline
Containers, Microservices &
Serverless for Realists
Karthik Gaekwad
@iteration1
Keep Austin Agile 2017
• Principal Member of Technical Staff
• Oracle Container Cloud Team
• Previous:
• 10 years building cloud products
• Enterprise/Startup experience
Karthik Gaekwad
@iteration1
• Community Involvement:
• Devopsdays Core Organizer
• Container Days Core Organizer
• Cloud Austin
• Docker Austin meetup
• The most popular docker helloworld
image: dockerhub.com/karthequian/
helloworld
Karthik Gaekwad
@iteration1
Audience Survey
Overview
• The Evolution of DevOps
• Rise of Microservices, Containers,
Serverless applications
• What are they?
• Why should you care?
• What are they used for?
Evolution of Devops
• Devops at least officially 8 years old
• Velocity 2009:
• 10 Deploys a day at flickr by John Allspaw, Paul
Hammond
• Agile Infrastructure openspace: Andrew Shaefer &
Patrick Debois
• 2009: 1st Devopsdays conference, Ghent
• Today: ~150 official devopsdays conference
Evolution of Devops
CULTURE
MEASUREMENT
AUTOMATION
SHARING
Evolution of Devops
John Willis
Damon Edwards
By:
Evolution of Devops
“System administrators participating in an
agile development process alongside
developers and using many of the same agile
techniques for their systems work.”
The Agile Admin Blog
Well Defined:
Evolution of Devops
• Training classes available:
• Devops Fundamental Course (Ernest Mueller,
James Wickett)
• Certifications available:
• AWS Certified Devops Engineer
• RedHat Certified Devops Architect
• Devops Foundations by the Devops institute
Containers & Microservices
…The next phase of Devops
Containers & Microservices
• Containers and Micro services fit the
devops paradigm!
• Microservices allows developers to build
applications in modular way
• Allows for containerization
• Containerization allows for collaboration
between dev and ops
• Common language spoken between 2
teams in an org
Microservices
“Independent processes
communicating with each other
with well defined API’s to form
larger more complex
applications”
Microservices
• Do one thing, and do it well (fine
grained)
• Independently built- common
language to communicate
• Independently deployable
• Fault tolerant and reliable
• Based on 12 factor app principles
12 Factor App
•Use declarative formats for setup automation;
minimize time and cost for new developers joining
the project
•Clean contract with the underlying OS, offering
maximum portability between execution
environments;
•Suitable for deployment on modern cloud platforms
•Minimize divergence between development and
production- enabling continuous deployment
•Scale up without significant changes to tooling,
architecture, or development practices.
Relationship with containers
• Microservices + containers are a great
fit
• Single service on a container:
• Isolates service and makes it easy to
manage and debug
• Best practice for new architectures with
containers
• Consider building your architecture in
this manner
Containerization
• Strong collaboration between dev and
ops.
• Initially championed by developers,
and now well liked by operations as
well.
Trends
• 2 great surveys:
• Datadog docker adoption: https://
www.datadoghq.com/docker-adoption/
• devops.com & ClusterHQ survey:
https://clusterhq.com/assets/pdfs/
state-of-container-usage-june-2016.pdf
Source: devops.com and clusterHQ survey 2016
2016: 10.8% of all Datadog customers use Docker (up from
8.2% in 2015)
10% of all hosts monitored by Datadog have Docker
running on them
Fundamentals
• Portability
• Standardized Environments
• Scaling
• Continuous Delivery
• Dependency Management
Portability
•Idea of writing once and running anywhere.
•As long as your application is Dockerized,
you can run it anywhere that has the
Docker Engine installed.
•Easy to change from 1 host to another.
•Flexibility to change underlying
infrastructure/operating systems etc.
•Change from 1 cloud provider to another.
Standardization
• Coding environments can be made consistent
from development ->staging->QA->production.
• Per environment configurations are fed in the
same way to each container which reduces
configuration issues.
• Time spent debugging environmental issues is
reduced drastically.
• Developers understand the production
environment better, which leads to better code
quality.
Scaling
•Containers take seconds to deploy.
•Scale up and down your infrastructure
is a lot faster than traditional
configuration management tools.
Continuous Delivery
•Docker API’s and Docker Hub make it
easy to build a deployment pipeline.
•After successful builds, a CI system
can build and push a Docker image to
the Hub/private Docker repo.
•Deploy new containers to desired
environment on a periodic basis/trigger
webhooks to deploy.
Dependency Management
• Dependency hell happens when:
• 2 running Java or Ruby applications that depend on
different versions of the same library…..
• How Docker can help:
• Isolate each application (along with it’s
dependencies) so that they can be loaded in their
own container.
• 1 container for 1 application or service (micro service
architecture)
Real World Examples
Standardization
Take existing (or new) applications,
containerize them, run them the same
way on dev/stage/production.
Standardization
• Typical Pattern:
• Infrastructure/Applications run in containers.
• Every code push builds a new image for the
application.
• All environments uses the same command to
run the application:
• sudo docker run -d -p 7777:7777 -e
SE_DB=‘db_val’ karthequian/helloworld
Standardization Example
• Write service RFC (Request for Comments)
• Wait for feedback
• Scaffolding work + Develop service
• Wait for infrastructure team to write service scaffolding
• Wait for infrastructure team to provision services
• Deploy to development servers and test
• Deploy to production
• Monitor, iterate
• Uber (In the past)
Standardization Example
• Write service RFC (Request for Comments)
• Wait for feedback
• Scaffolding work + Develop service
• Build containers for service
• Wait for infrastructure team to deploy containers to
development servers
• Deploy to development servers and test
• Deploy to production
• Monitor, iterate
• Uber (With Docker)
Standardization Example
• Implementing Docker got rid of:
• Wait for the infrastructure team to write service
scaffolding
• Wait for infrastructure team to provision
services
• Ops doesn’t rely on playbooks, but rather, just
deploy existing container images
• No fear of one set of dependencies for one app,
breaking another app
• Uber (With Docker)
CI/CD Pipeline
Most common usecase of how teams
use Docker
CI/CD Pipeline
create a
dockerfile
CI/CD Pipeline
create a
dockerfile
Commit code
to source
control
CI/CD Pipeline
create a
dockerfile
Commit code
to source
control
Build
triggered in
CI system
CI/CD Pipeline
create a
dockerfile
Commit code
to source
control
Build
triggered in
CI system
Build
container
image
CI/CD Pipeline
create a
dockerfile
Commit code
to source
control
Build
triggered in
CI system
Build & Test
container
image
Push to
docker
registry
Completed CI!
CI/CD Pipeline
create a
dockerfile
Commit code
to source
control
Build
triggered in
CI system
Build & Test
container
image
Push to
docker
registry
Webhook
trigger to
Orchestrator
CI/CD Pipeline
create a
dockerfile
Commit code
to source
control
Build
triggered in
CI system
Build & Test
container
image
Push to
docker
registry
Webhook
trigger to
Orchestrator
New
containers
online!
Completed CD!
Other Usecases
•Hosting Legacy Applications
•Running a PaaS/ Datacenter using Docker.
•EngineYard/Yandex/Baidu are great examples of
this.
•Containerizing hard to run applications is becoming
a frequent usecase.
•Single->multi tenant apps: http://flux7.com/docker/
Container Management Trends
Container Orchestration
Orchestration
Container Orchestration
• Methodologies:
• Nomad
• Docker Swarm
• Kubernetes
• Mesos + Marathon
• Custom!
Container Orchestration
• Compare & contrast: http://
blog.gingergeek.com/tag/
orchestration/ via @lcalcote
Orchestration
Source: devops.com and clusterHQ survey 2016
Container Orchestration
• My Opinions:
• Don’t build your own
• What are your infrastructure
goals?
• Consider team size and strength
of team
Serverless Applications
Serverless Applications
Serverless Applications
• First used to describe applications that
depended on 3rd party applications / services
(‘in the cloud’) to manage server-side logic and
state
• “Backend as a service applications”
Serverless Applications
Applications where some amount of server-side logic
is still written by the application developer
Unlike traditional architectures is run in stateless
compute containers that are event-triggered,
ephemeral (may only last for one invocation), and
fully managed by a 3rd party.
One way to think of this is “Functions as a service”.
AWS Lambda, Azure functions- most popular
implementations, but there are others.
Traditional Architecture
Client (Browser)
Load Balancer
Load Balancer
Load Balancer
Server
Database
Serverless Architecture
Client (Browser)
Auth Service Web DeliveryAPI Gateway
Database
Function B
Function A
Function C
Difference from PaaS?
• Way to code microservices does not change: 12
factor app mindset
• You still have to think of scaling in PaaS:
• “How many dynos do I need in Heroku to run this
app?”
• “How long does it take to scale from 2->4 servers?”
• Auto scaling on PaaS is great, but this is on a request
basis
• Forces developers to write cleaner, more efficient
code
Difference from PaaS?
Difference from containers?
• FaaS is typically built with containers…
• Once again..Scaling is the core difference.
• Managed, transparent, fine grained.
• Need to invest time in container platforms
to perform scaling actions.
• Prediction: may not be true a year from
now…
Serverless Use Cases
• Image Processing
• Data Transformation
• Log Analysis
• Authentication, Licensing
Loved it? Hated it?
Send me feedback:
@iteration1
Attributions
• Images: https://unsplash.com and https://pixabay.com
• State of devops whitepaper: https://puppet.com/resources/infographic/2016-state-of-devops-report-infographic
• Datadog docker adoption: https://www.datadoghq.com/docker-adoption/
• devops.com & ClusterHQ survey: https://clusterhq.com/assets/pdfs/state-of-container-usage-june-2016.pdf
• Oracle Docker Images: https://github.com/oracle/docker-images
• Oracle Container Cloud Service: cloud.oracle.com/container
• Oracle Application Container Service: https://cloud.oracle.com/en_US/application-container-cloud
• Microservices: https://martinfowler.com/articles/microservices.html
• 12 factor apps: https://12factor.net/
• Serverless: https://martinfowler.com/articles/serverless.html
• Legacy apps at Uber: https://thenewstack.io/docker-helped-turbocharge-ubers-deployments/
• @lcalcote: https://twitter.com/lcalcote/status/767744030436315136
• Uber story: https://thenewstack.io/docker-helped-turbocharge-ubers-deployments/
• Unikernels Paper: http://unikernel.org/files/2014-cacm-unikernels.pdf
Bonus
Slides
Unikernels
Unikernels are specialised, single-
address-space machine images
constructed by using library operating
systems.
Unikernels
Unikernel benefits
• Tiny footprint compared to regular
application.
• Reduced Attack Surface == Improved
Security.
• Optimized.
• Fast boot.
• http://unikernel.org/files/2014-cacm-unikernels.pdf
Things we are doing at
Oracle
Things we are doing at
Oracle
• Dockerfiles: https://github.com/oracle/docker-
images
• Weblogic: https://github.com/oracle/docker-
images/tree/master/OracleWebLogic/
dockerfiles/12.2.1.1
• DB: https://github.com/oracle/docker-images/
tree/master/OracleDatabase/dockerfiles
• Also for Dockerfiles for: Java, OpenJDK,
Coherance, MySQL etc
Things we are doing at
Oracle
• Container Registry
• Contains pre built Oracle images
• https://container-
registry.oracle.com/
• Docker 101 tutorial: https://
github.com/mikeraab/docker001
Things we are doing at
Oracle
• Container Products for Oracle Public Cloud:
• Oracle Application Container Cloud
• Great for Java/Node/PHP applications
• Oracle Container Service
• Bring your own containers
• Container Management solution
Things we are doing at
Oracle
• OCCS Stacks:
• ElasticSearch, Kibana, Logstash (ELK): https://github.com/
oracle/docker-images/tree/master/ContainerCloud/stacks/
elk
• Kafka microservices on OCCS: https://
community.oracle.com/community/cloud_computing/oracle-
cloud-developer-solutions/blog/2017/03/20/running-docker-
based-kafka-streams-microservices-on-oracle-container-
cloud
• https://community.oracle.com/community/cloud_computing/
infrastructure-as-a-service-iaas/oracle-container-cloud-service
Things we are doing at
Oracle
• Free $300 credits to try out all the
different services:
• https://cloud.oracle.com/en_US/tryit
Containers, microservices and serverless for realists
Containers, microservices and serverless for realists

More Related Content

What's hot

Why Docker
Why DockerWhy Docker
Why Docker
dotCloud
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifei
dotCloud
 

What's hot (19)

Microservices with Terraform, Docker and the Cloud. Chicago Coders Conference...
Microservices with Terraform, Docker and the Cloud. Chicago Coders Conference...Microservices with Terraform, Docker and the Cloud. Chicago Coders Conference...
Microservices with Terraform, Docker and the Cloud. Chicago Coders Conference...
 
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...
 
Why Docker
Why DockerWhy Docker
Why Docker
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
Docker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott Coulton
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1
 
Docker Registry V2
Docker Registry V2Docker Registry V2
Docker Registry V2
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben Golub
 
Docker meetup-20-apr-17-openshit
Docker meetup-20-apr-17-openshitDocker meetup-20-apr-17-openshit
Docker meetup-20-apr-17-openshit
 
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!
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at Scale
 
7+1 myths of the new os
7+1 myths of the new os7+1 myths of the new os
7+1 myths of the new os
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifei
 
DockerCon SF 2015: Using Docker to Keep Houses Warm: Highly Distributed Micro...
DockerCon SF 2015: Using Docker to Keep Houses Warm: Highly Distributed Micro...DockerCon SF 2015: Using Docker to Keep Houses Warm: Highly Distributed Micro...
DockerCon SF 2015: Using Docker to Keep Houses Warm: Highly Distributed Micro...
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Docker Federal Summit 2017 General Session
Docker Federal Summit 2017 General SessionDocker Federal Summit 2017 General Session
Docker Federal Summit 2017 General Session
 

Similar to Containers, microservices and serverless for realists

Docker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - OverviewDocker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - Overview
Chris Ciborowski
 

Similar to Containers, microservices and serverless for realists (20)

Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for Realists
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conference
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
Why to docker
Why to dockerWhy to docker
Why to docker
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
DockerCon SF 2015: Docker Community in China
DockerCon SF 2015: Docker Community in ChinaDockerCon SF 2015: Docker Community in China
DockerCon SF 2015: Docker Community in China
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 
Docker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - OverviewDocker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - Overview
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
SS Introduction to Docker
SS Introduction to DockerSS Introduction to Docker
SS Introduction to Docker
 
DockerPenang Meetup#1
DockerPenang Meetup#1DockerPenang Meetup#1
DockerPenang Meetup#1
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
Docker12 factor
Docker12 factorDocker12 factor
Docker12 factor
 

More from Karthik Gaekwad

Agile 2014- Metrics driven development and devops
Agile 2014- Metrics driven development and devopsAgile 2014- Metrics driven development and devops
Agile 2014- Metrics driven development and devops
Karthik Gaekwad
 

More from Karthik Gaekwad (20)

DevSecOps in a cloudnative world
DevSecOps in a cloudnative worldDevSecOps in a cloudnative world
DevSecOps in a cloudnative world
 
Mental Health studies and devops
Mental Health studies and devopsMental Health studies and devops
Mental Health studies and devops
 
This is your community
This is your communityThis is your community
This is your community
 
Practical Approaches to Cloud Native Security
Practical Approaches to Cloud Native SecurityPractical Approaches to Cloud Native Security
Practical Approaches to Cloud Native Security
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native Security
 
Kube Apps in action
Kube Apps in actionKube Apps in action
Kube Apps in action
 
KubeSecOps
KubeSecOpsKubeSecOps
KubeSecOps
 
Kubernetes Security
Kubernetes SecurityKubernetes Security
Kubernetes Security
 
Kubernetes security and you
Kubernetes security and youKubernetes security and you
Kubernetes security and you
 
Kube applications in action
Kube applications in actionKube applications in action
Kube applications in action
 
Devops and Dadops
Devops and DadopsDevops and Dadops
Devops and Dadops
 
13 practical tips for writing secure golang applications
13 practical tips for writing secure golang applications13 practical tips for writing secure golang applications
13 practical tips for writing secure golang applications
 
Docker management
Docker managementDocker management
Docker management
 
Agile 2014- Metrics driven development and devops
Agile 2014- Metrics driven development and devopsAgile 2014- Metrics driven development and devops
Agile 2014- Metrics driven development and devops
 
Devopsdays Austin 2014 Ignite: Keep devops weird
Devopsdays Austin 2014 Ignite: Keep devops weirdDevopsdays Austin 2014 Ignite: Keep devops weird
Devopsdays Austin 2014 Ignite: Keep devops weird
 
Cloud Austin 2013: Conferenced2013
Cloud Austin 2013: Conferenced2013Cloud Austin 2013: Conferenced2013
Cloud Austin 2013: Conferenced2013
 
LASCON 2013 Talk: User Auth for Winners, how to get it right the first time!
LASCON 2013 Talk: User Auth for Winners, how to get it right the first time!LASCON 2013 Talk: User Auth for Winners, how to get it right the first time!
LASCON 2013 Talk: User Auth for Winners, how to get it right the first time!
 
Agile 2013 Talk: How DevOps Changes Everything
Agile 2013 Talk: How DevOps Changes EverythingAgile 2013 Talk: How DevOps Changes Everything
Agile 2013 Talk: How DevOps Changes Everything
 
DevOps at the CIA
DevOps at the CIADevOps at the CIA
DevOps at the CIA
 
Sexy HTML with Twitter Bootstrap
Sexy HTML with Twitter BootstrapSexy HTML with Twitter Bootstrap
Sexy HTML with Twitter Bootstrap
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Containers, microservices and serverless for realists

  • 1. Containers, Microservices & Serverless for Realists Karthik Gaekwad @iteration1 Keep Austin Agile 2017
  • 2. • Principal Member of Technical Staff • Oracle Container Cloud Team • Previous: • 10 years building cloud products • Enterprise/Startup experience Karthik Gaekwad @iteration1
  • 3. • Community Involvement: • Devopsdays Core Organizer • Container Days Core Organizer • Cloud Austin • Docker Austin meetup • The most popular docker helloworld image: dockerhub.com/karthequian/ helloworld Karthik Gaekwad @iteration1
  • 5. Overview • The Evolution of DevOps • Rise of Microservices, Containers, Serverless applications • What are they? • Why should you care? • What are they used for?
  • 6. Evolution of Devops • Devops at least officially 8 years old • Velocity 2009: • 10 Deploys a day at flickr by John Allspaw, Paul Hammond • Agile Infrastructure openspace: Andrew Shaefer & Patrick Debois • 2009: 1st Devopsdays conference, Ghent • Today: ~150 official devopsdays conference
  • 9. Evolution of Devops “System administrators participating in an agile development process alongside developers and using many of the same agile techniques for their systems work.” The Agile Admin Blog Well Defined:
  • 10. Evolution of Devops • Training classes available: • Devops Fundamental Course (Ernest Mueller, James Wickett) • Certifications available: • AWS Certified Devops Engineer • RedHat Certified Devops Architect • Devops Foundations by the Devops institute
  • 11. Containers & Microservices …The next phase of Devops
  • 12. Containers & Microservices • Containers and Micro services fit the devops paradigm! • Microservices allows developers to build applications in modular way • Allows for containerization • Containerization allows for collaboration between dev and ops • Common language spoken between 2 teams in an org
  • 13. Microservices “Independent processes communicating with each other with well defined API’s to form larger more complex applications”
  • 14. Microservices • Do one thing, and do it well (fine grained) • Independently built- common language to communicate • Independently deployable • Fault tolerant and reliable • Based on 12 factor app principles
  • 15. 12 Factor App •Use declarative formats for setup automation; minimize time and cost for new developers joining the project •Clean contract with the underlying OS, offering maximum portability between execution environments; •Suitable for deployment on modern cloud platforms •Minimize divergence between development and production- enabling continuous deployment •Scale up without significant changes to tooling, architecture, or development practices.
  • 16. Relationship with containers • Microservices + containers are a great fit • Single service on a container: • Isolates service and makes it easy to manage and debug • Best practice for new architectures with containers • Consider building your architecture in this manner
  • 17. Containerization • Strong collaboration between dev and ops. • Initially championed by developers, and now well liked by operations as well.
  • 18. Trends • 2 great surveys: • Datadog docker adoption: https:// www.datadoghq.com/docker-adoption/ • devops.com & ClusterHQ survey: https://clusterhq.com/assets/pdfs/ state-of-container-usage-june-2016.pdf
  • 19. Source: devops.com and clusterHQ survey 2016
  • 20. 2016: 10.8% of all Datadog customers use Docker (up from 8.2% in 2015)
  • 21. 10% of all hosts monitored by Datadog have Docker running on them
  • 22.
  • 23. Fundamentals • Portability • Standardized Environments • Scaling • Continuous Delivery • Dependency Management
  • 24. Portability •Idea of writing once and running anywhere. •As long as your application is Dockerized, you can run it anywhere that has the Docker Engine installed. •Easy to change from 1 host to another. •Flexibility to change underlying infrastructure/operating systems etc. •Change from 1 cloud provider to another.
  • 25. Standardization • Coding environments can be made consistent from development ->staging->QA->production. • Per environment configurations are fed in the same way to each container which reduces configuration issues. • Time spent debugging environmental issues is reduced drastically. • Developers understand the production environment better, which leads to better code quality.
  • 26. Scaling •Containers take seconds to deploy. •Scale up and down your infrastructure is a lot faster than traditional configuration management tools.
  • 27. Continuous Delivery •Docker API’s and Docker Hub make it easy to build a deployment pipeline. •After successful builds, a CI system can build and push a Docker image to the Hub/private Docker repo. •Deploy new containers to desired environment on a periodic basis/trigger webhooks to deploy.
  • 28. Dependency Management • Dependency hell happens when: • 2 running Java or Ruby applications that depend on different versions of the same library….. • How Docker can help: • Isolate each application (along with it’s dependencies) so that they can be loaded in their own container. • 1 container for 1 application or service (micro service architecture)
  • 30. Standardization Take existing (or new) applications, containerize them, run them the same way on dev/stage/production.
  • 31. Standardization • Typical Pattern: • Infrastructure/Applications run in containers. • Every code push builds a new image for the application. • All environments uses the same command to run the application: • sudo docker run -d -p 7777:7777 -e SE_DB=‘db_val’ karthequian/helloworld
  • 32. Standardization Example • Write service RFC (Request for Comments) • Wait for feedback • Scaffolding work + Develop service • Wait for infrastructure team to write service scaffolding • Wait for infrastructure team to provision services • Deploy to development servers and test • Deploy to production • Monitor, iterate • Uber (In the past)
  • 33. Standardization Example • Write service RFC (Request for Comments) • Wait for feedback • Scaffolding work + Develop service • Build containers for service • Wait for infrastructure team to deploy containers to development servers • Deploy to development servers and test • Deploy to production • Monitor, iterate • Uber (With Docker)
  • 34. Standardization Example • Implementing Docker got rid of: • Wait for the infrastructure team to write service scaffolding • Wait for infrastructure team to provision services • Ops doesn’t rely on playbooks, but rather, just deploy existing container images • No fear of one set of dependencies for one app, breaking another app • Uber (With Docker)
  • 35. CI/CD Pipeline Most common usecase of how teams use Docker
  • 38. CI/CD Pipeline create a dockerfile Commit code to source control Build triggered in CI system
  • 39. CI/CD Pipeline create a dockerfile Commit code to source control Build triggered in CI system Build container image
  • 40. CI/CD Pipeline create a dockerfile Commit code to source control Build triggered in CI system Build & Test container image Push to docker registry Completed CI!
  • 41. CI/CD Pipeline create a dockerfile Commit code to source control Build triggered in CI system Build & Test container image Push to docker registry Webhook trigger to Orchestrator
  • 42. CI/CD Pipeline create a dockerfile Commit code to source control Build triggered in CI system Build & Test container image Push to docker registry Webhook trigger to Orchestrator New containers online! Completed CD!
  • 43. Other Usecases •Hosting Legacy Applications •Running a PaaS/ Datacenter using Docker. •EngineYard/Yandex/Baidu are great examples of this. •Containerizing hard to run applications is becoming a frequent usecase. •Single->multi tenant apps: http://flux7.com/docker/
  • 47. Container Orchestration • Methodologies: • Nomad • Docker Swarm • Kubernetes • Mesos + Marathon • Custom!
  • 48. Container Orchestration • Compare & contrast: http:// blog.gingergeek.com/tag/ orchestration/ via @lcalcote
  • 49. Orchestration Source: devops.com and clusterHQ survey 2016
  • 50. Container Orchestration • My Opinions: • Don’t build your own • What are your infrastructure goals? • Consider team size and strength of team
  • 53. Serverless Applications • First used to describe applications that depended on 3rd party applications / services (‘in the cloud’) to manage server-side logic and state • “Backend as a service applications”
  • 54. Serverless Applications Applications where some amount of server-side logic is still written by the application developer Unlike traditional architectures is run in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation), and fully managed by a 3rd party. One way to think of this is “Functions as a service”. AWS Lambda, Azure functions- most popular implementations, but there are others.
  • 55. Traditional Architecture Client (Browser) Load Balancer Load Balancer Load Balancer Server Database
  • 56. Serverless Architecture Client (Browser) Auth Service Web DeliveryAPI Gateway Database Function B Function A Function C
  • 58. • Way to code microservices does not change: 12 factor app mindset • You still have to think of scaling in PaaS: • “How many dynos do I need in Heroku to run this app?” • “How long does it take to scale from 2->4 servers?” • Auto scaling on PaaS is great, but this is on a request basis • Forces developers to write cleaner, more efficient code Difference from PaaS?
  • 59. Difference from containers? • FaaS is typically built with containers… • Once again..Scaling is the core difference. • Managed, transparent, fine grained. • Need to invest time in container platforms to perform scaling actions. • Prediction: may not be true a year from now…
  • 60. Serverless Use Cases • Image Processing • Data Transformation • Log Analysis • Authentication, Licensing
  • 61. Loved it? Hated it? Send me feedback: @iteration1
  • 62. Attributions • Images: https://unsplash.com and https://pixabay.com • State of devops whitepaper: https://puppet.com/resources/infographic/2016-state-of-devops-report-infographic • Datadog docker adoption: https://www.datadoghq.com/docker-adoption/ • devops.com & ClusterHQ survey: https://clusterhq.com/assets/pdfs/state-of-container-usage-june-2016.pdf • Oracle Docker Images: https://github.com/oracle/docker-images • Oracle Container Cloud Service: cloud.oracle.com/container • Oracle Application Container Service: https://cloud.oracle.com/en_US/application-container-cloud • Microservices: https://martinfowler.com/articles/microservices.html • 12 factor apps: https://12factor.net/ • Serverless: https://martinfowler.com/articles/serverless.html • Legacy apps at Uber: https://thenewstack.io/docker-helped-turbocharge-ubers-deployments/ • @lcalcote: https://twitter.com/lcalcote/status/767744030436315136 • Uber story: https://thenewstack.io/docker-helped-turbocharge-ubers-deployments/ • Unikernels Paper: http://unikernel.org/files/2014-cacm-unikernels.pdf
  • 64. Unikernels Unikernels are specialised, single- address-space machine images constructed by using library operating systems.
  • 66. Unikernel benefits • Tiny footprint compared to regular application. • Reduced Attack Surface == Improved Security. • Optimized. • Fast boot. • http://unikernel.org/files/2014-cacm-unikernels.pdf
  • 67. Things we are doing at Oracle
  • 68. Things we are doing at Oracle • Dockerfiles: https://github.com/oracle/docker- images • Weblogic: https://github.com/oracle/docker- images/tree/master/OracleWebLogic/ dockerfiles/12.2.1.1 • DB: https://github.com/oracle/docker-images/ tree/master/OracleDatabase/dockerfiles • Also for Dockerfiles for: Java, OpenJDK, Coherance, MySQL etc
  • 69. Things we are doing at Oracle • Container Registry • Contains pre built Oracle images • https://container- registry.oracle.com/ • Docker 101 tutorial: https:// github.com/mikeraab/docker001
  • 70. Things we are doing at Oracle • Container Products for Oracle Public Cloud: • Oracle Application Container Cloud • Great for Java/Node/PHP applications • Oracle Container Service • Bring your own containers • Container Management solution
  • 71. Things we are doing at Oracle • OCCS Stacks: • ElasticSearch, Kibana, Logstash (ELK): https://github.com/ oracle/docker-images/tree/master/ContainerCloud/stacks/ elk • Kafka microservices on OCCS: https:// community.oracle.com/community/cloud_computing/oracle- cloud-developer-solutions/blog/2017/03/20/running-docker- based-kafka-streams-microservices-on-oracle-container- cloud • https://community.oracle.com/community/cloud_computing/ infrastructure-as-a-service-iaas/oracle-container-cloud-service
  • 72. Things we are doing at Oracle • Free $300 credits to try out all the different services: • https://cloud.oracle.com/en_US/tryit