SlideShare a Scribd company logo
1 of 51
When small problems
               become big problems




@adrianfcole
Agenda

• Introduction to CloudHub
• Challenges we faced building multi-tenant
  architecture
• Q/A
Ego slide


Adrian Cole (@jclouds)
 founded jclouds march 2009
  cloudhub.io architect at
  cloudhub.io architect at
  cloudhub.io architect at
4
Platform as a Service

Automated Provisioning
Event Tracking
Centralized Logging
Secure Data Gateway




                         56
The landlord’s dilemma
When you’ve priced
  yourself out of
    business
Cloud is utility, but
  your service may be
         more
• Measurement based pricing exists in
  infrastructure tier
• Know your customer, who are they and
  where in the value chain you act
• Don’t get into race to the bottom
When 200 users
becomes 2000
  accounts
Choosing a BASIC
     starting point

• Already had a LDAP infrastructure
• Straightforward integration with console
  and other access tools
• Easy to do do BASIC authentication
Remember users
     (and api users)
     (and api users)
• Basic Auth is not a good choice for an API
  over time
• System integrators need delegated access
• Hard to cleanup accounts when there are
  multiple owners
When
 myapp.cloudhub.io
     becomes
myapp001.cloudhub.io
myapp001.cloudhub.io
How to present the
        iApps

• X.cloudhub.io
• DNS is flexible to deal with
• clear branding
X.cloudhub.io woes

• Namespace contention
• qa.cloudhub.io isn’t really an iApp
• need to maintain blacklist
When mule isn’t mule
PaaS is more than java
     -jar mule.jar

• CloudHub adds services integration to
  Mule
• Logging, Event Tracking, Replay, etc.
appstack -> platform is
        tricky
• transparent features and also compatible?
• dealing with network streams that could be
  more brittle
• matching serialization/marshalling w/ cloud
  features like streaming
When SLA turns into
      refund
Desire to rely on more
       services

• Cloud Infrastructure
• Cloud Search
• Cloud Scaling
Reality of relying on
    more services
• uptime is less the more service
  dependencies you add
• services may underperform their SLAs with
  little financial impact
• you may need to manually deal with service
  outages
When logging turns
 into a big data
     problem
Customers desire real
    time search
• need to centralize and index logs
• using ElasticSearch can avoid service fees or
  license fees
• with a custom logging plugin, we can
  redirect output to the cluster
Logging is always a big
      problem
• Clusters can fail for reasons beyond
  servers deployed
• API design for logging is different
• What happens if your disk fails or your
  cluster fails?
• What happens when you replace a worker?
Real men test in
  production
Testability is crucial

• each dependency needs to be testable and
  mockable
• devs need a local environment that
  matches, or your test cases will suffer
• creation of new tenants means more
  money.. test it!
Platform testing is really
          hard

• Some external deps don’t have sandboxes
• Can you try 500 applications?
• Can you maintain a quiet production
  “neighborhood" while testing QA
When security updates
 = vi ipsec.conf in for
          loop
Security in a public
     service is hard
• assume user is infinitely clever and
  malicious
• deny by default vs service simplicity
• maintain segregation and availability of
  tenants
• Asset value can vary widely across tenants
Security design touches
       everything
• ipsec is hard to maintain without proper
  CM, and wasn’t built for noisy network
• deny by default means higher maintenance,
  and not all products support it
• it is easy to violate tenancy segregation in a
  platform
• you may have to hire consultants
When your
management service
   goes haywire
automation automation
     automation

• myriad of technology to automate scaling
  and availability
• policies can be fine tuned to relaunch or
  scale out based on system feedback or api
What about network
        splits
• Will your management server “heal”
  something that is already around?
• Is your management server on the same
  failure plane as your managed servers
• Will you end up with manual intervention
  controls (aka red button)
When your api design
    haunts you
Put an API on
         everything

• Allows automation and guis besides what
  you’ve invented
