Prepare yourself
In this journey we'll meet these tools. It is not obligatory for you to be familiar with all of them, but it will be more comfortable if you are.
Docker
All services are running inside docker containers in the system. Most likely you won't interact with docker directly, but it is good to have and idea of what it is. For example, may be you'll want to customize web client and admin panel, and you'll have to pack them into docker image and make this image available for deployment tools (see Docker Hub).
Kubernetes
This thing will help you to deploy your containers to the cluster. Will manage networking, storage, scaling, etc. Almost all of your interaction with running system will be via kubectl
tool.
Will be very good if you understand what is node
, pod
, service
, namespace
, etc.
tokendctl
This tool is used to generate kubernetes cluster config file, from the much neater TokenD environment file. You'll have to use just two commands:
tokendctl gen env -f <source> -o <output>
tokendctl gen k8s -f <source> -o <output>
kops
Kubernetes can help you to deploy system to the cluster. kops
will help you to create the cluster in AWS. You, probably will use it only once, during first deploy, all needed commands present in Just deploy it section.
AWS Route53, Certificate manager
Kubernetes needs ssl certificate to make its networking magic. You'll give it certificate by providing certificate's ARN. This means that AWS must know about your certificate, so you have choice: either request a certificate from AWS directly, or import it to AWS.
Also, after deploy Kubernetes will give you cumbersome url for your system. You'll have to alias it yourself in your favourite name server.
Terraform
This is very powerful tool. However we use it in a limited scope. It will send initial transactions into system, to set up all base assets, trade pairs, etc. For basic installation it is good enough for you to know these commands:
terraform init
terraform apply