SlideShare a Scribd company logo
1 of 27
Download to read offline
Containerizing Traditional Applications
Microservices and Cloud-native Applications
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 2
“We started Nirmata to bring DevOps agility to all enterprises!”
Jim Bugwadia
Founder and CEO at Nirmata
Ritesh Patel
Founder and Product Lead at Nirmata
Developer, architect, and leadership roles at
Cisco, Trapeze Networks, and Pano Logic,
Bell Labs, Motorola. Univ of Illinios.
Developer and business leadership at
Brocade, Trapeze Networks, Nortel and
Motorola. MBA from Berkley Haas
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 3
Why Nirmata?
Software infrastructure is best
delivered “as-a-service”
Cloud-native applications need
cloud-native management
Applications should not be
locked in to a cloud provider
1
2
3
• Founded Sep 2013 ->
Beta Jan 2015 -> GA 2016!
• Fortune 50 as well as startup
customers in production
• 1M+ pulls; 10K+ managed
containers per month!
• Wide range of apps – from
Enterprise IT to IoT!
we believe….
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 4
Containerizing Traditional Applications
• Why bother?
• Can traditional applications be containerized?
• How to containerize traditional applications
• Step-by-step demo
• Questions & Answers
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 5
Why containerize an existing application?
Agility
Portability
Consistency
Control
Efficiencies
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 6
‐ University blog
‐ Apache 2.2.10
‐ OpenSSL 0.9.8H
‐ Java 1.6 (EOL 2/13)
‐ Confluence 5.6.5
Application
https://blog.docker.com/2016/07
/it-all-started-with-dockerizing-
an-old-version-of-confluence-
with-docker-datacenter/
1592
staff hrs saved over 6 mos
‐ Manual upgrade processes
‐ Older versions of software
‐ 6 month upgrade process
‐ Variations across environments
‐ Untracked customizations
Challenges
2 months
project time ‐ App portable to any cloud
‐ Frequent upgrades possible
‐ Reduced downtime; improved
HA and DR
‐ Staff can now focus on
strategic projects!
Benefits
10X
productivity gain
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 7
‐ Web Portal App
‐ Liferay on tcServer
‐ PHP app-tier
‐ Nginx LB
‐ Gemfire, MySQL
Application
‐ Several hours to deploy a new
environment
‐ Variations across different
environment types
‐ Coordinating across large
distributed DevOps team
Challenges
3 months
project time ‐ Reduced applictaion deploy
time to under 5 minutes
‐ Immutable images for
consistency across env types
‐ Fully automated updates via
vRealize Automation suite
Benefits
48X
productivity gain
http://devops.com/2015/08/31/
webinar-enabling-devops-and-
containers-on-vmware-with-
nirmata/
IT Applications
82,246
staff hrs saved over 12 mos
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 8
Can traditional apps be containerized?
Yes! Consider containerizing :
• 3rd party apps that are:
o mission critical
o require manual maintenance and updates
• Custom developed applications with:
o complex configurations
o time-consuming and semi-automated deployments
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 9
Key Considerations for Containerizing any App
1. Application state
2. Mapping components / tiers to containers
3. Networking
4. Storage
5. Security
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 10
Containers are ephemeral and so only good
for stateless microservices-style applications.
here’s a common myth:
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 11
Application State
• All applications are stateful!
• Architectural patterns describe how to package with state
and behaviors:
o In 3-tier applications, state is delegated to a data-tier or a mid-tier
cache.
o In microservices-style applications, each service instance is stateless
for elasticity and resiliency and each service has its own data
management
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 12
Types of application state
1. Persistent State
2. Configuration State
3. Session State
4. Connection State
5. Cluster State
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 13
Persistent State
Domain data that needs to survive application restarts and outages.
Typically stored in a database tier with durable storage and backups.
Host
Container
Host
Container
Host
Container
Data in the container
Lost when the container terminates
Data in a Host Volume
Lost when the host terminates
Networked Volume / File System
Independent of host and container
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 14
Persistent State
Containerization solutions and best practices:
• Try to manage DB as a separate tier (possibly shared across apps)
with its own lifecycle
• Use host storage and container host volumes for smaller datasets
and if database software handles stateless replicas
• Use shared file systems, or shared volumes, if data needs to be
pinned to replicas and managed independently of hosts. Check
orchestration support.
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 15
Configuration State
Non-domain data required by the application to execute. For example:
addresses, tunables, secrets, etc.
Containerization solutions and best practices:
• Environment variables for non-sensitive configuration data
• Encrypted and trusted store (KeyWhiz, Vault, etc.) for secret data. Use
one-time keys, or volumes, to make secrets available to containers.
• Dynamic property service (NetflixOSS Archaius, NirmataOSS go-configfiles) if
data needs to be changed without requiring a restart.
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 16
Session State
User data associated with login session. Commonly used in multi-page
web applications, so all pages see user information.
Load
Balancer
Server 1
Server 2
Server 3
User 1
User 2
User 2
Connection
User 1
Connection
my.app.com
User 1
Session
User 2
Session
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 17
Session State
Containerization solutions and best practices:
• Traditional load-balancers (e.g. HAProxy etc.) support “sticky sessions”
but need to be made container-aware, and require management.
• Container-native load balancers (e.g. Avi, NetflixOSS Zuul, Nirmata Service
Gateway, etc.) allow Layer 7 routing with “sticky sessions”, dynamically
handle container updates and are themselves delivered as
microservices (stateless, elastic, and resilient!)
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 18
Connection State
Protocols like Websockets are “stateful” as the client and server can
exchange a sequence of messages.
Containerization solutions and best practices:
• Layer 4 load balancers support TCP (port-based) load-balancing but
need to be made container-aware, and require management.
• Container-native load balancers (e.g. Avi, Nirmata Service Gateway, etc.)
also allow Layer 4 TCP routing, dynamically handle container updates
and delivered as microservices (stateless, elastic, and resilient!)
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 19
Cluster State
Clustered applications share and maintain state across members.
Solutions and best practices:
1. Determine how cluster members are bootstrapped and updated
• If addresses and ports, the container orchestrator will need to support. Kubernetes
introduced PetSets. Nirmata supports has staged deployments with reservations.
• Use static IP addresses or names, if the number of cluster members is known.
• Consider using host mode networking if static IPs addresses (or names) are used.
2. Determine how membership roles are handled
• If the cluster requires static roles, some in-container scripting along with variable
injection will be needed.
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 20
Containers are ephemeral and so only good
for stateless microservices-style applications.
here’s a common myth:
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 21
Steps to Containerize any Application
1. Identify and handle application state
persistent state, configuration state, session state, connection state, cluster state
2. Decide on how many containers
Single container? Split each tier? Split a tier into multiple services?
3. Select container networking options
Service Discovery or Dependency Injection? - Bridge mode? Host Mode? Overlay? Network plugin?
4. Select container storage options
Host storage? Shared storage? Volume plugin?
5. Select container security options
Privileges, host & net segregation, access controls, secrets, image scanning & signing
Demo Time!
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 23
Web Application
(Apache Tomcat 7.x)
RDBMS
(HSQLDB/MySQL)
https://github.com/spring-projects/spring-petclinic
https://github.com/NirmataOSS/petclinic-mysql
Application: Pet Clinic
• Java/Spring application
• Relational Database
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 24
Summary
• Traditional and stateful applications
can be containerized.
• There are huge benefits with
containerizing traditional applications.
• Containerizing traditional apps on VMs
is a great way to get started
try.nirmata.io
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 25
Get in touch
o jim@nirmata.com,
o @JimBugwadia
o https://www.linkedin.com/in/jimbugwadia
o ritesh@nirmata.com
o @riteshdp
o https://www.linkedin.com/in/patelrit
we love to help!
Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 26
Questions
Answers
&
Thank you!
Explore Nirmata for free at: nirmata.io