• simplifies testing
• eat your own dogfood
Design redo is a big
       problem
• GUIs can change easier as humans drive
  them
• Maintaining old apis may not be worth it
• People may depend on bugs or semantic
  gaps
• Version practices in ReST are not uniform
• remember understanding state machine is a
  prerequisite for HATEOAS
When 5 retries
becomes a DDoS
    attack
We want to build
      resilient apps
• recovery is a part of the service you
  provide, more important as you go up in
  value chain
• connections should assume failure and be
  able to reconnect to dependencies
• recovery is non-trivial
5 retries is code smell
• things that backup or fail can get worse
  with naive error retry loops
• APIs often can be made to include data
  about when to retry or that you need to
  slow down
• Treat resilience as a requirement, not a
  feature
When your users ask
the same questions
Wrong words suck

• Some terms seem sensible in design
  discussions, but public use something else
• Changing requires retraining, and thorough
  doc review
• What goes online lingers
When a feature
request implies new
    architecture
Platform changes
• Customers are looking for service, not
  explanations of why it is hard
• Adding value implies touch decisions on
  new features
• As the world turns, expectations rise
• Know your customer
Real-time, full-text
search, streaming.. oh
                 my! full-text search,
•Not all databases support
    esp with partitioning
• Some data is better stored in S3, how does
    that affect indexing strategy?
• Real-time tools are emerging but immature
When you end up with
  a “lock” table in
       mongo
Datastore diversity!

• NoSQL datastores like Mongo are
  attractive and energize developers
• Cloud provisioners like RDS-driven MySQL
  are also attractive
• Specialized stores like CloudWatch for
  statistics
Don’t expect mongo to
       do magic
• Database Engines Mature
• Consistent backups are tricky and only
  recently supported
• Data Ops and visualization tools are
  emerging
• There are type safe bridges like Morphia
Hammers and
        screwdrivers
• In a pinch, you can knock in a screw with a
  hammer, but you can’t screw in a nail with a
  screwdriver
• Don’t throw data into whatever store
  happens to be easy to grab, even if you can.
• Rechecking data assumptions at T     1   is better
  than T3. At T6, you may a disaster
Summary
multi-tenant platform


• Own your dependencies or they will own
  you
• Add time for entropy
• Repeatedly remind yourself you are a
  landlord
Architecture as
iterative development

• Forethought
• Critical debate
• Decision review
‣ @adrianfcole
‣ adrian.cole@mulesoft.com
‣ www.cloudhub.io

More Related Content

What's hot

Developing applications for the cloud
Developing applications for the cloudDeveloping applications for the cloud
Developing applications for the cloudBart Blommaerts
 
WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...
WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...
WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...TEAM Informatics
 
Cloud Design Patterns
Cloud Design PatternsCloud Design Patterns
Cloud Design PatternsTaswar Bhatti
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterpriseTodd Kaplinger
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessLalit Kale
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLTriNimbus
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications Munish Gupta
 
Ensuring Cloud Native Success: Organization Transformation
Ensuring Cloud Native Success:  Organization TransformationEnsuring Cloud Native Success:  Organization Transformation
Ensuring Cloud Native Success: Organization TransformationChloe Jackson
 
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...New Relic
 
Radical Innovations In Storage for Multi-Tenant Infrastructure
Radical Innovations In Storage for Multi-Tenant InfrastructureRadical Innovations In Storage for Multi-Tenant Infrastructure
Radical Innovations In Storage for Multi-Tenant InfrastructureNetApp
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsChris Kernaghan
 
How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.Markus Eisele
 
Introduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive PlatformIntroduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive PlatformBoldRadius Solutions
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...AFAS Software
 
Soa 22 software as a service and soa
Soa 22 software as a service and soaSoa 22 software as a service and soa
Soa 22 software as a service and soaVaibhav Khanna
 
Introduction to developing modern web apps
Introduction to developing modern web appsIntroduction to developing modern web apps
Introduction to developing modern web appsFabricio Epaminondas
 

