CtoolkiT Agent parent

Cloud Toolkit Migration Agent parent

Лицензия

Лицензия

Группа

Группа

org.ctoolkit.agent
Идентификатор

Идентификатор

ctoolkit-agent-parent
Последняя версия

Последняя версия

1.0.1
Дата

Дата

Тип

Тип

pom
Описание

Описание

CtoolkiT Agent parent
Cloud Toolkit Migration Agent parent
Система контроля версий

Система контроля версий

https://github.com/turnonline/ctoolkit-agent

Скачать ctoolkit-agent-parent

Имя Файла Размер
ctoolkit-agent-parent-1.0.1.pom 5 KB
Обзор

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.ctoolkit.agent/ctoolkit-agent-parent/ -->
<dependency>
    <groupId>org.ctoolkit.agent</groupId>
    <artifactId>ctoolkit-agent-parent</artifactId>
    <version>1.0.1</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/org.ctoolkit.agent/ctoolkit-agent-parent/
implementation 'org.ctoolkit.agent:ctoolkit-agent-parent:1.0.1'
// https://jarcasting.com/artifacts/org.ctoolkit.agent/ctoolkit-agent-parent/
implementation ("org.ctoolkit.agent:ctoolkit-agent-parent:1.0.1")
'org.ctoolkit.agent:ctoolkit-agent-parent:pom:1.0.1'
<dependency org="org.ctoolkit.agent" name="ctoolkit-agent-parent" rev="1.0.1">
  <artifact name="ctoolkit-agent-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='org.ctoolkit.agent', module='ctoolkit-agent-parent', version='1.0.1')
)
libraryDependencies += "org.ctoolkit.agent" % "ctoolkit-agent-parent" % "1.0.1"
[org.ctoolkit.agent/ctoolkit-agent-parent "1.0.1"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

  • ctoolkit-agent-core
  • ctoolkit-agent-sql
  • ctoolkit-agent-elasticsearch
  • ctoolkit-agent-mongo

Trimigi cloud migration

Trimigi cloud migration is a tool which key motivation is to migrate hetrogenous databases (i.e. MySql to Mongo). For every datasource there is specific agent which knows how to import and export data from it.

How it works

how-it-works For more info go to wiki

Project structure

  • trimigi-core - shared core for migration agents. It handles core busines logic like transformations, conversions, rule sets, beam creation and so on
  • trimigi-agent - concreate agent implementations
    • trimigi-agent-elasticsearch - concrete agent implementation for elasticsearch data source
    • trimigi-agent-mongo - concrete agent implementation for mongo data source
    • trimigi-agent-sql - concrete agent implememtation for sql data sources
    • trimigi-agent-datastore - concrete agent implememtation for GCP datastore data sources

Docker swarm setup

Recommended way of running agents is via docker. To setup docker follow these steps:

# docker-machine start morty
  • add record to /etc/hosts for your docker machine - #172.16.139.211 morty - to find out what is ip of your docker machine run following command:
# docker-machine ls
  • create network 'migration' in docker - to add network run following command:
# docker network create --scope swarm -d overlay migration
  • add docker testing stacks - go to 'docker' directory and run one of the following commands (depending of migrating stack):

SQL (postgres) to elasticsearch migration stack:

# docker stack deploy -c docker-compose-postgres.yml,docker-compose-elasticsearch.yml,docker-compose-agent-sql.yml,docker-compose-agent-elasticsearch.yml migration 

SQL (postgres) to mongo migration stack:

# docker stack deploy -c docker-compose-postgres.yml,docker-compose-mongo.yml,docker-compose-agent-sql.yml,docker-compose-agent-agent-mongo.yml migration 
  • To run database (optionaly with its UI) run following:
# docker stack deploy -c docker-compose-elasticsearch.yml migration
# docker stack deploy -c docker-compose-mongo.yml migration
# docker stack deploy -c docker-compose-mysql.yml migration
# docker stack deploy -c docker-compose-postgres.yml migration
  • To setup apache spark processor engine run following command
# docker stack deploy -c docker-compose-spark.yml migration

Exposed docker ports

Port Service name Service type
8080 trimigi-agent-sql [agent]
8081 trimigi-agent-elasticsearch [agent]
8082 trimigi-agent-mongo [agent]
8083 trimigi-agent-datastore [agent]
5432 postgres database [datasource]
3306 mysql database [datasource]
9200 elasticsearch database [datasource]
27017 mongo database [datasource]
8180 sql adminer UI [UI]
8181 kibana UI [UI]
8182 mongo express UI [UI]
8191 spark dashboard UI master [UI]
8192 spark dashboard UI worker [UI]
4040 spark dashboard UI app [UI]

SQL setup (postgress)

  • DjdbcUrl=jdbc:postgresql://morty:5432/root
  • DjdbcUsername=root
  • DjdbcPassword=admin123
  • DjdbcDriver=org.postgresql.Driver
  • DmigrationTargetAgent=ELASTICSEARCH
  • DmigrationTargetAgentUrl=http://morty:8081

Elasticsearch setup

Mongo setup

  • DmongoUri=mongodb://root:admin123@morty:27017
  • Dmicronaut.server.port=8082

Datastore setup (env variables)

  • GOOGLE_CLOUD_PROJECT=${gcp-project-name}
  • GOOGLE_APPLICATION_CREDENTIALS=${path-to-service-account.json} (optional, if not set - well known locations will be used to get service-account.json)

Maven build

To run agents locally you need to build it with special maven profile. Each agent has its own profile:

# mvn clean install -P sql
# mvn clean install -P elasticsearch
# mvn clean install -P mongo
# mvn clean install -P datastore

Maven release

To relase into maven central run following commands:

mvn release:prepare -P sql,elasticsearch,mongo,datastore -DskipTests
mvn release:perform -P sql,elasticsearch,mongo,datastore -DskipTests -Darguments="-Dmaven.javadoc.skip=true"

Docker build image

To build docker images run following command:

# mvn clean install -P sql,elasticsearch,mongo,datstore,docker-build-image

Docker push

To push docker images into docker hub run following command:

# mvn clean install -P sql,elasticsearch,mongo,datastore,docker-push

Wiki

To learn more about trimigi visit wiki

org.ctoolkit.agent

TurnOnline.biz

The ConnecSys a fully Connected Ecosystem you can tweak anytime you wish. It will grow with your business.

Версии библиотеки

Версия
1.0.1