Microservices Architecture (Module)
(Add link to example and activities on GitLab) |
(Add links to activities 8-14) |
||
(4 intermediate revisions by one user not shown) | |||
Line 10: | Line 10: | ||
''A series of activities and accompanying example code to teach students about the microservices architecture and how to implement simple one in Javascript'' | ''A series of activities and accompanying example code to teach students about the microservices architecture and how to implement simple one in Javascript'' | ||
|prerequisites= | |prerequisites= | ||
− | '' | + | ''Command line, version control with Git, intermediate coding '' |
|objectives= | |objectives= | ||
− | '' | + | ''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= | |process skills= | ||
''What process skills will the student practice while completing this module?'' | ''What process skills will the student practice while completing this module?'' | ||
Line 37: | Line 37: | ||
! Notes | ! Notes | ||
|- | |- | ||
+ | | Introduction to the Domain: HFOSS, LibreFoodPantry, and Bear Necessitities Market OrderModule | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/01-Domain%20Introduction 01-Domain Introduction] | ||
| | | | ||
− | |||
| | | | ||
+ | | Stub only | ||
+ | |- | ||
+ | | Installing Docker | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/blob/master/02-Installing%20Docker 02-Installing Docker] | ||
+ | | Docker installed and running on the student's machine | ||
+ | | | ||
+ | | Could be homework or in-class activity | ||
+ | |- | ||
+ | | Containerization with Docker | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/03-Containerization%20Docker 03-Containerization Docker] | ||
+ | | Understanding of advantages of containerization over virtual machines | ||
+ | | | ||
+ | | In-class activity | ||
+ | |- | ||
+ | | Software Architectures from Monolith to Microservices | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/04-Microservices%20Architecture 04-Microservices Architecture] | ||
+ | | Understanding of differences between monolith and microservices | ||
+ | | | ||
+ | | In-class activity | ||
+ | |- | ||
+ | | Introduction to REST API Calls | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/05-IntroductionRest 05-IntroductionRest] | ||
+ | | Understanding how REST API calls are used to communicate with a backend | ||
+ | | | ||
+ | | In-class activity | ||
+ | |- | ||
+ | | Exploring REST API Calls | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/06-Exploring%20REST 06-ExploringREST] | ||
+ | | Using tools to make REST API calls to a backend | ||
+ | | | ||
+ | | In-class activity | ||
+ | |- | ||
+ | | Designing REST API Calls | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/07-Designing%20REST 07-Designing REST] | ||
+ | | Understanding the OpenAPI Specification for a backend | ||
+ | | | ||
+ | | In-class activity | ||
+ | |- | ||
+ | | Exploring REST API Implementation | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/08-Exploring%20REST%20Implementation 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 | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/09-Exploring%20Persistence 09-Exploring Persistence] | ||
+ | | | ||
+ | | | ||
+ | | Stub only | ||
+ | |- | ||
+ | | Exploring the Implementation of Persistence using a Document Database | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/10-Exploring%20Persistence%20Implementation 10-Exploring Persistence Implementation] | ||
| | | | ||
− | | | + | | |
+ | | Stub only | ||
|- | |- | ||
+ | | Implementing New REST API Calls | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/11-Implementing%20REST 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 | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/12-Simple%20Front%20End 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 | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/13-Exploring%20Front%20End 13-Exploring Front End] | ||
+ | | | ||
+ | | | ||
+ | | Stub only | ||
+ | |- | ||
+ | | Implementing New Functionality for a Front End | ||
+ | | [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-activities/-/tree/master/14-Implementing%20Front%20End 14-Implementing Front End] | ||
| | | | ||
| | | | ||
− | |} | + | | Stub only |
+ | |-} | ||
=== Comments === | === Comments === | ||
+ | * These activities use the [https://gitlab.com/LibreFoodPantry/training/microservices/microservices-example Microservices Example] code. | ||
* What should the instructor know before using this module? | * What should the instructor know before using this module? | ||
* What are some likely difficulties that an instructor may encounter using this module? | * What are some likely difficulties that an instructor may encounter using this module? |
Latest revision as of 18:00, 2 April 2021
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.
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 |
For this blank format: This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License