Legacy Estate
79 services · 1796 hosts · two sites · snapshot 2026-09-21 · roadmap item 26
This is the production application estate as it runs today: services deployed by hand onto VMs in the Taichung and Taipei data centres. Roadmap item 26 moves all of it onto Kubernetes. The page is the baseline that work is measured against — a wave plan covers every row below, and what has not moved is reported as hosts and services remaining out of 1796 and 79.
At a glance
| Hosts | 1796 — Taichung 849, Taipei 947 |
| Services | 79 (a service is one service group, merged across the two sites) |
| Business domains | 11 |
| Seen by APM | 57 services; 22 services (164 hosts) have no APM agent, so who calls them is not known yet |
Today both sites run the same services side by side, and each site's load balancers also send traffic to hosts in the other.
| Domain | Services | Hosts | Share | Services without APM |
|---|---|---|---|---|
| 3P Mall | 16 | 274 | 15% | 1 |
| Member | 5 | 163 | 9% | 0 |
| Coupon | 3 | 46 | 3% | 0 |
| WS Core | 6 | 505 | 28% | 0 |
| Storefront | 7 | 426 | 24% | 0 |
| Payment | 12 | 143 | 8% | 7 |
| Marketing & Push | 7 | 60 | 3% | 2 |
| Logistics | 4 | 82 | 5% | 2 |
| Ticketing | 6 | 31 | 2% | 3 |
| Live | 4 | 35 | 2% | 0 |
| Other | 9 | 31 | 2% | 7 |
| Total | 79 | 1796 | 100% | 22 |
How traffic reaches it today
Two load-balancer tiers sit in front of the estate, and the direction between them is one-way. NetScaler carries north-south traffic: users on the internet reach the storefront and API hosts through it. A10 carries east-west traffic: services call each other through A10 virtual servers, never back through NetScaler. Services find each other by domain name, not by address — DNS resolves a service's name to its A10 virtual server, which spreads calls over that service's hosts. Behind the application hosts sit the data stores listed per service below.
For each service, moving to Kubernetes therefore means replacing three things, not one: the hosts, the load-balancer pool that fronts them, and the DNS name its callers use — cut over with old and new side by side, as item 26 describes.
Where it goes
The end state is not these two sites mirrored onto Kubernetes. The Taichung IDC retires (milestone 3.5, gated on the whole-estate rehearsal in 31.3, after its DNS zone goes in 10.4), and what restores service after a failure is the rebuild capability of items 02 and 31, not a second site kept running. Each service therefore moves once, onto the platform Kubernetes clusters. The 1796 hosts are what retires, not what is rebuilt: the Taichung half (849) goes with the site rather than one-for-one into Kubernetes, and each service is sized there at measured demand (item 03).
Which cluster a service lands on is not fixed on this page. Whether a service can run on-premises and in the cloud side by side is for its owner to confirm, service by service; the answer decides which cluster its wave targets (milestone 26.1).
What "everything" means
Every service on this page is in scope for item 26. A workload may stay a VM — taking item 09's KVM-to-Harvester path instead — only when it is named, has a stated reason, and SRE has approved it. A service still holding local state (sticky sessions, logs on local disk) is not an exception: it runs as a container on its current VM (milestone 25.4) until that state is gone, then moves. At the end, item 26 reports the residue against this baseline and says, for each remaining service, which of the two it is.
Inventory by business domain
Hosts are counted once each, under the service group the host inventory assigns them. APM marks services with a Pinpoint agent. Data layer lists the kinds of store a service talks to directly, from its production configuration and its APM call graph; "—" means none was found, not that there is none. Business domains follow the APM grouping; services without APM are placed by name.
3P Mall
16 services · 274 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
3p_3pf | 25 | 25 | 50 | ✓ | — |
3p_3pm | 25 | 25 | 50 | ✓ | Kafka, Oracle, Redis |
3p_3ptx | 15 | 15 | 30 | ✓ | Kafka, Oracle, PostgreSQL, Redis |
3p_coupon | 14 | 15 | 29 | ✓ | MongoDB, Redis |
3p_mows | 10 | 10 | 20 | ✓ | Oracle, PostgreSQL, Redis |
3p_cm | 6 | 8 | 14 | ✓ | Redis |
3p_sm | 5 | 7 | 12 | ✓ | Redis |
3plgp_other_webservice | 5 | 6 | 11 | ✓ | Oracle, PostgreSQL |
3p_coupon_consumer | 5 | 5 | 10 | ✓ | — |
3p_mows_other | 3 | 6 | 9 | ✓ | Oracle, PostgreSQL, Redis |
3p_3pimg | 5 | 3 | 8 | ✓ | — |
3p_apif | 4 | 4 | 8 | ✓ | — |
3p_apim | 4 | 4 | 8 | ✓ | Oracle |
3p_3pqueue | 3 | 3 | 6 | — | — |
3p_imgbatch | 3 | 2 | 5 | ✓ | Oracle, PostgreSQL, Redis |
3pmall_batch | 0 | 4 | 4 | ✓ | Oracle |
Member
5 services · 163 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
membermiddle | 20 | 23 | 43 | ✓ | Kafka, MongoDB, Oracle, PostgreSQL, Redis |
memberfront | 20 | 21 | 41 | ✓ | Kafka |
account_front_server | 16 | 16 | 32 | ✓ | Redis |
sessionapi | 12 | 19 | 31 | ✓ | Redis |
sso | 8 | 8 | 16 | ✓ | Kafka, PostgreSQL, Redis |
Coupon
3 services · 46 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
couponapi | 11 | 15 | 26 | ✓ | MongoDB |
couponplatform | 6 | 7 | 13 | ✓ | MongoDB |
couponbridge | 3 | 4 | 7 | ✓ | Oracle |
WS Core
6 services · 505 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
wsm_api | 70 | 66 | 136 | ✓ | Oracle, Redis |
ose | 60 | 65 | 125 | ✓ | Oracle, Redis |
wsf_api | 57 | 58 | 115 | ✓ | Redis |
wsm_web | 31 | 37 | 68 | ✓ | Oracle, Redis |
wsf_web | 24 | 24 | 48 | ✓ | Redis |
wsf_wsm | 5 | 8 | 13 | ✓ | Oracle, Redis |
Storefront
7 services · 426 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
new_shopcar | 62 | 80 | 142 | ✓ | Oracle, PostgreSQL, Redis |
shop | 41 | 41 | 82 | ✓ | Memcached, Oracle, Redis |
mobile | 39 | 37 | 76 | ✓ | Memcached, Oracle |
ecview | 34 | 36 | 70 | ✓ | MongoDB, Oracle, Redis |
promoapi | 11 | 14 | 25 | ✓ | MongoDB, Oracle, PostgreSQL |
cart_front_server | 14 | 9 | 23 | ✓ | — |
tvapp | 4 | 4 | 8 | ✓ | Oracle |
Payment
12 services · 143 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
payment | 18 | 23 | 41 | ✓ | MongoDB, Oracle, PostgreSQL, RabbitMQ, Redis |
billing_front | 12 | 10 | 22 | — | — |
cardPG | 12 | 10 | 22 | — | Oracle |
mpg_api | 6 | 6 | 12 | — | — |
tipgap_server | 7 | 5 | 12 | ✓ | PostgreSQL, RabbitMQ, Redis |
acerpay | 4 | 5 | 9 | — | — |
payment_eco | 4 | 4 | 8 | ✓ | MongoDB, Oracle, PostgreSQL, RabbitMQ, Redis |
mpg_3ds | 3 | 3 | 6 | — | — |
masterpass | 2 | 2 | 4 | — | — |
payment_webns | 2 | 2 | 4 | ✓ | MongoDB, Oracle, PostgreSQL, RabbitMQ, Redis |
mpg_web | 0 | 2 | 2 | — | — |
a1_tipgpayment_webservice | 0 | 1 | 1 | ✓ | PostgreSQL, RabbitMQ, Redis |
Marketing & Push
7 services · 60 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
ecm | 8 | 11 | 19 | ✓ | Oracle, PostgreSQL, Redis |
cdpapi_server | 6 | 6 | 12 | ✓ | PostgreSQL, Redis |
ecosystem_pbapi | 4 | 4 | 8 | ✓ | Oracle, PostgreSQL, Redis |
webns_ap | 3 | 4 | 7 | — | Oracle |
pushapi | 3 | 3 | 6 | — | — |
ecosystem_api | 2 | 2 | 4 | ✓ | PostgreSQL |
ecosystem_web | 2 | 2 | 4 | ✓ | — |
Logistics
4 services · 82 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
logistic | 17 | 27 | 44 | ✓ | Oracle, PostgreSQL, Redis |
scm_ap | 13 | 19 | 32 | — | Oracle |
weblgp | 2 | 2 | 4 | ✓ | — |
scm | 1 | 1 | 2 | — | Oracle |
Ticketing
6 services · 31 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
ticketPayment_front | 4 | 4 | 8 | — | — |
ticketPayment_middle | 4 | 4 | 8 | — | Oracle |
cwsm | 2 | 4 | 6 | ✓ | Oracle |
cwsf | 2 | 2 | 4 | ✓ | — |
eticket_ap | 2 | 2 | 4 | ✓ | PostgreSQL |
ticketPayment_front_webservice_other | 0 | 1 | 1 | — | — |
Live
4 services · 35 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
3p_3pliveapi | 14 | 14 | 28 | ✓ | MongoDB, Redis |
liveportal_ap | 2 | 3 | 5 | ✓ | MongoDB, Redis |
3pliveapi | 0 | 1 | 1 | ✓ | MongoDB, Redis |
liveportal | 0 | 1 | 1 | ✓ | MongoDB, Redis |
Other
9 services · 31 hosts
| Service | Taichung | Taipei | Hosts | APM | Data layer |
|---|---|---|---|---|---|
hps_server | 4 | 4 | 8 | ✓ | Oracle, Redis |
hycloud | 3 | 3 | 6 | — | — |
syncmongo | 0 | 6 | 6 | ✓ | MongoDB |
eb_cms_server | 0 | 2 | 2 | — | — |
eb_myBookStoreAdmin | 0 | 2 | 2 | — | — |
eb_redium_server | 0 | 2 | 2 | — | — |
eb_schedule_server | 0 | 2 | 2 | — | — |
eb_uxstore_server | 0 | 2 | 2 | — | — |
tvecm | 1 | 0 | 1 | — | Oracle |
Source and refresh
The numbers come from the SRE server map — the host inventory, the NetScaler and A10 configurations, the production configuration repository and the APM call graph, joined into one model. The page is a dated snapshot, regenerated by hand when the wave plan (milestone 26.1) is revised; it is not kept in sync automatically.
Back to Architecture · the milestones that move this estate are in 09 · Application Modernization.