PREvant

所属分类:微服务
开发工具:Rust
文件大小:0KB
下载次数:0
上传日期:2023-08-04 14:34:40
上 传 者sh-1993
说明:  将微服务组合为可审查和可测试的应用程序,
(Composing Microservices into Reviewable and Testable Applications,)

文件列表:
.dockerignore (100, 2023-12-13)
Develop.md (3034, 2023-12-13)
Dockerfile (1519, 2023-12-13)
LICENSE (1057, 2023-12-13)
api-tests/ (0, 2023-12-13)
api-tests/Cargo.lock (42216, 2023-12-13)
api-tests/Cargo.toml (559, 2023-12-13)
api-tests/tests/ (0, 2023-12-13)
api-tests/tests/common/ (0, 2023-12-13)
api-tests/tests/common/mod.rs (1374, 2023-12-13)
api-tests/tests/container/ (0, 2023-12-13)
api-tests/tests/container/mod.rs (142, 2023-12-13)
api-tests/tests/container/prevant.rs (3193, 2023-12-13)
api-tests/tests/container/traefik.rs (2116, 2023-12-13)
api-tests/tests/docker.rs (2818, 2023-12-13)
api/ (0, 2023-12-13)
api/Cargo.lock (98283, 2023-12-13)
api/Cargo.toml (1891, 2023-12-13)
api/frontend (17, 2023-12-13)
api/pom.xml (326, 2023-12-13)
api/res/ (0, 2023-12-13)
api/res/Rocket.toml (54, 2023-12-13)
api/res/config.toml (33, 2023-12-13)
api/res/openapi.yml (15448, 2023-12-13)
api/src/ (0, 2023-12-13)
api/src/apps/ (0, 2023-12-13)
api/src/apps/host_meta_cache.rs (11254, 2023-12-13)
api/src/apps/mod.rs (37632, 2023-12-13)
api/src/apps/routes.rs (27007, 2023-12-13)
api/src/config/ (0, 2023-12-13)
api/src/config/app_selector.rs (1975, 2023-12-13)
api/src/config/companion.rs (5640, 2023-12-13)
api/src/config/container.rs (2448, 2023-12-13)
... ...

![](https://github.com/aixigo/PREvant/workflows/Build%20and%20test%20API/badge.svg) [![Docker Image](https://img.shields.io/docker/pulls/aixigo/prevant?color=yellow&label=Docker%20Image)](https://hub.docker.com/r/aixigo/prevant) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) # PREvant In a Nutshell PREvant a is Docker container that serves as an abstraction layer between continuous integration pipelines and a container orchestration platform. This abstraction serves as a reviewing platform to ensure that developers have built the features that domain expert requested. PREvant's name originates from this requirement: _Preview servant (PREvant, `prvnt`, it's pronounced like prevent)_ __serves__ developers to deploy previews of their application as simple as possible when their application consists of multiple microservices distributed across multiple source code repositories. These previews should __PREvant__ to do mistakes in feature development because domain experts can review changes as soon as possible. ![In a nutshell](assets/in-a-nutshell.svg "In a nutshell") Through PREvant's web interface domain experts, managers, developers, and sales experts can review and demonstrate the application development. ![Access the application](assets/screenshot.png "Access the application") # Usage Have a look at the examples directory. There you can find examples that deploy PREvant in different container environments: - [Docker](examples/Docker/README.md) - [Kubernetes](examples/Kubernetes/README.md) (requires at least Kubernetes 1.15) If you want to customize PREvant's behaviour, you can mount a TOML file into the container at the path `/app/config.toml`. You will find more information about the configuration [here](api/README.md). # Requirements for Your Services PREvant is able to show the version of your service (build time, version string, and git commit hash) and also to integrate your API specification into the frontend through [Swagger UI](https://swagger.io/tools/swagger-ui/). In order to show the information, PREvant tries to resolve it by using the web-based protocol proposed by [RFC 6415](https://tools.ietf.org/html/rfc6415). When you request the list of apps and services running through the frontend, PREvant makes a request for each service to the URL `.well-known/host-meta.json` and expects that the resource provides a [host-meta document](http://docs.oasis-open.org/xri/xrd/v1.0/xrd-1.0.html) serialized as JSON: ```json { "properties": { "https://schema.org/softwareVersion": "0.9", "https://schema.org/dateModified": "2019-04-09T15:31:01.363+0200", "https://git-scm.com/docs/git-commit": "43de4c6edf3c7ed93cdf8983f1ea7d73115176cc" }, "links": [ { "rel": "https://github.com/OAI/OpenAPI-Specification", "href": "https://example.com/master/service-name/swagger.json" } ] } ``` This sample document contains the relevant information displayed in the frontend (each information is optional): - The software version of the service (see `https://schema.org/softwareVersion`) - The build time of the service (see `https://schema.org/dateModified`) - The git commit id of the service (see `https://git-scm.com/docs/git-commit`) - The link to the API specification (see `https://github.com/OAI/OpenAPI-Specification`) In order to generate the correct link the API specification PREvant adds following headers to each of these requests: - [`Forwarded` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded) with `host` and `proto`. - `X-Forwarded-Prefix` (used by some reverse proxies, cf. [Traefik](https://docs.traefik.io/basics/) and [Zuul](https://cloud.spring.io/spring-cloud-static/Finchley.SR1/multi/multi__router_and_filter_zuul.html)). # Development See [development](Develop.md) # Further Readings PREvant's concept has been published in the [Joint Post-proceedings of the First and Second International Conference on Microservices (Microservices 2017/2019): PREvant (Preview Servant): Composing Microservices into Reviewable and Testable Applications](http://dx.doi.org/10.4230/OASIcs.Microservices.2017-2019.5). This paper is based on [the abstract](https://www.conf-micro.services/2019/papers/Microservices_2019_paper_14.pdf) that has been published at the conference [_Microservices 2019_ in Dortmund](https://www.conf-micro.services/2019/). The talk is available on [YouTube](http://www.youtube.com/watch?v=O9GxapQR5bk). Click on the image to start the playback: [![Video “PREvant: Composing Microservices into Reviewable and Testable Applications” at Microservices 2019](http://img.youtube.com/vi/O9GxapQR5bk/0.jpg)](http://www.youtube.com/watch?v=O9GxapQR5bk)

近期下载者

相关文件


收藏者