appmesh


Nameappmesh JSON
Version 0.9.4 PyPI version JSON
download
home_pagehttps://github.com/laoshanxi/app-mesh
SummaryClient SDK for App Mesh
upload_time2024-05-01 00:21:30
maintainerNone
docs_urlNone
authorlaoshanxi
requires_python>=3
licenseMIT
keywords appmesh appmesh app-mesh
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![language.badge]][language.url] [![standard.badge]][standard.url] [![release.badge]][release.url] [![pypi.badge]][pypi.url] [![unittest.badge]][unittest.url] [![docker.badge]][docker.url] [![cockpit.badge]][cockpit.url]
[![Documentation Status](https://readthedocs.org/projects/app-mesh/badge/?version=latest)](https://app-mesh.readthedocs.io/en/latest/?badge=latest) [![Join the chat at https://gitter.im/app-mesh/community](https://badges.gitter.im/app-mesh/community.svg)](https://gitter.im/app-mesh/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
<a href="https://scan.coverity.com/projects/laoshanxi-app-mesh">
  <img alt="Coverity Scan Build Status"
       src="https://img.shields.io/coverity/scan/21528.svg"/>
</a>
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh/badge)](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh)

# App Mesh

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.

<div align=center><img src="https://github.com/laoshanxi/app-mesh/raw/main/docs/source/diagram.jpg" align=center /></div>

