SlideShare a Scribd company logo
Closer Look at Cloud Centric
Architectures

Todd Kaplinger
STSM, IBM MobileFirst Cloud Platform Architect
Presence Insights
• ”Web Analytics” for the physical world
• Available in the Bluemix Catalog as part of the larger
Mobile set of capabilities.
• May 28, 2015 - US Release Date
• June 1, 2015 - London Release Date
• November 11, 2015 - Sydney Release Date
• POCs are in the process of moving to the new cloud
architecture
• Large pipeline of opportunities
• Initial focus is Retail but will extend to multiple industries in
2H2015
• Get Started Today!!!

https://www.ng.bluemix.net/docs/#services/
presenceinsights/index.html
• Traditional JEE
• Delivery model was focused on-
premises deliveries
• WebSphere Application Sever 

(Web-Tier)
• DB2 ( Persistence)
• Cognos (Reporting)
• Docs (Knowledge Center)
• Single Tenant
• 29+ Micro Services
• 317+ Node.js Instances
• 3 Bluemix Regions
• SaaS Delivery Model on Bluemix
• Node.js (Web Tier)
• MQLight (Messaging)
• Redis (Caching / Real Time Eventing)
• Cloudant (Persistence)
• Elastic Search (Analytics)
• D3 (Charting)
• Docs (Markdown)
• Multi-tenant
Presence Zones Presence Insights
Presence Insights Cloud Architecture
Presence Insights Technical Cloud Architecture
Industry Trends
Evolution of Disruption
…..CloudMobileSOA RESTWeb
Cloud Centric Architecture
• Standards Based Web Protocols
• HTTP
• Provides largest breadth of environments today
• WebSockets | MQTT | Push Notifications
• Next generation protocols
• Standards Based Data Models
• JSON (primary)
• Standards based security models
• OAUTH |SAML | OpenID Connect
• Social Integration
• Facebook | Twitter | Linkedin
• API Economy and Marketplace
• Elastically Scale (Grow|Shrink) based on load
• Event Driven Flows
• Fire and Forget
• Loosely coupled interactions
• Messaging Backbone
− Publish and Subscribe
• Data Persistence Tier
− Unstructured Data
• Structured Data
• Microservices Architecture
− Expect failure
− Be resilient
− Limit Dependencies
− Stateless
− Elastic Scale
Cloud Centric Patterns
Presence Insights Embracing Tech Trends
MQ Light
Technology Adoption
Runtime
Packages
express
lodash
bluebird
cuid
request
rbush
cloudant/nano
elasticsearch
ioredis
Development
Packages
mocha
supertest
eslint
chai
grunt
shelljs
• Akka Model
• Event Driven - IoT sensor events (Fire &
Forget)
• Scalable - Autoscale instances to satisfy
demand
• Resilient - Messaging Infrastructure
• Responsive - Farm of Redis caches
• Actor Approach - Each Node app serves
one role
• NPM Adoption
• Best of breed open source packages
• express - REST
• ioredis - caching
• bluebird - promises
• Deployed custom NPM Private Repository
• Shared node modules for our micro-
services
• Extended to development
• Grunt builds with shelljs
• ESLint to enforce coding standards
• Mocha and Chai for testing
• NPM CLI extensions (example npm test)
Node Embracement
Presence Insights Lessons Learned
Why Private Node Package Manager (NPM)?
• Simplify deployment process
• Private Node modules need to be packaged in app
• Significant increase in build time 

(need to download and package each module for each app)
• Larger deployment artifacts causes deployment timeouts
• Not feasible for micro services architectures with many
modules
• CF push resolves node dependencies during upload process
• CF push defaults to public NPM repo
• Bluemix lacking service to host private modules
• Follows industry best practices
• Encourages use of small reusable modules across micro
services
• Provides built in model for versioning of modules
• Built in security model
• Private modules are not intended to be consumed externally
Presence Insights Node Evolution
• Actor Approach
• Decision on what qualifies as an actor (micro-service too small or too large)
• Testing Approach
• Cloud Native Applications introduce new complexities
• Multi-tenant architectures stress the system in different ways
• Scale for both large and small tenant configurations in the same system
• Scaling characteristics
• Large number of node apps with limited memory
• Small number of node apps with increased memory
• Large number of small sensor event payloads (limited batching /more
frequent)
• Small number of large sensor event payloads (batching / less frequent)
• Memory Management Lifecycles around Garbage Collection and Compaction
• Identification of bottlenecks
• Micro-services approach introduces many variables in the flow to troubleshoot
• Scaling on “actor” can result in performance degradations in other points in the
architecture
• Instrumentation
• Actionable insights leveraging “runtime agents” to get insights into memory and
CPU consumption
• ELK (Elastic Search / Logstash / Kibana)
• Alerts and Pager Duty
Presence Insights Data Evolution
• Persistence Tier
• Architecture led us to a NoSQL architecture
• Choices abound (Cloudant/MongoDB/Cassandra/Spark/Elastic Search)
• Right tool for the job (Battle over importance of read versus write)
• No single answer is correct
• Real Time Eventing
• Cloudant
• Track users (entry/exit/dwell) via Change Feed Listener
• Scalability concerns w/ many Node.js instances long lived connections to
Cloudant
• MQLight
• Track users (entry/exit/dwell) via MQ topics
• MQLight lacked ability to be notified when topic key expired
• Redis
• Track users (entry/exit/dwell) via publish subscribe
• Warlock (node-redis-warlock) required for distributed locking (not inherent)
• Actionable Insights
• Leveraging PI to make business decisions
• Requires ability to dissect data and view from multiple vantage points
• Need highly available and distributed architecture to support large data sets
• Need ability to summarize data with well defined Time to Live (TTLs)
Take Aways
• Develop A Point of View on Cloud Centric Architectures -
Guarantee this is a constant moving target and many ways to
achieve success. 

Important to choose right tool for the right job!
• Document the Journey of Moving to SaaS - A Journey Takes
Time.
• Adopt A Best Of Breed Technology - Open Source solutions
are great accelerators
• Create a Vibrant Technical Team - Retaining top technical
talent is priority #1. 

Be the team that other developers want to join!
• Share Lessons Learned - (Articles, Presentations and
Conferences) - CTO Talks!

More Related Content

What's hot

Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud PlatformCookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Chef Software, Inc.
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay Kumar Uppal
 
Banking and Docker Datacenter - How Containers Drive Agility
Banking and Docker Datacenter - How Containers Drive AgilityBanking and Docker Datacenter - How Containers Drive Agility
Banking and Docker Datacenter - How Containers Drive Agility
Sendachi
 
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...
Lucas Jellema
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
Siva Rama Krishna Chunduru
 
Engineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud ProvidersEngineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud Providers
Techcello
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
Emiliano Pecis
 
Windows Azure introduction
Windows Azure introductionWindows Azure introduction
Windows Azure introduction
Microsoft Iceland
 
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
Daniel Bryant
 
Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...
Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...
Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...
Dell World
 
Microservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done RightMicroservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done Right
Lightbend
 
Engage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation StoryEngage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation Story
Jared Roberts
 
IBM cloud open by design
IBM cloud open by designIBM cloud open by design
IBM cloud open by design
Vietnam Open Infrastructure User Group
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch IIKubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
PT Datacomm Diangraha
 
An approach for migrating applications to interoperability cloud
An approach for migrating applications to interoperability cloudAn approach for migrating applications to interoperability cloud
An approach for migrating applications to interoperability cloud
Vietnam Open Infrastructure User Group
 
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 Foundry Foundation
 
[Viet openstack] cloud computing - openstack meetup v2
[Viet openstack] cloud computing - openstack meetup v2[Viet openstack] cloud computing - openstack meetup v2
[Viet openstack] cloud computing - openstack meetup v2
Vietnam Open Infrastructure User Group
 
Cloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service PlatformCloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service Platformvictorlbrown
 
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
Cisco DevNet
 
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Majid Hajibaba
 

What's hot (20)

Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud PlatformCookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
Banking and Docker Datacenter - How Containers Drive Agility
Banking and Docker Datacenter - How Containers Drive AgilityBanking and Docker Datacenter - How Containers Drive Agility
Banking and Docker Datacenter - How Containers Drive Agility
 
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
 
Engineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud ProvidersEngineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud Providers
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Windows Azure introduction
Windows Azure introductionWindows Azure introduction
Windows Azure introduction
 
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
 
Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...
Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...
Conquering cloud chaos: Simplifying and centralizing multi-cloud integration ...
 
Microservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done RightMicroservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done Right
 
Engage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation StoryEngage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation Story
 
IBM cloud open by design
IBM cloud open by designIBM cloud open by design
IBM cloud open by design
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch IIKubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
 
An approach for migrating applications to interoperability cloud
An approach for migrating applications to interoperability cloudAn approach for migrating applications to interoperability cloud
An approach for migrating applications to interoperability cloud
 
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
 
[Viet openstack] cloud computing - openstack meetup v2
[Viet openstack] cloud computing - openstack meetup v2[Viet openstack] cloud computing - openstack meetup v2
[Viet openstack] cloud computing - openstack meetup v2
 
Cloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service PlatformCloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service Platform
 
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
 
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
 

