Microservices Architecture (Module)

From Foss2Serve
Revision as of 16:57, 2 April 2021 by Kwurst (Talk | contribs)
Jump to: navigation, search

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

  • 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
Microservices Architecture 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
Microservices Architecture 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
Microservices Architecture 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
Microservices Architecture 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
Microservices Architecture 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
Microservices Architecture 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
Microservices Architecture 04-Microservices Architecture Understanding of differences between monolith and microservices In-class activity
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 license.png



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

CC license.png

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox