Re: Already registered for WO-Day 2019?! (WOWODC)

2019-04-11 Thread Tim Worman
Maik,

As usually, very much appreciated! Thanks for doing this again. I will 
definitely be tuned into whatever gets posted!

Tim

> On Apr 11, 2019, at 2:27 PM, Maik Musall  wrote:
> 
> So,
> 
> my apologies about no live streaming or anything. I did bring necessary 
> equipment, but the schedule was too tight, and things were happening quickly 
> and changing quite dynamically, so it simply wasn't feasible.
> 
> I do have recordings of most presentations, but had to record audio 
> separately, so it will take more time than usual to edit all that. Will post 
> links to recordings soon.
> 
> Maik
> 
> 
>> Am 09.04.2019 um 16:36 schrieb Maik Musall > >:
>> 
>> Somebody's got to invite you I think, but I forget who can do that.
>> 
>> Don't worry, I'll post a link here as well.
>> 
>>> Am 09.04.2019 um 15:43 schrieb Klaus Berkling >> >:
>>> 
>>> 
>>> Sorry, behind the times here. How does one get on Slack? 
>>> 
>>> Sent from my phone. 
>>> 
>>> On Apr 9, 2019, at 02:05, Maik Musall >> > wrote:
>>> 
 Update-Update: I just tested broadcasting via Periscope, which appears to 
 be an option for this. Not for recorded talks, but if we're having an open 
 discussion, I might start a Periscope broadcast of that. I suggest you 
 keep watching the #general channel in the WOCommunity Slack for a link to 
 show up on Thursday.
 
 
> Am 08.04.2019 um 15:12 schrieb Maik Musall  >:
> 
> Update: I'm strongly leaning towards no live-streaming. Requires too much 
> prep, and I can't even be there much earlier than everyone else. And most 
> of the people who aren't attending personally are probably living in 
> another time zone anyway.
> 
> But there will be recordings.
> 
> Maik
> 
> 
>> Am 01.03.2019 um 14:57 schrieb Maik Musall > >:
>> 
>> At least I'll make recordings as usual, and publish them timely. I don't 
>> know if live feed is feasible, depends on a lot of details, I'll look 
>> into it.
>> 
>> Maik
>> 
>> 
>>> Am 01.03.2019 um 14:43 schrieb Theodore Petrosky >> >:
>>> 
>>> any chance we can get a live feed from this for the people that are so 
>>> far away that we cannot get funding to travel?
>>> 
>>> I’d love to go if only to taste that caterer!
>>> 
>>> Ted
>>> 
 On Mar 1, 2019, at 8:34 AM, René Bock >>> > wrote:
 
 Dear WebObjects friends and Wonder veterans,
 
 we meet on April 11th in Frankfurt am Main and talk about the 
 question, how does it go on with WebObjects? What strategies and ideas 
 exists for current and future development tasks?
 
 For an inspiring program we are looking forward to your suggestions. 
 (We will publish them successively). So please register until 31 March 
 and send us your topics. Please head over to https://woday.salient.de 
 
 
 The costs for room rental and the all-day package with soft drinks, 
 coffee/tea, coffee breaks, warm lunch are 75 EUR (net) per person. The 
 caterer is really delicious.
 
 We are looking forward to you.
 
 
 
 Best regards
 
 René Bock
 
 --
 Phone: +49 69 650096 18
 
 salient GmbH, Lindleystraße 12, 60314 Frankfurt
 Main: +49 69 65 00 96 0  |  http://www.salient-doremus.de 
 
 
 ___
 Do not post admin requests to the list. They will be ignored.
 Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
 )
 Help/Unsubscribe/Update your Subscription:
 https://lists.apple.com/mailman/options/webobjects-dev/tedpet5%40yahoo.com
  
 
 
 This email sent to tedp...@yahoo.com 
>>> 
>>> ___
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
>>> )
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/maik%40selbstdenker.ag
>>>  
>>> 
>>> 
>>> This email sent to m...@selbstdenker.ag 
>> ___
>> Do no

Re: Already registered for WO-Day 2019?! (WOWODC)