What's hot (20)

Developing applications for the cloud
Developing applications for the cloudDeveloping applications for the cloud
Developing applications for the cloud
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
 
Azure Reference Architectures
Azure Reference ArchitecturesAzure Reference Architectures
Azure Reference Architectures
 
WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...
WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...
WebCenter as a Cloud App on Exalogic – A Case Study on Virtualization and Per...
 
Cloud Design Patterns
Cloud Design PatternsCloud Design Patterns
Cloud Design Patterns
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterprise
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverless
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications
 
Ensuring Cloud Native Success: Organization Transformation
Ensuring Cloud Native Success:  Organization TransformationEnsuring Cloud Native Success:  Organization Transformation
Ensuring Cloud Native Success: Organization Transformation
 
Jelastic Cluster Admin Panel Overview
Jelastic Cluster Admin Panel OverviewJelastic Cluster Admin Panel Overview
Jelastic Cluster Admin Panel Overview
 
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
 
Radical Innovations In Storage for Multi-Tenant Infrastructure
Radical Innovations In Storage for Multi-Tenant InfrastructureRadical Innovations In Storage for Multi-Tenant Infrastructure
Radical Innovations In Storage for Multi-Tenant Infrastructure
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
 
How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.
 
Introduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive PlatformIntroduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive Platform
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
 
Soa 22 software as a service and soa
Soa 22 software as a service and soaSoa 22 software as a service and soa
Soa 22 software as a service and soa
 
Introduction to developing modern web apps
Introduction to developing modern web appsIntroduction to developing modern web apps
Introduction to developing modern web apps
 

Viewers also liked

Cassandra: Indexing and discovering similar images
Cassandra: Indexing and discovering similar imagesCassandra: Indexing and discovering similar images
Cassandra: Indexing and discovering similar imagestkramar
 
MongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadataMongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadatatkramar
 
jclouds overview
jclouds overviewjclouds overview
jclouds overviewAdrian Cole
 
John Overall at Word Camp Victoria 2011
John Overall at Word Camp Victoria 2011John Overall at Word Camp Victoria 2011
John Overall at Word Camp Victoria 2011John Overall
 
OpenLSH - a framework for locality sensitive hashing
OpenLSH  - a framework for locality sensitive hashingOpenLSH  - a framework for locality sensitive hashing
OpenLSH - a framework for locality sensitive hashingJ Singh
 

Viewers also liked (6)

Cassandra: Indexing and discovering similar images
Cassandra: Indexing and discovering similar imagesCassandra: Indexing and discovering similar images
Cassandra: Indexing and discovering similar images
 
MongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadataMongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadata
 
jclouds overview
jclouds overviewjclouds overview
jclouds overview
 
John Overall at Word Camp Victoria 2011
John Overall at Word Camp Victoria 2011John Overall at Word Camp Victoria 2011
John Overall at Word Camp Victoria 2011
 
OpenLSH - a framework for locality sensitive hashing
OpenLSH  - a framework for locality sensitive hashingOpenLSH  - a framework for locality sensitive hashing
OpenLSH - a framework for locality sensitive hashing
 
L 150 e-_sensor
L 150 e-_sensorL 150 e-_sensor
L 150 e-_sensor
 

Similar to When small problems become big problems

cloud session uklug
cloud session uklugcloud session uklug
cloud session uklugdominion
 
Patching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudPatching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudDatavail
 
Sage Summit 2012: Cloud Computing for Accountants
Sage Summit 2012: Cloud Computing for AccountantsSage Summit 2012: Cloud Computing for Accountants
Sage Summit 2012: Cloud Computing for AccountantsGrant M Howe
 
ITI012En-Cloud computing
ITI012En-Cloud computingITI012En-Cloud computing
ITI012En-Cloud computingHuibert Aalbers
 
The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015Eduserv
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisVMware Tanzu
 
Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryEmilio Garcia
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?TechWell
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Mandi Walls
 
Mapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudMapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudChris Dagdigian
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys_Partner
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018Taswar Bhatti
 
Dave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloudDave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloudOlga Lavrentieva
 
DevCon13 System Administration Basics
DevCon13 System Administration BasicsDevCon13 System Administration Basics
DevCon13 System Administration Basicssysnickm
 
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWSAWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWSAmazon Web Services
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 
Moving Oracle Applications to the Cloud - Which Cloud is Right for Me?
 Moving Oracle Applications to the Cloud - Which Cloud is Right for Me? Moving Oracle Applications to the Cloud - Which Cloud is Right for Me?
Moving Oracle Applications to the Cloud - Which Cloud is Right for Me?Datavail
 

Similar to When small problems become big problems (20)

cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
 
Patching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudPatching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP Cloud
 
Sage Summit 2012: Cloud Computing for Accountants
Sage Summit 2012: Cloud Computing for AccountantsSage Summit 2012: Cloud Computing for Accountants
Sage Summit 2012: Cloud Computing for Accountants
 
ITI012En-Cloud computing
ITI012En-Cloud computingITI012En-Cloud computing
ITI012En-Cloud computing
 
The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud Foundry
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014
 
Mapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudMapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the Cloud
 
Choosing and Using Cloud Services with SharePoint
Choosing and Using Cloud Services with SharePointChoosing and Using Cloud Services with SharePoint
Choosing and Using Cloud Services with SharePoint
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian Molyneaux
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018
 
Dave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloudDave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloud
 
DevCon13 System Administration Basics
DevCon13 System Administration BasicsDevCon13 System Administration Basics
DevCon13 System Administration Basics
 
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWSAWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Moving Oracle Applications to the Cloud - Which Cloud is Right for Me?
 Moving Oracle Applications to the Cloud - Which Cloud is Right for Me? Moving Oracle Applications to the Cloud - Which Cloud is Right for Me?
Moving Oracle Applications to the Cloud - Which Cloud is Right for Me?
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

