= List!
  
image::ROOT:swarmlab.png[swarmlab,150,float=right]


== Why Docker

https://www.cloudbees.com/blog/why-dockero[Why Docker^]

== Intro docker

https://www.compose-spec.io/[docker-compose^]

https://github.com/veggiemonk/awesome-docker[github docker-compose^]

https://twitter.com/awesome_docker[github awesome docker]

=== Learn to build and deploy your distributed applications easily to the cloud with Docker 

https://docker-curriculum.com/[HowTo]

== Next Step DockerSwarm

****
TIP: DockerSwarm

video::Tm0Q5zr3FL4[youtube, start=0]
****

https://www.simplilearn.com/tutorials/docker-tutorial/docker-swarm[docker-swarm tutorial^]

=== Getting started with swarm - official from docker

https://docs.docker.com/engine/swarm/swarm-tutorial/https://k21academy.com/docker-kubernetes/docker-swarm/[docker-swarm^]

=== Replicability, use the same files as when developing locally.

https://dockerswarm.rocks/[dockerswarm.rocks^]

=== Open Source Cloud Guide από την IBM

https://open-cloud-guide.dev/[open-cloud huide^]

=== Alternatives 

https://www.nomadproject.io/[monad^]

https://dev.to/stevenmcgown/kubernetes-for-dummies-5hmh[kubernetes^]

=== Raft consensus in swarm mode

https://docs.docker.com/engine/swarm/raft/[raft^]

https://raft.github.io/[raft github^]

http://thesecretlivesofdata.com/raft/[raft demo^]

== Next Step Storage

****
TIP: Storage

video::W2Z7fbCLSTw[youtube, start=0]
****

=== Generic

https://docs.mongodb.com/manual/replication/[Mongo replica^]

https://docs.mongodb.com/manual/core/capped-collections/[mongo capped^]

=== On memory - Key-value

https://redis.io/topics/cluster-tutorial[Redis cluster^]

https://redis.io/[redis server^]

https://www.instaclustr.com/blog/redis-vs-memcached/[redis vs memcached^]

https://etcd.io/[etcd^]

****
TIP: etcd

video::OmphHSaO1sE[youtube, start=0]
****

****
TIP: redis

video::G1rOthIU-uo[youtube, start=0]
****


 Like etcd, Redis is an open source tool, but their basic functionalities are different.

etcd vs. Redis


[cols="1,1"]
|===
|etcd|Redis

| Redis is an in-memory data store and can function as a database, cache, or message broker. Redis supports a wider variety of data types and structures than etcd and has much faster read/write performance.
| But etcd has superior fault tolerance, stronger failover and continuous data availability capabilities, and, most importantly, etcd persists all stored data to disk, essentially sacrificing speed for greater reliability and guaranteed consistency. For these reasons, Redis is better suited for serving as a distributed memory caching system than for storing and distributed system configuration information.


|===





=== Sharing

==== NFS	

https://cloud.netapp.com/blog/azure-anf-blg-linux-nfs-server-how-to-set-up-server-and-client[NFS^]

https://www.gluster.org/[GlusterFS^]	   


== Deploy

https://www.compose-spec.io/[docker-compose^]

****
TIP: Deploy

video::zLltQxVb3NI[youtube, start=0]
****

https://12factor.net/[12factor^]


== Development - From Design to Application

=== programming language
==== nodeJS
****
TIP: NodeJS

video::ENrzD9HAZK4[youtube, start=0]
****

https://nodejs.org/en/[nodeJS^]

https://p5js.org/[p5js^]

https://threejs.org/[threejs^]

==== python
https://www.python.org/[python^]

=== Big data and Scientific analysis

https://numpy.org/[numpy^]

https://scipy.org/[scipy^]

https://jupyter.org/[jupyter^]

=== Rest API
****
TIP: Rest api

video::s7wmiS2mSXY[youtube, start=0]
****

=== Sockets
****
TIP: Sockets

video::ZBM28ZPlin8[youtube, start=0]
****

https://socket.io/[socket.io^]

== Auth

https://oauth.net/2/[auth2^]

https://oauth.net/code/nodejs/[Nodejs auth library^]

=== Auth server	

https://www.keycloak.org/[auth2 server^]

== Security VPN etc

https://www.wireguard.com/[simply the best VPN out there^]

== POC

=== netflix

****
TIP: Netflix

video::CZ3wIuvmHeM[youtube, start=0]
****

 6:50 monolithic

 8:24 minroservices

 19:00 microservice

 see also 37:00

https://netflix.github.io/[netflix github^]

===	Robots and IoT
https://nodebots.io/[nodebot^]

http://johnny-five.io/[johny-five^]

https://ardupilot.org/[eduplot^]

https://github.com/ArduPilot/ardupilot[ardupilot^]

	



