Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Development of OpenStack

The Development of OpenStack

Dougal Matthews

April 24, 2014
Tweet

More Decks by Dougal Matthews

Other Decks in Programming

Transcript

  1. The Development of
    OpenStack

    View Slide

  2. Who am I?
    Pythonista & Skier
    Developer at Red Hat,
    working on OpenStack.

    View Slide

  3. OpenStack history
    4 Open sourced in 2010.
    4 Formed by NASA and Rackspace.
    4 Icehouse is the current release (about a
    week old).
    4 Then Juno will be released in ~6 months.

    View Slide

  4. What is OpenStack?
    An implementation of a “cloud”
    or Infrastructure as a Service

    View Slide

  5. But, what is OpenStack?
    A set of Python* based RESTful services
    for managing virtualised infrastructure.
    Including the management of virtual
    machines, networks and storage.

    View Slide

  6. View Slide

  7. The OpenStack services.
    4 Nova (Virtual Machines)
    4 Swift (Object Storage)
    4 Cinder (Block Storage)
    4 Neutron (Networking)
    4 Horizon (Dashboard)
    4 Keystone (Identity)
    4 Glance (Images) ....

    View Slide

  8. View Slide


  9. Scaling Development

    View Slide

  10. The scale of development
    4 1.3+ million lines of code.
    4 1,200+ active developers.
    4 250+ git repositories.
    4 1,000+ commits each week.
    4 5,000+ new patches each week.
    4 1,000+ emails a week.

    View Slide

  11. View Slide

  12. The development process.
    4 A new release every 6 months.
    4 Each project within OpenStack has a
    Project Technical Lead.
    4 PTL's are voted in for each release.
    4 Launchpad and mailing lists to propose
    and debate bugs and additions.

    View Slide

  13. Verifying changes
    4 Only Jenkins commits. No commit bit.
    4 Project has a group of core reviewers.
    4 Every patch needs two +2's and one +A
    4 Most patches have more than 5 reviews.

    View Slide

  14. Continuous Integration
    4 Jenkins is a reviewer and will give your
    patch a -1 or +1.
    4 Runs unit tests and integration tests.
    4 Build documentation.
    4 Checks against strict style guides.

    View Slide

  15. View Slide

  16. View Slide

  17. Jenkins failing your
    patch because the
    commit message
    ended with a period.

    View Slide

  18. Getting your code committed
    can be slow
    Jenkins often takes hours
    Reviews are often open for
    weeks

    View Slide

  19. View Slide

  20. Development Environment
    This bit is thankfully quite easy.
    git clone https://github.com/openstack-dev/devstack.git
    cd devstack && ./stack.sh
    Then load up your web browser and head
    to the IP address of the machine to see the
    Horizion dashboard. From here you can
    create VM's and manage your cloud.

    View Slide

  21. So, why should I care about
    OpenStack?
    4 It's open source. We currently have too
    much proprietary code and vendor lock-
    in.
    4 Lots of great projects to work on,
    challenges to solve and people to work
    with.

    View Slide

  22. Also...
    Knowing both Python
    and/or OpenStack are
    really hireable skills
    right now.
    Red Hat are constantly
    looking for great people
    in many areas.

    View Slide

  23. The Late Disclaimer
    4 No idea what I'm talking about.
    4 I don't work on anything I mentioned.
    4 I work on the OpenStack project TripleO.

    View Slide

  24. Questions?
    About OpenStack?
    About Red Hat?
    About TripleO?
    Thanks!

    View Slide

  25. View Slide