When small problems become big problems

  • 1. When small problems become big problems @adrianfcole
  • 2. Agenda • Introduction to CloudHub • Challenges we faced building multi-tenant architecture • Q/A
  • 3. Ego slide Adrian Cole (@jclouds) founded jclouds march 2009 cloudhub.io architect at cloudhub.io architect at cloudhub.io architect at
  • 4. 4
  • 5. Platform as a Service Automated Provisioning Event Tracking Centralized Logging Secure Data Gateway 56
  • 7. When you’ve priced yourself out of business
  • 8. Cloud is utility, but your service may be more • Measurement based pricing exists in infrastructure tier • Know your customer, who are they and where in the value chain you act • Don’t get into race to the bottom
  • 9. When 200 users becomes 2000 accounts
  • 10. Choosing a BASIC starting point • Already had a LDAP infrastructure • Straightforward integration with console and other access tools • Easy to do do BASIC authentication
  • 11. Remember users (and api users) (and api users) • Basic Auth is not a good choice for an API over time • System integrators need delegated access • Hard to cleanup accounts when there are multiple owners
  • 12. When myapp.cloudhub.io becomes myapp001.cloudhub.io myapp001.cloudhub.io
  • 13. How to present the iApps • X.cloudhub.io • DNS is flexible to deal with • clear branding
  • 14. X.cloudhub.io woes • Namespace contention • qa.cloudhub.io isn’t really an iApp • need to maintain blacklist
  • 16. PaaS is more than java -jar mule.jar • CloudHub adds services integration to Mule • Logging, Event Tracking, Replay, etc.
  • 17. appstack -> platform is tricky • transparent features and also compatible? • dealing with network streams that could be more brittle • matching serialization/marshalling w/ cloud features like streaming
  • 18. When SLA turns into refund
  • 19. Desire to rely on more services • Cloud Infrastructure • Cloud Search • Cloud Scaling
  • 20. Reality of relying on more services • uptime is less the more service dependencies you add • services may underperform their SLAs with little financial impact • you may need to manually deal with service outages
  • 21. When logging turns into a big data problem
  • 22. Customers desire real time search • need to centralize and index logs • using ElasticSearch can avoid service fees or license fees • with a custom logging plugin, we can redirect output to the cluster
  • 23. Logging is always a big problem • Clusters can fail for reasons beyond servers deployed • API design for logging is different • What happens if your disk fails or your cluster fails? • What happens when you replace a worker?
  • 24. Real men test in production
  • 25. Testability is crucial • each dependency needs to be testable and mockable • devs need a local environment that matches, or your test cases will suffer • creation of new tenants means more money.. test it!
  • 26. Platform testing is really hard • Some external deps don’t have sandboxes • Can you try 500 applications? • Can you maintain a quiet production “neighborhood" while testing QA
  • 27. When security updates = vi ipsec.conf in for loop
  • 28. Security in a public service is hard • assume user is infinitely clever and malicious • deny by default vs service simplicity • maintain segregation and availability of tenants • Asset value can vary widely across tenants
  • 29. Security design touches everything • ipsec is hard to maintain without proper CM, and wasn’t built for noisy network • deny by default means higher maintenance, and not all products support it • it is easy to violate tenancy segregation in a platform • you may have to hire consultants
  • 31. automation automation automation • myriad of technology to automate scaling and availability • policies can be fine tuned to relaunch or scale out based on system feedback or api
  • 32. What about network splits • Will your management server “heal” something that is already around? • Is your management server on the same failure plane as your managed servers • Will you end up with manual intervention controls (aka red button)
  • 33. When your api design haunts you
  • 34. Put an API on everything • Allows automation and guis besides what you’ve invented • simplifies testing • eat your own dogfood
  • 35. Design redo is a big problem • GUIs can change easier as humans drive them • Maintaining old apis may not be worth it • People may depend on bugs or semantic gaps • Version practices in ReST are not uniform • remember understanding state machine is a prerequisite for HATEOAS
  • 36. When 5 retries becomes a DDoS attack
  • 37. We want to build resilient apps • recovery is a part of the service you provide, more important as you go up in value chain • connections should assume failure and be able to reconnect to dependencies • recovery is non-trivial
  • 38. 5 retries is code smell • things that backup or fail can get worse with naive error retry loops • APIs often can be made to include data about when to retry or that you need to slow down • Treat resilience as a requirement, not a feature
  • 39. When your users ask the same questions
  • 40. Wrong words suck • Some terms seem sensible in design discussions, but public use something else • Changing requires retraining, and thorough doc review • What goes online lingers
  • 41. When a feature request implies new architecture
  • 42. Platform changes • Customers are looking for service, not explanations of why it is hard • Adding value implies touch decisions on new features • As the world turns, expectations rise • Know your customer
  • 43. Real-time, full-text search, streaming.. oh my! full-text search, •Not all databases support esp with partitioning • Some data is better stored in S3, how does that affect indexing strategy? • Real-time tools are emerging but immature
  • 44. When you end up with a “lock” table in mongo
  • 45. Datastore diversity! • NoSQL datastores like Mongo are attractive and energize developers • Cloud provisioners like RDS-driven MySQL are also attractive • Specialized stores like CloudWatch for statistics
  • 46. Don’t expect mongo to do magic • Database Engines Mature • Consistent backups are tricky and only recently supported • Data Ops and visualization tools are emerging • There are type safe bridges like Morphia
  • 47. Hammers and screwdrivers • In a pinch, you can knock in a screw with a hammer, but you can’t screw in a nail with a screwdriver • Don’t throw data into whatever store happens to be easy to grab, even if you can. • Rechecking data assumptions at T 1 is better than T3. At T6, you may a disaster
  • 49. multi-tenant platform • Own your dependencies or they will own you • Add time for entropy • Repeatedly remind yourself you are a landlord
  • 50. Architecture as iterative development • Forethought • Critical debate • Decision review