Similar to Closer Look at Cloud Centric Architectures

Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
Vinod Wilson
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
Alex Thissen
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles
Nilay Shrivastava
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
Amin Arab
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
Vin Dahake
 
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
Eduserv
 
Cloud 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud HybridizationCloud 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud Hybridization
Mark Hinkle
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
Ahmed Misbah
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
Paria Heidari
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
Randy Shoup
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
Ashwini Kuntamukkala
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
MahmoudZidan41
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
Dmitry Buzdin
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
Cisco DevNet
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
ramesh_sharma
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
Rick Hightower
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
Ferdin Joe John Joseph PhD
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
56k.cloud intro and pitch deck
56k.cloud intro and pitch deck56k.cloud intro and pitch deck
56k.cloud intro and pitch deck
Brian Christner
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
Doug Vanderweide
 

Similar to Closer Look at Cloud Centric Architectures (20)

Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
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 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud HybridizationCloud 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud Hybridization
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
56k.cloud intro and pitch deck
56k.cloud intro and pitch deck56k.cloud intro and pitch deck
56k.cloud intro and pitch deck
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 

More from Todd Kaplinger

Istio is not just 
for microservices
Istio is not just 
for microservicesIstio is not just 
for microservices
Istio is not just 
for microservices
Todd Kaplinger
 
ChatOps in Action
ChatOps in ActionChatOps in Action
ChatOps in Action
Todd Kaplinger
 
Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...
Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...
Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...
Todd Kaplinger
 
Interconnect Mobile Application Development on Bluemix!!
Interconnect Mobile Application Development on Bluemix!!Interconnect Mobile Application Development on Bluemix!!
Interconnect Mobile Application Development on Bluemix!!
Todd Kaplinger
 
Bluemix Mobile Cloud Services - Accelerating Mobile App Development
Bluemix Mobile Cloud Services - Accelerating Mobile App DevelopmentBluemix Mobile Cloud Services - Accelerating Mobile App Development
Bluemix Mobile Cloud Services - Accelerating Mobile App Development
Todd Kaplinger
 
1040 ibm worklight delivering agility to mobile cloud deployments
1040 ibm worklight  delivering agility to mobile cloud deployments1040 ibm worklight  delivering agility to mobile cloud deployments
1040 ibm worklight delivering agility to mobile cloud deploymentsTodd Kaplinger
 

More from Todd Kaplinger (6)

Istio is not just 
for microservices
Istio is not just 
for microservicesIstio is not just 
for microservices
Istio is not just 
for microservices
 
ChatOps in Action
ChatOps in ActionChatOps in Action
ChatOps in Action
 
Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...
Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...
Lightning Talk: Mobile Cloud Jargon: Why is my iOS simulator not charging to ...
 
Interconnect Mobile Application Development on Bluemix!!
Interconnect Mobile Application Development on Bluemix!!Interconnect Mobile Application Development on Bluemix!!
Interconnect Mobile Application Development on Bluemix!!
 
Bluemix Mobile Cloud Services - Accelerating Mobile App Development
Bluemix Mobile Cloud Services - Accelerating Mobile App DevelopmentBluemix Mobile Cloud Services - Accelerating Mobile App Development
Bluemix Mobile Cloud Services - Accelerating Mobile App Development
 
1040 ibm worklight delivering agility to mobile cloud deployments
1040 ibm worklight  delivering agility to mobile cloud deployments1040 ibm worklight  delivering agility to mobile cloud deployments
1040 ibm worklight delivering agility to mobile cloud deployments
 

