Edge++: Deployment
From Datonis
Contents
Edge++ Deployment on Rails setup
The configuration Github repository can be found here [1] This repository is a bunch of shell scripts that will help you orchestrate dockerized environment. This environment is served using docker-compose.
For booting setup we have to do ./boot.sh and to bring it down ./shutdown.sh
Configuration:
Couple of fields to be set up in .env file.
- LICENSE_KEY: License key of account on boarded on Datonis
- NUMBER_OF_INPUT_QUEUES: Degree of parallelism at which we want to process our event stream.
Basic building blocks of the architecture in terms of dockers are as follows:
Name | Docker Image | Purpose |
---|---|---|
redis | redis:6.0.3-buster | Redis server |
mongo | mongo:4.2.7-bionic | MongoDB for master data caching |
factory-server | altizon/factory | Factory Server to provide operator screens using FaasInfra |
sidekiq | altizon/factory | Sidekiq running asynchronous tasks |
factory-rake | altizon/factory | There will be N no of instances of this kind listening to their respective input queues. |
factory-function-cache | altizon/factory | Function Task schedular to start master data caching like account and user preferences to local MongoDB from production |
update_number_of_queues | altizon/factory | Updating __number_of_input_queues__ in Redis on boot |
wget_call | altizon/factory | Calling first API request to server initiating asset compilation |
Data Persistance
- The data being saved in MongoDB is a volume mounted on docker. Hence, it is safe to assume that your data will persist in MongoDB across boots of Edge++.
- For Redis we use Redis Persistance to ensure Redis maintains its state across boots. We use .aof files for saving our state.
FAQs for runnning Edge++ on Ubuntu VM using Oracle VirtualBox
- For starting virtualBox with SecureBoot hardware (Only if you have SecureBoot enabled in your machine)
- Password Based Encryption:
- VirtualBox Port forwarding from VM to the Host machine:
- Setting up redis container inside vm and accessing it via host.
- Configure and Run a Docker Container for Redis and Use it for Python
- Network type of vm - NAT
- Redis config - bind 0.0.0.0:port instead of 127.0.0.1
- Start the container and run Redis
- Port forwarding of vm- host: <redis-port> - guest: <redis-port>
- This will make redis available on localhost:port
- Ref - Cannot get or set to Redis on Vagrant guest from host due to "Error: Connection reset by peer"