= Architecture! Apostolos rootApostolos@swarmlab.io // Metadata: :description: Architecture instructions :keywords: Architecture 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 .Architecture **** We will be trying to create a swarm implementation that will allow communication between all of the members/nodes. **** == Deploy microservices to a Swarm cluster [.float-group] -- [.right] image::./microservices-swarm.png[Docker,650,role=right] :hardbreaks: {empty} + {empty} :!hardbreaks: .microservices architecture * a microservice performs a simple task ** communicates with clients or ** other microservices *** communication mechanisms such as REST API requests or Websocket etc [NOTE] ==== * Microservices can include any programming language you like ** and with the orchestration tools they are easy to deploy and maintain This architecture uses NodeJS and Redis microservices deployed as Docker containers ==== -- === Scalability You can scale your application by updating the number of replica nodes in the swarm cluster [source,yml] ---- ... deploy: replicas: 15 placement: max_replicas_per_node: 1 constraints: - node.labels.region==regio1 ... ---- .Segmentation TIP: Dynamic infrastructure: services can scale up and down without waiting for each other. === Availability No single point of failure. === Security === Configuration