[openstack-dev] [all][tc][glance] Glance needs help, it's getting critical

Mikhail Fedosin mfedosin at gmail.com
Mon Jun 12 20:20:08 UTC 2017

Well... My suggestion is to keep Glance maintained and begin experimental
adoption of Glare. So this is not an immediate replacement, but the
evolution of the Image service.
My opinion is that Glance stagnates and it's really hard to implement new
features there. In two years, only one major improvement was developed
(Image Import Refactoring), and no one has tested it in production yet. And
this is in the heyday of the community, as you said!

On the other hand OpenStack users have been requesting for new features for
a long time: I'm talking about mutistore support, versioning of images,
image slicing (like in docker), validation and conversion of uploading data
and so on. And I can say that it is impossible to implement them without
breaking Glance. But all this stuff is already done in Glare (multistore
support is implemented partially, because modifications of glance_store are
required). And if we switch OpenStack to Glare users will get these
features out of the box.

Then, Glance works with images only, but Glare supports various types of
data, like heat and tosca templates. Next week we will add Secrets artifact
type to store private data, and Mistral workflows. I mean - we'll have
unified catalog of all cloud data with the possibility to combine them in
metastructures, when artifact of one type depends on the other.

I will repeat it once again, in order to be understood as much as possible.
It takes too much time to develop new features and fix old bugs (years to
be exact). If we continue in the same spirit, it certainly will not
increase the joy of OpenStack users and they will look for other solutions
that meet their desires.


On Mon, Jun 12, 2017 at 10:20 PM, Flavio Percoco <flavio at redhat.com> wrote:

> On 12/06/17 16:56 +0300, Mikhail Fedosin wrote:
>> Hello!
>> Flavio raised a very difficult and important question, and I think that
>> we,
>> as community members, should decide what to do with Glance next.
> Hi Mike,
> I will try to state my subjective opinion. I was involved in the Glance
>> project for almost three years and studied it fairly plank. I believe that
>> the main problem is that the project was designed extremely poorly. Glance
>> does not have many tasks to solve, but nevertheless, there are a lot of
>> Java design patterns used (factory of factories, visitors, proxy and other
>> things that are unnecessary in this case). All this leads to absolutely
>> sad
>> consequences, when in order to add an image tag over 180 objects of
>> different classes are created, the code execution passes through more than
>> 25 locations with a number of callbacks 3 times. So I can say that the
>> code
>> base is artificially over-complicated and incredibly inflated.
>> The next problem is that over the years the code has grown by a number of
>> workarounds, which make it difficult to implement new changes - any change
>> leads to something breaking down somewhere else. In the long run, we get a
>> lot of pain associated with race conditions, hard-to-recover heisenbugs
>> and
>> other horrors of programmer's life. It is difficult to talk about
>> attracting new developers, because the developing of the code in such
>> conditions is mentally exhausting.
> I don't disagree on this. The code base *is* over-engineered in many areas.
> However, I don't think this is a good reason to just throw the entire
> project
> away. With enough time and contributions, the code could be refactored.
> We can continue to deny the obvious, saying that Glance simply needs people
>> and everything will be wonderful. But unfortunately this is not so - we
>> should admit that it is simply not profitable to engage in further
>> development. I suggest thinking about moving the current code base into a
>> support mode and starting to develop an alternative (which I have been
>> doing for the past year and a half).
>> If you are allergic to the word "artifacts", do not read the following
>> paragraph:
>> We are actively developing the Glare project, which offers a universal
>> catalog of various binary data along with its metadata - at the moment the
>> catalog supports the storage of images of virtual machines and has feature
>> parity with Glance. The service is used in production by Nokia, and it was
>> thoroughly tested at various settings. Next week we plan to release the
>> first stable version and begin the integration with various projects of
>> OpenStack: Mistral and Vitrage in the first place.
>> As a solution, I can propose to implement an additional API to Glare,
>> which
>> would correspond to OpenStack Image API v2 and test that OpenStack is able
>> to work on its basis. After that, leave Glance at rest and start
>> developing
>> Glare as a universal catalog of binary data for OpenStack.
> Could you please elaborate more on why you think switching code bases is
> going
> to solve the current problem? In your email you talked about Glance's
> over-engineered code as being the thing driving people away and while I
> disagree
> with that statement, I'm wondering whether you really think that's the
> motivation or there's something else.
> Let's not talk about proxy API's or ways we would migrate users. I'd like
> to
> understand why *you* (or others) might think that a complete change of
> projects
> is a good solution to this problem.
> Ultimatedly, I believe Glance, in addition to not being the "sexiest"
> project in
> OpenStack, is taking the hit of the recent lay-offs, which it kinda
> managed to
> avoid last year.
> Flavio
> --
> @flaper87
> Flavio Percoco
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170612/1d290246/attachment-0001.html>

More information about the OpenStack-dev mailing list