View
52
Download
0
Category
Preview:
Citation preview
Cloud-Native DataExtending Cloud-Native Beyond the App
Cornelia Davis Sr. Director of Technology Pivotal @cdavisafc
@cdavisafc
Me?
Developer (wasn’t Ops)
Web architectures for >10 years
Cloud-native for 5 years
Cloud Foundry for 5 years
More recently
Discount code 40% off!: 40cloudnat
© 2015 Pivotal Software, Inc. All rights reserved. 4
Search µservice .
Image µservice .
Item Master µserviceReviews µservice
Shopping Cart
µservice
Other dependent µservice
Other dependent µservice
Other dependent µservice
Why?
• Scale Applications
• Scale Teams
• Independent Development Cycles
• Experimentation
• Resilience
Obstacles
• Silos: Dev, QA, Operations is typical. No shared common goal
• Dissimilar Environments - “It works on my machine”
• Risky Deployments: Manual steps, done “off hours”
• Changes are treated as an exception →Firefighting
• Processes designed around these obstacles
Enabling Patterns
• Reinventing the Software (Delivery) Value Chain
• Cloud-native Software Architectures
• The Right Platform • Devops • Change is the Rule
(not the Exception)
© 2015 Pivotal Software, Inc. All rights reserved. 9
Search µservice .
Image µservice .
Item Master µserviceReviews µservice
Shopping Cart
µservice
Other dependent µservice
Other dependent µservice
Other dependent µservice
10
Presentation
Frontend-integration
Order Status µService
Search µService
Item Master µService
Item MetaDatµService
Cart µService
Image µService
R12Ns µService
Shipping µService
µService
µServiceµService
µService
µService
New LIGHTWEIGHT ARCHITECTURES are emerging Microservices addressing speed to market and cloud scale
Monolithic / Layered Microservices
12 http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
Spring Cloud Services 1.0.0
13
Spring Cloud Services
Config Server Service Registry Circuit Breaker Dashboard
14
Operational Visibility: Distributed Tracing • Latency visibility into a request’s end-to-end call graph
• Quickly identify a problematic service in a distributed system • Zipkin is a open source distributed tracing system. It helps gather timing data
needed to troubleshoot latency problems in microservice architectures.
• Pivotal is investing in Zipkin to solve distributed tracing use cases – Apache 2.0 License – Created by Twitter in 2012. – In 2015, OpenZipkin became the primary fork
Zipkin Tracing
• PCF Developers can redirect application traffic to a desired request path in order to use logging, authentication or rate limiting systems that exist outside of PCF
• PCF’s Service API will introduce a new field: route_service_url • Developers will create a routing service instance and bind it to a
route (not an app) – Service Instance can be created by a Service Broker or can
be a user-provided service instance • Router is configured with and forwards requests to the URL
contained in the route_service_url field • The route service is expected to forward the request back to the
route • Knowing the request has already been forwarded to the route
service, the Router forwards to the associated applications
Route Servicesclient
load balancer
CF router
CF app
route service
1
2
3
4
5
6
New LIGHTWEIGHT ARCHITECTURES are emerging Microservices addressing speed to market and cloud scale
Monolithic / Layered Microservices
At the Intersection of Cloud-native App Architecture & Data What is Cloud-native Data?
Patterns
• Data-services Topology
• Interfacing to existing data sources
• Caching, but rethought
• ETL, but rethought
• Micro-databases
• Event Sourcing (and CQRS)
• Personas - what happens to the DBA, Data Architect, etc.?
Data-services topology
Goals/Needs:
• Resilience
• Tenancy
• Security - networks?
• Day 2 Ops - Backup/Recovery
PCF PCF
Pipelines Distribute Deployments
“Active/Active”
Data Center 1 Data Center 2
WAN Replication
Pattern: Data API
• Microservices do not access data layer directly
• Except for the micro services that implement the data API
• A surface area to:
• Implement access control
• (Instead of the likes of firewall rules)
• Implement throttling
• (Fair sharing of a resource)
• Perform logging
• Other policies…
Anti-pattern: Stateless Data APIs*
29
* We will maintain statelessness at the app level
This is the architecture that dominated the SOA era of the early 2000s
Culture tip: Data APIs needn't be
built by the database team
Pattern: Microservice Needs a Cache
30
We’ll have a lot more to discuss with respect to caching … stay tuned
Pattern: Data API
• Microservices do not access data layer directly
• Except for the micro services that implement the data API
• A surface area to:
• Implement access control
• (Instead of the likes of firewall rules)
• Implement throttling
• (Fair sharing of a resource)
• Perform logging
• Other policies…
Pattern: Data API
• Microservices do not access data layer directly
• Except for the micro services that implement the data API
• A surface area to:
• Implement access control
• (Instead of the likes of firewall rules)
• Implement throttling
• (Fair sharing of a resource)
• Perform logging
• Other policies…
Pattern: Versioned Data API
• We are already familiar with versioned micro services…
V1 V2Possibly coupled with
Pattern: Parallel Deployments
Caching Rethought
Goals/Needs:
• Performance
• Interface to existing data sources
• Resilience
https://content.pivotal.io/white-papers/in-memory-data-caching-for-microservices-architectures
Caching Patterns
Look Aside • Attempt retrieval from cache • Client retrieves from source • Write into cache
! ?
"
#
Advantages
• If cache is unavailable, data source may still be
• Cache configuration is very simple
Disadvantages • Developer may be responsible for
protocol implementation (Spring Cache Abstractions do hide this from the dev)
Caching Patterns
Read-through
• Attempt retrieval from cache
• Cache retrieves from source and stores in cache
• Return value to client
! ?"
#
Advantages
• Simpler client programming model (though developer may be responsible for code running in cache)
• Less processing load on the client
Disadvantages • Cache must available
• Cache configuration, including code deployment into cache, is more complex
Caching Patterns
Write-through • Write to cache • Cache writes to source • ack sent to client
!"
#
Advantages • Simpler client programming model
• Consistent
Disadvantages
• Cache must available • Cache configuration, including code deployment, is
more complex
• Depends on connectivity to cache and cache to source • Higher latency
Caching Patterns
Write-behind
• Write to cache
• ack sent to client
• Cache writes to source asynchronously
!
"#
Advantages • Simpler client programming model
• Very low latency
Disadvantages
• Cache must available • Cache configuration, including code deployment, is
more complex
• Depends on connectivity to cache and cache to source • Eventual consistency
40
Why Cloud-Native Apps Need an In-Memory Cache
As an integrated service on a world class platform
Fast, available microservices
Legacy app modernization
Performance at scale
Auto-scaling High Availability Logging/Metrics Security Zero Downtime Updates …Multi-cloud
Pattern: Cache Warming
• Loading the cache can be expensive
• Spring Cloud Data Flow for modern ETL
Sources
Destination
Spring Boot Apps
Filter Microservice
Enrich Microservice
Score Microservice
Spring Boot Apps
Spring Boot Apps
IoT
Pattern: Database per Microservice
• Supports Polyglot persistence
• Independent availability, backup/restore, access patterns, etc.
• In PCF, on-demand, dedicated clusters
Independent Databases - Shared Entities
• We’ve started to break up the data monolith
• BUT our data integration “strategy” is rather brittle and bespoke
• How are changes to data in one bounded context reflected in the other?
Sales
Support
?
CQRS is what allows the unified log to be the source of truth
54
My Connections
API
Posts API
New from Network
API
Unified Log
Info SecSrv Build
Cap PlanNetwork
OpsMid. Eng.
SW Arch
SW Dev
Client SW Dev
Svc Govern
CUSTOMER FACING APP TEAM
Ops
Cap Plan
DCTM Eng
DCTM
Cap Plan
Ops
SW Arch
SW Dev
Client SW Dev
CUSTOMER FACING APP TEAM
Ops
Cap Plan
ENTERPRISE ARCH
Ent Arch
Proj Mgmt
Biz AnProd MgmtData Arch
DBA
Biz AnProd MgmtData Arch
SW Arch
SW Dev
Client SW Dev
LEGACY SERVICE TEAM
Ops
Cap Plan
Biz AnProd MgmtData Arch
CSO INFRA MID/ DEV BIZ ENT
APPSDATA
Change Control
PLATFORM TEAM
Ent ArchProd Mgmt
Legacy Data Access
Service APIs
Data APIs
Shared DB
Database Per Service
Data Integration
Client-side “Joins”Event Sourcing
CQRSData Replication
Parallel Deployments
Caching
Cache Provisioning and Management
Look Aside
Read-through
Write-through/behind
Warming
Thank you!
Cornelia Davis Sr. Director of Technology Pivotal @cdavisafc
Discount code 40% off!: 40cloudnat
Recommended