<div dir="ltr">Patrick, I had an opportunity to take just a quick look on Haizea project (only ideas of it and some common things). Actually we had not so much time to investigate it in better way, so we'll do it this week. </div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 13, 2013 at 5:50 PM, Patrick Petit <span dir="ltr"><<a href="mailto:patrick.petit@bull.net" target="_blank">patrick.petit@bull.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Dina,<br>
Sounds great! Speaking on behalf of Francois feel free to proceed
with points below. I don't think he would have issues with that.
We'll close the loop when he returns. BTW, did you get a chance to
take a look at Haizea's design and implementation?<br>
Thanks<br>
Patrick <br><div><div class="h5">
On 8/13/13 3:08 PM, Dina Belova wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">
<p style="margin:0px;font-family:Helvetica">Patrick, we are
really glad we've found the way to deal with both use cases.</p>
<p style="margin:0px;font-family:Helvetica;min-height:17px"><br>
</p>
<p style="margin:0px;font-family:Helvetica">As for your patches,
that are on review and were already merged, we are thinking
about the following actions to commit:</p>
<p style="margin:0px;font-family:Helvetica;min-height:17px"><br>
</p>
<p style="margin:0px;font-family:Helvetica">1) Oslo was merged,
but it is a little bit old verdant (with setup and version
module, that are not really used now because of new per
project). So we (Mirantis) can update it as a first step.</p>
</div>
</blockquote>
<blockquote type="cite">
<div dir="ltr">
<p style="margin:0px;font-family:Helvetica">2) We need to
implement comfortable to use DB layer to allow using of
different DB types (SQL and NoSQL as well), so that's the
second step. Here we'll also create new abstractions like
lease and physical or virtual reservations (I think we can
implement it really before end of August).</p>
<p style="margin:0px;font-family:Helvetica;min-height:17px"><br>
</p>
<p style="margin:0px;font-family:Helvetica">3) After that we'll
have the opportunity to modify Francois' patches for the
physical hosts reservation in the way to be a part of our new
common vision together.</p>
<p style="margin:0px;font-family:Helvetica">
<br>
</p>
<p style="margin:0px;font-family:Helvetica">Thank you.</p>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Tue, Aug 13, 2013 at 4:23 PM,
Patrick Petit <span dir="ltr"><<a href="mailto:patrick.petit@bull.net" target="_blank">patrick.petit@bull.net</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Nikolay,<br>
Please see comments inline.<br>
Thanks<br>
Patrick
<div><br>
On 8/12/13 5:28 PM, Nikolay Starodubtsev wrote:<br>
</div>
</div>
<div>
<blockquote type="cite">
<div dir="ltr"><span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">Hi,
again!</span></p>
<br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">Partick,
I’ll try to explain why do we belive in some
base actions like instance starting/deleting
in Climate. We are thinking about the
following workflow (that will be quite
comfortable and user friendly, and now we
have more than one customer who really want
it):</span></p>
<br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">1)
User goes to the OpenStack dashboard and
asks Heat to reserve several stacks.</span></p>
<br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">2)
Heat goes to the Climate and creates all
needed leases. Also Heat reserves all
resources for these stacks.</span></p>
<br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">3)
When time comes, user goes to the OpenStack
cloud and here we think he wants to see
already working stacks (ideal version) or
(at least) already started. If no, user will
have to go to the Dashboard and wake up all
the stacks he or she reserved. This means
several actions, that may be done for the
user automatically, because it will be
needed to do them no matter what is the aim
for these stacks - if user reserves them, he
/ she needs them.</span></p>
<br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">We
understand, that there are situations when
these actions may be done by some other
system (like some hypothetical Jenkins). But
if we speak about users, this will be
useful. We also understand that this default
way of behavior should be implemented in
some kind of long term life cycle management
system (which is not Heat), but we have no
one in the OpenStack now. Because the best
may to implement it is to use Convection,
that is only proposal now... </span></p>
<br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">That’s
why we think that for the behavior like
“user just reserves resources and then does
anything he / she wants to” physical leases
are better variant, when user may reserve
several nodes and use it in different ways.
For the virtual reservations it will be
better to start / delete them as a default
way (for something unusual Heat may be used
and modified).</span></p>
</span></div>
</blockquote>
</div>
Okay. So let's bootstrap it this way then. There will be
two different ways the reservation service will deal
with reservations depending on whether its physical or
virtual. All things being equal, future will tell how
things settle. We will focus on the physical host
reservation side of things. It think having this
contradictory debate helped to understand each others
use cases and requirements that the initial design has
to cope with. Francois who already submitted a bunch of
code for review will not return from vacation until the
end of August. So things on our side are a little on the
standby until he returns but it might help if you could
take a look at it. I suggest you start with your vision
and we will iterate from there. Is that okay with you?
<div>
<div><br>
<br>
<blockquote type="cite">
<div dir="ltr"><span> <br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">Do
you think that this workflow is useful too
and if so can you propose another
implementation variant for it?</span></p>
<br>
<span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"></span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial">Thank
you. </span></p>
<div><span style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent;font-family:Arial"><br>
</span></div>
</span></div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote"> On Mon, Aug 12, 2013
at 1:55 PM, Patrick Petit <span dir="ltr"><<a href="mailto:patrick.petit@bull.net" target="_blank">patrick.petit@bull.net</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>
<div>On 8/9/13 3:05 PM, Nikolay
Starodubtsev wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hello, Patrick! <br>
<br>
We have several reasons to think
that for the virtual resources this
possibility is interesting. If we
speak about physical resources, user
may use them in the different ways,
that's why it is impossible to
include base actions with them to
the reservation service. But
speaking about virtual reservations,
let's imagine user wants to reserve
virtual machine. He knows everything
about it - its parameters, flavor
and time to be leased for. Really,
in this case user wants to have
already working (or at least
starting to work) reserved virtual
machine and it would be great to
include this opportunity to the
reservation service. <br>
</div>
</blockquote>
<blockquote type="cite">
<div dir="ltr">We are thinking about
base actions for the virtual
reservations that will be supported
by Climate, like boot/delete for
instance, create/delete for volume
and create/delete for the stacks.
The same will be with volumes, IPs,
etc. As for more complicated
behaviour, it may be implemented in
Heat. This will make reservations
simpler to use for the end users. <br>
<br>
Don't you think so? <br>
</div>
</blockquote>
</div>
Well yes and and no. It really depends
upon what you put behind those lease
actions. The view I am trying to sustain
is separation of duties to keep the
service simple, ubiquitous and non
prescriptive of a certain kind of usage
pattern. In other words, keep Climate for
reservation of capacity (physical or
virtual), Heat for orchestration, and so
forth. ... Consider for example the case
of reservation as a non technical act but
rather as a business enabler for
wholesales activities. Don't need, and
probably don't want to start or stop any
resource there. I do not deny that there
are cases where it is desirable but then
how reservations are used and composed
together at the end of the day mainly
depends on exogenous factors which
couldn't be anticipated because they are
driven by the business.<br>
<br>
And so, rather than coupling reservations
with wired resource instantiation actions,
I would rather couple them with
notifications that everybody can subscribe
to (as opposed to the Resource Manager
only) which would let users decide what to
do with the life-cycle events. The what to
do may very well be what you advocate i.e.
start a full stack of reserved and
interwoven resources, or at the other end
of the spectrum, do nothing at all. This
approach IMO would keep things more open.
<br>
<div>
<blockquote type="cite">
<div dir="ltr"> <br>
P.S. Also we remember about the
problem you mentioned some letters
ago - how to guarantee that user
will have already working and
prepared host / VM / stack / etc. by
the time lease actually starts, no
just "lease begins and preparing
process begins too". We are working
on it now.<br>
</div>
</blockquote>
</div>
Yes. I think I was explicitly referring to
hosts instantiation also because there is
no support of that in Nova API. Climate
should support some kind of "reservation
kick-in heads-up" notification whereby the
provider and/or some automated
provisioning tools could do the heavy
lifting work of bringing physical hosts
online before a hosts reservation lease
starts. I think it doesn't have to be
rocket-science either. It's probably
sufficient to make Climate fire up a
notification that say "Lease starting in x
seconds", x being an offset value against
T0 that could be defined by the operator
based on heuristics. A dedicated (e.g.
IPMI) module of the Resource Manager for
hosts reservation would subscribe as
listener to those events. <br>
<div>
<blockquote type="cite">
<div dir="ltr"> </div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Thu, Aug
8, 2013 at 8:18 PM, Patrick Petit
<span dir="ltr"><<a href="mailto:patrick.petit@bull.net" target="_blank">patrick.petit@bull.net</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Nikolay,<br>
<br>
Relying on Heat for
orchestration is obviously
the right thing to do. But
there is still something in
your design approach that I
am having difficulties to
comprehend since the
beginning. Why do you keep
thinking that orchestration
and reservation should be
treated together? That's
adding unnecessary
complexity IMHO. I just
don't get it. Wouldn't it be
much simpler and sufficient
to say that there are pools
of reserved resources you
create through the
reservation service. Those
pools could be of different
types i.e. host, instance,
volume, network,.., whatever
if that's really needed.
Those pools are identified
by a unique id that you pass
along when the resource is
created. That's it. You
know, the AWS reservation
service doesn't even care
about referencing a
reservation when an instance
is created. The association
between the two just happens
behind the scene. That would
work in all scenarios,
manual, automatic,
whatever... So, why do you
care so much about this in a
first place?<br>
Thanks, <br>
Patrick
<div>
<div><br>
On 8/7/13 3:35 PM,
Nikolay Starodubtsev
wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">
<div>Patrick,
responding to your
comments:</div>
<div><br>
</div>
<div>1) Dina mentioned
"start
automatically" and
"start manually"
only as examples of
how these politics
may look like. It
doesn't seem to be a
correct approach to
put orchestration
functionality (that
belongs to Heat) in
Climate. That's why
now we can implement
the basics like
starting Heat stack,
and for more complex
actions we may later
utilize something
like Convection
(Task-as-a-Service)
project.</div>
</div>
</blockquote>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>2) If we agree
that Heat is the
main consumer of
Reservation-as-a-Service,
we can agree that
lease may be created
according to one of
the following
scenarions (but not
multiple):</div>
<div>- a Heat stack
(with requirements
to stack's contents)
as a resource to be
reserved</div>
<div>- some amount of
physical hosts
(random ones or
filtered based on
certain
characteristics). </div>
<div>- some amount of
individual VMs OR
Volumes OR IPs </div>
<div><br>
</div>
<div>3) Heat might be
the main consumer of
virtual
reservations. If
not, Heat will
require development
efforts in order to
support:</div>
<div>- reservation of
a stack </div>
<div>- waking up a
reserved stack</div>
<div>- performing all
the usual
orchestration work</div>
<div><br>
</div>
<div>We will support
reservation of
individual
instance/volume/ IP
etc, but the use
case with "giving
user already working
group of connected
VMs, volumes,
networks" seems to
be the most
interesting one. </div>
<div>As for Heat
autoscaling,
reservation of the
maximum instances
set in the Heat
template (not the
minimum value) has
to be implemented in
Heat. Some open
questions remain
though - like
updating of Heat
stack when user
changes the template
to support higher
max number of
running instances</div>
<div><br>
</div>
<div>4) As a user, I
would of course want
to have it already
working, running any
configured
hosts/stacks/etc by
the time lease
starts. But in
reality we can't
predict how much
time the preparation
process should take
for every single use
case. So if you have
an idea how this
should be
implemented, it
would be great you
share your opinion.</div>
</div>
</blockquote>
</div>
</div>
<blockquote type="cite">
<div dir="ltr"> </div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
OpenStack-dev mailing list
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<div style="color:rgb(34,34,34);font-family:arial,sans-serif">
<p style="margin:0px;font-family:Helvetica">
Best regards,</p>
<p style="margin:0px;font-family:Helvetica">Dina Belova</p>
<p style="margin:0px;font-family:Helvetica">Software
Engineer</p>
<p style="margin:0px;font-family:Helvetica">Mirantis Inc.</p>
</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
OpenStack-dev mailing list
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
</blockquote>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888"><pre cols="72">--
Patrick Petit
Cloud Computing Principal Architect, Innovative Products
Bull, Architect of an Open World TM
Tél : +33 (0)4 76 29 70 31
Mobile : +33 (0)6 85 22 06 39
<a href="http://www.bull.com" target="_blank">http://www.bull.com</a></pre>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><p style="font-size:small;margin:0px;font-family:Helvetica">
Best regards,</p><p style="font-size:small;margin:0px;font-family:Helvetica">Dina Belova</p><p style="font-size:small;margin:0px;font-family:Helvetica">Software Engineer</p><p style="font-size:small;margin:0px;font-family:Helvetica">
Mirantis Inc.</p></div></div>
</div>