7. … that means
• Horizontally Scalable
• Commodity Hardware
• Self-Service APIs
• VMs may die
• App aim to be always available
• Persistent Object Storage
15. Distributed
Block Object
File System
• Hard disk blocks • Buckets + Blobs • Hierarchy of files
• Usually persisted • Eventual consistency • Globally consistent
• Single user • Many readers/writers • Many readers/writers
• EBS, RBD (Ceph) • S3, Swift • GlusterFS, HDFS
• Live VM Disk • Limited size blob • Document hierarchy
16. Networking
• APIs not wiring
• Flat vs Isolated Networks
• Floating IPs
• Load Balancing
• Security Groups & Firewalls
• VPN & Bridging
• Integration with current network
28. How do I pick a Cloud?
• Technology
• Support
• Demand patterns
• Compliance
• Security
• Cloud lock-in
29. Cloud Lock-in
• Move between platform
• Access Data
• APIs and Tools
• VM images
• Networking
• Storage Options
• Platforms
30. PaaS vs IaaS
• Lock-in:
ᵒTechnology
ᵒCloud Vendor
ᵒCloud Location
• IaaS + DevOps
• Vim vs Visual Studio?
31. Should I deploy on a Private Cloud?
• Cost of Public Cloud • Rate of Growth
• Sensitive Data • Administration costs
• More Control • Up-front costs
• Customer Request • Can you really do better security?
32. Citrix CloudPlatform
Powered by Apache CloudStack
• Secure, multi-tenant cloud orchestration platform
ᵒTurnkey IaaS cloud
ᵒHypervisor agnostic
ᵒWorks well with Citrix XenServer and Citrix Netscaler
ᵒHighly scalable, secure and open
ᵒComplete Self-service portal
ᵒDeploy on premise or from a hosting partner
ᵒFully Supported by Citrix
ᵒIn production in over 100 clouds
ᵒSupports Traditional and Cloud Workloads
http://www.citrix.com/cloudstack
33. OpenStack
• OpenStack has a huge ecosystem
• Supports KVM and XenServer, others
• XenServer+OpenStack used by Rackspace & Internap
• http://wiki.openstack.org/XenServer/GettingStarted
• http://wiki.openstack.org/HowToContribute
Introduce what I am currently working on.This talk is not:How to “move” old apps to the cloudA talk about XenThis talk is about:How clouds are buildAnd how that affects developersCheck who has:Built a cloud app already?Looking to build a cloud app?Looking to build a cloud?Looking to develop cloud software?
Lets make sure we are talking the same languageMany people are confusing what Cloud computing is, which what drives the move to using Cloud
User experience is keyConsumersation of IT: it just works, like a kettleGlobal reach – users from all timezones – when is downtime? (HSBC advert)Overnight growth: no time to buy serversPushing for 100% availability, no matter what load
Can’t just avoid failureApps need to be written to deal with failureVirtualization useful, but bare metal provisioning also useful in some cases
Cloud Workload vs Traditional WorkloadAccept Failure … and deal with it!Old world – server virtualizationChange in abstraction delivers economies of scale
http://technet.microsoft.com/en-us/magazine/hh509051.aspxIts disruptive, old apps probably will not work well in the cloud.NIST definition:http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
Contrast to existing server deploymentHorizontally Scalable:consider upgrade of storage system as you add more hypervisorsIn the cloud you add pods of servers (or containers of servers)Self-Service APIs:no need to wait for things to be rewired and turned onSee real picture: http://blogs.technet.com/b/msdatacenters/archive/2011/07/20/the-cloud-infrastructure-journey-from-containers-to-modularity-long-live-containment.aspx
http://en.wikipedia.org/wiki/File:Cloud_computing_layers.pngLike OSI layer model, it has fuzzy linesNIST cloud definition: http://www.nist.gov/itl/cloud/index.cfmPaaS = integrated Dev environment
Introduce the nuts and bolts of an IaaS cloud
You get a virtual slice of a machine
You don’t get to see what VMs go on what servers, but you do get to see:- Regions=geographical areas, data centre(s)- Availability zones=redundancy inside bits of data centreConsider Amazon outages that people Netflix survivedResponse time: be close to your usersAvailability: keep working if everything fails
Remote is a persistent disk, a live(ish) block copy (boot from volume)Local is faster, but not persistent, less network issues, cheaper, but you loose data.Hybrid approachExternal ramdisk and kernelConsider a database on Amazon – latency issues with remote disk
This is really where cloud can get confusing…Consider three tired web app
Many of you know Amazon, lets look at Rackspace instead
Based on OpenStack and XenServer: what I work on.Lets look at this from a user perspecitveStorage:Use local disk (like amazon S3 based images)Add Block Storage, if needed (EBS)Backup into CloudFiles Object storage (S3)
Now lets dig down to the DevOps guy who installs this stuff
Shared services:IdentityImage service (sets of objects + metadata, sent to compute = image)Key design tenants:Open Design, API, etc.Pluggable
http://docs.openstack.org/essex/openstack-compute/admin/content/logical-architecture.htmlAPI + Dashboard: How you access the systemIdentity: Account managementSwift:storage distributed across multiple disksMassive rsync loopNote:Volume and Network being pulled out as separate components
Lets look at how an image is launched in OpenStack
Availability = your provider goes bustOr your provider goes down
APIs:Standards are earlyCIMI:http://dmtf.org/standards/cloudOCCI: http://occi-wg.org/NIST cloud definition: http://www.nist.gov/itl/cloud/index.cfm