52
RACKSPACE® HOSTING | WWW.RACKSPACE.COM BE A CLOUD NATIVE Q1 2013 Jaret Chiles Cloud Solutions Architect Rackspace, The Open Cloud Company

Be a Cloud Native

Embed Size (px)

DESCRIPTION

Presented at InnoTech San Antonio 2014. All rights reserved.

Citation preview

Page 1: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

BE A CLOUD NATIVE

Q1 2013

Jaret Chiles Cloud Solutions Architect Rackspace, The Open Cloud Company

Page 2: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

BE A CLOUD NATIVE

Which workload do I put in the cloud?

Application changes?

What is DevOps?

Should I think about lock-in?

Is my data safe?

Where do I start?

Page 3: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

THE POWER OF THE CLOUD

Programmatically accessible infrastructure

Page 4: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

INFRASTRUCTURE ON DEMAND

Deploy infrastructure when you need it

Page 5: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

INFRASTRUCTURE ON DEMAND

Turn it off when you don’t need it

Page 6: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

MATCH COST TO DEMAND

Shrink the gap with automation

Page 7: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

DEMAND PATTERNS

Page 8: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

HYBRID-CLOUD STRATEGIES

Own the base. Rent the

peak.

PEAK LOAD

BASE LOAD

Page 9: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

MULTI-CLOUD STRATEGIES

PARTNER DC CUSTOMER SITE RACKSPACE LOCATIONS

DEDICATED PUBLIC CLOUD PRIVATE CLOUD PRIVATE CLOUD PUBLIC CLOUD

Rackspace Provides The Fanatical Support

Write once, deploy anywhere

Page 10: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

A NEW WAY OF THINKING

Virtualization is a TECHNOLOGY…

Cloud Computing is a BUSINESS MODEL

Page 11: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

WHY IS A MANDATE FOR DEV/OPS IMPORTANT?

Dev + Ops On the same train

Increased Collaboration

Smarter Applications

Faster Time to Market

Page 12: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

IT DEV/OPS TRANSFORMATION

Communication… Collaboration… Integration

Dev/Ops Org Structure is Driven by Cloud Adoption

Operations: Deeper Application Knowledge

Developers: Understands Code Impacts Infrastructure

Page 13: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

DESIGNING APPLICATIONS FOR THE CLOUD

• Built for Resilience & Error Tolerance

• Loosely Coupled Components

• Preserved & Recoverable Application State

•Self monitoring, healing and scaling

CLOUD-AWARE APPLICATION DEVELOPMENT

Page 15: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD SECURITY = AGILE SECURITY

Think Like a

Developer

Page 16: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

SDKs and APIs

DEVELOPER GUIDES & MANAGED SERVICES

Self Service: http://developer.[provider].com

Managed Services: Extension of IT team

Page 17: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONSUMPTION MODELS

Cloud Orchestration API Layer

Software Development

Kits

Direct API Interaction

Command Line Tools

Control Panels

Page 18: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

PURE CLOUD CONFIGURATION

Page 19: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

HYBRID CONFIGURATION

Page 20: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

EXAMPLE DEPLOYMENT DIAGRAM

Page 21: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

EXAMPLE DEPLOYMENT PROCESS OVERVIEW

Tools: • Nova Command Line Tool (CLI) • Rackspace Cloud Control Panel (Control Panel) • Application Programming Interface (API)

Today’s steps: 1) Create a Private Cloud Network (CLI) 2) Deploy 6x 2GB Cloud Web Servers (CLI) 3) Deploy 4x 4GB Cloud App Servers (CLI) 4) Add SSD Block Storage to the App Servers (CLI) 5) Create a public Web Load Balancer (Control Panel) 6) Create a private App Load Balancer (Control Panel) 7) Create MySQL Database Instance (Control Panel) 8) Create Gold Images (Control Panel) 9) Push a static file to Cloud Files for CDN (API)

Page 22: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

NOVA COMMAND LINE – CLOUD NETWORKS

1) Create a private cloud network nova network-create PrivateNet 192.168.0.0/24

Page 23: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

NOVA COMMAND LINE – CLOUD SERVERS

nova image-list

nova flavor-list

Page 24: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

NOVA COMMAND LINE – CLOUD SERVERS

• nova image-list (Copy desired Image-ID) • nova flavor-list (Copy desired Flavor-ID) • nova network-list (Copy desired Network-ID)

