Coder Social home page Coder Social logo

deployment-manager's Introduction

BenchFlow

BenchFlow is an open-source expert system providing a complete platform for automating performance tests and performance analysis. We know that not all the developers are performance experts, but in nowadays agile environment, they need to deal with performance testing and performance analysis every day. In BenchFlow, the users define objective-driven performance testing using an expressive and SUT-aware DSL implemented in YAML. Then BenchFlow automates the end-to-end process of executing the performance tests and providing performance insights, dealing with system under test deployment relying on Docker technologies, distributing simulated users load on different server, error handling, performance data collection and performance metrics and insights computation.

Quick links: BenchFlow Documentation | TODO - also link to the documentation

TODO (try BenchFlow)

Purpose

TODO (BenchFlow has a strong focus on developer happiness & ease of use, and a batteries-included philosophy.)

Current project focus

The BenchFlow expert system is currently mainly focused on enabling the performance benchmark of Workflow Management Systems supporting the BPMN 2.0 modeling and execution language. Despite the main focus, most of its components are reusable and already general enough to support performance benchmarks of generic Web Services. We strongly encourage extending BenchFlow by adding missing functionalities specific to your particular benchmarking needs. TODO ([point to setup and getting started]). Website related to the current focus: http://benchflow.inf.usi.ch.

We have a temporary logo, we are going to have a proper logo at some point in the future.

Upcoming project focus

(TODO) automated objective-driven performance testing, and integration in continuous software improvement lifecycle.

Features (Why BenchFlow?)

TODO (also link to the documentation)

definition of a performance benchmark/test through a dedicated DSL; automatisation of the deployment of the System Under Test on distributed infrastructures using Docker; reliable execution of the performance benchmark using Faban; data collection and cleaning; data analysis in the form of computed metrics and KPIs.

Use Cases

TODO (to show the uses of the tool, linking to an actual article explaining how to do that, point also to controbuting for extending)

Installation or Upgrade

TODO (explain current project state in dev, and link to docs and uses to state that it is usable, but not 100% battle tested)

TODO (getbenchflow in container for client and docs for the rest [also links to docker hub if needed, ot least in the developer documentation], current release. Explain: Docker as prerequisite)

(TODO, maybe at the top) Project Status: The project is currently in active development and is tested on Mac OS X for the client command line side tools, and Ubuntu 14.04.2 LTS for the server side tools. The main project branch is devel [maybe for now say that there are no release yet, but we are in the process of having the first release]

Getting Started

Prerequisites

TODO (simplest example, then links to the docs for advanced stuff)

Installing

TODO (needs help or customisation, write contacts)

Built With

TODO

Contributing

TODO (also related to extending to custom software, and links to developer documentation and TODOs)

Versioning

TODO (SemVer + link to docs)

Authors

TODO

License

Copyright © 2014-2017, Vincenzo Ferme for own and contributors committed code and artefacts.

The license for all the not third-party code in the BenchFlow repositories is RPL-1.5, unless otherwise noted

deployment-manager's People

Contributors

simonedavico avatar vincenzoferme avatar

Watchers

 avatar  avatar

deployment-manager's Issues

Add an API to get the Exposed Port of a Service

Docker Compose exposed the port API. We are gonna rely on it to get the exposed port of services started without an host minded port (e.g., the BenchFlow services).

Example of API call with curl:

curl --insecure http://<SWARM_IP>:<SPARM_PORT>/containers/json?filters=%7B%22name%22%3A%5B%22<CONTAINER_NAME>*%22%5D%7D

with * after the name of the service for with I want the port, that I define statically (e.g., stats*)

OR Better: I can directly use docker compose: docker-compose port mysql 8080 [I just need the name of the service, but is is easy, but it easy because I can define a taxonomy and hardcode it]

You get IP and Public port in the response, and that’s it. You can use them to connect to the service, by getting the dynamic port allocated. This will also be useful when we will not use anymore the net=“host” and we want to get all the dynamic info at runtime and it just rely on docker

then update the driver

Rewrite the Deployment Manager Relying on Libraries and in Go Lang

Currently the deployment manager directly calls the docker-compose command line, because it seems that no available Docker Compose libraries are available, at least for Java. Given this limitation, at some point, we should rewrite the deployment manager in Go Lang, to rely on https://github.com/docker/libcompose that is also the official Docker library for compose. In that moment we should also improve the API design and the error responses.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.