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

Flavio Percoco flavio at redhat.com
Mon Jun 12 19:20:07 UTC 2017

On 12/06/17 16:56 +0300, Mikhail Fedosin wrote:
>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
>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 Percoco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 862 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170612/25921c3e/attachment.sig>

More information about the OpenStack-dev mailing list