OpenStack Pike release bites hard on microservices and scale
Project tries to move on to lifecycle management rather than initial setup
With the release of OpenStack Pike, the OpenStack Foundation has focussed on making the foundational software-defined networking environment look more digestible and better-suited to the world of microservices that's grown up around it.
Speaking to The Register about the release, OpenStack Foundation executive director Jonathan Bryce says users have grown accustomed to thinking of OpenStack as a single creature.
If that were true once, it is no longer: OpenStack is “made up of a number of different services providing access to compute, storage, networking, bare metal, data centre functions”, he explained.
In parallel with OpenStack's development, Bryce added, technologies like Kubernetes, Docker, OpenFlow and TensorFlow have emerged and matured, and Bryce said users want to tie-in their OpenStack environments with those kinds of technologies.
Hence the “composability” that the foundation has given prominence in the Pike release: it's a way to make it easier to use those services.
The Ironic bare metal service is easier to integrate with Cinder block storage and Neutron networking. Cinder can now be broken out as a standalone storage service for virtual machines, bare metal systems, or Docker/Kubernetes containers.
Ironic now plugs directly into Neutron networking, which the foundation says is important for multi-tenant cloud offerings.
Cinder block storage is enhanced with a “revert to snapshot” feature for better data recovery; and storage volumes can be expanded without admins having to shut down VMs.
The second “big theme” Bryce said influenced Pike reflects a more mature attitude to deployment. “The focus has shifted from 'how do you install OpenStack to build your initial cloud?' to 'how do you run your cloud over its lifetime?'”
Users are now more concerned with lifecycle issues – “how you scale it out, upgrade it, manage failures – things that happen in the lifecycle of a cloud”.
Treating OpenStack as a collection of microservices, Bryce said, lets users create their cloud more efficiently; and when it comes time to upgrade, the microservice model lets the admin run rolling updates with A/B testing.
The two key tools for wrangling OpenStack containers are Kolla and Helm.
Kolla became more popular among developers contributing to the Pike release, with 19 per cent more contributors compared to the OpenStack Octata release. Helm (a package management utility for Kubernetes) now ranks as a “complete lifecycle technology for OpenStack services”, Bryce said.
Goodbye, Python 2
The OpenStack development community also has its eye on the coming deprecation of the Python 2.x language series. While that's still some way off (it's due in 2020), there's a lot of code to replace.
Bryce praised the ability of OpenStack's thousands of developers to get Pike ready for Python 3.5, telling El Reg “users know they're not going to have a massive technical debt, running processes that depend on a deprecated language."
“That's most important to users in regulated industries, they have to prove what they're doing is secure, manageable, and using the proper standards.”
Other high points of the Pike release include enhancements to Nova Cells v2; the rollout of
etcd v3 as OpenStack's distributed lock management solution; and its Swift object storage now supports globally distributed erasure codes, to allow individual regions to function if a multi-region network is down, and to ensure failures in one region can recover using a remote region.
Bryce noted that Cells v2 is an ongoing work-in-progress, because big clouds aren't static. The continuing challenge for OpenStack's largest users are how to scale clouds to very large sizes – “hundreds or thousands of physical servers”.
“The questions change with every release cycle”, he explained.
“Cells v2 is a fundamental re-architecture of how you scale a virtualization environment.
“You can never build a single, massive virtualized environment that will be as big as everybody needs, so you need to scale it in reasonable chunks.”
And not everyone looks at those chunks the same way – for one network it might be about how many IP addresses are in the environment, for another it's about physical machines, for another it's the number of VMs.
The idea in Cells v2, Bryce said, is that the user can segment their virtual environments, and each segment is aware of the others so they can “talk to each other intelligently”.
“That's been in progress for about a year and a half, and there's probably … years to come.”
Pike's focus, Bryce said, is to expose functionality for horizontal scaling: “Every OpenStack Nova instance starts from the beginning as a Nova Cell, and you have the ability to add additional Nova cells into that environment, scaling horizontally and balancing across it”.
That's been a huge effort in the OpenStack community, he said. ®