<div dir="ltr">Hi Matthias,<div><br></div><div>Can we have a discussion about this before it progresses too far.</div><div><br></div><div>I have some fairly serious concerns [1] about the resource requirements needed to run a Kafka deployment in a production environment and am not convinced that putting Kafka into the mix here is the right approach. Are we over complicating push to optimise for the corner cases here? What would a &quot;Starter&quot; deployment look like in terms of resource usage? Would it fit in an OpenShift Online free tier?</div><div><br></div><div>Cheers,</div><div>John.</div><div><br></div><div><br></div><div>[1] <a href="https://docs.confluent.io/current/kafka/deployment.html">https://docs.confluent.io/current/kafka/deployment.html</a></div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><font color="#999999">--</font></div><div><div style="font-size:small"><font color="#999999">John Frizelle</font></div><div style="font-size:small"><font color="#999999">Chief Architect, Red Hat Mobile<br></font><span style="font-family:Helvetica,Verdana,sans-serif"><font color="#999999">Consulting Engineer</font></span><font color="#999999"><br><br></font><div><span style="font-size:12.8000001907349px;color:rgb(153,153,153)">mobile:</span><span style="font-size:12.8000001907349px;color:rgb(153,153,153)"> </span><span style="font-size:12.8000001907349px;color:rgb(153,153,153)"><font face="Tahoma, Arial, Helvetica, sans-serif"><b><a href="tel://+353872901644" target="_blank">+353 87 290 1644</a></b></font></span><br></div><div style="font-size:12.8000001907349px"><span style="font-family:Tahoma,Arial,Helvetica,sans-serif;color:rgb(153,153,153);font-size:12.8000001907349px">twitter:</span><b style="font-family:Tahoma,Arial,Helvetica,sans-serif;color:rgb(153,153,153);font-size:12.8000001907349px"> @johnfriz</b><br></div><font color="#999999" style="font-size:12.8000001907349px"></font><div><font color="#999999">skype: <font face="Tahoma, Arial, Helvetica, sans-serif"><b>john_frizelle</b></font></font></div><div><span style="color:rgb(153,153,153);font-size:12.8000001907349px">mail: </span><font color="#999999" style="color:rgb(17,85,204);font-size:12.8000001907349px"><b><a href="mailto:jfrizell@redhat.com" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">jfrizell@redhat.com</a></b></font></div><div><font color="#999999" style="color:rgb(17,85,204);font-size:12.8000001907349px"><br></font></div><div><br></div><div><img src="cid:1deff70600823b9ebf187fa9e94df6ff10966d4e@zimbra"><font color="#999999" style="color:rgb(17,85,204);font-size:12.8000001907349px"><br></font></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On 7 February 2018 at 18:54, Matthias Wessendorf <span dir="ltr">&lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That said, the HTTP API for device registration and sending should stay compatible </div><div><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 7, 2018 at 7:43 PM, Matthias Wessendorf <span dir="ltr">&lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Question :-) <br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Wed, Feb 7, 2018 at 8:15 AM, Matthias Wessendorf <span dir="ltr">&lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">with the POC for agents done (APNs), I will continue the work, to shrink the &quot;CORE&quot; part of the UPS, using Swarm, JPA, CDI and JAX-RS fractions</div></blockquote><div><br></div></span><div>speaking of the &quot;CORE&quot; part ... I think... the simplified push models will allow us, to also come up w/ a different and simpler data model. </div><div><br></div><div>So... Let&#39;s say the UPS2 would be a bit different (POC in progress), I think the really important bit is that the &quot;important&quot; data (e.g PushApps/Variants and, of course, devices) can be exported from old DB and &#39;transformed&#39; to new DB.</div><div>Sounds good?</div><div><br></div><div>Our current analytics, is something, I&#39;d like to revisit. But not 100% sure yet, but I do see some option, based on lessons learned. </div><div>If these data bits are not portable, I&#39;d not cry a river - compared to a case where &quot;device metadata&quot; would be lost (which is IMO a no-go)</div><div><br></div><div>Thoughts ?</div><span class="m_-1134435690345041850HOEnZb"><font color="#888888"><div>-M</div></font></span><div><div class="m_-1134435690345041850h5"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_-1134435690345041850m_-6926361891841356874HOEnZb"><div class="m_-1134435690345041850m_-6926361891841356874h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 6, 2018 at 4:18 PM, Matthias Wessendorf <span dir="ltr">&lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">here is the proposal:<div><a href="https://github.com/aerogear/proposals/pull/21" target="_blank">https://github.com/aerogear/pr<wbr>oposals/pull/21</a><br></div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 5, 2018 at 8:05 PM, Matthias Wessendorf <span dir="ltr">&lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi, Dave<div><br></div><div>thanks for the feedback</div><div class="gmail_extra"><br><div class="gmail_quote"><span class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-">On Mon, Feb 5, 2018 at 6:16 PM, David Martin <span dir="ltr">&lt;<a href="mailto:davmarti@redhat.com" target="_blank">davmarti@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">For RHMAP 3/4, the Studio was originally part of a single jar/war<br>
(millicore). It did have a jsp for delivering the index.html (which<br>
wrote a bunch of inline javascript)<br>
<br>
The studio was then decoupled from the war file as a separate war<br>
(fh-studio). However, it still had an index.jsp, but called back to<br>
the &#39;core&#39; to get some of the info needed for that.<br>
<br>
This was eventually refactored into a node.js express app (fh-ngui)<br>
and deployed completely separately. It still made calls back to the<br>
core to get some config/user info.<br>
<br>
The main benefit I found was the UI could be progressed at a faster<br>
pace as the local development tooling could be tailored better. (just<br>
run the UI server &amp; hook up to an existing core somewhere)<br>
However, it introduced overhead with the addition of a new deployable component.<br></blockquote><div><br></div></span><div>that&#39;s also some of the points. We already have the development moved over to a different repo.</div><div>We currently just stick it&#39;s JAR (which might be silly) into the WAR.</div><span class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
This was all in a pre-containers world, but it was migrated to a<br>
container world (on openshift).<br>
We never went as far as nginx serving static content, but I could see<br>
that as a logical progression.<br>
It would probably mean a smaller footprint overall.<br></blockquote><div><br></div></span><div>cool. It&#39;s something I will include in the proposal (not done any testings).</div><div><br></div><div><br></div><div>Currently I look removing some good parts of the WAR file for the push delivery itself.</div><div><br></div><div>current approach, which I do like so far, is having each &quot;network&quot; run as a java process, that wires the &quot;send bits&quot; (e.g. for iOS) togehter via messaging (kafka).</div><div>Here is a metrics screenshot: </div><div><a href="https://user-images.githubusercontent.com/157646/35808591-9393ec6c-0a86-11e8-9b6f-f138fe0a5691.png" target="_blank">https://user-images.githubuser<wbr>content.com/157646/35808591-93<wbr>93ec6c-0a86-11e8-9b6f-f138fe0a<wbr>5691.png</a><br></div><div><br></div><div>code is located here:</div><div><a href="https://github.com/matzew/aerogear-unifiedpush-server/tree/8d01c771a0a89d1243534adef3a924ad284b3c41/push-agents/apns-agent/src/main/java/org/aerogear/push/apns" target="_blank">https://github.com/matzew/aero<wbr>gear-unifiedpush-server/tree/8<wbr>d01c771a0a89d1243534adef3a924a<wbr>d284b3c41/push-agents/apns-age<wbr>nt/src/main/java/org/aerogear/<wbr>push/apns</a><br></div><div><br></div><div>It&#39;s borrowing some concenpts/code from core UPS. but is really no http server - just a standard Main, which has a kafka consumer, plugged via ENVs.</div><div><br></div><div>I currently deploy to Openshift using the fabric8-maven-plugin (fmp), that generates all all (docker file, k8s/oc yamls).</div><div><br></div><div>I will do the same for FCM.</div><div><br></div><div>Once that all is done, we have no &quot;sending&quot; code in the UPS, and we can move than the UPS itself to WF-Swarm, for a migration to a simpler develipment/deployment model (and perhaps some more modules in the longer run)</div><div><br></div><div>Proposing:</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">* fcm-sender.jar (in container)</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">* apns-sender.jar (in container)</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">* UPS move to Swarm</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">* UI in nginx </div><br class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-m_3729549625263957037gmail-Apple-interchange-newline"> </div><div><div class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-h5"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><div class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-m_3729549625263957037gmail-h5"><br>
On 30 January 2018 at 19:40, Matthias Wessendorf &lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; right now, we have the static resources of the admin ui build to a JAR file<br>
&gt; and a &quot;node tgz&quot;. Currently, in the community, we use the bundled JAR and<br>
&gt; deployed to the UPS WAR file. So far, so good<br>
&gt;<br>
&gt; For our modularization I was thinking at different options:<br>
&gt;<br>
&gt; * WildFly Swarm w/ just static (WAR) resources<br>
&gt; * Node.js/Express app<br>
&gt; * Ngnix container, just serviing the content<br>
&gt;<br>
&gt; I&#39;ve tested 1) I was wondering if we might - for some better resource<br>
&gt; utilization might just go w/ Ngnix, and deploy the static resources of the<br>
&gt; admin UI to there?<br>
&gt;<br>
&gt; How do other think about breaking the UPS down to different technologies and<br>
&gt; aspects?<br>
&gt;<br>
&gt; -Matthias<br>
&gt;<br>
&gt; [1] <a href="https://github.com/aerogear/unifiedpush-admin-ui" rel="noreferrer" target="_blank">https://github.com/aerogear/un<wbr>ifiedpush-admin-ui</a><br>
&gt;<br>
&gt; --<br>
&gt; Matthias Wessendorf<br>
&gt;<br>
&gt; github: <a href="https://github.com/matzew" rel="noreferrer" target="_blank">https://github.com/matzew</a><br>
&gt; twitter: <a href="http://twitter.com/mwessendorf" rel="noreferrer" target="_blank">http://twitter.com/mwessendorf</a><br>
&gt;<br>
</div></div>&gt; --<br>
&gt; You received this message because you are subscribed to the Google Groups<br>
&gt; &quot;Aerogear&quot; group.<br>
&gt; To unsubscribe from this group and stop receiving emails from it, send an<br>
&gt; email to <a href="mailto:aerogear%2Bunsubscribe@googlegroups.com" target="_blank">aerogear+unsubscribe@googlegro<wbr>ups.com</a>.<br>
&gt; To post to this group, send email to <a href="mailto:aerogear@googlegroups.com" target="_blank">aerogear@googlegroups.com</a>.<br>
&gt; To view this discussion on the web visit<br>
&gt; <a href="https://groups.google.com/d/msgid/aerogear/CAAg5f2Qi6Fwj5FPq-VdBEw3Ro_pq4FwqJpPiyGbmj0cEJrfv7Q%40mail.gmail.com" rel="noreferrer" target="_blank">https://groups.google.com/d/ms<wbr>gid/aerogear/CAAg5f2Qi6Fwj5FPq<wbr>-VdBEw3Ro_pq4FwqJpPiyGbmj0cEJr<wbr>fv7Q%40mail.gmail.com</a>.<br>
&gt; For more options, visit <a href="https://groups.google.com/d/optout" rel="noreferrer" target="_blank">https://groups.google.com/d/op<wbr>tout</a>.<br>
<span class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-m_3729549625263957037gmail-HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
David Martin<br>
Red Hat Mobile<br>
Twitter: @irldavem<br>
IRC: @irldavem (#aerogear)<br>
<br>
--<br>
You received this message because you are subscribed to the Google Groups &quot;Aerogear&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:aerogear%2Bunsubscribe@googlegroups.com" target="_blank">aerogear+unsubscribe@googlegro<wbr>ups.com</a>.<br>
To post to this group, send email to <a href="mailto:aerogear@googlegroups.com" target="_blank">aerogear@googlegroups.com</a>.<br>
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/aerogear/CADvBQ45yhH_-%2BZ2gKsU-agjv2ucngsgUgo66-dQ7MdyoMuDinw%40mail.gmail.com" rel="noreferrer" target="_blank">https://groups.google.com/d/ms<wbr>gid/aerogear/CADvBQ45yhH_-%2BZ<wbr>2gKsU-agjv2ucngsgUgo66-dQ7Mdyo<wbr>MuDinw%40mail.gmail.com</a>.<br>
For more options, visit <a href="https://groups.google.com/d/optout" rel="noreferrer" target="_blank">https://groups.google.com/d/op<wbr>tout</a>.<br>
</font></span></blockquote></div></div></div><div><div class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-h5"><br><br clear="all"><span class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951HOEnZb"><font color="#888888"><div><br></div>-- <br><div class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail-m_3729549625263957037gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Matthias Wessendorf <br><br>github: <a href="https://github.com/matzew" target="_blank">https://github.com/mat<wbr>zew</a> <br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div></div></div></div></div>
</font></span></div></div></div></div><span class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951HOEnZb"><font color="#888888">
</font></span></blockquote></div><span class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951m_3255598536759392059gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Matthias Wessendorf <br><br>github: <a href="https://github.com/matzew" target="_blank">https://github.com/mat<wbr>zew</a> <br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div></div></div></div></div>
</font></span></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-1134435690345041850m_-6926361891841356874m_8482190652900995951gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Matthias Wessendorf <br><br>github: <a href="https://github.com/matzew" target="_blank">https://github.com/mat<wbr>zew</a> <br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div></div></div></div></div>
</div>
</div></div></blockquote></div></div></div><div><div class="m_-1134435690345041850h5"><br><br clear="all"><div><br></div>-- <br><div class="m_-1134435690345041850m_-6926361891841356874gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Matthias Wessendorf <br><br>github: <a href="https://github.com/matzew" target="_blank">https://github.com/mat<wbr>zew</a> <br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div></div></div></div></div>
</div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-1134435690345041850gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Matthias Wessendorf <br><br>github: <a href="https://github.com/matzew" target="_blank">https://github.com/<wbr>matzew</a> <br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div></div></div></div></div>
</div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &quot;Aerogear&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:aerogear+unsubscribe@googlegroups.com" target="_blank">aerogear+unsubscribe@<wbr>googlegroups.com</a>.<br>
To post to this group, send email to <a href="mailto:aerogear@googlegroups.com" target="_blank">aerogear@googlegroups.com</a>.<br></div></div>
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/aerogear/CAAg5f2QF2AiZVK%2BQyYB0mDL5G58LXmUPVNySjrcpgJv58Z012A%40mail.gmail.com?utm_medium=email&amp;utm_source=footer" target="_blank">https://groups.google.com/d/<wbr>msgid/aerogear/<wbr>CAAg5f2QF2AiZVK%<wbr>2BQyYB0mDL5G58LXmUPVNySjrcpgJv<wbr>58Z012A%40mail.gmail.com</a>.<div class="HOEnZb"><div class="h5"><br>
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank">https://groups.google.com/d/<wbr>optout</a>.<br>
</div></div></blockquote></div><br></div>