2) Deploy six 2GB Ubuntu 12.04 Web Servers sharing PrivateNet for i in `seq 1 6` ; do nova boot --image 5cebb13a-f783-4f8c-8058-c4182c724ccd --flavor 4 --nic net-id=b771c94e-5cfe-43c1-a8be-486451d3ca74 Web$i; done

3) Deploy four 4GB Ubuntu 12.04 App Servers sharing PrivateNet for i in `seq 1 4` ; do nova boot --image 5cebb13a-f783-4f8c-8058-c4182c724ccd --flavor 5 --nic net-id=b771c94e-5cfe-43c1-a8be-486451d3ca74 App$i; done

Page 25: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

NOVA COMMAND LINE – CLOUD SERVERS

nova list

Page 26: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD SERVERS

Page 27: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

NOVA COMMAND LINE – CLOUD BLOCK STORAGE

4) Deploy four 100MB SSD Block Storage Volumes for App1-4

for i in `seq 1 4` ; do nova volume-create --volume-type SSD 100 --display-name app$i; done nova volume-list

Page 28: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

NOVA COMMAND LINE – CLOUD BLOCK STORAGE

Attach the volumes via Volume-ID nova volume-attach App1 6bbb976d-a54a-432a-b6e1-0fc6eb05f415

/dev/vdb nova volume-attach App2 ff7c37b3-bc8f-4c47-a5ee-582504a8dd18

/dev/vdb nova volume-attach App3 ce8edb03-2757-4c41-925b-c8cff812b12b

/dev/vdb nova volume-attach App4 a757bfd3-ddd2-43f1-a1c0-84ab50217aed

/dev/vdb nova volume-list

Page 29: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

5) Deploy a public cloud load balancer for HTTP traffic

Page 30: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

Page 31: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

Page 32: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

Page 33: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

6) Deploy a private cloud load balancer for internal TCP traffic

Page 34: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

Page 35: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

Page 36: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD LOAD BALANCERS

Page 37: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD DATABASES

7) Deploy a MySQL database

Page 38: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD DATABASES

Page 39: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD DATABASES

Page 40: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD DATABASES

Page 41: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD DATABASES

Page 42: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD SERVER IMAGES

8) Create “Gold” server images

Page 43: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD SERVER IMAGES

Page 44: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CLOUD CONTROL PANEL – CLOUD SERVER IMAGES

Page 45: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

APPLICATION PROGRAMMING INTERFACE – FILES

7) Push a file to Cloud Files and enable it over the Akamai CDN

Upload File to Container curl -X PUT -T screenies/hello.jpg -D - \ -H "ETag: 805120e285a7ed28f74024422fe3594" \ -H "Content-Type: image/jpeg" \ -H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae" \ -H "X-Object-Meta-Screenie: Hello World" \ https://storage.clouddrive.com/v1/CF_xer7_343/ images/hello.jpg HTTP/1.1 201 Created Date: Thu, 09 July 2009 17:03:36 GMT Server: Apache Content-Length: 0 ETag: 805120e285a7ed28f74024422fe3594 Content-Type: text/plain

Page 46: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

APPLICATION PROGRAMMING INTERFACE – FILES

CDN Enable Container curl -X PUT -D - \ -H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae" \ -H "X-CDN-Enabled: True" \ -H "X-TTL: 259200"\ https://storage.clouddrive.com/v1/CF_xer7_343/images HTTP/1.1 202 Accepted Date: Thu, 06 Aug 2009 01:34:13 GMT Server: Apache X-CDN-URI: http://c10171.r71.cf0.rackcdn.com X-CDN-SSL-URI: https://c10171.ssl.cf0.rackcdn.com Content-Length: 0 Connection: close Content-Type: text/plain; charset-UTF-8

Page 47: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CONTROL PANEL – CLOUD FILES

Page 48: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

CONTROL PANEL – CLOUD FILES

Page 49: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

EXAMPLE DEPLOYMENT RECAP

Page 50: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

RESOURCES

Product Information http://www.rackspace.com/cloud Rackspace Developer Portal http://developer.rackspace.com Knowledge Center & Best Practices http://www.rackspace.com/knowledge_center OpenStack Community http://www.openstack.org

Page 51: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

SIGN UP

https://cart.rackspace.com/cloud

Page 52: Be a Cloud Native

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

THANK YOU

[email protected] http://www.linkedin.com/in/jaretchiles @jaretchiles