Hi Ankur,
With Bamboo, depending on the scale of your applications, I suggest the
following way to manage DNS:
1. Marathon ID should be unique and namespaced with app versions, e.g
(app-prod-1, app-staging-1, app-test-1)
2. Each app-<env>-<version> mapps to a unique domain.
app-prod-<version>.example.com pointing at HAProxy(s)
3. Automate this with CI and deployment so you have a version rolling
deployment strategy
4. Top level domain app.example.com points at
app-prod-<version>.example once this ready for users.
6. Keep the old version running for a short time for fast rollback
strategy
Those previously versioned domains are deprecated/removed and never
reused again.
Human readable domain is really important for many internal Dev, PM, QA
to review multiple version or multiple groups of apps. I think Bamboo is
opinionated to scarifies very little TTL delay on staging to prod switch,
but it makes the rest of the workflow much human friendly.
We use Route53 and it's pretty good at TTL, we haven't had issue with
it.
Cheers,
Jing
On 9 September 2014 12:45, Bart Spaans <[email protected]> wrote:
> Hi Ankur,
>
> Another solution that might fit your use case can be found at
> https://github.com/opencredo/mesos_service_discovery
>
> The main advantage of this project is that it doesn't depend on DNS, so it
> avoids issues with expiring TTLs and application caches, which can be
> problematic.
>
> Cheers,
> Bart
>
> On 9 September 2014 10:52, Ankur Chauhan <[email protected]> wrote:
>
>> Hi all,
>>
>> (Please let me know if this is not the correct place for such a question).
>> I have been looking at mesos + marathon + haproxy as a way of deploying
>> long running web applications. Mesos coupled with marathon's /tasks api
>> gives me all the information needed to get a haproxy configured and load
>> balancing all the tasks but it seems a little too simplistic.
>>
>> I was wondering if there are other projects or if others could share how
>> they configure/reconfigure their loadbalancers when new tasks come alive.
>>
>> Just to make things a little more concrete consider the following use
>> case:
>>
>> There are two web applications that are running as tasks on mesos:
>> 1. webapp1 (http + https) on app1.domain.com
>> 2. webapp2 (http + https) on app2.domain.com
>>
>> We want to configure a HAProxy server that routes traffic from users (:80
>> and :443) and loadbalances it correctly onto the correct set of tasks.
>> Obviously there is some haproxy configuration happening here but i am
>> interested in finding out what others have been doing in similar cases
>> before I go around building yet another haproxy reconfigure and reload
>> script.
>>
>> -- Ankur
>>
>
>
>
> --
>
> Bart Spaans
> Consultant
> OpenCredo Ltd -- Excellence in Enterprise Application Development
>
> Mobile: +44(0) 7453 777 558
>
> Registered Office: 5-11 Lavington St., London SE1 0NZ
> Registered in UK. No 3943999
>
> If you have received this e-mail in error please accept our apologies,
> destroy it immediately and it would be greatly appreciated if you notified
> the sender. It is your responsibility to protect your system from viruses
> and any other harmful code or device. We try to eliminate them from
> e-mails and attachments; but we accept no liability for any that remain. We
> may monitor or access any or all e-mails sent to us.
>
--
This email may be confidential or privileged. If you received this
communication by mistake, please don't forward it to anyone else, please
erase all copies and attachments, and please let me know that it has gone to
the wrong person. Thanks.