Closer Look at Cloud Centric Architectures

  • 1. Closer Look at Cloud Centric Architectures
 Todd Kaplinger STSM, IBM MobileFirst Cloud Platform Architect
  • 3.
  • 4.
  • 5. • ”Web Analytics” for the physical world • Available in the Bluemix Catalog as part of the larger Mobile set of capabilities. • May 28, 2015 - US Release Date • June 1, 2015 - London Release Date • November 11, 2015 - Sydney Release Date • POCs are in the process of moving to the new cloud architecture • Large pipeline of opportunities • Initial focus is Retail but will extend to multiple industries in 2H2015 • Get Started Today!!!
 https://www.ng.bluemix.net/docs/#services/ presenceinsights/index.html • Traditional JEE • Delivery model was focused on- premises deliveries • WebSphere Application Sever 
 (Web-Tier) • DB2 ( Persistence) • Cognos (Reporting) • Docs (Knowledge Center) • Single Tenant • 29+ Micro Services • 317+ Node.js Instances • 3 Bluemix Regions • SaaS Delivery Model on Bluemix • Node.js (Web Tier) • MQLight (Messaging) • Redis (Caching / Real Time Eventing) • Cloudant (Persistence) • Elastic Search (Analytics) • D3 (Charting) • Docs (Markdown) • Multi-tenant Presence Zones Presence Insights Presence Insights Cloud Architecture
  • 6. Presence Insights Technical Cloud Architecture
  • 9. Cloud Centric Architecture • Standards Based Web Protocols • HTTP • Provides largest breadth of environments today • WebSockets | MQTT | Push Notifications • Next generation protocols • Standards Based Data Models • JSON (primary) • Standards based security models • OAUTH |SAML | OpenID Connect • Social Integration • Facebook | Twitter | Linkedin • API Economy and Marketplace • Elastically Scale (Grow|Shrink) based on load
  • 10. • Event Driven Flows • Fire and Forget • Loosely coupled interactions • Messaging Backbone − Publish and Subscribe • Data Persistence Tier − Unstructured Data • Structured Data • Microservices Architecture − Expect failure − Be resilient − Limit Dependencies − Stateless − Elastic Scale Cloud Centric Patterns
  • 13. Runtime Packages express lodash bluebird cuid request rbush cloudant/nano elasticsearch ioredis Development Packages mocha supertest eslint chai grunt shelljs • Akka Model • Event Driven - IoT sensor events (Fire & Forget) • Scalable - Autoscale instances to satisfy demand • Resilient - Messaging Infrastructure • Responsive - Farm of Redis caches • Actor Approach - Each Node app serves one role • NPM Adoption • Best of breed open source packages • express - REST • ioredis - caching • bluebird - promises • Deployed custom NPM Private Repository • Shared node modules for our micro- services • Extended to development • Grunt builds with shelljs • ESLint to enforce coding standards • Mocha and Chai for testing • NPM CLI extensions (example npm test) Node Embracement
  • 15. Why Private Node Package Manager (NPM)? • Simplify deployment process • Private Node modules need to be packaged in app • Significant increase in build time 
 (need to download and package each module for each app) • Larger deployment artifacts causes deployment timeouts • Not feasible for micro services architectures with many modules • CF push resolves node dependencies during upload process • CF push defaults to public NPM repo • Bluemix lacking service to host private modules • Follows industry best practices • Encourages use of small reusable modules across micro services • Provides built in model for versioning of modules • Built in security model • Private modules are not intended to be consumed externally
  • 16. Presence Insights Node Evolution • Actor Approach • Decision on what qualifies as an actor (micro-service too small or too large) • Testing Approach • Cloud Native Applications introduce new complexities • Multi-tenant architectures stress the system in different ways • Scale for both large and small tenant configurations in the same system • Scaling characteristics • Large number of node apps with limited memory • Small number of node apps with increased memory • Large number of small sensor event payloads (limited batching /more frequent) • Small number of large sensor event payloads (batching / less frequent) • Memory Management Lifecycles around Garbage Collection and Compaction • Identification of bottlenecks • Micro-services approach introduces many variables in the flow to troubleshoot • Scaling on “actor” can result in performance degradations in other points in the architecture • Instrumentation • Actionable insights leveraging “runtime agents” to get insights into memory and CPU consumption • ELK (Elastic Search / Logstash / Kibana) • Alerts and Pager Duty
  • 17. Presence Insights Data Evolution • Persistence Tier • Architecture led us to a NoSQL architecture • Choices abound (Cloudant/MongoDB/Cassandra/Spark/Elastic Search) • Right tool for the job (Battle over importance of read versus write) • No single answer is correct • Real Time Eventing • Cloudant • Track users (entry/exit/dwell) via Change Feed Listener • Scalability concerns w/ many Node.js instances long lived connections to Cloudant • MQLight • Track users (entry/exit/dwell) via MQ topics • MQLight lacked ability to be notified when topic key expired • Redis • Track users (entry/exit/dwell) via publish subscribe • Warlock (node-redis-warlock) required for distributed locking (not inherent) • Actionable Insights • Leveraging PI to make business decisions • Requires ability to dissect data and view from multiple vantage points • Need highly available and distributed architecture to support large data sets • Need ability to summarize data with well defined Time to Live (TTLs)
  • 18. Take Aways • Develop A Point of View on Cloud Centric Architectures - Guarantee this is a constant moving target and many ways to achieve success. 
 Important to choose right tool for the right job! • Document the Journey of Moving to SaaS - A Journey Takes Time. • Adopt A Best Of Breed Technology - Open Source solutions are great accelerators • Create a Vibrant Technical Team - Retaining top technical talent is priority #1. 
 Be the team that other developers want to join! • Share Lessons Learned - (Articles, Presentations and Conferences) - CTO Talks!