From 22ab0f1a87a61a84dc78721ecbdde43ec2b1c556 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 1 Aug 2015 02:53:18 +1000 Subject: Add talks --- src/talks/product-management/index.html | 454 ++++++++++++++++++++++++++++++++ 1 file changed, 454 insertions(+) create mode 100644 src/talks/product-management/index.html (limited to 'src/talks/product-management/index.html') diff --git a/src/talks/product-management/index.html b/src/talks/product-management/index.html new file mode 100644 index 0000000..58f8bd4 --- /dev/null +++ b/src/talks/product-management/index.html @@ -0,0 +1,454 @@ + + + + + + + Liberty, Product Management and OpenStack Technology + + + + + + + + + + + + + + + + + + +
+ +
+ +

+ Liberty, Product Management and OpenStack Technology +

+

Monty Taylor

+

http://inaugust.com/talks/product-management.html

+

twitter: @e_monty

+
+ +
+ OpenStack +
+ +
+

Mission

+

+ to produce the ubiquitous Open Source Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable. +

+
+ +
+

Borrowed from Ubuntu

+

Time Based Releases

+

Design summits each cycle

+

Release codenames in alphabetical order

+
+ +
+

Different from Ubuntu

+

No BDFL

+

All decisions are democratic

+
+ +
+ +
+ +
+

"OpenStack needs product management"

+
+ +
+

Developers work on whatever they feel like, so there is no cohesion

+

not quite

+
+ +
+ +
+ +
+

OpenStack needs product management coordination

+
+ +
+

Product Management Working Group

+

Today 2:00pm - 3:30pm Room 212

+
+ +
+

What can the working group do?

+
    +
  • + Define problems +
  • +
  • + Coordinate prorities +
  • +
  • + Communicate problems clearly to tech community +
  • +
+ +
+

I've got 99 Problems ...

+ +
+ +
+

As an application developer,
+ I want to deploy and run an application on the internet
+ so that my customers all over the world can consume it.

+
+ +
+

As an application developer,
+ I want to deploy the application across multiple clouds
+ so that my service survives issues in any one of them.

+
+ +
+

THIS WORKS

+

I'm doing it myself as we speak

+ + + +

10-20k VMs per-day

+

3 (soon to be 6) clouds

+

Only using OpenStack APIs

+ +
+ +
+

To do this, there are some basic steps

+ +

Get (make/fetch/find) a base image

+

Upload it to each cloud

+

Boot a VM on one or more of the clouds

+

Ensure it's on the Internet

+ +
+ +
+

Get a base image

+

OpenStack diskimage-builder

+

packer

+

Download pre-built image from Ubuntu/Fedora

+
+ +
+

NO

+ +
+ +
+

Problem: hypervisor image file format

+
    +
  • + Rackspace uses VHD +
  • +
  • + HP uses qcow2 +
  • +
  • + DreamHost uses RAW +
  • +
+
+ +
+

Upload it to each cloud

+
glance image-create
+
+ +
+

NO

+ +
+ +
+

Problem: image API version

+
    +
  • + HP uses v1 +
  • +
  • + vexxhost uses v2 +
  • +
+
+ +
+

Problem: List API versions

+

Root of the Image API lists versions

+

keystone catalog only lists a versioned endpoint

+
+ +
+

Problem: API version discovery

+

Try one - if it doesn't work, try the other

+

maybe look at the end of the API endpoint for v1 or v2

+
+ +
+

Upload it to each cloud

+
glance image-create filename
+
+ +
+

NO

+ +
+ +
+

Problem: image task vs. PUT

+
+swift upload --object-name local-image-filename images image-name
+glance task-create
+   --type=import
+   --input='{"import_from": "images/image-name",
+             "image_properties" : {"name": "My Image Name"}}'
+                  
+
+glance image-create --name=image-name --file=local-image-filename
+                  
+
+ +
+

Boot a VM on one or more of the clouds

