<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=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:SimSun;
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:"\@SimSun";
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:11.0pt;
font-family:"Calibri","sans-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;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></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="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">At the last team meeting, we made an important decision about the design. I would like to summarize it in this email so that everyone will be on the same page.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Short version:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">* Zun aims to build an unified API layers to interface with various Container Orchestration Engines (COEs).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">* Zun will provide a reference implementation of the API.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Long version:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">The key objective of the Zun project is to bring various container technologies to OpenStack. Such container technologies includes Container runtimes (i.e. Docker, Rkt, Clear Container) and COEs (i.e. Kubernetes,
Docker Swarm). The main obstacle is that these two groups of technologies look very different from each other, and it is hard to abstract all of them into a common set of API. Generally speaking, COEs look relatively high-level and focus on managing containerized
applications, which are typically consistent of a set of containers, its inter-connections, its load balancers, and more. In comparison, container runtimes looks relatively simple and they focus on managing a single container. It doesn’t seem to make sense
to group them all together. A potential solution is to drop one group of technologies and focus on the other. However, we decided to choose a better solution, which is to separate the support of these two group of technologies.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">First, we agreed to have Zun deeply integrate with COEs. In particular, Zun will build an unified API to abstract different COEs. The built API should expose the common feature set among prevailing COEs, such
as deploying an application to one or multiple containers, scaling the application, setup a load-balancer for the application, upgrade the application, etc. Second, we agreed to develop a reference implementation of the Zun API. The reference implementation
will deeply integrate with various container runtimes, and focus on the basic of managing a single container and integrating containers with existing OpenStack primitives (i.e. networking, storage, authentication/authorization, monitoring, quota management,
multi-tenancy, etc.).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">The details of the discussion can be found in this etherpad:
<a href="https://etherpad.openstack.org/p/zun-architecture-decisions">https://etherpad.openstack.org/p/zun-architecture-decisions</a> . Please feel free to reply if you have any comment or anything is unclear.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">[1] <a href="https://etherpad.openstack.org/p/zun-architecture-decisions">
https://etherpad.openstack.org/p/zun-architecture-decisions</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Best regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Hongbin<o:p></o:p></span></p>
</div>
</body>
</html>