More Related Content

What's hot

Cloud Native Application
Cloud Native ApplicationCloud Native Application
Cloud Native ApplicationVMUG IT
 
Cloud Native Java Microservices
Cloud Native Java MicroservicesCloud Native Java Microservices
Cloud Native Java MicroservicesKenny Bastani
 
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...VMware Tanzu
 
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFVcross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFVKrishna-Kumar
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the MonolithVMware Tanzu
 
The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps JourneyC4Media
 
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to MicroservicesHow to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to MicroservicesVMware Tanzu
 
Pivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewPivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewVMware Tanzu
 
Ensuring Cloud Native Success: Organization Transformation
Ensuring Cloud Native Success:  Organization TransformationEnsuring Cloud Native Success:  Organization Transformation
Ensuring Cloud Native Success: Organization TransformationChloe Jackson
 
Orchestrating Cloud-Native and Traditional Application Architectures
Orchestrating Cloud-Native and Traditional Application ArchitecturesOrchestrating Cloud-Native and Traditional Application Architectures
Orchestrating Cloud-Native and Traditional Application ArchitecturesApprenda
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications Munish Gupta
 
Containing your microservice sprawl
Containing your microservice sprawlContaining your microservice sprawl
Containing your microservice sprawlLibbySchulze
 
