Preparations for release 0.2.0 (#461)

* Promote update server to runtime

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Current status

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* More CQs

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Complete CQs

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Updatesd documentation

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Enable test modules

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Re add examples and extensions

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Fixes and roadmap extended

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Add release issue link

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Add works with CQ.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Documented CQs for #459

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Fix shell script

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Fix CQ table and runtime parent.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Fix repo entries.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Cleaned up docs.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
Kai Zimmermann
2017-03-30 08:46:31 +02:00
committed by GitHub
parent c8db41ff85
commit 6d2a108549
53 changed files with 540 additions and 335 deletions

View File

@@ -7,7 +7,7 @@ title: Clustering
# Cluster
_hawkBit_ is able to run in a cluster with some constraints. This guide provides insights in the basic concepts and how to setup your own cluster. You can find additional information in the [hawkbit example app's README](https://github.com/eclipse/hawkbit/blob/master/examples/hawkbit-example-app/README.md).
_hawkBit_ is able to run in a cluster with some constraints. This guide provides insights in the basic concepts and how to setup your own cluster. You can find additional information in the [hawkbit runtimes's README](https://github.com/eclipse/hawkbit/blob/master/hawkbit-runtime/hawkbit-update-server/README.md).
# Big picture
@@ -15,7 +15,7 @@ _hawkBit_ is able to run in a cluster with some constraints. This guide provides
# Events
Event communication between nodes is based on [Spring Cloud Bus](https://cloud.spring.io/spring-cloud-bus/) and [Spring Cloud Stream](http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/). There are different [binder implementations](http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_binders) available. The _hawkbit example app_ uses RabbitMQ binder. Every node gets his own queue to receive cluster events, the default payload is JSON.
Event communication between nodes is based on [Spring Cloud Bus](https://cloud.spring.io/spring-cloud-bus/) and [Spring Cloud Stream](http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/). There are different [binder implementations](http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_binders) available. The _hawkbit Update Server_ uses RabbitMQ binder. Every node gets his own queue to receive cluster events, the default payload is JSON.
If an event is thrown locally at one node, it will be automatically delivered to all other available nodes via the Spring Cloud Bus's topic exchange:
![](../images/eventing-within-cluster.png){:width="100%"}

View File

@@ -7,27 +7,25 @@ title: Run hawkBit
# Run hawkBit
In this guide we describe how to run a full featured hawkBit setup based on a production ready infrastructure. It is based on the _hawkBit_ example modules. We call these _examples_ as we expect that developers who intend to create a _hawkBit_ based IoT application on their own will create a custom [Spring Boot](http://projects.spring.io/spring-boot/) app based on _hawkBit_ as demonstrated with the [hawkBit example app](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app).
In this guide we describe how to run a full featured hawkBit setup based on a production ready infrastructure. It is based on the _hawkBit_ example modules and update server.
Note: the example app can in fact be run [stand alone](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app). However, only with an embedded H2, no [Device Management Federation API](../interfaces/dmf-api.html) and no artifact storage.
Note: the update server can in fact be run [stand alone](https://github.com/eclipse/hawkbit/tree/master/hawkbit-runtime/hawkbit-update-server). However, only with an embedded H2, no [Device Management Federation API](../interfaces/dmf-api.html) and no artifact storage.
This guide will focus on a complete setup that includes all _hawkBit_ features.
# System Architecture
This guide describes a target architecture that is more like one that you will expect in a production system.
- hawkBit Update Server [example app](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app).
- hawkBit [Update Server](https://github.com/eclipse/hawkbit/tree/master/hawkbit-runtime/hawkbit-update-server).
- [MariaDB](https://mariadb.org) for the repository.
- [MongoDB](https://www.mongodb.org) for artifact storage.
- [RabbitMQ](https://www.rabbitmq.com) for DMF communication.
- For testing and demonstration purposes we will also use:
- [hawkBit Device Simulator](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-device-simulator).
- [hawkBit Management API example client](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-mgmt-api-client).
# Prerequisites
- You have a MongoDB (>= 3.0), RabbitMQ and MariaDB/MySQL installed and running in your environment.
- You have a working [hawkBit build](https://github.com/eclipse/hawkbit).
- You have a working [hawkBit core build](https://github.com/eclipse/hawkbit).
- You have a working [hawkBit examples build](https://github.com/eclipse/hawkbit/examples).
# Steps
@@ -35,7 +33,7 @@ This guide describes a target architecture that is more like one that you will e
As mentioned you can create your own application with _hawkBit_ inside or adapt the existing example app. The second option will be shown here.
### Set MariaDB dependency to compile in the [example App POM](https://github.com/eclipse/hawkbit/blob/master/examples/hawkbit-example-app/pom.xml)
### Set MariaDB dependency to compile in the [update server POM](https://github.com/eclipse/hawkbit/blob/master/hawkbit-runtime/hawkbit-update-server/pom.xml)
{% highlight plaintext %}
<dependency>
<groupId>org.mariadb.jdbc</groupId>
@@ -44,7 +42,7 @@ As mentioned you can create your own application with _hawkBit_ inside or adapt
</dependency>
{% endhighlight %}
### Configure MariaDB/MySQL and MongoDB connection settings.
### Configure MariaDB/MySQL connection settings.
For this you can either edit the existing *application.properties* or create a [new profile](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-profile-specific-properties).
@@ -54,7 +52,6 @@ spring.datasource.url=jdbc:mysql://localhost:3306/YOUR_SCHEMA
spring.datasource.username=YOUR_USER
spring.datasource.password=YOUR_PWD
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.data.mongodb.uri=mongodb://localhost/hawkbitArtifactRepository
{% endhighlight %}
### Configure RabbitMQ connection settings for update server and device simulator (optional).
@@ -87,7 +84,7 @@ hawkbit-example-mgmt-simulator-##VERSION##.jar --hawkbit.url=YOUR_HOST:PORT
### Compile & Run your _"production ready"_ app.
see [example app](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app)
see [update server](https://github.com/eclipse/hawkbit/tree/master/hawkbit-runtime/hawkbit-update-server)
### Compile & Run example scenario [creation script](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-mgmt-api-client) (optional).

View File

@@ -13,8 +13,6 @@ We offer a sandbox installation that is free for everyone to try out hawkBit. Ho
# Compile, Run and Getting Started
We are not providing an off the shelf installation ready hawkBit update server. However, we recommend to check out the [Example Application](examples/hawkbit-example-app) for a runtime ready Spring Boot based update server that is empowered by hawkBit. In addition we have [guide](../guide/runhawkbit.html) for setting up a complete landscape.
#### Clone and build hawkBit
{% highlight bash %}
$ git clone https://github.com/eclipse/hawkbit.git
@@ -22,11 +20,18 @@ $ cd hawkbit
$ mvn clean install
{% endhighlight %}
#### Start hawkBit example app
#### Start hawkBit update server
[Example Application](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app)
{% highlight bash %}
$ java -jar ./examples/hawkbit-example-app/target/hawkbit-example-app-#version#.jar
$ java -jar ./hawkbit-runtime/hawkbit-update-server/target/hawkbit-update-server-#version#-SNAPSHOT.jar
{% endhighlight %}
#### Build hawkBit examples
{% highlight bash %}
$ git clone https://github.com/eclipse/hawkbit.git
$ cd hawkbit/examples
$ mvn clean install
{% endhighlight %}
#### Start hawkBit device simulator
@@ -39,4 +44,4 @@ $ java -jar ./examples/hawkbit-device-simulator/target/hawkbit-device-simulator-
[Example Management API Client](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-mgmt-simulator)
{% highlight bash %}
$ java -jar ./examples/hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-#version#.jar
{% endhighlight %}
{% endhighlight %}