- Introduction video
- Github repositories
- Overview of core elements of our target application
- "Classic" monolithic applications
- What are microservices?
- Course agenda
Beginners guide to microservices with Go, Spring and RaspPi
Acquire an in-depth understanding of the functionalities and fundamentals of Microservices along with Raspberry Pi to ...Read more
Online
₹ 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
certificate availability
Yes
certificate providing authority
Udemy
Who it is for
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
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