@drumulonimbus Hybrid Cloud Landmines Architecting Apps to Avoid Problems Drew Smith, Cloud Applications Engineer � OpenStack Juno Design Summit � May 15th, 2014 CCA - NoDerivs 3.0 Unported License - Usage OK, no modifications, full attribution* � * All unlicensed or borrowed works retain their original licenses
Introductions Drew Smith � Cloud Applications Engineer @ Cloudscaling � AWS Solutions Architect / RHCE / Lifelong nerd � Easily excited, housetrained, doesn’t bite � dsmith@cloudscaling.com 2
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
Q: What is Hybrid Cloud? Disaster Geographic Recovery Optimization Scaling Bursting Cost Performance Optimization Optimization Compliance 4
A: It’s all of those things! …but for the sake of brevity, we’re going to define it as: “Hybrid Cloud is your apps leveraging the functional stack of multiple cloud infrastructures” 5
What’s in a functional stack? “Hybrid Cloud is Orchestration / Auto-Scaling / Failover your apps Monitoring & Metrics leveraging the functional stack VM Provisioning of multiple cloud infrastructures” � Image Management � Data Storage / Management …so some or all of these need to Security & Access Management be managed in multiple places. Common Operations Portal / Tools 6
Stack-stacking?! OpenStack AWS Orchestration / Auto-Scaling / Failover Orchestration / Auto-Scaling / Failover Monitoring & Metrics Monitoring & Metrics VM Provisioning VM Provisioning Image Management Image Management Data Storage / Management Data Storage / Management Security & Access Management Security & Access Management Common Operations Portal / Tools Common Operations Portal / Tools …more like stack diplomacy. 7
What enables Hybrid Cloud? AUTOMATION Heat ABSTRACTION Ease Pre-staged Cloud API Orchestration � Control PaaS Images & Config Mgt of Use 8
Understand Your App 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 9
What does success look like? 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 10
What does failure look like? Introduces complexity without obvious gains in stability, resiliency and cost � App experiences performance issues Many workarounds hacks needed to manage configuration exceptions 11
What are the usual approaches to Hybrid Cloud applications? 1 3 2 Ease Control of Use DIY App Mgmt � PaaS � Pre-Baked � Approach Framework Abstraction Layers 12
DIY Hybrid App Management 1 Python/Ruby/C++/etc talking directly to APIs � Heat Often uses images as Orchestration / Auto-Scaling change control (not a Monitoring & Metrics good idea…) � VM Provisioning Image Management Data Storage / Management Orchestration is difficult Security & Access Management across platforms Common Operations Portal / Tools 13
Pre-Baked Abstraction Layers 2 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 14
Deploy to a PaaS Framework 3 Least effort / manpower needed to succeed � � Least granularity / control, locked into the platform � � Can be costly! 15
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
Feature Coverage / Gaps Dependance on Cloud-specific services reduces application interoperability � Differences in cloud features can also affect app interoperability Even similar clouds might not have the same features (e.g Heat) enabled! OpenStack � AWS 17
Behavioural Compatibility Partially-implemented or partially-compatible APIs � � Configuration differences between similar clouds � � Variable performance from one cloud to the other 18
Image Management Staging and patching images in multiple environments Maintaining your own is time-consuming � Seems like a good way, but gets messy quickly. 19
Monitoring & Auto-Scaling 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…” 20
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
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
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
@drumulonimbus Drew Smith Questions?
Take-away reading: http://www.cloudscaling.com - Cloudscaling � http://draios.com - cloud debugging tools � http://antitude.io - neat next-gen app demo � http://consul.io - next-gen app dev tools � http://slideshare.net/drumulonimbus - slides � http://twitter.com/drumulonimbus - me 25
Recommend
More recommend