The Making of a Cloud Native Application Platform
The Making of a Cloud Native Application PlatformThe Making of a Cloud Native Application Platform
The Making of a Cloud Native Application PlatformCloud Foundry Foundation
 
Cloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootCloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootSufyaan Kazi
 
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. ChoiInnovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. ChoiVietnam Open Infrastructure User Group
 
MongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryMongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryVMware Tanzu
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Kai Wähner
 

What's hot (20)

Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
 
Cloud Native Application
Cloud Native ApplicationCloud Native Application
Cloud Native Application
 
Cloud Native Java Microservices
Cloud Native Java MicroservicesCloud Native Java Microservices
Cloud Native Java Microservices
 
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
 
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFVcross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
 
Forecast 2014: Cloud-Aware Applications
Forecast 2014: Cloud-Aware Applications Forecast 2014: Cloud-Aware Applications
Forecast 2014: Cloud-Aware Applications
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
 
The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps Journey
 
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to MicroservicesHow to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
 
Pivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewPivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical Overview
 
Ensuring Cloud Native Success: Organization Transformation
Ensuring Cloud Native Success:  Organization TransformationEnsuring Cloud Native Success:  Organization Transformation
Ensuring Cloud Native Success: Organization Transformation
 
Orchestrating Cloud-Native and Traditional Application Architectures
Orchestrating Cloud-Native and Traditional Application ArchitecturesOrchestrating Cloud-Native and Traditional Application Architectures
Orchestrating Cloud-Native and Traditional Application Architectures
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Containing your microservice sprawl
Containing your microservice sprawlContaining your microservice sprawl
Containing your microservice sprawl
 
The Making of a Cloud Native Application Platform
The Making of a Cloud Native Application PlatformThe Making of a Cloud Native Application Platform
The Making of a Cloud Native Application Platform
 
Cloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootCloud native Microservices using Spring Boot
Cloud native Microservices using Spring Boot
 
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. ChoiInnovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
 
MongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryMongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud Foundry
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
 

Viewers also liked

Kubernetes meetup: Networking for Microservices
Kubernetes meetup: Networking for MicroservicesKubernetes meetup: Networking for Microservices
Kubernetes meetup: Networking for MicroservicesSukhesh Halemane
 
Contiv kubernetes-microservices-feb25-v0.3
Contiv kubernetes-microservices-feb25-v0.3Contiv kubernetes-microservices-feb25-v0.3
Contiv kubernetes-microservices-feb25-v0.3Sukhesh Halemane
 
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015Jim Bugwadia
 
Container Networking Challenges for Production Readiness
Container Networking Challenges for Production ReadinessContainer Networking Challenges for Production Readiness
Container Networking Challenges for Production ReadinessVipin Jain
 
