We may earn an affiliate commission when you visit our partners.
Course image
Stephen Grider

Event-Based Architecture? Covered. Server side rendering with React? Yep.  Scalable, production-ready code? Its here.

Read more

Event-Based Architecture? Covered. Server side rendering with React? Yep.  Scalable, production-ready code? Its here.

Microservices are the number one solution for building and scaling out apps that are intended to grow.  Just one little issue: there are few resources online that delve into the most complex and nasty issues around them.   I built this course to fix that.  This course tackles every major issues around microservices head on. From challenges with data replication to confusing unordered event streams, every major challenge of building microservices is covered. 

Beyond focusing on the basics of microservices, this course is a perfect introduction to the world of full-stack development.  You will work all the way from the frontend, assembling a React app using Hooks, to the backend, including database design and deployment strategies.  Every step along the way is covered in tremendous detail, with ample diagrams to ensure every step is crystal clear.

Many other resources show only the easiest, simplest apps written with microservices.  This course does the opposite: we focus on the most challenging aspects of microservices, challenges that you will likely encounter every single day.  You will see these difficulties first hand, then solve them with easy-to-understand strategies.

How This Course Works

This course doesn't focus on using an off-the-shelf microservices framework. Many exist, but they hide the inner workings and challenges of microservices away from you. Instead, we will be using a minimal number of libraries, and write as much custom code as possible. This will expose you to challenging problems and clever solutions when handling subjects like async events.

What Technology You'll Use

Because we are building a full stack application, we will use a variety of technologies. On the frontend, we'll use React and Next JS to present content to users. Each service is created using Node and Express. Data for each service is held in either a Mongo database or Redis. The entire app is deployed and runs in Docker containers executed in a Kubernetes cluster. Finally, almost all of the code in this course is written with Typescript.

This is a scary list of technologies. Not familiar with some of these? No problem. The course is built assuming that you only know the basics of Javascript and Express. No other knowledge is needed - you will learn everything you need to know.

What You'll Be Able to Do

By the time you complete this course, you will be able to:

  • Architect a multi-service application

  • Determine whether your app is a good fit for a microservices approach

  • Understand and solve the challenges in async, event-based communication between services

  • Use Docker and Kubernetes to deploy a multi-service app to any cloud provider

  • Organize and enhance the reusability of code in large projects

What You'll Learn

An absolute incredible number of topics are covered in this course.  Here is a partial list of what you'll do:

  • Practice patterns to create scalable microservices for a variety of app domains

  • Build a Server-Side-Rendered React app using Hooks and Next JS

  • Write a custom implementation of an event bus

  • Optionally, run a development environment through a cloud provider

  • Guarantee consistently structured responses from your different API's

  • See best practices in communication between different services

  • Configure and scale your services using Kubernetes Deployments

  • Document and enforce structure constraints on events shared across microservices

  • Limit access to your APIs using JWT-based authentication

  • And much more.

This is the course I wish I had when I was learning microservices. A course that focuses on the hardest parts, gives clear explanations, and discusses the pros and cons of different design options. Sign up today and join me in mastering microservices.

Enroll now

What's inside

Learning objectives

  • Architect large, scalable apps using a collection of microservices
  • Deploy a multi-service app to the cloud with docker and kubernetes
  • Solve concurrency issues in a distributed systems environment
  • Leverage your javascript skills to build a complex web app
  • Build a server-side rendered react app to render data from your microservices
  • Understand how enterprise companies design their infrastructure
  • Share reusable code between multiple express servers using custom npm packages
  • Write comprehensive tests to ensure each service works as designed
  • Communicate data between services using a lightning-fast event bus
  • Write nothing but production-level code. no cutting corners!

Syllabus