2019-04-11 Thread Maik Musall
So,

my apologies about no live streaming or anything. I did bring necessary 
equipment, but the schedule was too tight, and things were happening quickly 
and changing quite dynamically, so it simply wasn't feasible.

I do have recordings of most presentations, but had to record audio separately, 
so it will take more time than usual to edit all that. Will post links to 
recordings soon.

Maik


> Am 09.04.2019 um 16:36 schrieb Maik Musall :
> 
> Somebody's got to invite you I think, but I forget who can do that.
> 
> Don't worry, I'll post a link here as well.
> 
>> Am 09.04.2019 um 15:43 schrieb Klaus Berkling > >:
>> 
>> 
>> Sorry, behind the times here. How does one get on Slack? 
>> 
>> Sent from my phone. 
>> 
>> On Apr 9, 2019, at 02:05, Maik Musall > > wrote:
>> 
>>> Update-Update: I just tested broadcasting via Periscope, which appears to 
>>> be an option for this. Not for recorded talks, but if we're having an open 
>>> discussion, I might start a Periscope broadcast of that. I suggest you keep 
>>> watching the #general channel in the WOCommunity Slack for a link to show 
>>> up on Thursday.
>>> 
>>> 
 Am 08.04.2019 um 15:12 schrieb Maik Musall >>> >:
 
 Update: I'm strongly leaning towards no live-streaming. Requires too much 
 prep, and I can't even be there much earlier than everyone else. And most 
 of the people who aren't attending personally are probably living in 
 another time zone anyway.
 
 But there will be recordings.
 
 Maik
 
 
> Am 01.03.2019 um 14:57 schrieb Maik Musall  >:
> 
> At least I'll make recordings as usual, and publish them timely. I don't 
> know if live feed is feasible, depends on a lot of details, I'll look 
> into it.
> 
> Maik
> 
> 
>> Am 01.03.2019 um 14:43 schrieb Theodore Petrosky > >:
>> 
>> any chance we can get a live feed from this for the people that are so 
>> far away that we cannot get funding to travel?
>> 
>> I’d love to go if only to taste that caterer!
>> 
>> Ted
>> 
>>> On Mar 1, 2019, at 8:34 AM, René Bock >> > wrote:
>>> 
>>> Dear WebObjects friends and Wonder veterans,
>>> 
>>> we meet on April 11th in Frankfurt am Main and talk about the question, 
>>> how does it go on with WebObjects? What strategies and ideas exists for 
>>> current and future development tasks?
>>> 
>>> For an inspiring program we are looking forward to your suggestions. 
>>> (We will publish them successively). So please register until 31 March 
>>> and send us your topics. Please head over to https://woday.salient.de 
>>> 
>>> 
>>> The costs for room rental and the all-day package with soft drinks, 
>>> coffee/tea, coffee breaks, warm lunch are 75 EUR (net) per person. The 
>>> caterer is really delicious.
>>> 
>>> We are looking forward to you.
>>> 
>>> 
>>> 
>>> Best regards
>>> 
>>> René Bock
>>> 
>>> --
>>> Phone: +49 69 650096 18
>>> 
>>> salient GmbH, Lindleystraße 12, 60314 Frankfurt
>>> Main: +49 69 65 00 96 0  |  http://www.salient-doremus.de 
>>> 
>>> 
>>> ___
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
>>> )
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/tedpet5%40yahoo.com
>>>  
>>> 
>>> 
>>> This email sent to tedp...@yahoo.com 
>> 
>> ___
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
>> )
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/maik%40selbstdenker.ag
>>  
>> 
>> 
>> This email sent to m...@selbstdenker.ag 
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
> )
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/maik%40selbstdenker.ag
>  
> 

WO-Day 2019 / Finding a new home for our WOnderous animals / Modern deployment methods

2019-04-11 Thread Dennis Bliefernicht
Heya everyone,

great to see a lot of people again and even new faces in Frankfurt today! As 
there was some interest in the deployment stuff, here are some semi-random 
notes from the train ride back to get you started.

TL;DR: Lots of code snippets and config

