<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.def
        {mso-style-name:def;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:537399083;
        mso-list-template-ids:1370027134;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1115179662;
        mso-list-template-ids:-1175014690;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">I have register a bp about this :
<a href="https://blueprints.launchpad.net/heat/+spec/implement-autoscalinggroup-availabilityzones">
https://blueprints.launchpad.net/heat/+spec/implement-autoscalinggroup-availabilityzones</a><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0cm;text-indent:-18.0pt;mso-list:l1 level1 lfo1">
<![if !supportLists]><span lang="EN-US" style="font-size:10.0pt;font-family:Symbol;color:#313131"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#313131"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:0cm;text-indent:-18.0pt;mso-list:l1 level1 lfo1">
<![if !supportLists]><span lang="EN-US" style="font-size:10.0pt;font-family:Symbol;color:#313131"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">And I am thinking how to implement this recently.</span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#313131"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0cm;text-indent:-18.0pt;mso-list:l1 level1 lfo1">
<![if !supportLists]><span lang="EN-US" style="font-size:10.0pt;font-family:Symbol;color:#313131"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#313131"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:0cm;text-indent:-18.0pt;mso-list:l1 level1 lfo1">
<![if !supportLists]><span lang="EN-US" style="font-size:10.0pt;font-family:Symbol;color:#313131"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">According to AWS autoscaling implementation  “attempts to distribute instances evenly between the Availability Zones that are enabled
 for your Auto Scaling group. </span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#313131"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0cm;text-indent:-18.0pt;mso-list:l1 level1 lfo1">
<![if !supportLists]><span lang="EN-US" style="font-size:10.0pt;font-family:Symbol;color:#313131"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Auto Scaling does this by attempting to launch new instances in the Availability Zone with the fewest instances. If the attempt fails,
 however, Auto Scaling will attempt to launch in other zones until it succeeds.”</span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#313131"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">But there is a doubt about the “fewest instance”, .e.g
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#313131"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">There are two azs,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">   Az1: has two instances<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">   Az2: has three instances<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0cm;text-indent:-18.0pt;mso-list:l0 level1 lfo2">
<![if !supportLists]><span lang="EN-US" style="font-size:10.0pt;font-family:Symbol;color:#313131"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">   And then to create a asg with 4 instances, I think we should create two instances respectively in az1 and az2, right? Now if need
 to extend to 5 instances for the asg, which az to lauch new instance?</span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#313131"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">If you
<a href="app:ds:interested"><span style="color:#1F497D;text-decoration:none">interested</span></a>
<a href="app:ds:in"><span style="color:#1F497D;text-decoration:none">in</span></a> this bp, I think we can discuss this</span><span lang="EN-US" style="font-size:10.5pt;font-family:Wingdings;color:#1F497D">J</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:宋体">发件人<span lang="EN-US">:</span></span></b><span lang="EN-US" style="font-size:10.0pt;font-family:宋体"> Mike Spreitzer [mailto:mspreitz@us.ibm.com]
<br>
</span><b><span style="font-size:10.0pt;font-family:宋体">发送时间<span lang="EN-US">:</span></span></b><span lang="EN-US" style="font-size:10.0pt;font-family:宋体"> 2014</span><span style="font-size:10.0pt;font-family:宋体">年<span lang="EN-US">7</span>月<span lang="EN-US">2</span>日<span lang="EN-US">
 4:23<br>
</span><b>收件人<span lang="EN-US">:</span></b><span lang="EN-US"> OpenStack Development Mailing List<br>
</span><b>主题<span lang="EN-US">:</span></b><span lang="EN-US"> [openstack-dev] [heat] autoscaling across regions and availability zones<o:p></o:p></span></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">An AWS autoscaling group can span multiple availability zones in one region.  What is the thinking about how to get analogous functionality in OpenStack?</span><span lang="EN-US">
<br>
<br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">Warmup question: what is the thinking about how to get the levels of isolation seen between AWS regions when using OpenStack?  What is the thinking about how to get the level
 of isolation seen between AWS AZs in the same AWS Region when using OpenStack?  Do we use OpenStack Region and AZ, respectively?  Do we believe that OpenStack AZs can really be as independent as we want them (note that this is phrased to not assume we only
 want as much isolation as AWS provides --- they have had high profile outages due to lack of isolation between AZs in a region)?</span><span lang="EN-US">
<br>
<br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">I am going to assume that the answer to the question about ASG spanning involves spanning OpenStack regions and/or AZs.  In the case of spanning AZs, Heat has already got one
 critical piece: the OS::Heat::InstanceGroup and AWS::AutoScaling::AutoScalingGroup types of resources take a list of AZs as an optional parameter.  Presumably all four kinds of scaling group (i.e., also OS::Heat::AutoScalingGroup and OS::Heat::ResourceGroup)
 should have such a parameter.  We would need to change the code that generates the template for the nested stack that is the group, so that it spreads the members across the AZs in a way that is as balanced as is possible at the time.</span><span lang="EN-US">
<br>
<br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">Currently, a stack does not have an AZ.  That makes the case of an OS::Heat::AutoScalingGroup whose members are nested stacks interesting --- how does one of those nested stacks
 get into the right AZ?  And what does that mean, anyway?  The meaning would have to be left up to the template author.  But he needs something he can write in his member template to reference the desired AZ for the member stack.  I suppose we could stipulate
 that if the member template has a parameter named "availability_zone" and typed "string" then the scaling group takes care of providing the right value to that parameter.</span><span lang="EN-US">
<br>
<br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">To spread across regions adds two things.  First, all four kinds of scaling group would need the option to be given a list of regions instead of a list of AZs.  More likely,
 a list of contexts as defined in </span><span lang="EN-US"><a href="https://review.openstack.org/#/c/53313/"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">https://review.openstack.org/#/c/53313/</span></a></span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">
 --- that would make this handle multi-cloud as well as multi-region.  The other thing this adds is a concern for context health.  It is not enough to ask Ceilometer to monitor member health --- in multi-region or multi-cloud you also have to worry about the
 possibility that Ceilometer itself goes away.  It would have to be the scaling group's responsibility to monitor for context health, and react properly to failure of a whole context.</span><span lang="EN-US">
<br>
<br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">Does this sound about right?  If so, I could draft a spec.</span><span lang="EN-US">
<br>
<br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">Thanks,<br>
Mike</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
</body>
</html>