Beginners guide to microservices with Go, Spring and RaspPi

BY
Udemy

Acquire an in-depth understanding of the functionalities and fundamentals of Microservices along with Raspberry Pi to create a monitoring system.

Mode

Online

Fees

₹ 499 2299

Quick Facts

particular details
Medium of instructions English
Mode of learning Self study
Mode of Delivery Video and Text Based

Course overview

Maksymilian Żurawski - Certified Software Developer created the Beginners guide to microservices with Go, Spring, and RaspPi certification course, which is aimed to provide a basic understanding of the fundamentals principles of Microservices and is presented by Udemy. Beginners' guide to microservices with Go, Spring, and RaspPi online course focuses on offering individuals a thorough overview of technologies such as Spring, Go programming, and the Raspberry Pi.

Beginners' guide to microservices with Go, Spring, and RaspPi online classes comprises over 46.5 hours of comprehensive digital lectures, as well as articles and 25 downloadable resources, and starts with the fundamentals of Go programming, Spring, and Raspberry Pi. This course also discusses topics like classic monolithic apps, Arduino IDE, Docker, Jenkins, Samba, Eureka, Zuul, and the principles of Sensortypes, Eventslogger, UI sensors, and RabbitMQ. Individuals will have learned the ability to build a real monitoring system from the ground up using the functionalities and characteristics of Microservices by the end of this program.

The highlights

  • Certificate of completion
  • Self-paced course
  • 46.5 hours of pre-recorded video content
  • 1 article
  • 25 downloadable resources

Program offerings

  • Online course
  • Learning resources. 30-day money-back guarantee
  • Unlimited access
  • Accessible on mobile devices and tv

Course and certificate fees

Fees information
₹ 499  ₹2,299
certificate availability

Yes

certificate providing authority

Udemy

What you will learn

After completing the Beginners guide to microservices with Go, Spring, and RaspPi online certification, individuals will gain a better knowledge of Microservices' essential principles. Individuals will learn about the Go programming language, Spring, Jenkins, Docker, Samba, Raspberry Pi, and Arduino IDE's key functionalities. Individuals will gain an understanding of the differences between traditional monolithic applications and microservices, as well as discovery services such as Eureka and Zuul gateway. Individuals will also learn how to use dispatchers, Sensortypes, UI sensors, and RabbitMQ.

The syllabus

Getting started

  • Introduction video
  • Github repositories
  • Overview of core elements of our target application
  • "Classic" monolithic applications
  • What are microservices?
  • Course agenda

Setting up

  • WIndows setup
  • Mac setup
  • Raspberry Pi setup
  • Creating github project

Service discovery

  • Introduction
  • Docker images for Pi
  • First spring boot application
  • Transforming into eureka service
  • Dockerizing eureka service
  • Testing eureka service

Management of building and deploying docker containers with Jenkins

  • Introduction
  • Installing and configuring jenkins
  • Job for building discovery
  • Job for starting containers
  • Job for stopping containers

Proxy Gateway

  • Introduction
  • Zuul proxy gateway
  • Dockerizing proxy service

Docker compose to bind them all

  • Creating docker-compose and corresponding jenkins job
  • Job for stopping running containers
  • Cleaning jenkins jobs
  • Multijob plugin
  • Building automation for xdevicesdev

Go services prerequisites

  • Introduction
  • Utilities - setup
  • Utilities - go tour offline
  • Utilities - configuring file watchers in IntelliJ
  • Utilities - go: packages, imports, exports
  • Utilities - go: functions
  • Utilities - go: init() function
  • Utilities - IsUuidValid func
  • Utilities - IsZero func
  • Utilities - IsZero func challenge
  • Utilities - IsZero func challenge solution
  • Utilities - GetIP func
  • Utilities - Eureka's registration ticket: introduction
  • Utilities - go: struct
  • Utilities - composition
  • Utilities - go: channels
  • Utilities - Eureka's registration ticket: implementation
  • Utilities - config manager
  • Utilities - Eureka manager
  • Utilities - "Service one" challenge
  • Utilities - "Service one" solution

Dispatcher (backend)

  • Introduction
  • Setup
  • Config manager
  • Eureka manager
  • Ping handler
  • Temperature handler
  • Main function & init
  • Dockerizing
  • Testing two instances of dispatcher agains discovery service

Temperature sensor with ESP8266

  • Introduction - ESP8266 boards and other gears
  • Basic schematics
  • Arduino IDE sketch for deep sleep capable esp8266
  • D1 mini Pro-based sensor unit - overview and testing
  • Arduino IDE sketch for deep sleep NOT-capable esp8266
  • LoLin-based sensor unit - overview and testing

Temperature simulator with spring boot

  • Introduction and setup
  • Implementing ErrorMsg and BadRequestResponseErrorHandler
  • Overview of TemperatureSimulator class and enabling scheduling in simulator
  • Testing against running dispatcher on Pi
  • Invalid temperature sensor simulator - challenge
  • Invalid temperature sensor simulator - solution

