From b59afe1ad31624cc1d691ba62bd5670fbab443d1 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Thu, 2 Mar 2017 08:38:07 -0800 Subject: Add talk for openinfraday --- src/talks/zero-to-2500.hbs | 302 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 src/talks/zero-to-2500.hbs (limited to 'src/talks') diff --git a/src/talks/zero-to-2500.hbs b/src/talks/zero-to-2500.hbs new file mode 100644 index 0000000..85130d6 --- /dev/null +++ b/src/talks/zero-to-2500.hbs @@ -0,0 +1,302 @@ + + + + + + + From Zero to 2500: Managing Development for OpenStack Completely in + the Open + + + + +
+

Who am I?

+ +

Office of Technology

+

Zuul

+

Ansible

+
+ +
+

Who am I?

+ +

Technical Committee

+

Developer Infrastructure Core Team

+
+ +
+ OpenStack +
+ +
+

The Four Opens

+
+ +
+

OpenStack Infra

+

Tooling, Automation and CI for OpenStack Project

+
+ +
+

Why?

+

The original OpenStack use case

+ +
+ +
+

OpenStack Scale by the numbers

+ +

ansible has received 13171 PRs (changes), + has merged 8190 of them and has 37788 commits in its entire lifetime

+
+ +
+

Infra operates the same way as OpenStack

+
+ +
+

How do we do this?

+
+ +
+

Control plane

+

http://git.openstack.org/cgit/openstack-infra/system-config

+ +
+ +
+

It wasn't always this way!

+

Let me take you on a walk down memory lane ...

+
+ +
+

We started with 4 cloud servers in Rackspace

+ +

old-wiki is still running! (On Ubuntu 10.04)

+

I didn't even have access to the cloud account!

+
+ +
+

The Setup

+ +
+ +
+

This state persisted for the first year and first three OpenStack + releases

+
+ +
+

Project Proliferation

+

Each project got a node and a job. Configured by hand. By me.

+

It got annoying

+
+ +
+

Config Management!

+ Please remember we're talking 2011 here +
+ +
+

Puppet vs. Chef and git vs. bzr and humans pushing things

+
+ +
+

We were so excited about sharing Ops best practices!

+

We were so sad

+
+ +
+

Brief Rant - I do not want to write Apache configs in Puppet DSL

+
+ +
+

So we introduced Puppet

+

http://git.openstack.org/cgit/openstack-infra/system-config/tree/?id=99540d91a75d2b021db01d815e46bd585f9235cd

+
+ +
+

Open Development

+

Our developers wanted to collaborate on test jobs.

+

Giving hundreds of people access to directly edit test jobs == sadness

+

Did I mention our test jobs implement captive gating?

+
+ +
+

Jenkins Job Builder

+

YAML encoding of Jenkins Job definitions with templating

+

Allowed jobs to go through code review before being applied!

+

Andreas Jaegar is OpenStack's all-time contributions leader. He works + on docs and test jobs

+
+ +
+

Introduction of Puppetmaster

+ +
+ +
+

Introduction of Hiera for Secrets

+

Hiera let us store YAML files with only secrets. Reference secrets + by name in puppet manifests

+

http://git.openstack.org/cgit/openstack-infra/system-config/tree/manifests/site.pp

+
+ +
+

Project Creation

+ +

Too much clicking!

+
+ +
+

jeepyb - Gerrit Project Builder

+

Lesson: Don't let Monty name things

+
+ +
+

Ansible to run Puppet

+
+ +
+

Back up: Salt to run Puppet

+
+ +
+

Ansible to run Puppet

+
+ +
+

Remaining manual human tasks

+ +
+ +
+

Ansible Role Cloud Launcher

+

http://git.openstack.org/cgit/openstack/ansible-role-cloud-launcher

+
+profiles:
+  - name: admin-clouds
+    flavors:
+      - name: aoclcompany.xlarge
+        ram: 128
+        vcpus: 1
+  - name: ops
+    images:
+      - name: ubuntu-trusty
+        filename: /home/ubuntu/trusty-server-cloudimg-amd64-disk1.img
+  - name: bootstrap-keypair
+    keypairs:
+      - name: bootstrap-key
+        public_key_file: /home/ubuntu/.ssh/id_rsa.pub
+clouds:
+  - name: awesomecloud
+    profiles:
+      - admin-clouds
+      - bootstrap-keypair
+  - name: yaycloud-ops
+    oscc_cloud: yaycloud-opsuser
+    profiles:
+      - bootstrap-keypair
+      - ops
+      
+
+ +
+

Problems depending on services

+

Even when the service is Open Source, it can stop being

+
+ +
+

Transifex

+

WAS an Open Source translations system.

+
+ +
+

Zanata!

+

We run Zanata ourselves now. (Thanks Lyz!)

+
+ +
+

Remaining external service dependencies

+ +
+ +
+

Launchpad OpenID -> openstackid

+
+ +
+

Launchpad Bugs -> storyboard

+
+ +
+

The Multi-cloud OpenStack Story

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