<div dir="ltr"><div class="" id="magicdomid95"></div><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 &quot;All</span><span class="">-</span><span class="">in</span><span class="">-</span><span class="">one&quot; 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&#39;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="magicdomid1652"></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 &quot;things&quot; 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 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 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. </span></div><div class="" id="magicdomid6693"><br></div><div class="" id="magicdomid5896"><br></div><div class="" id="magicdomid5895"><br></div><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 &amp; Stefan</span></div></div>