Lakshya

Infrastructure & Reliability · Middleware — Web · Chapter 22 of 33

Web and application server products, and the infrastructure under them

Who makes what, which of them a bank actually runs, and how to size an estate from a request rate rather than from a vendor’s reference architecture.

9 min read1 diagramAll 33 chapters

This chapter names products, so a reminder of the rule behind it: the products follow from the jobs described in the last two chapters. A web server terminates TLS, proxies and filters; an application server hosts code and lends it pools, transactions and messaging. Every product below is a particular answer to those jobs.

Web servers and proxies

ProductWho owns itLicenceWhat it is best at
Apache HTTP Server (“httpd”)Apache Software FoundationOpen source (Apache License 2.0)The long-time default; a module for almost everything
IBM HTTP ServerIBMSupplied with WebSphereApache httpd, built and supported by IBM as the front end of WebSphere estates
NginxF5, which acquired Nginx in 2019Open source; NGINX Plus is the commercial edition, sold per instanceReverse proxying and very many concurrent connections
Microsoft IIS (Internet Information Services)MicrosoftIncluded with Windows ServerHosting .NET applications on Windows
HAProxyHAProxy TechnologiesOpen source; enterprise editionLoad balancing, for both HTTP and raw network connections
EnvoyCloud Native Computing FoundationOpen sourceThe proxy inside service meshes and Kubernetes ingress

On the public internet, W3Techs’ survey for 26 September 2026 finds Cloudflare’s servers in front of 31.0% of websites whose server it can identify, Nginx 30.8%, Apache 22.0% and Microsoft IIS 3.0%. Do not carry those numbers into a bank. They count public websites; inside a bank’s estate, IIS fronts a large share of internal .NET applications and IBM HTTP Server fronts every WebSphere estate, and neither shows up much in a survey of the public web.

Application servers

ProductWho owns itWhat it implementsStatus, September 2026
Apache TomcatApache Software FoundationThe web profile only — a servlet container11.0 (Jakarta EE 11), 10.1, and 9.0 — the last javax line, supported to at least 31 March 2027
Eclipse JettyEclipse FoundationA servlet container, often embedded inside applicationsActive
IBM WebSphere Application Server (“traditional”)IBMThe full Java EE platform; the Network Deployment edition manages clusters8.5.5 and 9.0.5; no planned end of support
IBM WebSphere Liberty / Open LibertyIBMModular: switch on only the features an application uses, javax or jakartaSingle-stream continuous delivery; no end-of-support date. Open Liberty is the open-source core
Oracle WebLogic ServerOracleThe full platform15.1.1 (November 2025, Jakarta EE 9.1); 14.1.2 still javax
Red Hat JBoss EAP (Enterprise Application Platform)Red Hat, owned by IBM since 2019The full platform, as a supported build of the open-source WildFly8.0 (February 2024, Jakarta EE 10); 7.4 is javax
WildFlyCommunity projectThe open-source upstream of JBoss EAPFrequent releases, community support only
PayaraPayara ServicesA continuation of the GlassFish reference serverOpen-source and commercial editions

One ownership fact is worth knowing going into an interview: IBM owns WebSphere and, through Red Hat, JBoss — and, as the messaging chapters show, IBM MQ and, since March 2026, Confluent, the main commercial Kafka company. The largest vendor on both sides of a typical bank middleware estate is now the same company.

The other half of many bank estates is not Java at all. .NET applications run on IIS or on Microsoft’s own cross-platform web server, Kestrel, and are licensed through Windows Server rather than through an application-server product — which matters when the licence chapter compares costs.

What a production estate is made of

  • Traffic management — a global traffic manager that answers DNS lookups with the address of a healthy site, and hardware or virtual load balancers in each site (F5 BIG-IP and NetScaler are common in banks).
  • A web tier in the demilitarised zone (DMZ) — two or more web servers per site, holding certificates and nothing else of value.
  • An application tier — nodes each running several Java Virtual Machines (JVMs), or containers on a platform.
  • An administration layer — WebSphere’s Deployment Manager, WebLogic’s Administration Server or a JBoss domain controller, which pushes configuration and deployments to every node. If it is down, the estate keeps serving but cannot be changed, a distinction worth stating in an interview.
  • Session storage, if sessions are not held in the servers themselves.
  • Observability — application performance monitoring agents inside each JVM, log shipping, and metrics; covered in observability tools.
  • Key and certificate stores on every tier — the inventory from the previous chapter.
