buildersoftdev/andyx
Buildersoft Andy X - Distributed streaming platform
10K+
Andy X is an open-source distributed streaming platform designed to deliver the best performance possible for high-performance data pipelines, streaming analytics, streaming between microservices and data integrations.
For local development and testing, you can run Andy X Node as standalone mode on your machine within a Docker container.
If you have not installed Docker, download the Community edition and follow the instructions for your OS.
{{< alert icon="Andy X in production?" title="Andy X in production?" text="If you're looking to run a full production Andy X installation, see the Deploying a Andy X instance guide." />}}
For MacOS, Linux, and Windows:
$ docker run -it -p 6540:6540 -e ANDYX_ENVIRONMENT='Development' -e ANDYX_URLS='http://localhost:6540' buildersoftdev/andyx:3.0.1
A few things to note about this command:
docker volume inspect <sourcename>
docker run -it -p 6540:6540 -e ANDYX_ENVIRONMENT='Development' -e ANDYX_URLS='http://localhost:6540' --mount source=storage,target=/app/data buildersoftdev/andyx:3.0.1
Environment variables like ANDYX_ENVIRONMENT is needed to start the Node as Development Environment, ANDYX_URLS will explose the node url inside the container.
For Docker on Windows make sure to configure it to use Linux containers
If you start Andy X successfully, you will see Information-level log messages like this:
Starting Buildersoft Andy X
Set your information in motion.
### ###
### ### Andy X v3.0.1. Developed with (love) by Buildersoft Inc.
#### Licensed under the Apache License 2.0. See https://bit.ly/3DqVQbx
### ###
### ### Andy X is an open-source distributed streaming platform designed to deliver the best performance possible for high-performance data pipelines, streaming analytics, streaming between microservices and data integrations.
Port exposed 6541 SSL
Port exposed 6540
Starting Buildersoft Andy X...
2022-10-24 00:01:39 andyx Information | Starting Buildersoft Andy X...
2022-10-24 00:01:39 andyx Information | Update settings
2022-10-24 00:01:39 andyx Information | Node identifier is 'andyx_standalone'
2022-10-24 00:01:39 andyx Information | Configuration endpoints are exposed
2022-10-24 00:01:40 andyx Information | Starting cluster for the first time
2022-10-24 00:01:40 andyx Information | Initial configuration in process ...
2022-10-24 00:01:41 andyx Information | Initial configuration is done
2022-10-24 00:01:41 andyx Information | Retention service for system/connections/storage/events is been initiaized
2022-10-24 00:01:41 andyx Information | Retention service for system/connections/producer/events is been initiaized
2022-10-24 00:01:41 andyx Information | Retention service for system/connections/consumer/events is been initiaized
2022-10-24 00:01:41 andyx Information | Andy X is ready
{{< alert icon="👉 Tips" text="When you start a local Andy X Node cluster, there are system, default and public tenants created automatically. You can use default and public tenants for development purposes. You can create any product/component and topic within default and public tenants." />}}
Andy X offers client libraries for .NET, Java, Python etc. If you are running a local cluster, you can use the root url to interact with your cluster:
The following example will guide you get started with Andy X quickly by using Andy X Client for .NET
Add Andy X Client library from Nuget to your app:
Install-Package Buildersoft.Andy.X.Client -Version 3.0.1
or
<PackageReference Include="Buildersoft.Andy.X.Client" Version="3.0.1" />
Andy X platform has been designed as distributed system. The Node is the edge service that connects Producers and Consumers with each-other, you can integrate also other services with Andy X, like Andy X Portal and Andy X Connect connectors.
What is Andy X Portal? Is an open-source cloud-native web application designed to manage Andy X Nodes and Storages already deployed. It's a standalone web app that it is used to check Andy X Cluster. As a solutions has been designed from the beginning to be cloud-native also can run on-prem using Docker. Portal can be deployed as standalone application.
We are using docker-compose to run this bundle of services with each-other as a simple cluster.
What is docker-compose? Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features.
To run a docker-compose file we will run the command via terminal in the docker-compose.yaml file.
docker-compose up -d
Below you will find a simple docker-compose file for Andy X Bundle.
# ------------------------------------------------------------------------------------------------
version: '3'
# ------------------------------------------------------------------------------------------------
services:
andyx-portal:
container_name: andyx-portal
image: buildersoftdev/andyx-portal:v3.0.0
ports:
- 9000:80
environment:
- XNode:ServiceUrl=http://andyx:6540
networks:
- local
# ------------------------------------------------------------------------------------------------
andyx:
container_name: andyx
image: buildersoftdev/andyx:3.0.1
ports:
- 6540:6540
environment:
- ANDYX_ENVIRONMENT=Development
- ANDYX_URLS=http://andyx:6540
volumes:
- ./data:/app/data
networks:
- local
# ------------------------------------------------------------------------------------------------
networks:
local:
driver: bridge
By executing the command to run Andy X Bundle, there will be two containers create like:
This is a great question, but if you have some knowledge as DevOps this will be easy-peasy. In the moment that the containers are up and running, in the same folder with docker-compose file for andyx container there will be created a data directory with andy x storage, this is needed if the contanier dies, next time the container will take and use the same persistent data and configuration as it was before.
volumes:
- ./data:/app/data
Also, like how we started in the second example, we mounted a volume in Docker for Windows. We can also apply the same line in docker-compose
volumes:
- andyxdata:/app/data
Let's do it together! You can support us by clicking on the link below!
docker pull buildersoftdev/andyx