[openstack-dev] [tc] [all] OpenStack moving both too fast and too slow at the same time

Octave J. Orgeron octave.orgeron at oracle.com
Fri May 5 20:23:20 UTC 2017


Thank you Alex for the points you made below. These are some of the big 
issues that I see all OpenStack customers and operators struggling with. 
Regardless of the tools that the community or vendors put on the table, 
OpenStack is still a very complicated piece of technology to deploy and 
manage. Even if we look at trippleo, kolla, puppet, Fuel, JuJu, etc. 
they address very specific use-cases. Most will handle deploying a basic 
HA control plane and configure things that are suited for a dev/test 
setup, demo, or POC type of use-case. But do they handle a production 
ready deployment for a bank, telco, retailer, or government? Is 
everything configured to handle HA, scale, security, auditing, 
multi-tenancy, etc. with all of the knobs and options set the way the 
customer needs? Do we end up with ceilometer, aodh, gnocchi, ELK, etc. 
all configured optimally? How about networking and security? How about 
upgrades? Can you expect people to hit an upgrade button and not have 
anything break? Let's be realistic here.. these tools are all good 
starting points, but you're going to have to get your hands dirty at 
some level to configure OpenStack to fit your actual business and 
technical requirements. The life-cycle management of OpenStack is not 
easy and requires a lot of resources. Sure vendors can try to fill the 
void, but everything they build is on quicksand.

This is why you see vendors and major consulting houses jumping all over 
this to fill the void with professional services. There are plenty of 
big shops that are now looking at ways to out-source the management of 
OpenStack because of how complex it is to manage and maintain. BTW, this 
is the biggest market sign that a product is too complicated.

 From a vendors perspective, it's incredibly difficult to keep up with 
the releases because once you get your automation tooling and any extra 
value-added components integrated with a release, it's more than likely 
already behind or EOL. Plus there won't be enough soak time with 
customers to adopt it! Not only that, but by the time you make something 
work for customers, there is a very high chance that the upstream 
version of those components will have changed enough that you'll have to 
either patch, re-architect, or slash and burn what you've already 
delivered to your customers. Not to mention it maybe impossible to 
upgrade your customers in a seamless or automated fashion. This is why 
customers will stick to an older release because the upgrade path is too 
painful.

If you consider the realities of all of the above, what ends up 
happening? Enterprise customers will end up sticking to an older release 
or paying someone else to deal with the complexity. This places vendors 
at risk because there isn't a clear revenue model that can sustain the 
engineering overhead required for maintaining and developing their 
distribution. If customers aren't buy more or upgrading, then who's 
keeping the lights on? You can only charge so much for support. So they 
end up being bought or going under. Which leaves customers with fewer 
choices and more risk.

So ultimately, the right way to fix this is to have an LTS branch and 
for there to be better governance around how new features are 
introduced. There needs to be more customer and vendor driven 
involvement to solidifying a core set of features that everyone can rely 
on working consistently across releases and upgrades. When new features 
or enhancements come along, there should be more emphasis on usability, 
sustainability, and upgradeability so that customers and vendors are not 
stuck.

If we had an LTS branch and a solid governance model, both vendors and 
customers would benefit greatly. It would help buffer the chaos of the 
bleeding edge away from customers and allow vendors to deliver and 
support them properly.

Octave

On 5/5/2017 12:33 PM, Alex Schultz wrote:
> So there's a trade off and I don't think we can just restrict entry 
> because some projects aren't user friendly. I see it as a common issue 
> across all projects. Some are better than others, but what I would 
> like to see is the bar for usability raised within the OpenStack 
> community such that the end user (and deployer/operator) are all taken 
> into consideration. For me the usability also goes with adoption. The 
> easier it is to consume, the easier it would be to adopt something. If 
> you take a look at what is required to configure OpenStack for a basic 
> deployment, it is not easy to consume. If you were to compare the 
> basic getting started/install guide for Kubernetes[0] vs OpenStack[1], 
> you can see what I mean about complexity. I think just the install 
> guide for neutron on a controller node[2] is about the same length as 
> the kubernetes guide. And we think this is ok? We should keep adding 
> additional installation/management complexity for each project? You 
> could argue that OpenStack has more features or more flexible so it's 
> apples to oranges but I don't think it has to be if we worked on 
> better patterns for configuration/deployment/upgrades. It feels like 
> OpenStack is the thing that you should pay professional services to 
> deploy rather than I do it yourself. And I think that's a shame. 
> Thanks, -Alex [0] 
> https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/ 
> [1] https://docs.openstack.org/newton/install-guide-rdo/ [2] 
> https://docs.openstack.org/newton/install-guide-rdo/neutron-controller-install.html 




More information about the OpenStack-dev mailing list