A TWO-SITE ESTATE — EITHER SITE MUST CARRY THE WHOLE PEAK ALONE Global traffic manager (DNS) SITE ASITE B Load balancerWeb serverWeb serverApp node 1App node 2App node 3Load balancerWeb serverWeb serverApp node 1App node 2App node 3 Queue manager Databaseprimary Databasestandby Queue manager the database replicates between sites — usually the real limit on active-active SIZE EACH SITE FOR 100% OF PEAK, NOT 50%. Two sites at 60% each look healthy every day — and fail over into 120% on the one day it matters.
Active-active across two sites, the target shape for a customer-facing bank service. The web and application tiers are easy to duplicate. The hard part is the data underneath: most estates run the application tier active-active while the database runs primary and standby, which is why the database, not the middleware, usually sets the real recovery time.

Two terms from resilience planning belong here. The recovery time objective (RTO) is how long the service may be down after a site fails; the recovery point objective (RPO) is how much data, measured in time, may be lost. Active-active application tiers bring the first close to zero; only synchronous data replication brings the second there, and it costs latency. The regulatory side is in operational resilience.

Sizing an estate from a request rate

Vendor reference architectures are a starting point, not an answer. The defensible method starts from the load you must carry and works down, and it uses Little’s law from the first web chapter.

StepWorked exampleWhy
Peak request rate1,200 requests a second at the busiest minute of the busiest daySize for the peak you have seen, plus the growth you expect before the next review
Time in system180 milliseconds average at the application tierMeasured in production or in a load test, not guessed
Requests in flight1,200 × 0.18 = 216Little’s law
Comfortable concurrency per JVM40 (a pool of about 60, run at two-thirds)Leaves room for latency spikes without queueing
JVMs to carry peak216 ÷ 40 = 5.4, so 6Round up, always
Per site6 JVMs, because either site may carry everything aloneThe rule in the diagram
Nodes3 JVMs per node: 2 nodes carry the peak, plus 1 spare for patching or failureSo a node can be drained for patching at peak without falling short
Memory per node3 × (4 GB heap + about 1.5 GB outside the heap) + operating system, about 24–32 GBHeap from measurement; the JVM uses memory beyond its heap too
CPUFrom a load test: if one core sustains 60 requests a second at target latency, the peak needs 20 cores per siteCPU is the one input arithmetic cannot supply — only a load test can

The spare node is the line that gets cut in budget reviews, and the one whose absence turns the next patching window into an incident.

On a container platform

The same estate increasingly runs as containers. The web tier becomes an ingress controller, each application ships its own Liberty, JBoss or Tomcat inside its image, and scaling becomes a replica count. Vendors provide operators — software that runs their servers on Kubernetes — for Liberty and JBoss EAP. The sizing arithmetic above does not change; only the unit changes from a JVM on a node to a container on a cluster.

The inventory an auditor asks for first

Every question in the last two chapters — which servers are out of support, which Java runs where, which certificate expires next — is answered from one list. A middleware team should be able to produce it on demand, per node:

  • Product, version and fix-pack level, and the vendor’s end-of-support date for it.
  • The Java runtime: its version and its vendor, because the vendor decides the licence.
  • Every certificate on the node, its expiry date and who renews it.
  • The applications deployed, and the business owner of each.
  • The licence entitlement it consumes — cores, PVUs or a subscription — and whether the measurement tool covers it.

An estate that cannot produce this list in a day is carrying three risks it cannot size: unsupported software, unexpected licence bills and certificate outages.

Check yourself

What five facts should a middleware inventory hold per node?Product and version with support date, Java version and vendor, certificates and expiry, applications and owners, and licence entitlement consumed.
Which web servers dominate the public web, and why not quote that in a bank?Cloudflare, Nginx and Apache per W3Techs (Sep 2026); it counts public websites, while bank internal estates lean heavily on IIS and IBM HTTP Server.
What is IBM HTTP Server?Apache httpd built and supported by IBM, supplied with WebSphere as its front end.
How does WebSphere Liberty differ from traditional WebSphere?Liberty is modular — you enable only the features an application needs, javax or jakarta — and ships as continuous delivery with no end-of-support date.
What is the relationship between WildFly and JBoss EAP?WildFly is the open-source upstream; EAP is Red Hat's supported, subscription build of it.
Which vendor now owns WebSphere, JBoss, IBM MQ and Confluent?IBM — JBoss through Red Hat (2019) and Confluent since March 2026.
What happens if the WebSphere Deployment Manager is down?The estate keeps serving traffic but cannot be reconfigured or redeployed until it returns.
Define RTO and RPO.Recovery time objective: how long the service may be down. Recovery point objective: how much data, measured in time, may be lost.
Why size each site for 100% of peak?Active-active sites at 60% each look fine daily but fail over into 120% on the one day it matters.
Walk through sizing from a request rate.Peak rate × time in system gives in-flight requests; divide by comfortable concurrency per JVM; size each site for the whole peak; add a spare node; take CPU from a load test.
Which sizing input cannot be computed?CPU per request at target latency — it must come from a load test.
← The web tier in a bank: real flows, real failuresWeb middleware licensing, costs and the comparison →