Running Netflix OSS on Docker with Nirmata
Running Netflix OSS on Docker with NirmataRunning Netflix OSS on Docker with Nirmata
Running Netflix OSS on Docker with NirmataDamien Toledo
 
Docker meetup oct14
Docker meetup   oct14Docker meetup   oct14
Docker meetup oct14Vipin Jain
 
Policy Driven Deployment for Container Networking
Policy Driven Deployment for Container NetworkingPolicy Driven Deployment for Container Networking
Policy Driven Deployment for Container NetworkingDocker, Inc.
 
Enabling Production Grade Containerized Applications through Policy Based Inf...
Enabling Production Grade Containerized Applications through Policy Based Inf...Enabling Production Grade Containerized Applications through Policy Based Inf...
Enabling Production Grade Containerized Applications through Policy Based Inf...Docker, Inc.
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
DEVNET-1170 Intercloud Microservices with Docker and Nirmata
DEVNET-1170	Intercloud Microservices with Docker and NirmataDEVNET-1170	Intercloud Microservices with Docker and Nirmata
DEVNET-1170 Intercloud Microservices with Docker and NirmataCisco DevNet
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices PatternsCisco DevNet
 

Viewers also liked (12)

Kubernetes meetup: Networking for Microservices
Kubernetes meetup: Networking for MicroservicesKubernetes meetup: Networking for Microservices
Kubernetes meetup: Networking for Microservices
 
Contiv kubernetes-microservices-feb25-v0.3
Contiv kubernetes-microservices-feb25-v0.3Contiv kubernetes-microservices-feb25-v0.3
Contiv kubernetes-microservices-feb25-v0.3
 
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
 
Enterprise Cloud Native
Enterprise Cloud NativeEnterprise Cloud Native
Enterprise Cloud Native
 
Container Networking Challenges for Production Readiness
Container Networking Challenges for Production ReadinessContainer Networking Challenges for Production Readiness
Container Networking Challenges for Production Readiness
 
Running Netflix OSS on Docker with Nirmata
Running Netflix OSS on Docker with NirmataRunning Netflix OSS on Docker with Nirmata
Running Netflix OSS on Docker with Nirmata
 
Docker meetup oct14
Docker meetup   oct14Docker meetup   oct14
Docker meetup oct14
 
Policy Driven Deployment for Container Networking
Policy Driven Deployment for Container NetworkingPolicy Driven Deployment for Container Networking
Policy Driven Deployment for Container Networking
 
Enabling Production Grade Containerized Applications through Policy Based Inf...
Enabling Production Grade Containerized Applications through Policy Based Inf...Enabling Production Grade Containerized Applications through Policy Based Inf...
Enabling Production Grade Containerized Applications through Policy Based Inf...
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
DEVNET-1170 Intercloud Microservices with Docker and Nirmata
DEVNET-1170	Intercloud Microservices with Docker and NirmataDEVNET-1170	Intercloud Microservices with Docker and Nirmata
DEVNET-1170 Intercloud Microservices with Docker and Nirmata
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices Patterns
 

Similar to Containerizing Traditional Applications

Enabling Fast IT using Containers, Microservices and DAVROS models: an overview
Enabling Fast IT using Containers, Microservices and DAVROS models: an overviewEnabling Fast IT using Containers, Microservices and DAVROS models: an overview
Enabling Fast IT using Containers, Microservices and DAVROS models: an overviewCisco DevNet
 
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefSoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefTrevor Hess
 