Fundamental Ideas Around Microservices
How to Get Help
Course Resources
What Is a Microservice?
Read more
Data in Microservices
Quiz - Data in Microservices
Big Problems with Data
Sync Communication Between Services
Event-Based Communication
A Crazy Way of Storing Data
Pros and Cons of Async Communication
A Mini-Microservices App
Important - Optional Boilerplate
App Overview
Project Setup
Posts Service Creation
Testing the Posts Service
Implementing a Comments Service
Quick Comments Test
Note on the React App
Addressing Default Export and ReactDom.render Warnings
React Project Setup
Building Post Submission
Handling CORS Errors
Fetching and Rendering Posts
Creating Comments
Displaying Comments
Completed React App
Request Minimization Strategies
An Async Solution
Common Questions Around Async Events
Event Bus Overview
Important Note about Node v15 and Unhandled Promise Rejections
A Basic Event Bus Implementation
Emitting Events
Emitting Comment Creation Events
Receiving Events
Creating the Data Query Service
Parsing Incoming Events
Using the Query Service
Adding a Simple Feature
Issues with Comment Filtering
A Second Approach
How to Handle Resource Updates
Creating the Moderation Service
Adding Comment Moderation
Reminder about Node v15 and Error Catching
Handling Moderation
Updating Comment Content
A Quick Test
Rendering Comments by Status
Dealing with Missing Events
Required Node v15+ Update for Query Service
Implementing Event Sync
Event Syncing in Action
Running Services with Docker
Deployment Issues
Why Docker?
Why Kubernetes?
Don't Know Docker? Watch This.
Note About Docker Build Output and Buildkit
Dockerizing the Posts Service
Review Some Basic Commands
Dockering Other Services
Orchestrating Collections of Services with Kubernetes
Warning on Docker Desktop for Linux
Installing Kubernetes
IMPORTANT Note for Minikube and MicroK8s Users
A Kubernetes Tour
Important Kubernetes Terminology
Notes on Config Files
Creating a Pod
ErrImagePull, ErrImageNeverPull and ImagePullBackoff Errors
Understanding a Pod Spec
Common Kubectl Commands
A Time-Saving Alias
Introducing Deployments
Creating a Deployment
Common Commands Around Deployments
Updating Deployments
Preferred Method for Updating Deployments
Networking With Services
Creating a NodePort Service
Accessing NodePort Services
Setting Up Cluster IP Services
Building a Deployment for the Event Bus
Adding ClusterIP Services
How to Communicate Between Services
Updating Service Addresses
Verifying Communication
Adding Query, Moderation and Comments
Testing Communication
Load Balancer Services
Load Balancers and Ingress
Important - DO NOT SKIP - Ingress Nginx Installation Info
Installing Ingress-Nginx
Ingress v1 API Required Update + pathType Warning
Writing Ingress Config Files
Important Note About Port 80
Hosts File Tweak

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores distributed systems, which is standard in modern cloud-based enterprise app design
Examines microservices architecture, which is foundational to modern enterprise software
Uses industry standard tools and approaches
Develops modern, enterprise-level development and hosting skills
Course materials are comprehensive, offering a well-rounded curriculum
Teaches production-level design considerations, which are essential for building modern software

Save this course

Save Microservices with Node JS and React to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Microservices with Node JS and React with these activities:
Compile a collection of useful microservices tools and resources
Curate a valuable collection of resources for your future microservices work.
Show steps
  • Research different microservices tools and resources.
  • Evaluate and select the most useful tools and resources.
  • Organize the tools and resources into a collection.
Review 'Microservices Patterns' by Chris Richardson
Gain a deeper theoretical understanding of microservices design patterns.
Show steps
  • Read the book.
  • Take notes on the key concepts discussed in the book.
  • Identify the patterns that are most relevant to your work.
Watch tutorials on Kubernetes and Docker networking
Enhance your knowledge of networking in a microservices environment.
Browse courses on Kubernetes
Show steps
  • Find a tutorial on Kubernetes networking.
  • Watch the tutorial and take notes.
  • Find a tutorial on Docker networking.
  • Watch the tutorial and take notes.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Participate in a study group or online forum dedicated to microservices
Connect with other learners and practitioners to share knowledge and experiences.
Browse courses on Microservices
Show steps
  • Find a study group or online forum.
  • Participate in discussions and ask questions.
  • Share your own knowledge and experiences.
Practice setting up microservices with Docker and Kubernetes
Reinforce your understanding of deploying microservices by setting them up yourself.
Browse courses on Docker
Show steps
  • Choose a Docker container management tool and install it.
  • Choose a Kubernetes orchestration platform and install it.
  • Create a simple microservice and deploy it using Docker and Kubernetes.
  • Troubleshoot any errors or issues that you encounter during the deployment process.
Attend a workshop on microservices architecture or deployment
Gain hands-on experience in microservices development.
Show steps
  • Find a workshop.
  • Attend the workshop.
  • Take notes and ask questions.
Develop a solution for a specific microservice-based challenge
Deepen your understanding of microservices by solving a practical problem.
Browse courses on Problem Solving
Show steps
  • Identify a specific microservice-based challenge that you want to solve.
  • Research different approaches to solving the problem.
  • Design and implement a solution to the problem.
  • Test and evaluate your solution.
  • Document your solution and share it with others.
Build a microservices-based application from scratch
Apply your learning by building a complete microservices application.
Browse courses on Microservices
Show steps
  • Design the architecture of your application.
  • Create the individual microservices for your application.
  • Deploy your application to a cloud platform.
  • Test and evaluate your application.

Career center

