Microservices Architecture (Module)

From TeachingOpenSource

THIS MODULE IS CURRENTLY UNDER CONSTRUCTION

Overview

Title

Microservices Architecture (Module).

Overview

A series of activities and accompanying example code to teach students about the microservices architecture and how to implement simple one in Javascript

Prerequisites

Command line, version control with Git, intermediate coding

Learning
Objectives
After successfully completing this activity, the learner should be able to:

Modify existing system to add new endpoint specs in OpenAPI, implement endpoints in NodeJS/Express, simple MongoDB operations, implement frontend modifications in Angular

Process Skills
Practiced

What process skills will the student practice while completing this module?


LibreFoodPantry Microservices Example and Activities

Background

  • Is there background reading/video/website content?
  • What is the expected knowledge level of the student?
  • What is the rationale for this module?
  • Include helpful hints to faculty here.

Sequence/Sub-Path

Include the sequence of activities.

Comments

  • These activities use the Microservices Example code.
  • What should the instructor know before using this module?
  • What are some likely difficulties that an instructor may encounter using this module?

Suggestions for Open Source Community

Suggestions for an open source community member who is working in conjunction with the instructor.

Additional Information

Topic Activity Deliverable Length Notes
Introduction to the Domain: HFOSS, LibreFoodPantry, and Bear Necessitities Market OrderModule 01-Domain Introduction Stub only
Installing Docker 02-Installing Docker Docker installed and running on the student's machine Could be homework or in-class activity
Containerization with Docker 03-Containerization Docker Understanding of advantages of containerization over virtual machines In-class activity
Software Architectures from Monolith to Microservices 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
Introduction to REST API Calls 05-IntroductionRest Understanding how REST API calls are used to communicate with a backend In-class activity
Exploring REST API Calls 06-ExploringREST Using tools to make REST API calls to a backend In-class activity
Designing REST API Calls 07-Designing REST Understanding the OpenAPI Specification for a backend In-class activity
Exploring REST API Implementation 08-Exploring REST Implementation Understanding of the backend implementation code written in NodeJS/Express In-class activity
Exploring the Persistence Layer using a Document Database 09-Exploring Persistence Stub only
Exploring the Implementation of Persistence using a Document Database 10-Exploring Persistence Implementation Stub only
Implementing New REST API Calls 11-Implementing REST Add the implementation of new REST API calls In-class or homework. These problems need to be updated for the new example.
Exploring the Implementation of a Simple REST API Front End 12-Simple Front End Understanding the implementation of a simple frontend using Angular In-class activity. This activity needs to be rewritten to use VueJS.
Designing Components for a Front End 13-Exploring Front End Stub only
Implementing New Functionality for a Front End 14-Implementing Front End Stub only
ACM BoK
Area & Unit(s)

What ACM Computing Curricula 2013 knowledge area and units are covered?

ACM BoK
Topic(s)

What specific topics are addressed?

Difficulty

Is this module easy, medium, or hard?

Estimated Time
to Complete

How long should a typical student take to complete the module?

Environment /
Materials

What does the student need? (e.g. Internet access, IRC client, Git Hub account, LINUX machine, etc.)

Author(s)

Karl R. Wurst and Stoney Jackson

Source

Is there another module on which this module is based? If so, please provide a link to the original resource.

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC BY SA.png



For this blank format: This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC BY SA.png