GORM - ORM for Golang

  • Introduction
  • Tips
  • GORM - Hooks - why they are helpful
  • Utilities - Hooks - preparation of hook for tests

Sensortypes (backend) - setup

  • Introduction
  • Setup
  • Db creation if not exists - adjusting Utilities

Sensortypes (backend) - config

  • Config manager
  • Eureka manager

Sensortypes (backend) - DB Manager

  • Model
  • DTO
  • DB manager introduction
  • Save func
  • Why do we need testing?
  • Save func testing
  • Update func
  • GetById func testing & challenge
  • GetByType func testing & challenge
  • Update func challenge
  • Update func challenge solution
  • Refactoring conversion methods
  • Delete func
  • Delete func challenge
  • Delete func challenge solution
  • GetAll func
  • GetAll func challenge
  • GetAll func challenge solution
  • Refactoring and cleaning up

Sensortypes (backend) - service

  • Service setup
  • GetAll func
  • GetAll func testing
  • GetById func
  • GetById func testing
  • GetByType func
  • GetByType challenge
  • GetByType challenge solution
  • Save func
  • Save func challenge
  • Save func challenge solution
  • Update func
  • Update func challenge
  • Update func challenge solution
  • Delete func
  • Delete func challenge
  • Delete func challenge solution

Sensortypes (backend) - handlers

  • GetAll handler
  • GetAll handler testing
  • GetById handler
  • GetById handler testing
  • Save handler
  • Save handler testing
  • Update handler
  • Update handler challenge
  • Update handler challenge solution
  • Delete handler
  • Delete handler challenge
  • Delete handler challenge solution

Sensortypes (backend) - Finalizing

  • Main and init funcs
  • Dockerizing
  • Testing on Pi

UI - Sensor types overview

  • Introduction
  • Defining proxy to Pi
  • Model, service & store
  • Sensor types list
  • Sensor type details
  • HttpResponseInterceptor - overview
  • Defining environments configuration files
  • Dockerizing & testing on Pi

Register (backend)

  • Project setup
  • Config manager
  • Eureka manager
  • Register model explained
  • Attribute model
  • SensorAttribute model
  • SensorRegister model
  • DB Manager
  • GetAttributes func
  • GetAttributes func testing + challenge
  • UpdateAttribute func
  • UpdateAttribute func testing + challenge
  • GetAttributeBySymbol func
  • GetAttributeBySymbol func testing + challenge
  • SaveSensor func
  • SaveSensor func testing + challenge
  • GetAllSensors func
  • GetAllSensors func testing + challenge
  • GetSensorByUuid func
  • GetSensorByUuid func testing + challenge
  • UpdateSensor func
  • DeleteSensor func

Register (backend) - services

  • AttributeService - Introduction
  • AttributeService - GetAll func
  • AttributeService - GetAttributeBySymbol func
  • AttributeService - UpdateAttribute func
  • SensorService - Introduction
  • SensorService - Save func
  • SensorService - Update func
  • SensorService - Delete func
  • SensorService - GetAll func
  • SensorService - FindSensorByUuid func

Register (backend) - handlers

  • AttributeHandlers - GetAttributes func
  • AttributeHandlers - GetAttributeBySymbol func
  • AttributeHandlers - Update func
  • SensorHandlers - Save func
  • SensorHandlers - GetSensors func
  • SensorHandlers - GetSensorByUuid func
  • SensorHandlers - Update func
  • SensorHandlers - Delete func

Register (backend) - finalizing

  • Main & init funcs
  • Dockerizing
  • Testing on Pi
  • Fixing found bug on CreateAt attribute

UI - Attributes overview

  • Introduction
  • Attributes - model & services
  • Attributes - store
  • Attributes - dictionary list
  • Attributes - dictionary details

UI - Sensors

  • Sensors - model & service
  • Sensors - store
  • Sensors list
  • Sensors details
  • Testing on Pi

RabbitMQ - Introduction

  • Introduction
  • Queues, channels and exchanges
  • Exchanges in xdevices - overview

RabbitMQ - Utilities adjustments

  • Crosscutting - RabbitConnector
  • Crosscutting - Exchange, topics & routing keys
  • Crosscutting - General publishing
  • Publisher - Log info
  • Publisher - Log WarnMsg
  • Publisher - Log ErrorMsg
  • Publisher - Configuration changed
  • Publisher - Cache update
  • Domain - Temperature measurement struct
  • Observer and observe
  • Rabbit manager

RabbitMQ - Dockerizing

  • Adding rabbit service to docker-compose.yml

Samba and connecting to RaspPi's databases from development machine

  • Installing samba on Raspberry Pi
  • Preparing jenkins's .databases folder to be accessible with pi user
  • Configuring samba to access pi's directory from development machine
  • Connecting to pi's directory from development machine (mac)
  • Connecting to pi's directory from development machine (pc)
  • Jenkins job to stop specific service
  • Jenkins job to start specific service

