App Mesh is a Multi-Tenant
, Cloud Native
, Micro Service
application management platform, used to manage, schedule and monitor applications. Each app can be a specific microservice for service discovery or a normal app with replication, the app-mesh will guarantee all defined applications run on time with defined behavior and resource requests. The platform can run in standalone or cluster mode, and provide REST APIs, command-line and web-ui.
App Mesh is similar to Kubernetes but much more lightweight, supporting both container apps and native apps.
Feature | Description |
---|---|
Application management | 1. Manage independent applications and guard the process running, similar with systemd but more flexible (long/short running, periodic long running, cron schedule, customized day time and error handling control) and comprehensive monitoring (number of starts, return code, error message, health-check) for both native and docker application. 2. Use SDK/CLI run application on a remote host with sync/async mode and fetch result to client. 3. Full control of application lifecycle (cgroup for resource limitation, specific OS user for execution user). 4. Interactive application start support specify input data by pipe and environment variables. 5. All functionality provides by CLI, REST, SDK and WebGUI interface. |
Security | ⚡️ JWT authentication for CLI and REST interface ⚡️ LDAP support ⚡️ Role based permission control ⚡️ Multi-factor authentication SSL support (ECDH and secure ciphers) for REST http connection Multi-tenant support |
Cloud native | Schedule cloud level applications for running on multile hosts with resource size request. ⚡️ Prometheus Exporter (build-in) ⚡️ Grafana SimpleJson datasource ⚡️ Grafana Loki |
Micro service application | ⚡️ Consul micro-service cluster management |
Extra Features | Collect host/app resource usage Remote run shell commands Download/Upload files interface Hot-update support systemctl reload appmesh Bash completion Reverse proxy Web GUI |
Platform support | X86_64 ARM32 ARM64 |
SDK | Python Golang |
The Installation doc introduces how to install App Mesh via docker-compose or native way and setup App Mesh cluster.
Feature | App Mesh | Supervisor | crontab |
---|---|---|---|
Accuracy | Seconds | Seconds | Minutes |
Language | C++11 | Python | C |
Web GUI | √ | √ | |
Command lines | √ | √ | √ |
SDK | √ | ||
Cron schedule expression | √ | √ | |
Manage daemon process | √ | ||
Manage docker app | √ | ||
Start check (avoid leak) | √ | √ | |
Session login | |||
Manage stdout/stderr | √ | √ | |
Health check | √ | ||
Rich control options | √ | ||
Authentication | √ | √ | |
Multi-tenant | √ | √ |
Feature | App Mesh | Kubernetes |
---|---|---|
Easy deploy | √ | |
More features | √ | |
Non-container app | √ | |
Service expose | √ | √ |
Scheduler | √ | √ |
Definition file | JSON | YAML |
GUI | √ | √ |
Virtual Network | √ | |
Monitor tools | √ | √ |
- Build a powerful monitor system with Grafana/Prometheus/Loki
- Customize application start behavior
- Manage cluster-level microservice applications
- 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