Editor's Notes

  1. photo credit http://wallpoper.com/wallpaper/movies-godzilla-271845
  2. Not going to focus on normal dev/ops except in context to multi-tenancy
  3. Keep tenant safe, protect all tenants, stay in business http://whosjack.wpengine.netdna-cdn.com/wp-content/uploads/2012/05/terraced_houses_manchester_298792.jpg
  4. Integration customers range from potato to dev/architect; high value features are not easy to pay on a per-message basis, esp when some services run only 150 messages/month; find the right pricing model for users who want to just use mule by itself, they can use ec2 or heroku
  5. LDAP infrastructure existed for Mulesoft community
  6. how do you handle lockout of users? system keys, etc. Who’s building them?! SIs need access to create apps for other users, and account conflation leads to N accounts some users just want access to download mule and docs and will never become a cloudhub user
  7. also follows patterns like s3 which is largest cloud service
  8. x.tenant.cloudhub.io can do more w/ a tenant
  9. also introduces another complexity in release process and opportunity for laptop != prod
  10. ex. dynamo says fully reliable, but if dynamo is out you can only “wait”
  11. some problems are much harder than they seem. Searching, indexing, chronology are difficult and emerging products can suffer from reliability. Logging is also a core means to troubleshoot problems, so if logging is a problem, it is a big problem… significant effort and expertise to nail. cluster *will* eventually become split-brain; how long to restore service from rebooting?
  12. ex. marketo has no sandbox, neither does billing system even if you reproduce prod apps, how do you reproduce behavior of them? *corner cases are the ones likely to stress your platform out*
  13. desire for ssh access can thwart your firewall rules Each ipsec.conf has tunnels configured for each of its peers, and needs to recognize one side of the tunnel as itself. This results in each host's ipsec.conf being unique to that instance, so you can't collapse the hosts into a class, but have to manage each one separately. you need to use config management to role-assign this. we move off VPC due to many problems with using ipsec, yet still have inter-region problem. do you know solution?
  14. ex. failures in management can lead to conservative healing and scaling policies or mandatory user intervention
  15. sometimes people code that true = false as opposed to report a bug api design can go be loveable than hateable or hateable first MVP approach may backfire when you are dealing with a *public* service simple as possible, and expose conservatively
  16. know your customer and if they are likely to be savvy enough to recover from system failures
  17. http://www.slideshare.net/benjchristensen/fault-tolerance-in-a-high-volume-distributed-system
  18. ex. notification vs activity feed, streaming? once information escapes your network, it can haunt you with clashing instructions, stackoverflow, etc.
  19. ex. what streaming is?)
  20. mysql doesn’t support full text search on partitioned tables ex. druid just released yesterday, twitter storm only a year move the problem from the customer to us, which includes the technical profile and migration. small problem become big problem is when a customer desires capability unsupported or difficult to support with the existing (datastore|infrastructure) or indexing strategy
  21. consistent backup isn't possible until very recently ext4. immature by DB standards, though older than its years. devs love it, and lack of tools are problem; basically have to use navicat, etc. for DataOps stuck with command line, visualization problems. no way to do analytics onto of mongo, without telling them to write some javascript. and answer might be transform to postgresql
  22. we should use mongo or RDS, mongo isn't being used correctly, as a relational database, so it has transactional data; we now have event tracking, but we don't have a document for the event configuration. have to store the whole thing or you will have tx data problems; main problem is that it is not being used correctly. Eventhough it seems you can store relational data in a nosql store like mongo, doesn’t mean you should. 2 (or more) types of datastores may be the most supportable answer to your data problem.A. we use it as Tx (so clashing or overlapping writes)B. it doesn't give you mature features (like consistent backup)
  23. pretty much everyone has to be DevOps design can be refactored, but are tough to change at scaleyour job changes often, so right tool for the job also changes realize choices made now can be difficult to change a year on