RabbitMQ - Configuration changed events

  • Sensors - Connecting to RabbitMQ
  • Sensors - Applying rabbit publisher on update/save/delete
  • Sensors - Attributes - applying rabbit publisher on update
  • Sensor types - Connecting to RabbitMQ
  • Sensor types - Applying rabbit publisher on save/update/delete
  • Adjusting docker-compose
  • Adjusting run scripts in sensor types and register
  • Testing on Raspberry Pi
  • Fixing issue with missing reset option in rabbit connector
  • Retesting on Raspberry Pi

Dispatcher (backend) - Caches introduction

  • Multiple faces of cached objects

Dispatcher (backend) - Register cache

  • Register - preparing service
  • Register - preparing handler
  • Dispatcher - preparing configuration
  • Dispatcher - preparing logger
  • Dispatcher - preparing cache
  • Dispatcher - observer for sensors changes
  • Dispatcher - adjusting docker-compose file
  • Testing cache on Pi

Dispatcher (backend) - Sensor types cache

  • Sensor types - preparing service
  • Sensor types - preparing handler
  • Dispatcher - preparing cache
  • Dispatcher - observer for sensor types changes
  • Testing sensor types cache on Pi

Eventslogger (backend) - introduction

  • Why do we need events logger at all?
  • Showcase of what we want to achieve

Eventslogger (backend) - config

  • Config manager
  • Eureka manager

Eventslogger (backend) - DB Manager

  • Model and DTO
  • DB Manager and its core functions
  • SearchDto and find events func

Eventslogger (backend) - service

  • Introducing service
  • Save event func
  • FindBy func

Eventslogger (backend) - handlers

  • FindEvents handler
  • Applying FindEvents in main func

Eventslogger (backend) - RabbitMQ observers

  • Logs observer
  • Utilities - adjusting general log publisher

Eventslogger (backend) - finalizing

  • Adding publisher to log problems in handler
  • Dockerizing eventslogger
  • Adjusting dispatcher's Docker file and run script
  • Adjusting docker-compose.yml in startscripts
  • Preparing jenkins
  • Testing events logger with Pi

UI - Eventslogger overview

  • Model & service
  • Eventslogger component
  • Testing on Pi

Dispatcher - publishing temperature measurements

  • Using caches to validate registered sensors
  • Using caches to dispatch incoming sensor measurements to correct routing key
  • Testing against running temperature simulator

Services resolver (backend)

  • Introduction - why do we need services resolver
  • Project setup
  • Config manager
  • Eureka manager
  • DTOs - Introduction vs eureka/apps URL
  • Handler for application metadata
  • Dockerizing

Temperature archive (backend) - config

  • Project setup
  • Config manager
  • Eureka manager

Temperature archive (backend) - DB Manager

  • Model & DTO
  • DB Manager
  • Save func
  • Find func

Temperature archive (backend) - service

  • Defining interface
  • SaveMeasurement func
  • Find func

Temperature archive (backend) - handlers

  • Implementing find handler
  • Websockets - Introduction
  • Websockets - Introducing helper flags and dtos
  • Websockets - implementing ws handler, main and init func
  • Testing websockets against rabbit and websocket client

Temperature archive (backend) - caches

  • Introducing another cached face of sensor
  • Implementing cache, fill cache, reset cache and get by uuid

Temperature archive (backend) - observers

  • Configuration changed observer
  • Temperature measurement observer

Temperature archive (backend) - finalizing

  • Dockerizing
  • Testing with Pi

UI - Temperature sensor (frontend) - setup

  • Creating temperature sensor component
  • Elements of UI used on component

UI - Temperature sensor (frontend) - logic

  • Neat game between template and controller - sensor on the card
  • Temperature service - findLastLimited function
  • Last n-measurements - customizing bar chart

UI - Dashboard (frontend)

  • Introduction - showcase of what we want to achieve with dashboard
  • Cache service - to grab general information of the sensor for sensor component
  • ServiceResolver service
  • WebSockets service

UI - Temperature sensor details (frontend)

  • Introduction - showcase of what we want to achieve
  • UI elements on temperature sensor details component
  • Temperature service - find measurements in context of search panel
  • Buttons for predefined actions
  • Line's chart

Summary

  • Final words and future of xdevices

Instructors

Mr Maksymilian Żurawski

Mr Maksymilian Żurawski
Software Developer
Freelancer

Articles

Popular Articles

Latest Articles

Trending Courses

Popular Courses

Popular Platforms

Learn more about the Courses

Download the Careers360 App on your Android phone

Regular exam updates, QnA, Predictors, College Applications & E-books now on your Mobile

Careers360 App
150M+ Students
30,000+ Colleges
500+ Exams
1500+ E-books