<font size=2 face="sans-serif">Hello, All.</font>
<br>
<br><font size=2 face="sans-serif">Although quite new to OpenStack, we
are thinking about enhancing the simulation/fake environment available
for OpenStack development and testing.</font>
<br>
<br><font size=2 face="sans-serif">Currently, OpenStack has an option to
use a fake driver which enables testing of the management of very many
instances without actually creating any of these instances. This has been
a significant contribution to OpenStack quality (see </font><a href="http://dague.net/2013/10/21/openstack-havana-the-quality-perspective/"><font size=2 color=blue face="sans-serif"><u>http://dague.net/2013/10/21/openstack-havana-the-quality-perspective/</u></font></a><font size=2 face="sans-serif">).</font>
<br>
<br><font size=2 face="sans-serif">Apparently, the current implementation
of fake drivers allows creating instances regardless of hypervisor resources.
This is useful in some test scenarios, but may not exercise enough code
in others.</font>
<br>
<br><font size=2 face="sans-serif">There are several directions in which
the fake environment can be expanded. We'd like to get the community's
feedback on them.</font>
<ol>
<li value=1><font size=2 face="sans-serif">Enable and control fake hypervisors:
add convenient interfaces to add and remove hypervisors and define their
properties. Allow testing that takes into account hypervisors' fake resources.</font>
<li value=2><font size=2 face="sans-serif">Enable ping and ssh to the fake
entities. We can use honeyd (</font><font size=3 color=blue><u>en.wikipedia.org/wiki/Honeyd</u></font><font size=2 face="sans-serif">)
to intercept IP operations, and fake the results. ssh would be limited
- we'd like to know what function is essential.</font>
<li value=3><font size=2 face="sans-serif">Enhance the fake entities to
simulate metrics such as boot time, shutdown time, response time, CPU usage,
etc.</font>
<li value=4><font size=2 face="sans-serif">Add error injection capabilities
- crash, delay, ..?</font>
<li value=5><font size=2 face="sans-serif">Persist the state of the fake
cloud, so that you can test what happens if your management crashes and
you restart it, or an alternative. This includes finding a way to let the
fake entities register on to the cloud.</font>
<li value=6><font size=2 face="sans-serif">Create fake entities that are
outside of OpenStack, <i>i.e., </i>communication with them is really through
the network, with real interfaces. One direction for implementing that
may be taking Qemu and replacing all its innards.</font></ol>
<br><font size=2 face="sans-serif">The environment should support five
major functions:</font>
<ol>
<li value=1><font size=2 face="sans-serif">Setup: define the initial configuration
of the fake cloud, including adding and removing physical resources</font>
<li value=2><font size=2 face="sans-serif">Execution: invoke operations
such as operations on instances</font>
<li value=3><font size=2 face="sans-serif">Synchronization: invoke operations
when conditions are observed</font>
<li value=4><font size=2 face="sans-serif">Injection: inject errors, including
delays</font>
<li value=5><font size=2 face="sans-serif">Verification: verify that the
cloud is in the expected state</font></ol>
<br><font size=2 face="sans-serif">Additionally, recreating scenarios should
be possible whenever possible.</font>
<br>
<br><font size=2 face="sans-serif">The main use cases we are aware of are:</font>
<ol>
<li value=1><font size=2 face="sans-serif">Developer testing - is DevStack
already enough?</font>
<li value=2><font size=2 face="sans-serif">Regression testing</font>
<li value=3><font size=2 face="sans-serif">Stress testing (for some components)</font>
<li value=4><font size=2 face="sans-serif">Bad path testing</font>
<li value=5><font size=2 face="sans-serif">Concurrency testing (we could
make sure various operations occur in different interleavings)</font>
<li value=6><font size=2 face="sans-serif">Recovery testing</font></ol>
<br><font size=2 face="sans-serif">We'd like to learn more on OpenStack
pain points from these perspectives.<br>
</font>
<br><font size=2 face="sans-serif">Any thoughts? Advice?</font>
<br>
<br><font size=2 face="Arial">Donny and Aviad</font>
<p><font size=2 face="Arial">--------------------------------------------------------------------------------------------------------------------------------</font>
<p><font size=2 face="Arial">Tel: </font><font size=2 color=blue face="Arial">+972-48-296-284</font><font size=2 face="Arial">,
Cell: </font><font size=2 color=blue face="Arial">+972-546-976-284</font><font size=2 face="Arial">,
Fax: </font><font size=2 color=blue face="Arial">+972-48-296-113</font><font size=2 face="Arial">,
Email: </font><a href=mailto:aviad@il.ibm.com><font size=2 color=blue face="Arial"><u>aviad@il.ibm.com</u></font></a>
<p><font size=2 color=#800080 face="Comic Sans MS"> </font>
<p><font size=2 color=#800080 face="Comic Sans MS">Prediction is very difficult,
especially if it's about the future. -- Niels Bohr</font>
<p>