SlideShare a Scribd company logo
CLOUD ANTI-
PATTERNS
DevOpsDays Detroit
November 2015
whoami Mallika Iyer
Cloud Foundry Specialist @ Pivotal
Twitter @cloudfoundryart
LinkedIn in/imallika
@cloudfoundryart
Certified TRX trainer | Fitness junkie | German Shepherd Fanatic
@cloudfoundryart
@cloudfoundryart
Agenda
• Cloud Anti-Patterns
• #1 Ignoring the Sweet Spot
• #2 Risk Mitigation v/s Innovation
• #3 The Monolithic Microservice
• #4 The Logic Leak
• #5 The 3 musketeers of cloud-native apps
• #6 Boil tea, not the ocean
• #7 The micro-service push & shove
• #8 Build Pipelines are your BFFs
• #9 Siloed Search
• Summary
@cloudfoundryart
Before we begin…
• Let’s define things!
@cloudfoundryart
Microservices
Microservices is a software
architecture design pattern, in
which complex applications are
composed of small,
independent processes
communicating with each other
using language-agnostic APIs.
These services are small,
autonomous, highly
decoupled, work together and
focus on doing a small task.
@cloudfoundryart
Containers
A container is an isolated
and lightweight environment
that can run a service or
application without reliance
on a separate operating
system
eg: Docker,
Warden,
Garden,
Rocket…
@cloudfoundryart
Continuous Integration
The practice of merging all
developer working copies to a
shared mainline several
times a day
@cloudfoundryart
Continuous Delivery
An approach where teams
produce valuable software in
short cycles and release the
software reliably,
predictably and at times,
automatically
eg:
Concourse,
Jenkins,
Bamboo…
@cloudfoundryart
Cloud Anti-Patterns
#1 Finding the sweet spot
Sweet spot
cnp
CNP= Cloud Native Platform as a Service like Cloud Foundry
@cloudfoundryart
#1 Ignoring the sweet spot
@cloudfoundryart
#1 Ignoring the sweet spot
If I close my
eyes it doesn’t
exist…
cnp
CNP= Cloud Native Platform as a Service like Cloud Foundry
@cloudfoundryart
#2 Risk Mitigation v/s Innovation
• Problem
• Need to innovate
• Want to release cool features to production NOW
• Ops simply cannot support this because of uptime, HA, DR
and other concerns
• Result
• Everyone is unhappy
• Business is angry
• Everyone blames IT-Ops
• It’s not really fair...
@cloudfoundryart
Hai ya! New
cool features
tomorrow!!
No more
github for
you…
Code Ninjas/Developers
Special Ops/Operations
@cloudfoundryart
#2 Risk Mitigation v/s Innovation
• Solution
• You don’t have to choose!
• Select the right platform
• Something like Cloud Foundry…
• Self-healing
• Application distribution across Availability Zones
• Application resurrection
• Self-monitoring and resurrection
• VM recreation
• Inherently HA
• Visibility into all development activity
@cloudfoundryart
#3 The monolithic microservice
• Temptation:
• Grouping similar microservices in the same container
• Problem:
• Unable to scale
• Unable to deploy changes
• The monolithic creep
• Solution:
• ONE Micro Service Per container
@cloudfoundryart
#4 The Logic Leak
Temptation:
Premature decomposition of microservices
• Problem:
• Company ‘Amazing-Stuff!!!’
has a product called
‘Awesome’
• They plan to create a new
offering called ‘Super-
Awesome’
• Similarities between the 2
products cause them to split
microservices and consume
them across both products
• ‘Super-Awesome’ really
KICKS off…takes a life of its
own
• Causing the developers to
rewrite the microservices for
the new product 
@cloudfoundryart
This micro service smells
of too many beers and
sweat…
@cloudfoundryart
#4 The Logic Leak
• Lesson Learned:
• DON’T BE IN A HURRY to GO MICRO – Let it be
gradual!
@cloudfoundryart
#5 Ignoring the 3 Musketeers
APIs
Service
Registry
& Discovery
Fault
Tolerance
@cloudfoundryart
#5 The 3 Musketeers : APIs
Problem
• 100+ microservices
need to talk to each
other
• Many are changing
simultaneously
• And they are in about
5 different languages
Solution
• Use language-
independent APIs and
API interfaces like
swagger.io
• Honor the contract
between microservices
• Interactively document
the API and integrate it
with your project tracker
@cloudfoundryart
#5 The 3 Musketeers : Service
Discovery & Registry
Problem
• 100+ microservices are
now talking to each
other…
• Every time a new
microservice is added, all
the others must manually
be informed of its presence
Solution
• Use a service discovery
and registry tool like
Eureka (part of Spring
Cloud Services)
• Automate Service
Discovery and
Registration
• No errors at scale
@cloudfoundryart
#5 The 3 Musketeers : Fault
Tolerance
Problem
• A couple of internal
services that feed your
application fail for some
reason
• The failure has now
propagated to the API
• Your customers now
experience a disruption in
service causing $$$$$$
loss in revenue
Solution
• Use a circuit breaker like
Hystrix (part of Spring
Cloud Services)
• Isolate the point of origin of
the failure
• Contain the error and
prevent cascading failure
• Graceful degradation of
service while we work
furiously behind the scenes
to fix it
@cloudfoundryart
#6 Boil Tea, Not the Ocean
• Problem:
• The temptation to lift and shift a monolith
• Trying to rewrite the entire application
• Too much, too fast, too soon
• Challenges:
• Unrealistic
• Might not even be possible due to IaaS restrictions
• Moving a problem from a place you (kind of) understand to a
place you absolutely don’t
• Result:
• The Cloud Native Initiative lives on PowerPoint for
eternity
@cloudfoundryart
#6 Boil Tea, Not the Ocean
• Solution:
• Identify a function that can be rebuilt
• Something that would benefit from innovation
• Something that is hard to modify
• Something new
• With minimum impact on the rest of the monolith
• Clearly outline the technical debt associated with that
function
• Rewrite following best practices for microservices
• Start really…really small
• Or really…really new
@cloudfoundryart
#7 The microservice push & shove
@cloudfoundryart
#7 The microservice push &
shove
• Problem:
• In a distributed application architecture, how do you figure
out where to look?
• Solution:
• It doesn’t have to be that way…
• Logging is your friend…
• Pivotal Ops Metrics
• New Relic, App Dynamics, Sumo Logic, ELK,
Splunk…and so many more
• Dynamic Tracing is your friend…
• Explore Zipkin
• Application Performance Monitoring tools…
• New Relic, Drip Stat…
@cloudfoundryart
#8 Build Pipelines are your BFFs
KEEP CALM
AND
HUG
YOUR
BUILD PIPELINES
@cloudfoundryart
#9 Siloed Search
• Problem:
• Users cannot perform unified search
across data silos
• Search data is stale
@cloudfoundryart
#9 Cloud-Native Federated
Search
Solution:
• Create an Enterprise-Wide Data Bus with RabbitMQ
or Kafka
• Multiple microservices can asynchronously publish
interesting data points
• Search Event Listeners will listen to these events
and update the search indices in real-time
• Basically going from a data push model to Real-
time Data Pull Model
@cloudfoundryart
Summary
• Don’t ignore the sweet spot – A Cloud Native Platform as a
Service like Cloud Foundry is your best friend
• You don’t have to choose between Risk Mitigation and
Innovation – A Cloud Native Platform is your ally
• The Monolithic Micro service – don’t be THAT guy
• Be wary of the micro service smells – Don’t Repeat Yourself
• The 3 Musketeers are your best friends: APIs(swagger.io),
Service Registry & Discovery (Eureka – Spring Cloud
Services), Fault Tolerance (Hystrix-Spring Cloud Services)
@cloudfoundryart
Summary
• Boil tea, not the ocean – Start small, start new
• Microservices need not be murder mysteries –
Logging and Tracing are your BFFs
• Automation is your friend – Keep calm and hug your
build pipelines across environments
• Siloed Search will ruin your customer experience –
Search should NEVER been an afterthought
@cloudfoundryart
Thank you!
Mallika Iyer @ Pivotal
Twitter @cloudfoundryart
LinkedIn in/imallika

