<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hi Stefan and Heiko, thanks for sharing
your vision. A few questions/remarks inline...<br>
<br>
On 2016-04-22 18:35, Stefan Negrea wrote:<br>
</div>
<blockquote
cite="mid:CADt-fV_iVN9x+cUKGWuKW5gN8eRx+66Z1Vy7RiB+5v6MG6o9ag@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="" id="magicdomid107"><span class="">Hello Everybody,</span></div>
<div class="" id="magicdomid109"><br>
</div>
<div class="" id="magicdomid2766"><span class="">With a growing
community and an increasingly large number of sub-projects,
it is the perfect time to rethink the packaging of Hawkular.
This email is a blueprint for changes to come to Hawkular as
well as establish some patterns for futures decisions.</span></div>
<div class="" id="magicdomid711"><br>
</div>
<div class="" id="magicdomid1659"><br>
</div>
<div class="" id="magicdomid246"><br>
</div>
<div class="" id="magicdomid4"><span class=""><b>Motivation</b></span></div>
<div class="" id="magicdomid5"><br>
</div>
<div class="" id="magicdomid6344"><span class="">So far we have
created Hawkular "All</span><span class="">-</span><span
class="">in</span><span class="">-</span><span class="">one"
releases that contain everything</span><span class="">,</span><span
class=""> Hawkular server components, UI, the agent and also
embedded versions of Cassandra and KeyCloak. </span><span
class="">It's certainly the case that for community we w</span><span
class="">ill</span><span class=""> still deliver a fully
featured all-in-one package</span><span class="">. We also </span><span
class="">need to consider separate distributions for other
projects that integrate with Hawkular.</span></div>
<div class="" id="magicdomid1038"><br>
</div>
<div class="" id="magicdomid6393"><span class="">The recent
effort to integrate with </span><span class="">ManageIQ </span><span
class="">comes </span><span class="">with </span><span
class="">its own set of requirements for services</span><span
class="">. Not all of the Hawkular components are needed</span><span
class=""> and required components </span><span class="">may</span><span
class=""> be configured differently</span><span class="">.</span><span
class=""> </span><span class="">For example the UI is
supplied from within ManageIQ side and Hawkular is to be run
headless. Other components like Cassandra will not run
embedded, so there is no need to supply it in an embedded </span><span
class="">package</span><span class="">. KeyCloak will
probably not be need</span><span class="">ed</span><span
class=""> because we only have one technical user that</span><span
class=""> will access</span><span class=""> Hawkular</span><span
class=""> services.</span></div>
<div class="" id="magicdomid14"><br>
</div>
<div class="" id="magicdomid23"><br>
</div>
<div class="" id="magicdomid24"><br>
</div>
<div class="" id="magicdomid25"><span class=""><b>Components /
Services</b></span></div>
<div class="" id="magicdomid1268"><br>
</div>
<div class="" id="magicdomid5978"><span class="">Here a list of
projects that are part of the Hawkular organization:<br>
</span></div>
<div class="" id="magicdomid2685">
<ul class="">
<li><span class="">Metrics - scalable, asynchronous, multi
tenant, long term metrics storage engine </span></li>
</ul>
</div>
<div class="" id="magicdomid1535">
<ul class="">
<li><span class="">Inventory - registry of "things" that
contains info about your applications, servers, etc. and
also keeps track of their relationships with each other</span></li>
</ul>
</div>
<div class="" id="magicdomid1676">
<ul class="">
<li><span class="">Alerts - alerting engine that allows
trigger definitions to evaluate incoming data, generate
alerts (or events), and react with flexible actions ond
lifecycle management</span></li>
</ul>
</div>
<div class="" id="magicdomid1679">
<ul class="">
<li><span class="">CommandGW</span><span class=""> -
messaging framework for communicating between components</span></li>
</ul>
</div>
<div class="" id="magicdomid1689">
<ul class="">
<li><span class="">Bus - messaging framework for
communicating between components</span></li>
</ul>
</div>
</div>
</blockquote>
Maybe Nest should be listed here. AFAIK, Bus is always consumed
together with Nest, hence the one can replace "Bus" with "Nest+Bus"
in your original proposal and I'll be satisfied :)<br>
<blockquote
cite="mid:CADt-fV_iVN9x+cUKGWuKW5gN8eRx+66Z1Vy7RiB+5v6MG6o9ag@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="" id="magicdomid1675">
<ul class="">
<li><span class="">BTM - provide capabilities to monitor the
flow of a business transaction instance and enable
performance analysis of the individual components that
make up an application</span></li>
</ul>
</div>
<div class="" id="magicdomid1677">
<ul class="">
<li><span class="">Agent - used to monitor WildFly and
related projects</span></li>
</ul>
</div>
<div class="" id="magicdomid1648">
<ul class="">
<li><span class="">Accounts - is the user/organization
module that provides authentication, authorization and
configuration for accounts</span></li>
</ul>
</div>
<div class="" id="magicdomid1697">
<ul class="">
<li><span class="">Data Mining - alert predictions based on
time series data</span></li>
</ul>
</div>
<div class="" id="magicdomid1836">
<ul class="">
<li><span class="">Hawkular UI</span></li>
</ul>
</div>
<div class="" id="magicdomid1718">
<ul class="">
<li><span class="">Hawkular Charts - Angular Directives for
Metrics Visualization</span></li>
</ul>
</div>
<div class="" id="magicdomid1785">
<ul class="">
<li><span class="">Embedded Cassandra - embedded Cassandra
server specifically configured for project use</span></li>
</ul>
</div>
<div class="" id="magicdomid1660"><br>
</div>
<div class="" id="magicdomid6100"><span class="">T</span><span
class="">here are</span><span class=""> also</span><span
class=""> various clients like the Ruby Gem or the Android
client and supporting infrastructure projects. Those are not
part of this discussion.</span></div>
<div class="" id="magicdomid6101"><br>
</div>
<div class="" id="magicdomid6102"><br>
</div>
<div class="" id="magicdomid65"><br>
</div>
<div class="" id="magicdomid7156"><span class=""><b>Options for
</b></span><span class=""><b>P</b></span><span class=""><b>ackages</b></span></div>
<div class="" id="magicdomid67"><br>
</div>
<div class="" id="magicdomid3483"><span class="">The
distribution packages need to follow product integrations
with a special distribution for community. The community
package could potentially include every single package from
the Hawkular organization. However, the rest of the packages
need to be created along the lines of product use and
include only the minimal amount of components, services and
third-party libraries to satisfy integration requirements. </span></div>
<div class="" id="magicdomid3178"><br>
</div>
<div class="" id="magicdomid6123"><span class="">The
distributions should be seen as funnels, the Hawkular
community creates a set of sub-projects that then get
combined into few distributions that in turn get consumed.
Following this analogy, the number of packaged distributions
should also be kept to a minimum possible. For now we
settled on 3 packages detailed below, all will be available
for download on JBoss.org.</span></div>
<div class="" id="magicdomid69"><br>
</div>
<div class="" id="magicdomid70"><span class="">With the
exception of the community distribution:</span></div>
<div class="" id="magicdomid71"><span class="">1) the QA team
will be engaged in testing the package</span></div>
<div class="" id="magicdomid3907"><span class="">2) the
sub-components wil</span><span class="">l</span><span
class=""> strive to be aligned in terms of tech stack and
maturity</span></div>
<div class="" id="magicdomid6176"><span class="">3) an automated
test suite is required for packages that combine more than
one project</span></div>
<div class="" id="magicdomid74"><br>
</div>
<div class="" id="magicdomid2684"><span class=""><b>1. Hawkular
- Community Distribution</b></span></div>
<div class="" id="magicdomid77"><br>
</div>
<div class="" id="magicdomid6616"><span class="">Will include
every single service listed above. The UI is a requirement
because some services are very hard to understand or use
without a friendly interface. The UI will be a community
only effort at this point since there are no plans for
productization. </span></div>
<div class="" id="magicdomid3911"><br>
</div>
<div class="" id="magicdomid6629"><span class="">The current
Hawkular repository will be adjusted to reflect this new
mission; the current UI will be moved to a separate
repository. </span><span class="">This package builds on
Hawkular Core</span><span class=""> S</span><span class="">ervices
as described next</span><span class="">.</span></div>
<div class="" id="magicdomid79"><br>
</div>
<div class="" id="magicdomid6562"><span class=""><b>2. Hawkular
</b></span><span class=""><b>Core</b></span><span class=""><b>
S</b></span><span class=""><b>ervices</b></span></div>
<div class="" id="magicdomid81"><br>
</div>
<div class="" id="magicdomid6692"><span class="">Geared towards
MiQ integration, it will include only components needed for
the MiQ provider. This package uses the Metrics Distribution
as described below.</span></div>
<div class="" id="magicdomid2120"><br>
</div>
<div class="" id="magicdomid6523"><span class="">Components
included: Metrics, Alerts, Inventory, CommandGW, and Bus</span></div>
<div class="" id="magicdomid2564"><br>
</div>
<div class="" id="magicdomid2655"><span class="">Reasons for
some exclusions: K</span><span class="">eycloak</span><span
class=""> (different security model), E</span><span class="">mbedded
Cassandra </span><span class="">(only full C* deployments
will be supported), and</span><span class=""> no </span><span
class="">Hawkular </span><span class="">UI </span><span
class="">because it will use a special purpose UI for MiQ.</span></div>
</div>
</blockquote>
You say say something about <span class="">K</span><span class="">eycloak</span><span
class="">, but you do not mention Accounts. I see that </span><span
class="">Accounts 2.x will not be included and I suppose that
Accouns 3.x will perhaps not be needed at all (as follows from the
parallel thread), right?<br>
</span>
<blockquote
cite="mid:CADt-fV_iVN9x+cUKGWuKW5gN8eRx+66Z1Vy7RiB+5v6MG6o9ag@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="" id="magicdomid84"><br>
</div>
<div class="" id="magicdomid6178"><span class=""><b>3. </b></span><span
class=""><b>Metrics</b></span><span class=""><b> D</b></span><span
class=""><b>istribution</b></span></div>
<div class="" id="magicdomid86"><br>
</div>
<div class="" id="magicdomid6655"><span class="">Geared towards
</span><span class="">usage as a pure Time Series </span><span
class="">D</span><span class="">atabase (TSDB) </span><span
class="">and will be exclusively made of </span><span
class="">Hawkular</span><span class=""> Metrics service.</span></div>
<div class="" id="magicdomid6656"><br>
</div>
<div class="" id="magicdomid5897"><br>
</div>
<div class="" id="magicdomid1798"><br>
</div>
<div class="" id="magicdomid2761"><span class=""><b>Expansion
and Contraction</b></span></div>
<div class="" id="magicdomid1829"><br>
</div>
<div class="" id="magicdomid6654"><span class="">Since its
inception Hawkular has been growing by all metrics:
projects, lines of code, binary downloads, contributors,
etc. But uncontrolled increase in some metrics can be
detrimental to the organization. This is especially true for
the number of projects. We will always need new projects to
experiment, but the reverse might be true for mature and
established projects. As the packaging and requirements for
each distribution mature we need to consider the reverse,
merging separate sub-projects. <br>
</span></div>
</div>
</blockquote>
<br>
If we decide that there will be no Accounts 3.x, then Command
Gateway (being quite small and closely related to Bus) can move to
Commons git repository. Command Gateway does not need to depend on
Inventory since Commons 0.6.0.Final. The change was recently merged
to CmdGW.<br>
<br>
Thanks,<br>
<br>
Peter<br>
<br>
<blockquote
cite="mid:CADt-fV_iVN9x+cUKGWuKW5gN8eRx+66Z1Vy7RiB+5v6MG6o9ag@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="" id="magicdomid93"><span class=""><b>Packaging
Format</b></span></div>
<div class="" id="magicdomid1830"><br>
</div>
<div class="" id="magicdomid6778"><span class="">This email did
not touch on the physical packaging formats (rpm, zip, war,
jar) for the 3 distributions. We will follow-up with
additional details in the coming weeks.</span></div>
<div class="" id="magicdomid6328"><br>
</div>
<div class="" id="magicdomid6329"><br>
</div>
<div class="" id="magicdomid7073"><br>
</div>
<div class="" id="magicdomid7072"><span class="">All feedback is
more than welcomed so feel free to reach us (Heiko and
Stefan) directly or reply to this thread.</span></div>
<div class="" id="magicdomid6332"><br>
</div>
<div class="" id="magicdomid6333"><br>
</div>
<div class="" id="magicdomid7121"><br>
</div>
<div class="" id="magicdomid7107"><span class="">Heiko &
Stefan</span></div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
hawkular-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:hawkular-dev@lists.jboss.org">hawkular-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/hawkular-dev">https://lists.jboss.org/mailman/listinfo/hawkular-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>