You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

4.4 KiB

= Swarmlab Hybrid!
Apostolos rootApostolos@swarmlab.io
// Metadata:
:description: Intro and Install
:keywords: ubuntu install
:data-uri:
:toc: right
:toc-title: Table of contents
:toclevels: 4
:source-highlighter: highlight
:icons: font
:sectnums:


====
{empty} +
[.right]
.Build once, Deploy anywhere!
image:./images/hybrid.png[300,300,role="related thumb right"]

Swarmlab Hybrid provides a *Modern Application Architecture*

* Distributed System
* Multiple machines
* Each service is a process
* Containerized services in Lightweight containers
* Auto deploy/delivery of services
====

[TIP]
====
.WireGuard - fast and modern VPN tunnel
*All running in a isolated Network Stack with High efficiency and security*
====




== Install


=== Prerequisites Hardware


* A Linux Server (Virtual or Physical)
** You must have super user privileges (sudo)

* Docker Engine- Community version 18 or later is required.
** Docker Engine is supported on x86_64 (or amd64), armhf, and arm64 architectures.

* RAM
** Absolute minimum to run the daemon and some very light containers - 512MB
** Minimum for “comfortable” usage – 2GB

* CPU
** Minimum: 2; Recommended 4+.

* Disk Space
** 10 GB for internal requirements.
** The amount of additional disk space required for load file staging, persistence, or backups depends on the size of the data to be loaded.

TIP: Docker uses a hypervisor with a VM, and the host server must support virtualization.

[NOTE]
.Remember
====
Before you create and configure a hybrid deployment using the swarmlab-agent client, your Local Machines *need to meet certain requirements.*

If you don't meet those requirements, you won't be able to complete the steps within the swarmlab-agent client

and you won't be able to configure a hybrid deployment between your Local Enviroment and Swarmlab Online Enviroment.
====

=== Prerequisites Keys

* Create an Hybrid Swarmlab Key
** Connect to https://api-client.swarmlab.io:8088/ and click on the Dashboard->Profile Menou
* After creating Keys for your project, you will be informed with an email and it will also become visible in the Swarmlab-agent clients corresponding menu.

=== Download and install

* Download the swarmlab-agent client
** git clone https://git.swarmlab.io:3000/zeus/swarmlab-hybrid.git

* Run sudo ./install.sh
** See also ./install directory

== Start/Stop Agent

=== Start Agent
* Navigate to the dir you have installed the agent
** run ./start.sh

=== Stop Agent
* Navigate to the dir you have installed the agent
** run ./stop.sh

=== Login

Connect to https://api-client.swarmlab.io:8088/ and click on "Hybrid->OpenSwarmlab Hybrid" Menou

TIP: This is the way to have a fully functional Swarmlab Cloud. You HAVE to connect this way to be Authorized for the session.

== Config

* Use the "Profile->Settings” menu on swarmlab-agent client to configure a hybrid agent
** add also a zone for your agent


** Connect to https://api-client.swarmlab.io:8088/ and click on the Dashboard->Profile Menou

== Deploy


=== Local


[.float-group]
--
[.left]

video::507040807[vimeo,width=640,start=0,end=1:10,title=.intro swarmlab 0 - 1:10,lang=us]
[.right]
image:./images/swarmlab-network.png[300,300,role="related thumb right"]
--

video::507040807[vimeo,width=640,start=1:10,end=2:20,title=.intro hybrid 1:10 - 2:20,lang=us]

video::507040807[vimeo,width=640,start=2:20,end=4:15,title=.intro agent 2:20 - 4:15,lang=us]

video::507040807[vimeo,width=640,start=4:15,end=7:25,title=.bootstrap image 4:15 - 7:25,lang=us]



=== Hybrid

* deploy 0:20 - 11:17
** deploy field description (image) 1:03 - 1:30
** deploy field description (stack) 1:30 - 3:10
** deploy field description (network) 3:10 - 5:35
** deploy field description (Limits) 5:35 - 6:17
** deploy field description (Port Expose) 6:17 - 7:20
** deploy field description (Readme URL) 7:20 - 8:32

video::507090167[vimeo,width=640,start=0,end=11:17,title=.Deploy,lang=us]

== Join

* join 11:17 - 17:41

video::507090167[vimeo,width=640,start=11:17,end=17:41,title=.Join,lang=us]


== Connect to Container

video::507040807[vimeo,width=640,start=725,end=12:20,title=.Connect to container (Host->container) 7:25 - 12:20,lang=us]

video::507040807[vimeo,width=640,start=12:20,end=13:50,title=.Connect to container (Container->container) 12:20 - 13:50,lang=us]

video::507040807[vimeo,width=640,start=13:50,end=7:15,title=.Mount DIR container 13:50 - 7:15,lang=us]