
Hello everybody! In case you are impatient and want to try the code right away, you can simply grab the code from the repositories and start running it on your raspberry pi. In case you are willing to learn a bit, and have the will to get in touch with more details about the system, please follow the lectures, or select the sections which are closer to your heart. Both ways are ok. And if you select to choose the first one (with starting to run the code right away) - try to explore the code by your own, try to brake some parts, then fix them, and brake another parts. I think that the best way to learn something is by simply experimenting with code, braking it, making some parts to fail and figuring out, why they are failing, and eventually fixing them.
Whatever way is yours - try to be opened and experiment.
This lecture makes an overview of the final, working application, so that you will get the feeling of what is going to be build with this course.
This lecture shows you how the monolithic application is build, so that you will know the context from where microservices came out, and what problems they are aiming at.
This lecture describes basics of microservices. You will get the feeling of the elements which are used to solve different kind of problems, which will arrive when you start building your first microservices-based application.
This lecture shows parts of our xdevices applications. Their correlation, their main responsibilities and how all elements will be combined together.
Short introduction how to setup windows machine for development, following cheat-steps document.
Short introduction how to setup mac for development, following cheat-steps document.
Introduction how to setup Raspberry Pi to make it ready for development and running xdevices application.
Introduction to creation of github repository.
In this lecture we will explore service discovery subject. Let's find out what service discovery is, and what is it's place in our system we are building.
In this lecture we will explore the docker. We will find out, how we are going to use docker within our xdevices applications and what is it really about to use docker-compose.
In this lecture we will create our first spring boot application with spring initializer.
In this lecture we are to transform our spring-boot application from previous lecture into eureka discovery service.
In this lecture we are going to dockerize our eureka discovery service.
In this lecture we are about to test our eureka service with docker on raspberry pi.
In this lecture I explain why we need automation and what tools we are going to need and use for automation.
In this lecture I am about to show you steps needed to install and configure jenkins on our system.
In this lecture we are going to build our first jenkins job for building our discovery and image.
In this lecture we are going to build a jenkins job for starting containers from created images.
In this lecture we are going to build a jenkins job for stopping running containers.
In this lecture we will shortly discuss what gateway proxy is.
In this lecture we are going to create and configure zuul proxy gateway.
In this lecture we are going to prepare Dockerfile for proxy and job in jenkins to build proxy image.
In this lecture we are about to create docker-compose to bind our services together. Additionally we are to create jenkins job to start docker-composed services.
In this lecture we are going to create jenkins job for stopping all running containers.
In this lecture we are going to clean up our jenkins from unwanted jobs.
In this lecture we are about to install Multijob plugin, as preparation for building small automation pipeline for xdevices.
In this lecture we are about to create multijob pipeline for building and starting xdevices services.
In this lecture we are going to talk about some of the great resources about golang and some of very important principles in programming: KISS, SRP and DRY.
In this lecture we are going to create utilities repository out from attached resources: utilities.zip
In this lecture we are about to install tour of go locally.
In this lecture we are about to configure pretty nice feature of IntelliJ - file watchers for go.
In this lecture we are going to talk shortly about packages, imports and exports.
In this lecture we are about to talk how to create a function and about basic conventions in go regarding functions.
In this lecture we are about to create simple "serviceone" service, where we are going to discuss main package and init() function.
In this lecture we are about to discuss IsUuidValid function from utilities package.
In this lecture we are about to discuss IsZero function from utilities package.
In this lecture I challenge you to prepare at least 4 tests using the tools and libraries described in previous lectures. It's about creating IsZero tests for reflect package and for our IsZero function.
In this lecture we are going to discuss solution for the challenge from previous lecture.
In this lecture we are about to take a look into GetIP function from utilities.
In this lecture we are about to look into registration ticket of proxy service, and shortly discuss which parts are needed for our registration ticket implemented in go for our services, so that they can be also registered in eureka service discovery.
In this lecture we are going to get known with golang's struct.
In this lecture we are going to talk about concept of composition in Go.
In this lecture we are about to talk shortly about channels, and for what we need channels.
In this lecture we are about to look into details of registration ticket from utilities.
In this lecture we are about to take a look at configuration manager.
In this lecture we are about to take a look into Eureka manager from utilities.
Let's start with a challenge. Create a small go application, which will use Eureka manager from utilities and register itself in Eureka discovery service running on raspberry pi. And which is going to send heartbeat every 15 seconds.
In this lecture we are about to discuss our solution for "service one" service from previous lecture.
In this lecture we are going to talk a little bit what is in our target in this section. And what we are about to achieve in this section.
In this lecture we are about to setup our new github repository for dispatcher.
In this lecture we are going to implement our config manager.
In this lecture we are going to implement and prepare our dispatcher's eureka manager.
In this lecture we are going to jump into echo framework, with which we are about to create our first rest endpoint handler - the ping handler.
In this lecture we are going into developing another handler - temperature handler - which is going to process incoming messages from sensors. It's the first draft of the handler, so it's logic is pretty simple right now.
In this lecture we are binding all previous parts into one, runnable unit - dispatcher.go file, where eureka manager is going to be initiated and echo framework finally is going to be used to define our REST endpoints.
In this lecture we are going to prepare Dockerfile and run.sh script for our dispatcher. And we are going to configure a job, which is going to create dispatchers image.
In this lecture we are about to see our dispatcher instances in action. With one instance running on Pi-box, and one running on local development machine, we are going to ping dispatcher (with postman) with using their proxied url. We are expecting to get different IP's as results.
In this lecture we are going to review some of the wifi boards available on the market and some of the gears we are going to use for building our sensor unit.
In this lecture we are going to concentrate on what parts do we need and how to connect them together to build sensors units. We will talk about two possible variations of sensor units - one with D1 mini Pro, and one with Wemos Lolin board.
In this lecture we are about to discuss our sketch for esp8266 which is capable to go into deep sleep. Sketch is also attached as resources for this lecture, so grab it and have a closer look into it. You will have to adjust your variables in the sketch to make it work with your home-network of course (so adjust ssid and password respectively)
In this lecture we are going to overview our first D1 mini Pro sensor unit. And we are going to flash it with sketch from previous lecture (for deep sleep capable boards) and test it with our dispatcher running on raspberry pi.
In this lecture we are going to discuss sketch for boards, which are not capable of deep sleep mode (without power saving mode). Sketch is also attached as resources for this lecture, so grab it and have a closer look into it. You will have to adjust your variables in the sketch to make it work with your home-network of course (so adjust ssid and password respectively)
In this lecture we are going to overview our LoLin based sensor unit, and flash it with sketch from previous lecture (for boards not capable of deep sleep mode) and test it with our dispatcher running on raspberry pi.
In this lecture we are going to prepare our next spring boot application - temperature simulator.
In this lecture we are going to implement ErrorMsg class - with short introduction to lombok library. And also BadRequestResponseErrorHandler, which is going to be used to intercept all BadRequest responses.
In this lecture we are about to overview how our TemperatureSimulator is constructed and what are the crucial parts of it, so that those parts will make it work.
In this lecture we are going to simply run our simulator and test it against dispatcher running on Pi.
This is a challenge for you. So get ready and prepare a simulator, which will send invalid uuid. Use already existing code to create @Scheduled annotated method.
In this lecture we are going to implement solution for our invalid sensor simulator and test it against dispatcher on RaspPi.
This course starts with introduction to microservices in context of "classic" monolith applications. It explains how to combine two different frameworks (Spring and Go), to use their strong sides on very small, but also pretty strong hardware - Raspberry Pi.
It shows how to combine simple sensors with ESP8266 Wifi modules and collect measurements from many places and use microservices to create small but yet complex application with dashboard, searching and simple configuration.
Finally in this course you will learn a little bit about docker and how to compose your microservices as good as your angular ui application into docker containers, which can be then stopped/restarted/rebuild/replaced easily within couple of steps.
I hope you will enjoy learning from the course as much as I have had fun creating it.