Cloud Native 10 min read

Private Deployment of JD mPaaS Aura Platform on TPaaS: Architecture, Dockerfile, and Kubernetes Orchestration

This article details the end‑to‑end process of privatizing JD's mPaaS Aura Android component platform on the TPaaS cloud‑native environment, covering requirement analysis, custom Dockerfile creation, unified configuration with confd, middleware setup, and Kubernetes resource definitions for a production‑grade deployment.

JD Tech
JD Tech
JD Tech
Private Deployment of JD mPaaS Aura Platform on TPaaS: Architecture, Dockerfile, and Kubernetes Orchestration

Introduction: JD mPaaS provides an enterprise mobile development platform; Aura is its Android component solution. The article records the process of privatizing Aura on the TPaaS environment, a cloud‑native PaaS based on Kubernetes.

1. Requirement analysis and solution selection – The goal is to deploy Aura on TPaaS, which requires building Docker images for each component, writing Kubernetes manifests, and handling complex dependencies. Existing standard templates cover basic Docker/K8s generation but cannot satisfy the more intricate CI/CD and environment needs, so a customized approach was chosen.

2. Implementation details

2.1 Image segmentation – Three Docker images are defined: Aura2Web (frontend + backend), Aura2JenkinsMaster (scheduler), and Aura2JenkinsSlave (CI build node). Custom Dockerfiles based on CentOS 7.2 are written to include required software (JDK, nginx, Python, Maven, Git, Tomcat, jq) and to copy the confd binary.

RUN set -ex \
&& wget http://$storage_domain/our-tools/confd \
&& mv ./confd /usr/bin \
&& chmod a+x /usr/bin/confd

2.2 Dockerfile best practices – Use minimal base images, reduce layer count, clean intermediate artifacts, optimise network requests, and leverage build cache.

2.3 Unified configuration with confd – Confd pulls values from etcd (or other back‑ends) and renders configuration templates. Example confd configuration:

[template]
src = "frontend_domain.template"
dest = "/opt/servers/nginx/conf/domains/frontend_domain"
keys = [
"/aura/frontend/domain_inner",
"/aura/frontend/domain_outer"
]

Corresponding Nginx template:

server {
listen 80;
server_name {{ getv "/aura/frontend/domain_inner" }} {{ getv "/aura/frontend/domain_outer" }};
...
}

2.4 Middleware configuration – Database (auradb), GitLab, Nexus (Maven), MinIO storage, and double‑domain handling are set up via ConfigMaps and mounted into the containers.

2.5 Kubernetes resources – ConfigMap, Ingress, Service, Deployment, and PersistentVolumeClaim objects are created. PVC is used to share the Android SDK among Jenkins slave nodes, reducing storage consumption.

3. Experience summary – The key points are Dockerfile authoring and image building, unified configuration management, and writing Kubernetes orchestration files. The described methodology can be applied to other platforms with similar privatization requirements.

Cloud NativeDockerCI/CDKubernetesmPaaSAuraTPaaS
JD Tech
Written by

JD Tech

Official JD technology sharing platform. All the cutting‑edge JD tech, innovative insights, and open‑source solutions you’re looking for, all in one place.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.