More Related Content

What's hot

The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data
Christian Posta
 

What's hot (20)

Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud Computing
 
OpenWhisk - A platform for cloud native, serverless, event driven apps
OpenWhisk - A platform for cloud native, serverless, event driven appsOpenWhisk - A platform for cloud native, serverless, event driven apps
OpenWhisk - A platform for cloud native, serverless, event driven apps
 
From Zero to Serverless
From Zero to ServerlessFrom Zero to Serverless
From Zero to Serverless
 
Going Reactive in the Land of No
Going Reactive in the Land of NoGoing Reactive in the Land of No
Going Reactive in the Land of No
 
OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk Introduction
 
Building a Platform for the People - IBM's Open Cloud Architecture Summit - A...
Building a Platform for the People - IBM's Open Cloud Architecture Summit - A...Building a Platform for the People - IBM's Open Cloud Architecture Summit - A...
Building a Platform for the People - IBM's Open Cloud Architecture Summit - A...
 
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
The Reactive Principles: Eight Tenets For Building Cloud Native ApplicationsThe Reactive Principles: Eight Tenets For Building Cloud Native Applications
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
 
This stuff is cool, but...HOW CAN I GET MY COMPANY TO DO IT?
This stuff is cool, but...HOW CAN I GET MY COMPANY TO DO IT?This stuff is cool, but...HOW CAN I GET MY COMPANY TO DO IT?
This stuff is cool, but...HOW CAN I GET MY COMPANY TO DO IT?
 
JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.
 
Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...
Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...
Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...
 
Serverless apps with OpenWhisk
Serverless apps with OpenWhiskServerless apps with OpenWhisk
Serverless apps with OpenWhisk
 
From Zero to Serverless (DogFoodCon 2018)
From Zero to Serverless (DogFoodCon 2018)From Zero to Serverless (DogFoodCon 2018)
From Zero to Serverless (DogFoodCon 2018)
 
OpenWhisk: Event-driven Design
OpenWhisk: Event-driven DesignOpenWhisk: Event-driven Design
OpenWhisk: Event-driven Design
 
OpenWhisk Deep Dive: the action container model
OpenWhisk Deep Dive: the action container modelOpenWhisk Deep Dive: the action container model
OpenWhisk Deep Dive: the action container model
 
Dylan Beattie "Architecture: The Stuff That's Hard to Change"
Dylan Beattie "Architecture: The Stuff That's Hard to Change"Dylan Beattie "Architecture: The Stuff That's Hard to Change"
Dylan Beattie "Architecture: The Stuff That's Hard to Change"
 
OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture
 

Viewers also liked

Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 
Understand the What, Why & How of Digital Transformation Featuring 451 Research
Understand the What, Why & How of Digital Transformation Featuring 451 ResearchUnderstand the What, Why & How of Digital Transformation Featuring 451 Research
Understand the What, Why & How of Digital Transformation Featuring 451 Research
VMware Tanzu
 
Best Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff BarrBest Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff Barr
Amazon Web Services
 

Viewers also liked (13)

The Twelve Factor Container
The Twelve Factor ContainerThe Twelve Factor Container
The Twelve Factor Container
 
Anti-Patterns
Anti-PatternsAnti-Patterns
Anti-Patterns
 
Spring one pivotal
Spring one pivotalSpring one pivotal
Spring one pivotal
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
 
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIUsing Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
 
AWS re:Invent 2016: Building Enterprise Cloud Operations As a Service with T-...
AWS re:Invent 2016: Building Enterprise Cloud Operations As a Service with T-...AWS re:Invent 2016: Building Enterprise Cloud Operations As a Service with T-...
AWS re:Invent 2016: Building Enterprise Cloud Operations As a Service with T-...
 
