OpenStack as a Software Factory

Post on 16-Jan-2015

401 views 0 download

Tags:

description

One of the elements that any software development groups envies OpenStack is the project ability to coordinate and maintain a working product based on several hundred contributors wihtout missing a single deadine. This is mostly due to the organisation of the OpenStack project and to the great work of the infrastructure team within the project. As more and more of our contacts are wondering about this miracle that happens every 6 months, we realized that many of them would like to use similar tooling to deliver their own project. For the past few months eNovance has been working on streamlining tooling to deliver this and started a new product offering called the “Software Factory”. This session will explain what changes and modules we had to make to Git, Gerrit, Jenkins and other tools to support OpenStack Nova, Swift, Cinder out of the box in order to provide and intergrated software factory for about any language. This presentation was given on Tuesday Nov 5th at the IceHouse OpenStack Summit

Transcript of OpenStack as a Software Factory

OpenStack as aSoftware FactoryMehdi Abaakoukmehdi@enovance.com

Nick Barcetnick@enovance.com@nijaba

Partnership with

Who Are We?

Founded2008

Team

90+

Growth

200%

Clients

200+

European Head Office American Head Office

Asian Head Office

Paris, FranceMontréal, Canada

Singapore

R&D officeSan Francisco, USA R&D office

Bangalore, India

OpenStack makes most developers dubious...

How can Openstack handle

● Contribution of 400 developers / month?● Developers from 250 companies?● 10+ integrated projects?

And yet release a new version

● every 6 months● with 400 new features● without major inconsistencies?

With a single release manager

Who still has time to play ping pong???

The answer lays in the process...

...and test driven development

OpenStack's Contribution Process

Everything in Git

● Process description and code● Infrastructure used to handle the process● Code to deploy the infrastructure

100 times better than documentation of a manual process that is never up to date...

This is so good that we had to offer to share it with others...

…and offer a solution to use it on premise

Step by step

1. Deploy OpenStack as a private cloud 2. Deploy Software Factory 3. Connect Redmine, Jira, ...4. Create a new project5. Start coding!

Why is this so great?

Improve efficiency

● Nothing is local, everything is shared● Control access rights ● Contributive model● No need for a full release team● Factorize hardware needs

⇒ Stop learning how to build and get coding

Reproducible environments

● Dynamically provision test environments when needed by Jenkins

● Allow developers to generate a test environment for debugging at will

● Store validated releases and customer specific environments (in Swift)

Parallelize work

● Validate code changes and multiple deployments environments at once

● Accommodate more devs working on the same projects

● Limit wait times

⇒ Industrializes development and...

Release more often!

How do we deliver it?- eDeploy + Puppet- Heat + Puppet- Scalable Git- Scalable Artefact repo- Manage project- Onsite consulting

⇒ Private cloud⇒ Deploy Software Factory⇒ Swift as backend⇒ Swift again⇒ Django based web UI⇒ Implement specific workflow + Specific connectors + Specific dvcs, languages...

Where are we with it?

● Dogfooding within eNovance● First customer trial in progress

V1.0 GA planned in 3 months

Questions?

Mehdi Abaakoukmehdi@enovance.com

Nick Barcetnick@enovance.com@nijaba