App Mesh is a secure platform for executing and managing user-defined process behaviors as managed services, providing control and integration via CLI and RESTful APIs.
App Mesh = systemd + scheduler + remote exec + API
Manages user-defined processes in a way similar to systemd services or Docker-managed processes, while providing more advanced capabilities for control, security, and integration.
# List registered applications
$ appc ls
ID NAME OWNER STATUS HEALTH PID USER MEMORY %CPU RETURN AGE DURATION STARTS COMMAND
1 pyexec mesh disabled - - - - - - 37s - 0 "python3 ../../bin/py_exec.py"
2 ping mesh enabled OK 747 root 5.9 MiB 0 - 37s 37s 1 "ping cloudflare.com"
3 pytask mesh enabled OK 748 root 29.7 MiB 0 - 37s 37s 1 "python3 ../../bin/py_task.py"
# Add app
$ appc add -a myapp -c "ping www.baidu.com"
# View app
$ appc ls -a myapp -o
PING www.baidu.com (183.2.172.17) 56(84) bytes of data.
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=1 ttl=52 time=34.9 ms
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=2 ttl=52 time=35.1 ms
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=3 ttl=52 time=35.3 ms
# appc -h for more usageSupports not only long-running services, but also scheduled and policy-driven executions, with remote control and execution status tracking.
Interact with a running application by sending tasks or data to it and receiving responses through the SDK.
from appmesh import AppMeshClient
client = AppMeshClient()
client.login("USER-NAME", "USER-PWD")
result_from_server = "0"
for i in range(10):
task_data = f"print({result_from_server} + {i}, end='')"
result_from_server = client.run_task(app_name="pytask", data=task_data)
print(result_from_server)| Feature | Description |
|---|---|
| App Management | π§© App CURD with Full Remote Control β including cgroup, OS user, environment variables, Docker, stdin, and stdout β along with comprehensive monitoring (start counts, exit codes, error messages, health checks). π§© Fine-Grained Behavior Control & Scheduling β supports long- and short-running tasks, periodic jobs, cron schedules, custom timings, and robust error handling. π§© Multi-Tenancy β built-in user ownership model and access controls. π§© Unified Access Interface β interact via CLI, REST, SDK or WebGUI. |
| Computing | π High-performance in-memory computing |
| Security | π Authentication: OAuth, 2FA, YAML-based storage (local or Consul for clustering) π Authorization: JWT, RBAC, multi-tenant isolation π Protection: SSL/TLS for TCP/HTTP/WebSocket, CSRF tokens, HMAC with PSK for non-token verification |
| Cloud Native | π©οΈ Prometheus Exporter (build-in) π©οΈ Grafana SimpleJson datasource π©οΈ Grafana Loki π©οΈ Dockerfile π§± Consul micro-service cluster management |
| Extra Features | Collect host/app resource usage Remote shell command execution File upload/download API Hot-update support systemctl reload appmesh Bash completion Request Forwarding πWeb GUI |
| Platform support | X86, ARM |
| SDK | C++ Rust Python Golang JavaScript Java Swagger OpenAPI Specification |
| Echosystem | LLM: Model Context Protocol (MCP) IoT: MQTT |
Refer to the Installation doc, this covers:
- Docker Compose setup
- Native installation
- Cluster initialization
| Feature | App Mesh | Supervisor | crontab |
|---|---|---|---|
| Accuracy | Seconds | Seconds | Minutes |
| Language | C++11 | Python | C |
| Web GUI | β | β | |
| Command lines | β | β | β |
| SDK | β | ||
| Cron schedule expression | β | β | |
| Manage docker app | β | ||
| Session login | β | ||
| Manage stdout/stderr | β | β | |
| Health check | β | ||
| Authentication | β | β | |
| Multi-tenant | β | β |
- In-memory remote task execute
- Build a powerful monitor system with Grafana/Prometheus/Loki
- Customize application start behavior
- Open service broker support local PV for Kubernetes
- Promote native application to microservice application
- Secure REST file server
- Standalone JWT server
- Kubernetes run none-container applications
- Remote execute
- Python parallel run
- Secure consul cluster
- JWT service with REST and UI