+
nova boot --image=image-name --flavor=something
+                  
+
+ +
+

NO

+ +
+ +
+

Problem: the image needs to get on the network

+
    +
  • DHCP
  • +
  • Static Network Config in Config Drive
  • +
  • Vendor-specific agent doing file injection
  • +
+
+ +
+

+
nova boot --image=image-name --flavor=something
+                      
+

+ +
+

NO

+ +
+ +
+

Problem: Ensure it's on the Internet

+
    +
  • My VM may have a public IP
  • +
  • My VM may need a floating IP from nova
  • +
  • My VM may need a floating IP from neutron
  • +
+
+ +
+

VM Network with nova-network

+
+        addresses:
+          private:
+          - addr: 10.181.5.77
+            version: 4
+          public:
+          - addr: 2001:4800:7810:512:be76:4eff:fe05:8325
+            version: 6
+          - addr: 98.129.169.30
+            version: 4
+                  
+
+ +
+

VM Network with nova-network

+
+        addresses:
+          mordred@inaugust.com-network:
+          - OS-EXT-IPS-MAC:mac_addr: fa:16:3e:a6:de:26
+            OS-EXT-IPS:type: fixed
+            addr: 10.0.0.6
+            version: 4
+          - OS-EXT-IPS-MAC:mac_addr: fa:16:3e:a6:de:26
+            OS-EXT-IPS:type: floating
+            addr: 15.126.239.219
+            version: 4
+                  
+
+ +
+

Boot a VM on one or more of the clouds

+
+nova boot --image=image-name --flavor=something --name=my-server
+nova floating-ip-create
+nova floating-ip-associate my-server {{ value_from_create }}
+                  
+
+ +
+

NO

+ +
+ +
+

Problem: My Internet server is behind a NAT

+
+ +
+

Problem: Security Groups

+

I was trying to spin up a web server, but all my ports were blocked

+

I'll be using ansible and puppet on this machine, I can configure iptables thanks

+

+ +
+

Boot a VM on one or more of the clouds

+
+nova secgroup-add-rule default tcp 80 80 0.0.0.0/0
+nova boot --image=image-name --flavor=something --name=my-server
+nova floating-ip-create
+nova floating-ip-associate my-server {{ value_from_create }}
+                  
+
+ +
+

Wow. So that's

+
    +
  • + Image Format +
  • + Image API version +
  • + Image upload mechanism +
  • + Networking config / public private +
  • + Networking config nova/neutron +
  • + Floating IP? +
  • + Floating IP nova/neutron +
  • + DHCP or Static networking config +
  • + Security Group config +
  • +
+
+ +
+

I think we can do better than that

+
+ +
+

What am I doing about it?

+
+ +
+

os-client-config

+

http://git.openstack.org/cgit/openstack/os-client-config

+

A library to handle config information for openstack clients

+

Tracks differences in vendors that can't be discovered

+

In use in python-openstackclient and ansible today

+
+ +
+

shade

+

http://git.openstack.org/cgit/openstack-infra/shade

+

A library to wrap business logic around client libraries

+
+cloud.create_server('my-server', auto_ip=True)
+                  
+

In use in Infra Nodepool and ansible today

+
+ +
+

Raising Issues

+
    +
  • Product Management Working Group (today, 2pm, room 212)
  • +
  • DefCore (Wednesday 10:30 - 12:30, East Building Room 2/3)
  • +
  • Direct interaction with the teams and PTLs
  • +
+
+ +
+

What should we do about it?

+
    +
  • + Get back to basics +
  • + shade existence is a bug +
  • + Make some decisions about divergences in the basic levels +
  • + Take a stand even if one of our product managers disagrees +
  • + Ensure that simple things are simple +
  • +
+
+ + +
+

Thank you!

+

http://inaugust.com/talks/product-management.html

+

twitter: @e_monty

+
+ +
+ + +
+ + + + + + + + -- cgit v1.2.3