12 factor app an introduction
12 factor app an introduction12 factor app an introduction
12 factor app an introduction
 
AWS re:Invent 2016: Cloud agility and faster connectivity with AT&T NetBond a...
AWS re:Invent 2016: Cloud agility and faster connectivity with AT&T NetBond a...AWS re:Invent 2016: Cloud agility and faster connectivity with AT&T NetBond a...
AWS re:Invent 2016: Cloud agility and faster connectivity with AT&T NetBond a...
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
 
Understand the What, Why & How of Digital Transformation Featuring 451 Research
Understand the What, Why & How of Digital Transformation Featuring 451 ResearchUnderstand the What, Why & How of Digital Transformation Featuring 451 Research
Understand the What, Why & How of Digital Transformation Featuring 451 Research
 
Patterns for distributed systems
Patterns for distributed systemsPatterns for distributed systems
Patterns for distributed systems
 
Antenna Evolution: From 4G to 5G
Antenna Evolution: From 4G to 5GAntenna Evolution: From 4G to 5G
Antenna Evolution: From 4G to 5G
 
Best Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff BarrBest Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff Barr
 

Similar to Cloud anti-patterns

Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud Foundry
Emilio Garcia
 
RightScale: Single Pane of Glass at Computerworld 2013
RightScale:  Single Pane of Glass at Computerworld 2013RightScale:  Single Pane of Glass at Computerworld 2013
RightScale: Single Pane of Glass at Computerworld 2013
RightScale
 
CAMP IT Slides - Skytap - Brian White
CAMP IT Slides - Skytap - Brian White CAMP IT Slides - Skytap - Brian White
CAMP IT Slides - Skytap - Brian White
Skytap Cloud
 

Similar to Cloud anti-patterns (20)

The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
 
From Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical DebtFrom Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical Debt
 
What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise apps
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud Foundry
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Tips For a Successful Cloud Proof-of-Concept - RightScale Compute 2013
Tips For a Successful Cloud Proof-of-Concept - RightScale Compute 2013Tips For a Successful Cloud Proof-of-Concept - RightScale Compute 2013
Tips For a Successful Cloud Proof-of-Concept - RightScale Compute 2013
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
DevOps Days Ohio
DevOps Days OhioDevOps Days Ohio
DevOps Days Ohio
 
Take your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to ModernizationTake your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to Modernization
 
RightScale: Single Pane of Glass at Computerworld 2013
RightScale:  Single Pane of Glass at Computerworld 2013RightScale:  Single Pane of Glass at Computerworld 2013
RightScale: Single Pane of Glass at Computerworld 2013
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)
 
CAMP IT Slides - Skytap - Brian White
CAMP IT Slides - Skytap - Brian White CAMP IT Slides - Skytap - Brian White
CAMP IT Slides - Skytap - Brian White
 
Microservices pros and cons dark
Microservices pros and cons darkMicroservices pros and cons dark
Microservices pros and cons dark
 
Microservices - Scaling Development and Service
Microservices - Scaling Development and ServiceMicroservices - Scaling Development and Service
Microservices - Scaling Development and Service
 
Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2
 
AWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWS
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
 
Patterns of Cloud Native Architecture
Patterns of Cloud Native ArchitecturePatterns of Cloud Native Architecture
Patterns of Cloud Native Architecture
 

Recently uploaded

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 

