Open stack summit spring 2014 hybrid cloud landmines - 2014-05-15
1. CCA - NoDerivs 3.0 Unported License - Usage OK, no modifications, full attribution*!
* All unlicensed or borrowed works retain their original licenses
Hybrid Cloud Landmines
Drew Smith, Cloud Applications Engineer!
OpenStack Juno Design Summit!
May 15th, 2014
Architecting Apps to Avoid Problems
@drumulonimbus
3. Today’s Goals:
The Whats & Whys of Hybrid Cloud!
What’s in the Functional Stack?!
What Enables Hybrid Cloud?!
Understanding Application Requirements!
Success vs Failure Defined!
The Usual Approaches to Hybrid Cloud!
Hybrid Cloud Landmines!
Architecting Apps to Avoid Problems!
(slides are available online at http://slideshare.net/drumulonimbus)
3
4. Q: What is Hybrid Cloud?
4
Geographic
Optimization
Cost
Optimization
Performance
Optimization
Bursting
Disaster
Recovery
Compliance
Scaling
5. A: It’s all of those things!
…but for the sake of brevity, we’re going to define it as:
5
“Hybrid Cloud is your
apps leveraging the
functional stack of
multiple cloud
infrastructures”
6. What’s in a functional stack?
6
Orchestration / Auto-Scaling / Failover
Monitoring & Metrics
VM Provisioning
Image Management
Data Storage / Management
Security & Access Management
Common Operations Portal / Tools
“Hybrid Cloud is
your apps
leveraging the
functional stack
of multiple cloud
infrastructures”!
!
…so some or all
of these need to
be managed in
multiple places.
7. Stack-stacking?!
7
Orchestration / Auto-Scaling / Failover
Monitoring & Metrics
VM Provisioning
Image Management
Data Storage / Management
Security & Access Management
Common Operations Portal / Tools
Orchestration / Auto-Scaling / Failover
Monitoring & Metrics
VM Provisioning
Image Management
Data Storage / Management
Security & Access Management
Common Operations Portal / Tools
OpenStack AWS
…more like stack diplomacy.
9. Understand Your App
9
Requirements will drive your hybrid architecture choices
Why are you thinking about
hybrid cloud in the first place?!
What are your expectations?!
What are likely bottlenecks?!
Hint: probably similar to the ones
you saw when you built the app!
Read “The Phoenix Project”!
by Gene Kim / Kevin Behr / George Spafford
10. What does success look like?
10
It still depends on your application requirements.
Nailing it!
Able to deploy an app into or across
multiple cloud environments, with
common operational tools / processes
and consistent performance.!
!
Good enough!
Able to spread your workload across
multiple platforms with a minimum of
effort / intervention
11. What does failure look like?
Introduces complexity without obvious gains
in stability, resiliency and cost!
App experiences performance issues
11
Many workarounds
hacks needed to
manage configuration
exceptions
12. What are the usual approaches
to Hybrid Cloud applications?
12
DIY App Mgmt"
Approach
Control
Ease
of UsePre-Baked"
Abstraction Layers
PaaS"
Framework
1 32
13. DIY Hybrid App Management
13
Heat
Orchestration / Auto-Scaling
Monitoring & Metrics
VM Provisioning
Image Management
Data Storage / Management
Security & Access Management
Common Operations Portal / Tools
Python/Ruby/C++/etc
talking directly to APIs!
Often uses images as
change control (not a
good idea…)!
Orchestration is difficult
across platforms
1
14. Pre-Baked Abstraction Layers
14
Less effort, less control!
Noticeably more
(30%-50%) costs, both
up-front and ongoing!
Lots of options out
there, but there are
always trade-offs
2
15. Deploy to a PaaS Framework
Least effort / manpower
needed to succeed!
!
Least granularity / control,
locked into the platform!
!
Can be costly!
15
3
16. Hybrid Cloud Land Mines
Feature Coverage / Gaps!
Behavioural Compatibility!
Image Management!
Monitoring & Auto-Scaling!
Security & Access!
Other Land Mines…!
Data Staging / Replication!
Intra-app Messaging!
Networking / Network Mgmt!
HA/DR Architectures!
Common Tools & Processes
16
17. OpenStack!AWS
Dependance on Cloud-specific services
reduces application interoperability!
Differences in cloud features can also
affect app interoperability
Feature Coverage / Gaps
17
Even similar clouds
might not have the
same features (e.g
Heat) enabled!
19. Image Management
Staging and patching images in
multiple environments
19
Maintaining your own is
time-consuming!
Seems like a good way,
but gets messy quickly.
20. Monitoring & Auto-Scaling
20
There’s currently no one
accepted standard!
Abstraction helps reduce
the impact, but can also
vendor-lock you!
DIY = on your own. :/
“This is wrong…”
21. Security and Access
Access management across clouds!
IAM vs. Keystone vs. Google Apps for
Business vs. ???!
VPN/VPC!
Doesn’t exist the same in all clouds!
(Cloudscaling has Layer3 and VPC)!
Managing security incidents!
How quickly can you roll out new code?
21
22. Other Land Mines
Data staging / replication!
Latency/bandwidth issues!
Can get expensive fast!!
App Messaging!
Need a common messaging service across environments?!
Securely over tunnels? (Consul.io is really neat!)!
Networking / Network Management!
Variations on VM NICs creating issues!
Leverage VPC for isolation? Sure, but which one?!
HA/DR Architectures?!
Warm vs. Hot failover!
Common Tools & Processes!
Managing across clouds - Horizon vs. Aurora vs. ??? !
High-level tools with abstraction - Puppet/Chef/etc
22
23. Architecting Apps To Avoid Problems
• Understand and document your application!
• Employ cloud-native design!
! app portability as a road to hybrid cloud!
• Use well-understood open source tools!
• Abstract everything!
! … or, at least, everything you are comfortable with!
• Automate everything!
! everything-as-code!!
• Ensure behavioural compatibility
23