## Features

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. <br> 2. Use SDK/CLI run application on a remote host with sync/async mode and fetch result to client. <br> 3. Full control of application lifecycle (cgroup for resource limitation, specific OS user for execution user). <br> 4. Interactive application start support specify input data by pipe and environment variables.<br> 5. All functionality provides by [CLI](https://app-mesh.readthedocs.io/en/latest/CLI.html), [REST](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis), [SDK](https://github.com/laoshanxi/app-mesh/tree/main/src/sdk) and [WebGUI](https://github.com/laoshanxi/app-mesh-ui) interface.<br>
Security |  ⚡️ [JWT authentication](https://app-mesh.readthedocs.io/en/latest/JWT.html) for CLI and REST interface <br> ⚡️ [LDAP support](https://app-mesh.readthedocs.io/en/latest/LDAP.html) <br> ⚡️ [Role based permission control](https://app-mesh.readthedocs.io/en/latest/USER_ROLE.html) <br> ⚡️ [Multi-factor authentication](https://app-mesh.readthedocs.io/en/latest/MFA.html)<br> SSL support (ECDH and secure ciphers) for REST http connection  <br> Multi-tenant support
Cloud native | Schedule cloud level applications for running on multile hosts with resource size request.<br> ⚡️ [Prometheus Exporter (build-in)](https://app-mesh.readthedocs.io/en/latest/PROMETHEUS.html) <br> ⚡️ [Grafana SimpleJson datasource](https://app-mesh.readthedocs.io/en/latest/GrafanaDataSource.html) <br> ⚡️ [Grafana Loki](https://app-mesh.readthedocs.io/en/latest/Loki.html) <br>⚡️ [Dockerfile](https://github.com/laoshanxi/app-mesh/blob/main/Dockerfile)
Micro service application | ⚡️ [Consul micro-service cluster management](https://app-mesh.readthedocs.io/en/latest/CONSUL.html)
Extra Features | Collect host/app resource usage <br> Remote run shell commands <br> Download/Upload files interface <br> Hot-update support `systemctl reload appmesh` <br> Bash completion <br> Reverse proxy <br> [Web GUI](https://github.com/laoshanxi/app-mesh-ui)
Platform support | X86_64 <br> ARM32 <br> ARM64
SDK | [Python](https://app-mesh.readthedocs.io/en/latest/api/appmesh_client.html) <br> [Golang](https://github.com/laoshanxi/app-mesh/blob/main/src/sdk/go/appmesh_client.go)

## Getting started

The [Installation doc](https://app-mesh.readthedocs.io/en/latest/Install.html) introduces how
to install App Mesh via docker-compose or native way and setup App Mesh cluster.

## Documentation

- [Read the Docs](https://app-mesh.readthedocs.io/)
- [REST API](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis)
- [Command lines](https://app-mesh.readthedocs.io/en/latest/CLI.html)
- [Security](https://app-mesh.readthedocs.io/en/latest/JWT.html)

## Comparison

### Standalone mode

| Feature                  | App Mesh | [Supervisor](http://supervisord.org/) | [crontab](https://crontab.guru/) |
| ------------------------ | -------- | ------------------------------------- | -------------------------------- |
| 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             | √        |                                       | √                                |

### Cluster mode

| Feature           | App Mesh | Kubernetes |
| ----------------- | -------- | ---------- |
| Easy deploy       | √        |
| More features     |          | √          |
| Non-container app | √        |
| Service expose    | √        | √          |
| Scheduler         | √        | √          |
| Definition file   | JSON     | YAML       |
| GUI               | √        | √          |
| Virtual Network   |          | √          |
| Monitor tools     | √        | √          |

---

### Component diagram

![block-diagram](https://github.com/laoshanxi/app-mesh/raw/main/docs/source/block_diagram.png)

---

## Success

- [Build a powerful monitor system with Grafana/Prometheus/Loki](https://app-mesh.readthedocs.io/en/latest/success/build_powerful_monitor_system_with_Grafana_Prometheus_Loki.html)
- [Customize application start behavior](https://app-mesh.readthedocs.io/en/latest/success/customize_app_startup_behavior.html)
- [Manage cluster-level microservice applications](https://app-mesh.readthedocs.io/en/latest/success/manage_cluster_level_microservice_applications.html)
- [Open service broker support local PV for Kubernetes](https://app-mesh.readthedocs.io/en/latest/success/open_service_broker_support_local_pv_for_K8S.html)
- [Promote native application to microservice application](https://app-mesh.readthedocs.io/en/latest/success/promote_native_app_to_microservice_app.html)
- [Secure REST file server](https://app-mesh.readthedocs.io/en/latest/success/secure_REST_file_server.html)
- [Standalone JWT server](https://app-mesh.readthedocs.io/en/latest/success/standalone_JWT_server.html)
- [Kubernetes run none-container applications](https://app-mesh.readthedocs.io/en/latest/success/kubernetes_run_native_application.html)
- [Remote execute](https://app-mesh.readthedocs.io/en/latest/success/remote_run_cli_and_python.html)
- [Python parallel run](https://app-mesh.readthedocs.io/en/latest/success/python_parallel_run.html)

---

## Library dependency

- [MessagePack](https://msgpack.org/)
- [boostorg/boost](https://github.com/boostorg/boost)
- [ACE_TAO/ACE](https://github.com/DOCGroup/ACE_TAO)
- [curlpp](https://github.com/jpbarrette/curlpp)
- [Thalhammer/jwt-cpp](https://github.com/Thalhammer/jwt-cpp)
- [nlohmann/json](https://json.nlohmann.me)
- [yaml-cpp](https://github.com/jbeder/yaml-cpp)
- [nfpm](https://github.com/goreleaser/nfpm)
- [jupp0r/prometheus-cpp](https://github.com/jupp0r/prometheus-cpp)
- [zemasoft/wildcards](https://github.com/zemasoft/wildcards)
- [mariusbancila/croncpp](https://github.com/mariusbancila/croncpp)
- [log4cpp](http://log4cpp.sourceforge.net)
- [Crypto++](https://www.cryptopp.com)
- [ldap-cpp](https://github.com/AndreyBarmaley/ldap-cpp)
- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/liboath-api)

[language.url]:   https://isocpp.org/
[language.badge]: https://img.shields.io/badge/language-C++-blue.svg
[standard.url]:   https://en.wikipedia.org/wiki/C%2B%2B#Standardization
[standard.badge]: https://img.shields.io/badge/C%2B%2B-11%2F14%2F17-blue.svg
[release.url]:    https://github.com/laoshanxi/app-mesh/releases
[release.badge]:  https://img.shields.io/github/v/release/laoshanxi/app-mesh.svg
[docker.url]:     https://hub.docker.com/repository/docker/laoshanxi/appmesh
[docker.badge]:   https://img.shields.io/docker/pulls/laoshanxi/appmesh.svg
[cockpit.url]:    https://github.com/laoshanxi/app-mesh-ui
[cockpit.badge]:  https://img.shields.io/badge/Cockpit-app--mesh--ui-blue?logo=appveyor
[unittest.url]:   https://github.com/catchorg/Catch2
[unittest.badge]: https://img.shields.io/badge/UnitTest-Catch2-blue?logo=appveyor
[pypi.badge]: https://img.shields.io/pypi/v/appmesh?label=PyPI%3Aappmesh
[pypi.url]: https://pypi.org/project/appmesh/

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/laoshanxi/app-mesh",
    "name": "appmesh",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3",
    "maintainer_email": null,
    "keywords": "appmesh AppMesh app-mesh",
    "author": "laoshanxi",
    "author_email": "178029200@qq.com",
    "download_url": null,
    "platform": null,
    "description": "\ufeff[![language.badge]][language.url] [![standard.badge]][standard.url] [![release.badge]][release.url] [![pypi.badge]][pypi.url] [![unittest.badge]][unittest.url] [![docker.badge]][docker.url] [![cockpit.badge]][cockpit.url]\n[![Documentation Status](https://readthedocs.org/projects/app-mesh/badge/?version=latest)](https://app-mesh.readthedocs.io/en/latest/?badge=latest) [![Join the chat at https://gitter.im/app-mesh/community](https://badges.gitter.im/app-mesh/community.svg)](https://gitter.im/app-mesh/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n<a href=\"https://scan.coverity.com/projects/laoshanxi-app-mesh\">\n  <img alt=\"Coverity Scan Build Status\"\n       src=\"https://img.shields.io/coverity/scan/21528.svg\"/>\n</a>\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh/badge)](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh)\n\n# App Mesh\n\nApp 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.\n\nApp Mesh is similar to Kubernetes but much more lightweight, supporting both container apps and native apps.\n\n<div align=center><img src=\"https://github.com/laoshanxi/app-mesh/raw/main/docs/source/diagram.jpg\" align=center /></div>\n\n## Features\n\nFeature | Description\n---|---\nApplication 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. <br> 2. Use SDK/CLI run application on a remote host with sync/async mode and fetch result to client. <br> 3. Full control of application lifecycle (cgroup for resource limitation, specific OS user for execution user). <br> 4. Interactive application start support specify input data by pipe and environment variables.<br> 5. All functionality provides by [CLI](https://app-mesh.readthedocs.io/en/latest/CLI.html), [REST](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis), [SDK](https://github.com/laoshanxi/app-mesh/tree/main/src/sdk) and [WebGUI](https://github.com/laoshanxi/app-mesh-ui) interface.<br>\nSecurity |  \u26a1\ufe0f [JWT authentication](https://app-mesh.readthedocs.io/en/latest/JWT.html) for CLI and REST interface <br> \u26a1\ufe0f [LDAP support](https://app-mesh.readthedocs.io/en/latest/LDAP.html) <br> \u26a1\ufe0f [Role based permission control](https://app-mesh.readthedocs.io/en/latest/USER_ROLE.html) <br> \u26a1\ufe0f [Multi-factor authentication](https://app-mesh.readthedocs.io/en/latest/MFA.html)<br> SSL support (ECDH and secure ciphers) for REST http connection  <br> Multi-tenant support\nCloud native | Schedule cloud level applications for running on multile hosts with resource size request.<br> \u26a1\ufe0f [Prometheus Exporter (build-in)](https://app-mesh.readthedocs.io/en/latest/PROMETHEUS.html) <br> \u26a1\ufe0f [Grafana SimpleJson datasource](https://app-mesh.readthedocs.io/en/latest/GrafanaDataSource.html) <br> \u26a1\ufe0f [Grafana Loki](https://app-mesh.readthedocs.io/en/latest/Loki.html) <br>\u26a1\ufe0f [Dockerfile](https://github.com/laoshanxi/app-mesh/blob/main/Dockerfile)\nMicro service application | \u26a1\ufe0f [Consul micro-service cluster management](https://app-mesh.readthedocs.io/en/latest/CONSUL.html)\nExtra Features | Collect host/app resource usage <br> Remote run shell commands <br> Download/Upload files interface <br> Hot-update support `systemctl reload appmesh` <br> Bash completion <br> Reverse proxy <br> [Web GUI](https://github.com/laoshanxi/app-mesh-ui)\nPlatform support | X86_64 <br> ARM32 <br> ARM64\nSDK | [Python](https://app-mesh.readthedocs.io/en/latest/api/appmesh_client.html) <br> [Golang](https://github.com/laoshanxi/app-mesh/blob/main/src/sdk/go/appmesh_client.go)\n\n## Getting started\n\nThe [Installation doc](https://app-mesh.readthedocs.io/en/latest/Install.html) introduces how\nto install App Mesh via docker-compose or native way and setup App Mesh cluster.\n\n## Documentation\n\n- [Read the Docs](https://app-mesh.readthedocs.io/)\n- [REST API](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis)\n- [Command lines](https://app-mesh.readthedocs.io/en/latest/CLI.html)\n- [Security](https://app-mesh.readthedocs.io/en/latest/JWT.html)\n\n## Comparison\n\n### Standalone mode\n\n| Feature                  | App Mesh | [Supervisor](http://supervisord.org/) | [crontab](https://crontab.guru/) |\n| ------------------------ | -------- | ------------------------------------- | -------------------------------- |\n| Accuracy                 | Seconds  | Seconds                               | Minutes                          |\n| Language                 | C++11    | Python                                | C                                |\n| Web GUI                  | \u221a        | \u221a                                     |\n| Command lines            | \u221a        | \u221a                                     | \u221a                                |\n| SDK                      | \u221a        |                                       |\n| Cron schedule expression | \u221a        |                                       | \u221a                                |\n| Manage daemon process    |          |                                       | \u221a                                |\n| Manage docker app        | \u221a        |                                       |\n| Start check (avoid leak) | \u221a        | \u221a                                     |\n| Session login            |          |                                       |\n| Manage stdout/stderr     | \u221a        | \u221a                                     |\n| Health check             | \u221a        |                                       |\n| Rich control options     | \u221a        |                                       |\n| Authentication           | \u221a        | \u221a                                     |\n| Multi-tenant             | \u221a        |                                       | \u221a                                |\n\n### Cluster mode\n\n| Feature           | App Mesh | Kubernetes |\n| ----------------- | -------- | ---------- |\n| Easy deploy       | \u221a        |\n| More features     |          | \u221a          |\n| Non-container app | \u221a        |\n| Service expose    | \u221a        | \u221a          |\n| Scheduler         | \u221a        | \u221a          |\n| Definition file   | JSON     | YAML       |\n| GUI               | \u221a        | \u221a          |\n| Virtual Network   |          | \u221a          |\n| Monitor tools     | \u221a        | \u221a          |\n\n---\n\n### Component diagram\n\n![block-diagram](https://github.com/laoshanxi/app-mesh/raw/main/docs/source/block_diagram.png)\n\n---\n\n## Success\n\n- [Build a powerful monitor system with Grafana/Prometheus/Loki](https://app-mesh.readthedocs.io/en/latest/success/build_powerful_monitor_system_with_Grafana_Prometheus_Loki.html)\n- [Customize application start behavior](https://app-mesh.readthedocs.io/en/latest/success/customize_app_startup_behavior.html)\n- [Manage cluster-level microservice applications](https://app-mesh.readthedocs.io/en/latest/success/manage_cluster_level_microservice_applications.html)\n- [Open service broker support local PV for Kubernetes](https://app-mesh.readthedocs.io/en/latest/success/open_service_broker_support_local_pv_for_K8S.html)\n- [Promote native application to microservice application](https://app-mesh.readthedocs.io/en/latest/success/promote_native_app_to_microservice_app.html)\n- [Secure REST file server](https://app-mesh.readthedocs.io/en/latest/success/secure_REST_file_server.html)\n- [Standalone JWT server](https://app-mesh.readthedocs.io/en/latest/success/standalone_JWT_server.html)\n- [Kubernetes run none-container applications](https://app-mesh.readthedocs.io/en/latest/success/kubernetes_run_native_application.html)\n- [Remote execute](https://app-mesh.readthedocs.io/en/latest/success/remote_run_cli_and_python.html)\n- [Python parallel run](https://app-mesh.readthedocs.io/en/latest/success/python_parallel_run.html)\n\n---\n\n## Library dependency\n\n- [MessagePack](https://msgpack.org/)\n- [boostorg/boost](https://github.com/boostorg/boost)\n- [ACE_TAO/ACE](https://github.com/DOCGroup/ACE_TAO)\n- [curlpp](https://github.com/jpbarrette/curlpp)\n- [Thalhammer/jwt-cpp](https://github.com/Thalhammer/jwt-cpp)\n- [nlohmann/json](https://json.nlohmann.me)\n- [yaml-cpp](https://github.com/jbeder/yaml-cpp)\n- [nfpm](https://github.com/goreleaser/nfpm)\n- [jupp0r/prometheus-cpp](https://github.com/jupp0r/prometheus-cpp)\n- [zemasoft/wildcards](https://github.com/zemasoft/wildcards)\n- [mariusbancila/croncpp](https://github.com/mariusbancila/croncpp)\n- [log4cpp](http://log4cpp.sourceforge.net)\n- [Crypto++](https://www.cryptopp.com)\n- [ldap-cpp](https://github.com/AndreyBarmaley/ldap-cpp)\n- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/liboath-api)\n\n[language.url]:   https://isocpp.org/\n[language.badge]: https://img.shields.io/badge/language-C++-blue.svg\n[standard.url]:   https://en.wikipedia.org/wiki/C%2B%2B#Standardization\n[standard.badge]: https://img.shields.io/badge/C%2B%2B-11%2F14%2F17-blue.svg\n[release.url]:    https://github.com/laoshanxi/app-mesh/releases\n[release.badge]:  https://img.shields.io/github/v/release/laoshanxi/app-mesh.svg\n[docker.url]:     https://hub.docker.com/repository/docker/laoshanxi/appmesh\n[docker.badge]:   https://img.shields.io/docker/pulls/laoshanxi/appmesh.svg\n[cockpit.url]:    https://github.com/laoshanxi/app-mesh-ui\n[cockpit.badge]:  https://img.shields.io/badge/Cockpit-app--mesh--ui-blue?logo=appveyor\n[unittest.url]:   https://github.com/catchorg/Catch2\n[unittest.badge]: https://img.shields.io/badge/UnitTest-Catch2-blue?logo=appveyor\n[pypi.badge]: https://img.shields.io/pypi/v/appmesh?label=PyPI%3Aappmesh\n[pypi.url]: https://pypi.org/project/appmesh/\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Client SDK for App Mesh",
    "version": "0.9.4",
    "project_urls": {
        "Homepage": "https://github.com/laoshanxi/app-mesh"
    },
    "split_keywords": [
        "appmesh",
        "appmesh",
        "app-mesh"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ee6d45a6bf4f2f4cbbde523b4934c3c5bc96a7bf91f1c71545bdac670fdecb4",
                "md5": "39a7c641e30bd496d8aff3a3ca3ec9aa",
                "sha256": "fc55d2832b3962f9b3ca46f8f61107046904409fc5355470caad9ae440b16a08"
            },
            "downloads": -1,
            "filename": "appmesh-0.9.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "39a7c641e30bd496d8aff3a3ca3ec9aa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3",
            "size": 15969,
            "upload_time": "2024-05-01T00:21:30",
            "upload_time_iso_8601": "2024-05-01T00:21:30.550104Z",
            "url": "https://files.pythonhosted.org/packages/0e/e6/d45a6bf4f2f4cbbde523b4934c3c5bc96a7bf91f1c71545bdac670fdecb4/appmesh-0.9.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-01 00:21:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "laoshanxi",
    "github_project": "app-mesh",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "appmesh"
}
        
Elapsed time: 0.25113s