Learners who complete Microservices with Node JS and React will develop knowledge and skills that may be useful to these careers:
Software Engineer
Software Engineers design, develop, and maintain software systems. This course will provide you with the skills and knowledge necessary to build a Server-Side Rendered React App, write comprehensive tests, and leverage your JavaScript skills to build complex web apps. Having these skills will greatly increase your employability as a Software Engineer.
Software Architect
A Software Architect is responsible for designing, building, and maintaining the software systems that power an organization. This course provides you with the skills and knowledge necessary to architect large, scalable apps using a collection of microservices and deploy them to the cloud. Learning how to communicate data between services using an event bus, and how to test and debug distributed systems will all be critical in your journey to becoming a Software Architect.
Cloud Engineer
A Cloud Engineer is an IT professional who specializes in cloud computing. This course will teach you how to deploy a multi-service app to the cloud with Docker and Kubernetes, and how to orchestrate collections of services with Kubernetes. These skills are necessary for any Cloud Engineer and will give you a leg up in an extremely competitive field.
Data Scientist
Data Scientists use scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. This course will teach you how to guarantee consistently structured responses from your different APIs, and how to communicate data between services using a lightning-fast event bus. These skills will be critical to your success in designing and building data-driven systems as a Data Scientist.
Frontend Developer
A Frontend Developer is responsible for the design and implementation of the user interface of a website or application. This course will teach you how to build a Server-Side Rendered React App, how to display comments, and how to verify communication with Docker. These skills will make you a more desirable candidate as a Frontend Developer.
Full-Stack Developer
A Full-Stack Developer is responsible for both the frontend and backend development of a website or application. This course will teach you how to build a Server-Side Rendered React App and implement a custom event bus. These skills will make you a more valuable Full-Stack Developer and increase your career opportunities.
DevOps Engineer
A DevOps Engineer is responsible for the planning, design, and implementation of processes and tools that improve the efficiency and effectiveness of software development and IT operations. This course will teach you how to run services with Docker, how to install Kubernetes, and how to orchestrate collections of services with Kubernetes. These skills will provide you with a solid foundation for a career as a DevOps Engineer.
Information Security Analyst
An Information Security Analyst is responsible for protecting an organization's computer systems, networks, and data from unauthorized access, use, disclosure, disruption, modification, or destruction. This course will help you build a foundation in data security as you learn how to limit access to your APIs using JWT-based authentication, and how to avoid security vulnerabilities in a distributed systems environment.
Database Administrator
A Database Administrator is responsible for the installation, configuration, maintenance, and optimization of an organization's databases. This course will teach you how to store data in a variety of ways, ensuring you can work with any type of database technology.
Web Developer
A Web Developer is responsible for the design and development of websites and web applications. This course will teach you how to build a Server-Side Rendered React App and implement a custom event bus. These skills will help you build more complex and interactive web applications.
Systems Administrator
A Systems Administrator is responsible for the installation, configuration, maintenance, and repair of computer systems, networks, and servers. This course will teach you how to run services with Docker and how to install Kubernetes. These skills will help you advance your career as a Systems Administrator.
Network Engineer
A Network Engineer is responsible for the design, implementation, and maintenance of computer networks. This course will teach you how to set up Cluster IP Services and how to build a Deployment for the Event Bus. These skills will increase your value as a Network Engineer, especially if you work with cloud-based networks.
Product Manager
A Product Manager is responsible for the planning, design, and launch of new products or features. This course will teach you how to design and build products using a microservices architecture, which is becoming increasingly popular. The skills you learn in this course will help you make better decisions as a Product Manager.
User Experience Designer
A User Experience Designer is responsible for the design and implementation of the user interface of a website or application. This course will teach you how to build a Server-Side Rendered React App, which is a popular framework for building user interfaces. The skills you learn in this course will help you create more user-friendly and engaging experiences.
Business Analyst
A Business Analyst is responsible for analyzing an organization's business processes and identifying opportunities for improvement. This course will teach you how to architect large, scalable apps using a collection of microservices and deploy them to the cloud. These skills will help you understand the technical aspects of business processes and make better recommendations for improvement.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Microservices with Node JS and React.
Provides a comprehensive overview of microservices design patterns and best practices. It is highly relevant to this course as it covers topics such as data management, communication between services, and deployment strategies.
Classic in the field of microservices and provides a solid foundation for understanding the concepts and principles behind microservices architecture. It valuable reference for anyone interested in building and deploying microservices.
Provides a comprehensive overview of Kubernetes, a popular container orchestration platform. It covers topics such as cluster management, service discovery, and load balancing. It valuable resource for anyone looking to deploy and manage microservices using Kubernetes.
Provides a comprehensive overview of Docker, a popular containerization platform. It covers topics such as image creation, container management, and networking. It valuable resource for anyone looking to use Docker to build and deploy microservices.
Provides a comprehensive overview of data management in large-scale systems. It covers topics such as data modeling, data storage, and data processing. It valuable resource for anyone looking to build microservices that handle large volumes of data.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser