Installation guide

Requirements

  • Ubuntu (14.04)
  • Java 7 (JDK included)
  • Python and pip (2.7)
  • Zookeeper (3.4.6)
  • Storm (0.10.0)
  • Mongodb (2.6)
  • Maven (3.3.9)
  • Maven server (We recommend to use Artifactory)

Top

Minimum resources

NOTE: The following section was intended for production environments. 4 Nodes 8GB RAM 100GB HD 4CPUs * Ubuntu (14.04)

Top

Processes list

  • Storm
    • nimbus process
    • supervisor process
    • ui process
    • logviewer process
  • Zookeeper
    • zookeeper
  • Mongo
    • mongod
  • Sinfonier Web
    • play
  • Sinfonier API
    • gunicorn
  • Artifactory
    • artifactory

Top

Database list

  • Mongo
    • Sinfonier

Top

Installation

In this guide we suppose that we are using git for getting the code but you may want to have your own way to get it.

git clone git@github.com:telefonicaid/fiware-sinfonier.git
cd fiware-sinfonier

Top

Installation zookeeper

We recommend use a production mode following zookeeper guide. Top

Installation storm

We recommend use a production mode following storm guide. NOTE: Each supervisor node should have installed module's python dependencies. Top

Mongodb

Mongodb installation guide You could set up mongodb by your requirements but it should be running. Top

Maven

Maven installation guide Top

Maven server:

We recommend to use Artifactory guide, but you can use any that you want. We do not recommend to use the default configuration and add a new user with the right permissions. After to install and configured it you should configure your settings.xml for maven. The next code could be useful for you if you defined a user called sinfonier.

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings
-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <servers>
    <server>
      <id>central</id>
        <username>sinfonier</username>
    <password>sinfonier</password>
    </server>
  </servers>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>libs-release</name>
          <url>http://yourhost:8081/artifactory/libs-release</url>
        </repository>
      </repositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>

Top

Sinfonier-backend

In this guide we suppose that we are using git for getting the code but you may want to have your own way to get it. After get the code you will have to compile the code and push it to your maven repository. One time done this you can remove this proyect.

cd path/to/fiware-sinfonier/sinfonier-backend
mvn clean compile package
mvn deploy:deploy-file -Dfile=target/sinfonier-backend-1.1.0.jar -DgroupId=com.sinfonier -DartifactId=sinfonier-backend -Dversion=1.1.0 -Dpackaging=jar -DrepositoryId=central -Durl=http://yourmavenserver/artifactory/libs-release-local

Top

Sinfonier-backend-api

This allow to communicate the both main components, the web and apache storm. For this project you must configure a few things. + The host or hosts in which sinfonier-backend-api is going to be deployed must contain a tarball of Apache Storm and its location should be set through a configuration file or the STORM_HOME environment variable. + The host or hosts in which sinfonier-backend-api is going to be deployed must contain a tarball of Maven and its location should be set through a configuration file or the MAVEN_HOME environment variable. + Others things that you can set up are for example Mongodb, Gist or Logger but those should be in the config file. NOTE: If you want to deployed using high availability you can use gunicorn. Take a look to their guide

cd cd path/to/fiware-sinfonier/sinfonier-backend-api
pip install -r requirements
# dev mode
# python sinfonierapi.py
# prod mode using gunicorn 
gunicorn sinfonierapi:app

Top

Sinfonier-web

You may want to deployed using high availability, so in this case you can use nginx By default you can register with admin@localhost.com. Also, you can define the default admin user and register with it changing in conf/darwin.conf the following values auto_activated_users=your@email.com and auto_admin_users=your@email.com. For more info take a look in Darwin

cd cd path/to/fiware-sinfonier/sinfonier-frontend
play dependencies --sync
play start

For checking if everything is alright visit diagnosing [http://localhost:9000/diagnosis] Top

Global architecture and default ports

NOTE: all port using by HTTP Figure 1 - Sinfonier architecture Simple View Top