On 05/30/2014 12:46 AM, Stephen Connolly wrote:
I'd put that decision on the agenda for the next meeting.
I'd also recommend pinging the users's list for feedback... there could
be a large number of tomcat 6 people behind firewalls preventing the
ping-back... now if they are not engaged with the users list... well
let's do all we can to see if we can move forward with this
I posted http://jenkins-ci.org/content/thinking-about-moving-servlet-30
and created https://issues.jenkins-ci.org/browse/JENKINS-23378 to
solicit feedbacks.
Let's see how it goes.
On 30 May 2014 07:45, Kohsuke Kawaguchi <[email protected]
<mailto:[email protected]>> wrote:
To use any of those async servlet features, we need Servlet 3.0, but
it turns out that the servlet spec has designed this feature in such
a way that webapp would have to opt into this support through web.xml.
Unfortunately, what this means is that if we want to start using
servlet 3.0 functionality, we'd have to leave behind people who are
running earlier versions of the container. There's no graceful
fallback that works with servlet 2.5 containers.
Now, servlet 3.0 came out in 2009, and in 1.535 Jenkins moved to
Jetty-8 based Winstone 2.x that supports servlet 3.0, so we'd think
good portion of the user base is already running on compatible
servlet container. But I decided to look into this anyway.
Many users run Jenkins through "java -jar jenkins.war", we expect
that users of more recent Jenkins versions will likely run servlet 3
compatible container.
When I look at people who are running >=1.509 and later, 70% of them
run on servlet 3 compatible container. The number for >=1.532 is
84%, then for >=1.554 it's 94%.
When I look at which container is dragging us down as of >= 1.554,
you see that there's a sizable Tomcat6 deployments (2.5%). If we
start requiring Servlet 3.0 these people will be in a nasty
surprise. Then there's about 1.8% who claims to be running on
Winstone 0.9.10, which is really puzzling, but I'm assuming these
people are getting OEM-ed Jenkins of a sort (multiple large
companies are known to do this), so these people will likely be able
to update to Winstone 2.x automatically by virtue of getting a new
jenkins.war from their upstream.
So all in all I'd say if we start requiring Servlet 3.0 today,
there'll be about 3% user base who will be impacted, which IMHO is
acceptable loss to move forward.
The results are in
https://docs.google.com/spreadsheets/d/14YzFgKBB6BvbRU_1OjChC3efECWPs77TEGTU09t3KGw/edit#gid=873989456
Note that the spreadsheet only lists 20 or so most common
containers. The total number does include the entire long tail
(which amounts to less than 1%), so the estimate errs on the
slightly conservative side.
2014-05-29 19:48 GMT-07:00 Kohsuke Kawaguchi
<[email protected] <mailto:[email protected]>>:
Perhaps I should have mentioned it more explicitly, but I was
only thinking about using it to do updates after the initial
page load, with most of the server-side initial HTML rendering
intact.
So when WebSocket/SSE/etc does not work, all you lose is the
dynamic update, which I think is acceptable loss.
On 05/29/2014 02:01 AM, teilo wrote:
Just so people are aware IE has no support for SSE[1].
IE is still commonly used in enterprises despite it many and
continuous
flaws.
So far Jenkins has been pretty browser agnostic.
/James
[1] http://status.modern.ie/__serversenteventseventsource
<http://status.modern.ie/serversenteventseventsource>
On Thursday, 29 May 2014 08:26:38 UTC+1, Tom Fennelly wrote:
On 29/05/2014 02:57, Michael Neale wrote:
On Thu, May 29, 2014 at 11:33 AM, Christopher Orr
<[email protected] <mailto:[email protected]>
<javascript:>> wrote:
It may also be worth considering Server Sent
Events —
basically one-way "push" from the server,
without all the
handshaking and protocol upgrade fun of
WebSockets. Could be
useful if clients are just listening for server
updates,
without sending anything (as is generally the
case today).
Last week I wrote a quick experimental plugin
to stream log
events as they happen via SSE to remote
JavaScript clients for
any running build; I was surprised how simple
it was to build..
(Though I just noticed that it has less support
than
WebSockets (thanks, Microsoft):
http://caniuse.com/eventsource__)
Chris
+1 on SSE. I have a fair bit of experience with
websockets on
servers - enough to know that almost no one gets
their proxies
right - and it is a source of complaints. SSE seems
to work better
out of the box, alternatively long polling/comet
can also work (a
given jenkins master doesn't have to scale to 10s
of thousands
concurrent users, which is the assumption for a lot
of other web
choices).
Having said that, nearly halfway through 2014
websockets is
probably not a controversial choice and does open
up a lot of
other options. If someone is accessing their
jenkins via a proxy,
ssl and careful configuration is required to
support http upgrade
and not break websocket too.
AFAIK... any proxy/gateway between the websocket client
and server
needs to be pretty much websocket aware. SSE would
seem like a
perfect fit for Jenkins since the client is listening
only (not
sending back to the server - could implement that on
top anyway if
needed). As far as I know SSE is a fancy long
poll/comet style
protocol and so would require the same considerations
re number of
concurrent users.
--
You received this message because you are subscribed to the
Google
Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails
from it, send
an email to jenkinsci-dev+unsubscribe@__googlegroups.com
<mailto:jenkinsci-dev%[email protected]>
<mailto:[email protected]
<mailto:jenkinsci-dev%[email protected]>>.
For more options, visit https://groups.google.com/d/__optout
<https://groups.google.com/d/optout>.
--
Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
Try Jenkins Enterprise, our professional version of Jenkins
--
Kohsuke Kawaguchi
--
You received this message because you are subscribed to the Google
Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
Try Jenkins Enterprise, our professional version of Jenkins
--
You received this message because you are subscribed to the Google Groups "Jenkins
Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.