Introducing Events and Stream Processing into Nationwide Building Society (Ro...
Introducing Events and Stream Processing into Nationwide Building Society (Ro...Introducing Events and Stream Processing into Nationwide Building Society (Ro...
Introducing Events and Stream Processing into Nationwide Building Society (Ro...confluent
 
Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring WSO2
 
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandCisco IT
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryManuel Silveyra
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsStorage Switzerland
 
Robin Cloud Platform for Big Data and Databases
Robin Cloud Platform for Big Data and DatabasesRobin Cloud Platform for Big Data and Databases
Robin Cloud Platform for Big Data and DatabasesRobin Systems
 
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed ServiceCloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed ServiceVMware Tanzu
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018UX Antwerp Meetup
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Frameworkdinkar thakur
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...confluent
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
Service Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitectureService Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitecturePLUMgrid
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application DevelopmentWaveMaker, Inc.
 

Similar to Containerizing Traditional Applications (20)

Enabling Fast IT using Containers, Microservices and DAVROS models: an overview
Enabling Fast IT using Containers, Microservices and DAVROS models: an overviewEnabling Fast IT using Containers, Microservices and DAVROS models: an overview
Enabling Fast IT using Containers, Microservices and DAVROS models: an overview
 
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefSoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
 
Introducing Events and Stream Processing into Nationwide Building Society (Ro...
Introducing Events and Stream Processing into Nationwide Building Society (Ro...Introducing Events and Stream Processing into Nationwide Building Society (Ro...
Introducing Events and Stream Processing into Nationwide Building Society (Ro...
 
Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring
 
Cloud presentation NELA
Cloud presentation NELACloud presentation NELA
Cloud presentation NELA
 
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud Foundry
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy Applications
 
Robin Cloud Platform for Big Data and Databases
Robin Cloud Platform for Big Data and DatabasesRobin Cloud Platform for Big Data and Databases
Robin Cloud Platform for Big Data and Databases
 
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed ServiceCloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Framework
 
Intro - Cloud Native
Intro - Cloud NativeIntro - Cloud Native
Intro - Cloud Native
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Service Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitectureService Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices Architecture
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 

More from Jim Bugwadia

ISACA SV Chapter: Securing Software Supply Chains
ISACA SV Chapter: Securing Software Supply ChainsISACA SV Chapter: Securing Software Supply Chains
ISACA SV Chapter: Securing Software Supply ChainsJim Bugwadia
 
Cloud Native DevOps
Cloud Native DevOpsCloud Native DevOps
Cloud Native DevOpsJim Bugwadia
 
Securing Kubernetes Workloads
Securing Kubernetes WorkloadsSecuring Kubernetes Workloads
Securing Kubernetes WorkloadsJim Bugwadia
 
Virtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKSVirtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKSJim Bugwadia
 
Operationalizing Amazon EKS
Operationalizing Amazon EKSOperationalizing Amazon EKS
Operationalizing Amazon EKSJim Bugwadia
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018Jim Bugwadia
 
Kubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsKubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsJim Bugwadia
 
Demystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsDemystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsJim Bugwadia
 
Microservices on AWS Spot instances
Microservices on AWS Spot instancesMicroservices on AWS Spot instances
Microservices on AWS Spot instancesJim Bugwadia
 

More from Jim Bugwadia (9)

ISACA SV Chapter: Securing Software Supply Chains
ISACA SV Chapter: Securing Software Supply ChainsISACA SV Chapter: Securing Software Supply Chains
ISACA SV Chapter: Securing Software Supply Chains
 
Cloud Native DevOps
Cloud Native DevOpsCloud Native DevOps
Cloud Native DevOps
 
Securing Kubernetes Workloads
Securing Kubernetes WorkloadsSecuring Kubernetes Workloads
Securing Kubernetes Workloads
 
Virtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKSVirtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKS
 
Operationalizing Amazon EKS
Operationalizing Amazon EKSOperationalizing Amazon EKS
Operationalizing Amazon EKS
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018
 
Kubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsKubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOps
 
Demystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsDemystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOps
 
Microservices on AWS Spot instances
Microservices on AWS Spot instancesMicroservices on AWS Spot instances
Microservices on AWS Spot instances
 

Recently uploaded

Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdfsahilsajad201
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...shreenathji26
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...gerogepatton
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical trainingGladiatorsKasper
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organizationchnrketan
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...IJAEMSJORNAL
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfalokitpathak01
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfShreyas Pandit
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Sumanth A
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSsandhya757531
 
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Amil baba
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHSneha Padhiar
 
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...arifengg7
 

Recently uploaded (20)

Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdf
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organization
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdf
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdf
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
 
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
 
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
 

Containerizing Traditional Applications

  • 2. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 2 “We started Nirmata to bring DevOps agility to all enterprises!” Jim Bugwadia Founder and CEO at Nirmata Ritesh Patel Founder and Product Lead at Nirmata Developer, architect, and leadership roles at Cisco, Trapeze Networks, and Pano Logic, Bell Labs, Motorola. Univ of Illinios. Developer and business leadership at Brocade, Trapeze Networks, Nortel and Motorola. MBA from Berkley Haas
  • 3. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 3 Why Nirmata? Software infrastructure is best delivered “as-a-service” Cloud-native applications need cloud-native management Applications should not be locked in to a cloud provider 1 2 3 • Founded Sep 2013 -> Beta Jan 2015 -> GA 2016! • Fortune 50 as well as startup customers in production • 1M+ pulls; 10K+ managed containers per month! • Wide range of apps – from Enterprise IT to IoT! we believe….
  • 4. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 4 Containerizing Traditional Applications • Why bother? • Can traditional applications be containerized? • How to containerize traditional applications • Step-by-step demo • Questions & Answers
  • 5. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 5 Why containerize an existing application? Agility Portability Consistency Control Efficiencies
  • 6. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 6 ‐ University blog ‐ Apache 2.2.10 ‐ OpenSSL 0.9.8H ‐ Java 1.6 (EOL 2/13) ‐ Confluence 5.6.5 Application https://blog.docker.com/2016/07 /it-all-started-with-dockerizing- an-old-version-of-confluence- with-docker-datacenter/ 1592 staff hrs saved over 6 mos ‐ Manual upgrade processes ‐ Older versions of software ‐ 6 month upgrade process ‐ Variations across environments ‐ Untracked customizations Challenges 2 months project time ‐ App portable to any cloud ‐ Frequent upgrades possible ‐ Reduced downtime; improved HA and DR ‐ Staff can now focus on strategic projects! Benefits 10X productivity gain
  • 7. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 7 ‐ Web Portal App ‐ Liferay on tcServer ‐ PHP app-tier ‐ Nginx LB ‐ Gemfire, MySQL Application ‐ Several hours to deploy a new environment ‐ Variations across different environment types ‐ Coordinating across large distributed DevOps team Challenges 3 months project time ‐ Reduced applictaion deploy time to under 5 minutes ‐ Immutable images for consistency across env types ‐ Fully automated updates via vRealize Automation suite Benefits 48X productivity gain http://devops.com/2015/08/31/ webinar-enabling-devops-and- containers-on-vmware-with- nirmata/ IT Applications 82,246 staff hrs saved over 12 mos
  • 8. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 8 Can traditional apps be containerized? Yes! Consider containerizing : • 3rd party apps that are: o mission critical o require manual maintenance and updates • Custom developed applications with: o complex configurations o time-consuming and semi-automated deployments
  • 9. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 9 Key Considerations for Containerizing any App 1. Application state 2. Mapping components / tiers to containers 3. Networking 4. Storage 5. Security
  • 10. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 10 Containers are ephemeral and so only good for stateless microservices-style applications. here’s a common myth:
  • 11. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 11 Application State • All applications are stateful! • Architectural patterns describe how to package with state and behaviors: o In 3-tier applications, state is delegated to a data-tier or a mid-tier cache. o In microservices-style applications, each service instance is stateless for elasticity and resiliency and each service has its own data management
  • 12. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 12 Types of application state 1. Persistent State 2. Configuration State 3. Session State 4. Connection State 5. Cluster State
  • 13. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 13 Persistent State Domain data that needs to survive application restarts and outages. Typically stored in a database tier with durable storage and backups. Host Container Host Container Host Container Data in the container Lost when the container terminates Data in a Host Volume Lost when the host terminates Networked Volume / File System Independent of host and container
  • 14. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 14 Persistent State Containerization solutions and best practices: • Try to manage DB as a separate tier (possibly shared across apps) with its own lifecycle • Use host storage and container host volumes for smaller datasets and if database software handles stateless replicas • Use shared file systems, or shared volumes, if data needs to be pinned to replicas and managed independently of hosts. Check orchestration support.
  • 15. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 15 Configuration State Non-domain data required by the application to execute. For example: addresses, tunables, secrets, etc. Containerization solutions and best practices: • Environment variables for non-sensitive configuration data • Encrypted and trusted store (KeyWhiz, Vault, etc.) for secret data. Use one-time keys, or volumes, to make secrets available to containers. • Dynamic property service (NetflixOSS Archaius, NirmataOSS go-configfiles) if data needs to be changed without requiring a restart.
  • 16. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 16 Session State User data associated with login session. Commonly used in multi-page web applications, so all pages see user information. Load Balancer Server 1 Server 2 Server 3 User 1 User 2 User 2 Connection User 1 Connection my.app.com User 1 Session User 2 Session
  • 17. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 17 Session State Containerization solutions and best practices: • Traditional load-balancers (e.g. HAProxy etc.) support “sticky sessions” but need to be made container-aware, and require management. • Container-native load balancers (e.g. Avi, NetflixOSS Zuul, Nirmata Service Gateway, etc.) allow Layer 7 routing with “sticky sessions”, dynamically handle container updates and are themselves delivered as microservices (stateless, elastic, and resilient!)
  • 18. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 18 Connection State Protocols like Websockets are “stateful” as the client and server can exchange a sequence of messages. Containerization solutions and best practices: • Layer 4 load balancers support TCP (port-based) load-balancing but need to be made container-aware, and require management. • Container-native load balancers (e.g. Avi, Nirmata Service Gateway, etc.) also allow Layer 4 TCP routing, dynamically handle container updates and delivered as microservices (stateless, elastic, and resilient!)
  • 19. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 19 Cluster State Clustered applications share and maintain state across members. Solutions and best practices: 1. Determine how cluster members are bootstrapped and updated • If addresses and ports, the container orchestrator will need to support. Kubernetes introduced PetSets. Nirmata supports has staged deployments with reservations. • Use static IP addresses or names, if the number of cluster members is known. • Consider using host mode networking if static IPs addresses (or names) are used. 2. Determine how membership roles are handled • If the cluster requires static roles, some in-container scripting along with variable injection will be needed.
  • 20. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 20 Containers are ephemeral and so only good for stateless microservices-style applications. here’s a common myth:
  • 21. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 21 Steps to Containerize any Application 1. Identify and handle application state persistent state, configuration state, session state, connection state, cluster state 2. Decide on how many containers Single container? Split each tier? Split a tier into multiple services? 3. Select container networking options Service Discovery or Dependency Injection? - Bridge mode? Host Mode? Overlay? Network plugin? 4. Select container storage options Host storage? Shared storage? Volume plugin? 5. Select container security options Privileges, host & net segregation, access controls, secrets, image scanning & signing
  • 23. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 23 Web Application (Apache Tomcat 7.x) RDBMS (HSQLDB/MySQL) https://github.com/spring-projects/spring-petclinic https://github.com/NirmataOSS/petclinic-mysql Application: Pet Clinic • Java/Spring application • Relational Database
  • 24. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 24 Summary • Traditional and stateful applications can be containerized. • There are huge benefits with containerizing traditional applications. • Containerizing traditional apps on VMs is a great way to get started try.nirmata.io
  • 25. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 25 Get in touch o jim@nirmata.com, o @JimBugwadia o https://www.linkedin.com/in/jimbugwadia o ritesh@nirmata.com o @riteshdp o https://www.linkedin.com/in/patelrit we love to help!
  • 26. Containerizing Traditional Applications – SF Bay Area Microservices Meetup - August 2nd 2016 26 Questions Answers &
  • 27. Thank you! Explore Nirmata for free at: nirmata.io