Microservices Architecture All MIS603
6/3/2020 Laureate International Universities
https://laureate-au.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_89956_1&content_id=_8971657_1&mode=reset 1/7
MODULE 4 TOPIC 1 RESOURCESMODULE 4 TOPIC 1 RESOURCES
The Tech Stack
Introduction:
At this point we will look at some elements discussed in earlier modules in greater
depth, more speci�cally the technology stack and key enablers of microservices. The
focus of this module will be on the concepts of technology stack and containerization,
while Module 4.2 will focus on communications and service orchestration. This
diagram helps to show the di�erence between a monolith versus a microservices
architecture where a polyglot approach may be taken in each ‘atomic unit’ or
microservices. Note how each microservice has its own data store and bear in mind
that communications protocols will exist to enable microservices to call for data from
other services:
6/3/2020 Laureate International Universities
https://laureate-au.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_89956_1&content_id=_8971657_1&mode=reset 2/7
Diagram of the di�erences between monolithic and microservices architecture (Red Hat, n.d.)
Nadaresihvili et al. (2016, p.27) discuss how microservices are ‘atomic building blocks’
which are composed to arrive at the broader system. As these microservices are
autonomous and loosely coupled, one of the bene�ts that has been identi�ed is that
microservices architecture does not constrain technologies that may be used in
developing microservices. Theoretically, languages can be chosen based on best
utility to achieve the goal of the microservice. This is termed a ‘polyglot’ approach.
This of course has bene�ts and drawbacks – and as with everything else requires
mindful management in a microservices environment. Surianarayana (2019, p. 32)
outlines how monoliths lack technology diversity and thus have high
interdependencies and tightly coupled modules. Inevitably, functional and non-
functional requirements lead to consolidation around one, uni�ed tech stack
focussed on the dominant requirement of the monolithic application. This contrasts
with microservices, where the tech stack can be based around suitability to meet the
needs of a single-purpose or single functional capability requirement. In further
discussions (p.38), it is noted how microservices requires no constraints on elements
of the technology stack used to build the microservice as an atomic unit o�ering a
range of di�erent languages – and that containerization o�ers many bene�ts to
achieving scale. However, a more considered approach is required for managing
communications (see Module 4.2).
The bene�ts of containerization (as opposed to Virtual Machine deployment) is
discussed and Figure 2.5 and Figure 2.6 can be compared to help understand the
di�erence between each approach and the bene�ts that containers o�er in a
microservices architecture in achieving modularization of services. You will see the
term ‘Docker’ which is a proprietary containerization platform – we will cover this
further in module 6. As you can see from this diagram showing containers and
microservices that have been built with a polyglot approach aligned to service
requirement delivers a much more diverse blend of technologies to achieve the goal
of each microservice:
6/3/2020 Laureate International Universities
https://laureate-au.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_89956_1&content_id=_8971657_1&mode=reset 3/7
Diagram of an eShop application, showing all elements of the application architecture (Microsoft,
2018)
References:
Microsoft. (2018). Design a microservice-oriented application. Retrieved from https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-
microservice-net-applications/microservice-application-design
Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice architecture: Aligning principles, practices, and culture. California, USA: O’Reilly. Retrieved from https://ebookcentral-proquest-com.ezproxy.laureate.net.au/lib/think/detail.action?
docID=4602504
RedHat. (n.d.). What are microservices?. Retrieved from https://www.redhat.com/en/topics/microservices/what-are-microservices
Surianarayanan, C., Ganapathy, G., & Pethuru, R. (2019). Essentials of microservices architecture: Paradigms, applications, and techniques. Florida, USA: CRC Press. Retrieved from https://ebookcentral-proquest-com.ezproxy.laureate.net.au/lib/think/detail.action?
docID=5883406
Resources and Activities:
Why microservices?
Please watch the following video from DevOps foundations: Microservices
series:
1.Microservices in production: Why microservices (5m)
In this short video clip, Stone discusses some of the reasons for selecting
microservices. This clip is in place here for more than one reason – it serves
to remind and consolidate knowledge that has already been learned in
earlier modules, but also to open a pathway for deeper exploration of some
6/3/2020 Laureate International Universities
https://laureate-au.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_89956_1&content_id=_8971657_1&mode=reset 4/7
of the unique concepts relating to the key enablers of microservices – in
this case the ‘technology stack’ concept and how this di�ers from
monoliths.
Reference:
Stone, L. (2019, February 27). Microservices in production: Why
microservices? [Video �le]. Retrieved from
https://www.linkedin.com/learning-login/share?
forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%
foundations-microservices%3Ftrk%3Dshare_ent_url&account=56744473
(https://www.linkedin.com/learning-login/share?
forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%
foundations-microservices%3Ftrk%3Dshare_ent_url&account=56744473)
Container vs. Virtual Machines
Please watch the following video from DevOps foundations: Containers
series:
1.Container basics: Container vs virtual machines (5m 43s)
In this short video clip, explains the di�erent use cases between containers
and virtual machines and how one di�ers from the other – this will help you
to understand why containers are better aligned to microservices
architecture. Not how each container is a separate technology stack
component.
Reference:
Linthicum, D. (2017, July 7). Container basics: Container vs. Virtual Machines
[Video �le]. Retrieved from https://www.linkedin.com/learning-login/share?
forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%
foundations-containers%3Ftrk%3Dshare_ent_url&account=56744473
(https://www.linkedin.com/learning-login/share?
forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%
foundations-containers%3Ftrk%3Dshare_ent_url&account=56744473)
Modularized Microservice Architecture
6/3/2020 Laureate International Universities
https://laureate-au.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_89956_1&content_id=_8971657_1&mode=reset 5/7
Please read this very short paragraph on Modularized Microservice
Architecture on p. 17. It is important to note that microservices are not only
about breaking up a system into smaller constituent parts, but that as
services are independently deployable, di�erent tools and platforms may
be safely selected that are best suited to the needs of a microservice. This is
called a polyglot approach.
Reference:
Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice
architecture: Aligning principles, practices, and culture. California, USA:
O’Reilly. Retrieved from https://ebookcentral-proquest-
com.ezproxy.laureate.net.au/lib/think/reader.action?
docID=4602504&ppg=33 (https://ebookcentral-proquest-
com.ezproxy.laureate.net.au/lib/think/reader.action?
docID=4602504&ppg=33)
Should all microservices be coded in the same programming language?
Please read this very short paragraph on ‘Should all microservices be coded
in the same programming language?’ on p. 112. This reading identi�es that
microservices form atomic building blocks which come together to create
the system. It outlines that the internal language component of the
microservice is less important than the connecting components (which you
will explore in Module 4.2) but that there are still practical considerations,
even in a polyglot environment. If a service becomes ‘orphaned’ and uses
multiple technology stacks di�culty may present if nobody is familiar with
the tech within the stack.
Reference:
Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice
architecture: Aligning principles, practices, and culture. California, USA:
O’Reilly. Retrieved from https://ebookcentral-proquest-
com.ezproxy.laureate.net.au/lib/think/reader.action?
docID=4602504&ppg=129 (https://ebookcentral-proquest-
com.ezproxy.laureate.net.au/lib/think/reader.action?
docID=4602504&ppg=129)
Capabilities, Features, and Bene�ts of MSA & Key enablers for MSA
6/3/2020 Laureate International Universities
https://laureate-au.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_89956_1&content_id=_8971657_1&mode=reset 6/7
Please read the following two sections together:
Section 2.4 Capabilities, features and bene�ts of MSA pp. 37 - 38.
Section 2.5 Key enablers for MSA pp. 38 – 45.
In the capabilities, features and bene�ts section, please pay attention to
each item outlined, but particular attention to how microservices are
decentralized, loosely coupled and individually deployed – allowing for a
separation of concerns. This also allows for a polyglot approach –
developing a single application without being constrained to a uni�ed
technology stack as you would be in a monolithic environment.
In the key enabler section please pay attention to Figure 2.4. and the six key
enablers that make microservices work e�ectively. Read about each
enabler to understand the value that is enabled in systems development.
Reference:
Surianarayanan, C., Ganapathy, G., & Pethuru, R. (2019). Essentials of
microservices architecture: Paradigms, applications, and techniques.
Florida, USA: CRC Press. Retrieved from https://ebookcentral-proquest-
com.ezproxy.laureate.net.au/lib/think/reader.action?
docID=5883406&ppg=59 (https://ebookcentral-proquest-
com.ezproxy.laureate.net.au/lib/think/reader.action?
docID=5883406&ppg=59)
Additional Learning Resources
If you would like to learn more about the topics covered in this module, here are
some additional resources. These resources will contribute to further develop
understanding of the topics covered. However, these resources are not essential
to complete this module or the assessments associated with this subject.
What is Docker and why is it so darn popular?
Docker has been identi�ed as one of the market leading containerization
platforms helping developers orchestrate containers. This article is a brief
explainer about why Docker has proved to be popular with developers and
how is has simpli�ed what is essentially and old way of working by making
it easier to do.
Reference:
6/3/2020 Laureate International Universities
https://laureate-au.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_89956_1&content_id=_8971657_1&mode=reset 7/7
Vaughn-Nichols, S.J. (2018, March 21). What is Docker and why is it so darn
popular?. ZDNet. Retrieved from https://www.zdnet.com/article/what-is-
docker-and-why-is-it-so-darn-popular/
(https://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-
popular/)
Learning Activity 1: Technology Stack Discussion Forum Post
Learning Activity 2: Web Exploration Discussion Forum Post
Collaborative learning activity - Containers
Note: The Learning activities above are not part of summative/graded assessment;
however they are designed to prepare you for incremental graded assessment and
expand your learning.
These activities encourage a community learning experience between peers, and
provide opportunities for facilitators to o�er formative feedback, throughout a
module, to the student cohort.