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
signature.asc
Description: PGP signature
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev