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.
173 lines
4.6 KiB
173 lines
4.6 KiB
= Cloud computing - Service mesh and microservices networking!
|
|
Apostolos rootApostolos@swarmlab.io
|
|
// Metadata:
|
|
:description: Dockerfile instructions
|
|
:keywords: Dockerfile
|
|
ifndef::env-browser[]
|
|
:data-uri:
|
|
endif::[]
|
|
:images-cdn: http://localhost:3080/images
|
|
:toc: right
|
|
:toc-title: Table of contents
|
|
:toclevels: 4
|
|
:source-highlighter: highlight
|
|
:no-header-footer:
|
|
:nofooter:
|
|
:last-update-label!:
|
|
:icons: font
|
|
:sectnums:
|
|
:url_mongodb: https://en.wikipedia.org/wiki/MongoDB
|
|
|
|
|
|
|
|
.Service mesh and microservices networking
|
|
****
|
|
We will be trying to create a swarm implementation that will allow communication between all of the members/nodes.
|
|
|
|
[NOTE]
|
|
====
|
|
|
|
.Imaging a swarm
|
|
image:./Swarming2.png[alt="Swarm"]
|
|
|
|
To undertand this better lets look at the picture bellow and imagine that red dots are iot devices that can send and receive and black ones are clients that gather data.
|
|
|
|
.Architecture of swarm communication
|
|
image:./swarmlabn-1.png[alt="Swarm Gateway"]
|
|
|
|
- Red Node: Server/Client and Gateway Role
|
|
- Black and Red Node: Client Role
|
|
====
|
|
|
|
|
|
|
|
*To make our life easier at this task we will be using the following tools...*
|
|
|
|
* Docker image:link_icon_16.png[link="https://en.wikipedia.org/wiki/Docker_(software)",window=_blank]
|
|
* Ansible image:link_icon_16.png[link="https://en.wikipedia.org/wiki/Ansible_(software)",window=_blank]
|
|
* NodeJS image:link_icon_16.png[link="https://en.wikipedia.org/wiki/Node.js",window=_blank]
|
|
* VueJS image:link_icon_16.png[link="https://en.wikipedia.org/wiki/Vue.js",window=_blank]
|
|
* Redis image:link_icon_16.png[link="https://en.wikipedia.org/wiki/Redis",window=_blank]
|
|
* MongoDB image:link_icon_16.png[link="https://en.wikipedia.org/wiki/MongoDB",window=_blank]
|
|
|
|
****
|
|
|
|
== General info:
|
|
|
|
=== Timeframe:
|
|
This is a project that will be deleveloped thoughout the semester 2021.
|
|
|
|
=== What will i learn?
|
|
You will learn to code, coordinate and orchestrate a swarm of self-acting nodes.
|
|
|
|
=== What tools will I need
|
|
|
|
Internet and a pc
|
|
|
|
For tool info please reffer to the tools section below.
|
|
|
|
Installation will be explained live.
|
|
|
|
=== What students can take this course
|
|
Any student with basic knowledge of networking and computer programming should be able to cope with the needs.
|
|
|
|
=== How is the course going to take place
|
|
|
|
The course will be divided into following parts
|
|
|
|
* A list of videos, asciinemas and instructions explaining the project
|
|
|
|
* lectures BASED ON THE VIDEOS for deeper analysis and questions
|
|
|
|
* and a Gitter for further conversations kai na λύσεις οποιαδήποτε απορία σου απευθείας
|
|
|
|
=== Will there be some kind of exam/certificate? What will i gain?
|
|
|
|
* The will NOT be an exam or certificate.
|
|
* You will gain contributions in form of commits and merge requests into larger projects, which you can then add to your C.V. and upgrade it.
|
|
|
|
TIP: Just to give some context, *contribution of code is regarded as the most important factor when choosing a software engineer*, thus making the course very helpful for future employment
|
|
|
|
|
|
== Course Description
|
|
|
|
=== Cloud & microservice
|
|
|
|
|
|
==== docker app
|
|
|
|
The section guides you through the following activities:
|
|
|
|
* Create a Dockerized Sample application
|
|
* Start an app container
|
|
|
|
==== docker swarm
|
|
|
|
The section guides you through the following activities:
|
|
|
|
* initializing a cluster of Docker Engines in swarm mode
|
|
* adding nodes to the swarm
|
|
* deploying application services to the swarm
|
|
* managing the swarm once you have everything running
|
|
|
|
|
|
==== Orchestration
|
|
|
|
The section guides you through the following activities:
|
|
|
|
* scale our containerized applications across clouds and datacenters
|
|
|
|
|
|
=== Administer and maintain a swarm of Docker Engines
|
|
|
|
==== manager nodes
|
|
==== Monitor swarm health
|
|
==== Scheduling Services on a Docker Swarm Mode Cluster
|
|
|
|
* Scheduling Preferences
|
|
* Rescheduling on Failure
|
|
|
|
==== ansible
|
|
|
|
* Using ansible to perform operations on managed nodes aka Configurations, deployment, and orchestration/automation
|
|
* Deploying Docker Containers with Ansible
|
|
|
|
|
|
=== Create service on nodes
|
|
|
|
This section includes Docker images and an application for Node development using containers.
|
|
|
|
Create Real-time Application with
|
|
|
|
* Node.js
|
|
* Express.js
|
|
* Socket.io
|
|
* Redis
|
|
|
|
|
|
|
|
=== Monitoring - service applications communication
|
|
|
|
==== Real-Time data/Log Collection
|
|
|
|
=== create noSQL DB (mongo cluster)
|
|
|
|
A replica set is a group of mongod processes that maintain the same data set
|
|
|
|
==== create replicas
|
|
|
|
* Replication in MongoDB
|
|
* Change Streams
|
|
** work with the change stream cursor.
|
|
** Watch Collection/Database/Deployment etc
|
|
|
|
|
|
=== central web admin interface
|
|
|
|
Create a CRUD App
|
|
|
|
==== vuejs
|
|
|
|
Create single-page application
|
|
|
|
|
|
|