Cloud anti-patterns

  • 2. whoami Mallika Iyer Cloud Foundry Specialist @ Pivotal Twitter @cloudfoundryart LinkedIn in/imallika @cloudfoundryart
  • 3. Certified TRX trainer | Fitness junkie | German Shepherd Fanatic @cloudfoundryart
  • 5. Agenda • Cloud Anti-Patterns • #1 Ignoring the Sweet Spot • #2 Risk Mitigation v/s Innovation • #3 The Monolithic Microservice • #4 The Logic Leak • #5 The 3 musketeers of cloud-native apps • #6 Boil tea, not the ocean • #7 The micro-service push & shove • #8 Build Pipelines are your BFFs • #9 Siloed Search • Summary @cloudfoundryart
  • 6. Before we begin… • Let’s define things! @cloudfoundryart
  • 7. Microservices Microservices is a software architecture design pattern, in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, autonomous, highly decoupled, work together and focus on doing a small task. @cloudfoundryart
  • 8. Containers A container is an isolated and lightweight environment that can run a service or application without reliance on a separate operating system eg: Docker, Warden, Garden, Rocket… @cloudfoundryart
  • 9. Continuous Integration The practice of merging all developer working copies to a shared mainline several times a day @cloudfoundryart
  • 10. Continuous Delivery An approach where teams produce valuable software in short cycles and release the software reliably, predictably and at times, automatically eg: Concourse, Jenkins, Bamboo… @cloudfoundryart
  • 12. #1 Finding the sweet spot Sweet spot cnp CNP= Cloud Native Platform as a Service like Cloud Foundry @cloudfoundryart
  • 13. #1 Ignoring the sweet spot @cloudfoundryart
  • 14. #1 Ignoring the sweet spot If I close my eyes it doesn’t exist… cnp CNP= Cloud Native Platform as a Service like Cloud Foundry @cloudfoundryart
  • 15. #2 Risk Mitigation v/s Innovation • Problem • Need to innovate • Want to release cool features to production NOW • Ops simply cannot support this because of uptime, HA, DR and other concerns • Result • Everyone is unhappy • Business is angry • Everyone blames IT-Ops • It’s not really fair... @cloudfoundryart
  • 16. Hai ya! New cool features tomorrow!! No more github for you… Code Ninjas/Developers Special Ops/Operations @cloudfoundryart
  • 17. #2 Risk Mitigation v/s Innovation • Solution • You don’t have to choose! • Select the right platform • Something like Cloud Foundry… • Self-healing • Application distribution across Availability Zones • Application resurrection • Self-monitoring and resurrection • VM recreation • Inherently HA • Visibility into all development activity @cloudfoundryart
  • 18. #3 The monolithic microservice • Temptation: • Grouping similar microservices in the same container • Problem: • Unable to scale • Unable to deploy changes • The monolithic creep • Solution: • ONE Micro Service Per container @cloudfoundryart
  • 19. #4 The Logic Leak Temptation: Premature decomposition of microservices • Problem: • Company ‘Amazing-Stuff!!!’ has a product called ‘Awesome’ • They plan to create a new offering called ‘Super- Awesome’ • Similarities between the 2 products cause them to split microservices and consume them across both products • ‘Super-Awesome’ really KICKS off…takes a life of its own • Causing the developers to rewrite the microservices for the new product  @cloudfoundryart
  • 20. This micro service smells of too many beers and sweat… @cloudfoundryart
  • 21. #4 The Logic Leak • Lesson Learned: • DON’T BE IN A HURRY to GO MICRO – Let it be gradual! @cloudfoundryart
  • 22. #5 Ignoring the 3 Musketeers APIs Service Registry & Discovery Fault Tolerance @cloudfoundryart
  • 23. #5 The 3 Musketeers : APIs Problem • 100+ microservices need to talk to each other • Many are changing simultaneously • And they are in about 5 different languages Solution • Use language- independent APIs and API interfaces like swagger.io • Honor the contract between microservices • Interactively document the API and integrate it with your project tracker @cloudfoundryart
  • 24. #5 The 3 Musketeers : Service Discovery & Registry Problem • 100+ microservices are now talking to each other… • Every time a new microservice is added, all the others must manually be informed of its presence Solution • Use a service discovery and registry tool like Eureka (part of Spring Cloud Services) • Automate Service Discovery and Registration • No errors at scale @cloudfoundryart
  • 25. #5 The 3 Musketeers : Fault Tolerance Problem • A couple of internal services that feed your application fail for some reason • The failure has now propagated to the API • Your customers now experience a disruption in service causing $$$$$$ loss in revenue Solution • Use a circuit breaker like Hystrix (part of Spring Cloud Services) • Isolate the point of origin of the failure • Contain the error and prevent cascading failure • Graceful degradation of service while we work furiously behind the scenes to fix it @cloudfoundryart
  • 26. #6 Boil Tea, Not the Ocean • Problem: • The temptation to lift and shift a monolith • Trying to rewrite the entire application • Too much, too fast, too soon • Challenges: • Unrealistic • Might not even be possible due to IaaS restrictions • Moving a problem from a place you (kind of) understand to a place you absolutely don’t • Result: • The Cloud Native Initiative lives on PowerPoint for eternity @cloudfoundryart
  • 27. #6 Boil Tea, Not the Ocean • Solution: • Identify a function that can be rebuilt • Something that would benefit from innovation • Something that is hard to modify • Something new • With minimum impact on the rest of the monolith • Clearly outline the technical debt associated with that function • Rewrite following best practices for microservices • Start really…really small • Or really…really new @cloudfoundryart
  • 28. #7 The microservice push & shove @cloudfoundryart
  • 29. #7 The microservice push & shove • Problem: • In a distributed application architecture, how do you figure out where to look? • Solution: • It doesn’t have to be that way… • Logging is your friend… • Pivotal Ops Metrics • New Relic, App Dynamics, Sumo Logic, ELK, Splunk…and so many more • Dynamic Tracing is your friend… • Explore Zipkin • Application Performance Monitoring tools… • New Relic, Drip Stat… @cloudfoundryart
  • 30. #8 Build Pipelines are your BFFs KEEP CALM AND HUG YOUR BUILD PIPELINES @cloudfoundryart
  • 31. #9 Siloed Search • Problem: • Users cannot perform unified search across data silos • Search data is stale @cloudfoundryart
  • 32. #9 Cloud-Native Federated Search Solution: • Create an Enterprise-Wide Data Bus with RabbitMQ or Kafka • Multiple microservices can asynchronously publish interesting data points • Search Event Listeners will listen to these events and update the search indices in real-time • Basically going from a data push model to Real- time Data Pull Model @cloudfoundryart
  • 33. Summary • Don’t ignore the sweet spot – A Cloud Native Platform as a Service like Cloud Foundry is your best friend • You don’t have to choose between Risk Mitigation and Innovation – A Cloud Native Platform is your ally • The Monolithic Micro service – don’t be THAT guy • Be wary of the micro service smells – Don’t Repeat Yourself • The 3 Musketeers are your best friends: APIs(swagger.io), Service Registry & Discovery (Eureka – Spring Cloud Services), Fault Tolerance (Hystrix-Spring Cloud Services) @cloudfoundryart
  • 34. Summary • Boil tea, not the ocean – Start small, start new • Microservices need not be murder mysteries – Logging and Tracing are your BFFs • Automation is your friend – Keep calm and hug your build pipelines across environments • Siloed Search will ruin your customer experience – Search should NEVER been an afterthought @cloudfoundryart
  • 35. Thank you! Mallika Iyer @ Pivotal Twitter @cloudfoundryart LinkedIn in/imallika

Editor's Notes

  1. Elaborate on visibility into all development activity
  2. The goal is to deliver tested, mature software after every development iteration, without being a burden on Ops – Ops needs to be the invisible glue that is holding this together, hardening it constantly with every change, every automation, and the focus should be on building great software, not worry about HOW to deploy it. If you get to that point, Ops has most definitely ‘arrived’
  3. When you have a lot of data, and accuracy and relevance of the search results are important to you – the likelihood is that you will use large scale search technologies like Solr. This was a problem I saw at one of the largest users of Solr in the world And a lot of microservices simultaneously updating the data – you start to get search silos , and stale data is the result How do you get around this