Used software
- Service discovery https://www.consul.io/ 
- Process management https://www.nomadproject.io/ 
- Traffik routing https://traefik.io/ 

All can be installed for messing around through homebrew or downloaded as 
single binaries from their respective pages.

Initial launch consul / nomad
Nomad and consul can be run in dev mode locally:

$ consul agent -dev
$ nomad agent -dev

per default the web UI is available on port 8500 (consul) and 4646 (nomad)

Integrating consul in your WOApp
We're using the consul-client library, which can be found at 
https://mvnrepository.com/artifact/com.orbitz.consul/consul-client/1.3.3 
 
Then the code comes down to (roughly):

final Consul.Builder builder = 
Consul.builder().withHostAndPort(HostAndPort.fromParts("localhost", 8500));
final Consul consul = builder.build();
final ConsulAgent consulAgentClient = consul.agentClient();
final WOApplication application = WOApplication.application();
final String serviceID = "someUniqueValue"; // we use host + appname + port to 
build this
final ImmutableRegCheck ttlCheck = ImmutableRegCheck.builder()
.ttl("5s")
.deregisterCriticalServiceAfter("60s")
.build();
final Registration registration = ImmutableRegistration.builder()
.port(application.getPort())
.id(serviceID)
.address(application.getHost())
.name(application.name())
.addTags("WebObjectsApp", NSBundle.mainBundle().name())
.addChecks(ttlCheck)
.build();

consulAgentClient.register(registration);
consulAgentClient.pass(serviceID);

After this happened, you need to regularly "check in" with consul (see the 
ttlCheck.ttl() argument), otherwise the app will be declared down. After the 
deregister time (next line) it will completely be removed from the system (to 
not leave around too many zombie entries). You can check in by regularly 
calling (for example in a separate thread):

consulAgentClient.pass(serviceID);

You should then see your service popup in the service tab of consul ✅ (note 
that the web UI has a different look than in my presentation as my demo system 
still uses an older version).

Using consul-template to generate a traefik configuration and launching traefik
Consul-template is part of consul (in homebrew) and can be used to dynamically 
generate the configuration. An example could look like this (called 
traefik-ctmpl): 

[entryPoints]
[entryPoints.http]
address = ":10080"
[entryPoints.traefik]
address = ":10081"

[api]
entryPoint = "traefik"
dashboard = true
debug = true

[file]

[backends]
{{range services}}{{if .Tags | contains "WebObjectsApp" }}
[backends.wobackend-{{.Name}}]
[backends.wobackend-{{.Name}}.loadBalancer]
method = "drr"
[backends.wobackend-{{.Name}}.buffering]
maxRequestBodyBytes = 10485760
memRequestBodyBytes = 2097152
maxResponseBodyBytes = 10485760
memResponseBodyBytes = 2097152
retryExpression = "IsNetworkError() && Attempts() <= 2"
{{range service .Name}}
[backends.wobackend-{{.Name}}.servers.{{.Node | replaceAll "." 
"-"}}-{{.Port}}]
url = "http://{{.NodeAddress}}:{{.Port}}";
weight = 10
{{end}}{{end}}{{end}}

[frontends]
{{range services}}{{if .Tags | contains "WebObjectsApp" }}
[frontends.wofrontend-{{.Name}}]
backend = "wobackend-{{.Name}}"
passHostHeader = true
[frontends.wofrontend-{{.Name}}.routes.route-woa]
rule = "PathPrefix: /cgi-bin/WebObjects/{{.Name}}.woa/"
{{end}}{{end}}

This will configure the traefik http traffic on port 10080 and service UI an 
10081. There is also some basic configuration to forward headers to the 
application, have large request / response buffers and a 3-try retry mechanism. 
You now run consul-template and traefik from the resulting configuration.

$ consul-template -template traefik-ctmpl:traefik.toml # continuously generate 
traefik.toml using traefik-ctmpl
$ traefik -accesslog

Congratulations
All apps you launch like this, are now available at 
http://localhost:10080/cgi-bin/WebObjects/ApplicationName.woa/ 
 :-)

Integrating your WOApp into Nomad
For this you'll need the