<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <br>
    <div class="moz-cite-prefix">On 11/30/2017 5:15 AM, Lucas Ponce
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGUuq3WTVqwpuKLzXTt9=u3dA7K2AjQvXgosERhgpVPRgfsc0A@mail.gmail.com">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Thu, Nov 30, 2017 at 10:55 AM,
            Lucas Ponce <span dir="ltr">&lt;<a
                href="mailto:lponce@redhat.com" target="_blank"
                moz-do-not-send="true">lponce@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">
              <div dir="ltr"><br>
                <div class="gmail_extra"><br>
                  <div class="gmail_quote">
                    <div>
                      <div class="gmail-h5">On Mon, Nov 27, 2017 at 4:38
                        PM, Matthew Wringe <span dir="ltr">&lt;<a
                            href="mailto:mwringe@redhat.com"
                            target="_blank" moz-do-not-send="true">mwringe@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">
                          <div dir="ltr">With the changes that are now
                            going to include Prometheus, how do we want
                            to deploy this in OpenShift?
                            <div><br>
                            </div>
                            <div>We can have a few options:</div>
                            <div><br>
                            </div>
                            <div>ALL-IN-ONE CONTAINER</div>
                            <div>We put both Hawkular Services and
                              Prometheus in the same container.</div>
                            <div><br>
                            </div>
                            <div>Pros:</div>
                            <div>- easy to deploy in plain docker (but
                              this doesn't appear to be a usecase we are
                              targetting anyways)</div>
                            <div>- shares the same network connection
                              (even localhost) and ip address (eg but
                              both services are on the different ports).</div>
                            <div>- Does't require any special wiring of
                              components.</div>
                            <div>- Can share the same volume mount</div>
                            <div>- version of components can't get out
                              of sync.</div>
                            <div><br>
                            </div>
                            <div>Cons:</div>
                            <div>- workflow doesn't work nicely. Docker
                              containers are meant to only run a single
                              application and running two can cause
                              problems. Eg lifecycle events would become
                              tricky and require some hacks to get
                              around things.</div>
                            <div>- can't independently deploy things</div>
                            <div>- can't reuse or share any existing
                              Prometheus docker containers.</div>
                            <div><br>
                            </div>
                            <div>ALL-IN-ONE POD</div>
                            <div>Hawkular Services and Prometheus are in
                              their own containers, but they are both
                              deployed within the same pod.</div>
                            <div><br>
                            </div>
                            <div>Pros:</div>
                            <div>- shares the same network connection.</div>
                            <div>- bound to the same machine (useful if
                              sharing the same hostpath pv) and don'
                              need to worry about external network
                              configurations (eg firewalls between
                              OpenShift nodes)</div>
                            <div>- pvs can be shared or separate.</div>
                            <div>- lifecycle events will work properly.</div>
                            <div><br>
                            </div>
                            <div>Cons:</div>
                            <div>- lifecycle hooks will mean that both
                              containers will have to pass before either
                              one will enter the ready state. So if
                              Prometheus is failing for some reason,
                              Hawkular Services will not be available
                              under the service.</div>
                            <div>- cannot independently update one
                              container. If we need to deploy a new
                              container we will need to bring down the
                              whole pod.</div>
                            <div>- are stuck with a 1:1 ratio between
                              Hawkular Services and Prometheus</div>
                            <div><br>
                            </div>
                          </div>
                        </blockquote>
                        <div><br>
                        </div>
                      </div>
                    </div>
                    <div>One technical requeriment is that Hawkular
                      Services needs to now where is Prometheus server
                      at initialization.</div>
                  </div>
                </div>
              </div>
            </blockquote>
            <div> </div>
            <div>One technical requeriment is that Hawkular Services
              needs to *know* where is Prometheus server at
              initialization.<br>
            </div>
            <div><br>
            </div>
            <div>[Sorry, typing fast]</div>
            <div><br>
            </div>
            <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">
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div>So, I guess that all-in-one pod will simplify
                      things on this case.</div>
                    <div><br>
                    </div>
                    <div>I would start with this architecture first and
                      harden the basic scenarios.</div>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I would also suggest we go with this architecture.  I don't actually
    see the cons as very bad at all.  Because of the tight-coupling of
    S-P it is not particularly worthwhile to have one up and one down. 
    I think in general the S and P containers should be considered a
    single instance of hawkular server.  But running them as separate
    containers still makes sense for the reasons listed as cons in the
    all-in-one option.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAGUuq3WTVqwpuKLzXTt9=u3dA7K2AjQvXgosERhgpVPRgfsc0A@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <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">
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div> <br>
                    </div>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex"><span
                        class="gmail-">
                        <div dir="ltr">
                          <div><br>
                          </div>
                          <div>SEPARATE PODS</div>
                          <div>Hawkular Services and Prometheus have
                            their own separate pods.<br>
                          </div>
                          <div><br>
                          </div>
                          <div>Pros:</div>
                          <div>- can independently run components and
                            each component has its own separate
                            lifecycle</div>
                          <div>- if in the future we want to cluster
                            Hawkular Services. this will make it a lot
                            easier and will also allow for running an
                            n:m ratio between Hawkular Services and
                            Prometheus</div>
                          <div>- probably the more 'correct' way to
                            deploy things as we don't have a strong
                            requirement for Hawkular Services and
                            Prometheus to run together.</div>
                          <div><br>
                          </div>
                          <div>Cons:</div>
                          <div>- more complex wiring. We will need to
                            have extra services and routes created to
                            handle this. This mean more things running
                            and more chances for things to go wrong.
                            Also more things to configure</div>
                          <div>- reusing a PV between Hawkular Services
                            and Prometheus could be more challenging
                            (especially if we are using hostpath pvs).
                            Updating the Prometheus scrape endpoint may
                            require a new component and container.</div>
                        </div>
                        <br>
                      </span><span class="gmail-">______________________________<wbr>_________________<br>
                        hawkular-dev mailing list<br>
                        <a href="mailto:hawkular-dev@lists.jboss.org"
                          target="_blank" moz-do-not-send="true">hawkular-dev@lists.jboss.org</a><br>
                        <a
                          href="https://lists.jboss.org/mailman/listinfo/hawkular-dev"
                          rel="noreferrer" target="_blank"
                          moz-do-not-send="true">https://lists.jboss.org/mailma<wbr>n/listinfo/hawkular-dev</a><br>
                        <br>
                      </span></blockquote>
                  </div>
                  <br>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </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>