Micro-services architecture is an evolutionary design ideal for evolutionary systems where you can’t fully anticipate the types of devices that may one day be accessing your application
A introduction to Microservices Architecture: definition, characterstics, framworks, success stories. It contains a demo about implementation of microservices with Spring Boot, Spring cloud an Eureka.
The introduction covers the following
1. What are Microservices and why should be use this paradigm?
2. 12 factor apps and how Microservices make it easier to create them
3. Characteristics of Microservices
Note: Please download the slides to view animations.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
A introduction to Microservices Architecture: definition, characterstics, framworks, success stories. It contains a demo about implementation of microservices with Spring Boot, Spring cloud an Eureka.
The introduction covers the following
1. What are Microservices and why should be use this paradigm?
2. 12 factor apps and how Microservices make it easier to create them
3. Characteristics of Microservices
Note: Please download the slides to view animations.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Learn all about microservices from Product Marketing Manager Dan Giordano. We'll cover how to get started, the benefits, potential challenges, and how SmartBear can help.
Building Cloud-Native App Series - Part 2 of 11
Microservices Architecture Series
Event Sourcing & CQRS,
Kafka, Rabbit MQ
Case Studies (E-Commerce App, Movie Streaming, Ticket Booking, Restaurant, Hospital Management)
This slides deck about Microservices architecture and why do we need it. Architecture patterns which we need to follow doing Microservices architecture: Microservice, API Gateway, Service Discovery, Stateless/Shared-Nothing, Configuration/Service Consumption, Fault Tolerance (Circuit Breaker), Request Collapsing. And a bit about API Versioning
Istio is a service mesh, and it's a cool new project from Google, IBM, Lyft and others. This talk describes at a high level how Istio works as a sidecar, and how it works great with Weave Cloud, which provides visualization to understand what's going on when you deploy Istio, and long-term Prometheus metrics storage with its built-in Prometheus service.
This presentation gives audiences a broad viewpoint from old to modern architecture. How Kubernetes and service mesh (istio) can help developers in those missions:
- Explain from traditional to modern architecture. The role of Kubernetes in modern architecture.
- Build basic k8s components from the ground up with illustrations: Pod; Node; Service; ReplicaSet; Deployment; Namespace; Ingress ...
- Kubernetes under the developer viewpoint: write a YAML application file and deploy k8s application to the cluster.
- Kubernetes advanced concepts: master node design, how does the auto-scale for pods/nodes work, Kubernetes networking model.
- Discuss microservice challenges. The role of the service mesh in the microservice ecosystem.
- Introduce Envoy, istio and their application in the service mesh.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
The concept of service mesh is one of the new technologies that have grown up around the container and micro-service model over the last couple of years, and Istio is the latest entry into this space. As Istio was recently included as an incubated project in the CNCF, many companies are now looking to it to provide a set of key functions to accelerate their micro-service application management model. Istio enables bi-directional authentication and security of service communication via TLS based authentication and encryption, and at the same time is able to capture application level communication statistics, improving the application development team's visibility into the otherwise difficult to track communication patterns. In this way, Istio acts like an application level network, riding across the underlying capabilities of Kubernetes CNI based networks and network policy. We will implement Istio on a GKE kubernetes cluster, and instrument a simple application to get better insight into how Istio provides its capabilities.
Speaker Bio:
With over 20 years of experience as a systems reliability engineer, and a focus on automating not only application deployments but the underlying infrastructure as well, Robert Starmer brings a wealth of knowledge to the full application enablement stack. He has applied this knowledge in fields from high-performance computing to high-frequency trading environments, and everything in between. Robert also holds patents in network, data center, and application performance and scale enhancements. He is a Founder and the CTO at Kumulus Technologies, a DevOps, Systems Reliability Engineering and cloud computing consultancy. Additionally, Robert is an incurable photography nerd and has been known to stay up until dawn in remote locations to capture celestial time-lapses.
Docker Kubernetes Istio
Understanding Docker and creating containers.
Container Orchestration based on Kubernetes
Blue Green Deployment, AB Testing, Canary Deployment, Traffic Rules based on Istio
Fundamental and Practice.
Explain about microservices characters and pattern. And also how to be good build microservices. And also additional the scale cube and CAP theory.
OpenShift is Red Hat's Platform-as-a-Service (PaaS) that lets developers quickly develop, host, and scale Docker container-based applications. OpenShift enables a uniform and standardised approach to container management across all hosting options including AWS/EC2 and other private/public cloud and on/off-premise variants. At this session, you will learn how Red Hat's enterprise clients are using OpenShift to enable their digital transformation initiatives. Examples will cover how realising a hybrid cloud strategy can simplify and reduce the risk of migrating and transitioning application workloads to containers in the cloud.
Alex Smith, Solutions Architect, Amazon Web Services, ASEAN
Stephen Bylo, Senior Solution Architect, Red Hat Asia Pacific Pte Ltd
Microservices, Kubernetes and Istio - A Great Fit!Animesh Singh
Microservices and containers are now influencing application design and deployment patterns. Sixty percent of all new applications will use cloud-enabled continuous delivery microservice architectures and containers. Service discovery, registration, and routing are fundamental tenets of microservices. Kubernetes provides a platform for running microservices. Kubernetes can be used to automate the deployment of Microservices and leverage features such as Kube-DNS, Config Maps, and Ingress service for managing those microservices. This configuration works fine for deployments up to a certain size. However, with complex deployments consisting of a large fleet of microservices, additional features are required to augment Kubernetes.
Presentation in IBM Cloud Meet-up of Toronto
https://www.meetup.com/IBM-Cloud-Toronto/events/253903913/?_xtd=gatlbWFpbF9jbGlja9oAJGU3NmM3ZjdmLWE2NzgtNGVlNC1iNGZiLTBlZGE5ZWM0NDZjOQ
Learn all about microservices from Product Marketing Manager Dan Giordano. We'll cover how to get started, the benefits, potential challenges, and how SmartBear can help.
Building Cloud-Native App Series - Part 2 of 11
Microservices Architecture Series
Event Sourcing & CQRS,
Kafka, Rabbit MQ
Case Studies (E-Commerce App, Movie Streaming, Ticket Booking, Restaurant, Hospital Management)
This slides deck about Microservices architecture and why do we need it. Architecture patterns which we need to follow doing Microservices architecture: Microservice, API Gateway, Service Discovery, Stateless/Shared-Nothing, Configuration/Service Consumption, Fault Tolerance (Circuit Breaker), Request Collapsing. And a bit about API Versioning
Istio is a service mesh, and it's a cool new project from Google, IBM, Lyft and others. This talk describes at a high level how Istio works as a sidecar, and how it works great with Weave Cloud, which provides visualization to understand what's going on when you deploy Istio, and long-term Prometheus metrics storage with its built-in Prometheus service.
This presentation gives audiences a broad viewpoint from old to modern architecture. How Kubernetes and service mesh (istio) can help developers in those missions:
- Explain from traditional to modern architecture. The role of Kubernetes in modern architecture.
- Build basic k8s components from the ground up with illustrations: Pod; Node; Service; ReplicaSet; Deployment; Namespace; Ingress ...
- Kubernetes under the developer viewpoint: write a YAML application file and deploy k8s application to the cluster.
- Kubernetes advanced concepts: master node design, how does the auto-scale for pods/nodes work, Kubernetes networking model.
- Discuss microservice challenges. The role of the service mesh in the microservice ecosystem.
- Introduce Envoy, istio and their application in the service mesh.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
The concept of service mesh is one of the new technologies that have grown up around the container and micro-service model over the last couple of years, and Istio is the latest entry into this space. As Istio was recently included as an incubated project in the CNCF, many companies are now looking to it to provide a set of key functions to accelerate their micro-service application management model. Istio enables bi-directional authentication and security of service communication via TLS based authentication and encryption, and at the same time is able to capture application level communication statistics, improving the application development team's visibility into the otherwise difficult to track communication patterns. In this way, Istio acts like an application level network, riding across the underlying capabilities of Kubernetes CNI based networks and network policy. We will implement Istio on a GKE kubernetes cluster, and instrument a simple application to get better insight into how Istio provides its capabilities.
Speaker Bio:
With over 20 years of experience as a systems reliability engineer, and a focus on automating not only application deployments but the underlying infrastructure as well, Robert Starmer brings a wealth of knowledge to the full application enablement stack. He has applied this knowledge in fields from high-performance computing to high-frequency trading environments, and everything in between. Robert also holds patents in network, data center, and application performance and scale enhancements. He is a Founder and the CTO at Kumulus Technologies, a DevOps, Systems Reliability Engineering and cloud computing consultancy. Additionally, Robert is an incurable photography nerd and has been known to stay up until dawn in remote locations to capture celestial time-lapses.
Docker Kubernetes Istio
Understanding Docker and creating containers.
Container Orchestration based on Kubernetes
Blue Green Deployment, AB Testing, Canary Deployment, Traffic Rules based on Istio
Fundamental and Practice.
Explain about microservices characters and pattern. And also how to be good build microservices. And also additional the scale cube and CAP theory.
OpenShift is Red Hat's Platform-as-a-Service (PaaS) that lets developers quickly develop, host, and scale Docker container-based applications. OpenShift enables a uniform and standardised approach to container management across all hosting options including AWS/EC2 and other private/public cloud and on/off-premise variants. At this session, you will learn how Red Hat's enterprise clients are using OpenShift to enable their digital transformation initiatives. Examples will cover how realising a hybrid cloud strategy can simplify and reduce the risk of migrating and transitioning application workloads to containers in the cloud.
Alex Smith, Solutions Architect, Amazon Web Services, ASEAN
Stephen Bylo, Senior Solution Architect, Red Hat Asia Pacific Pte Ltd
Microservices, Kubernetes and Istio - A Great Fit!Animesh Singh
Microservices and containers are now influencing application design and deployment patterns. Sixty percent of all new applications will use cloud-enabled continuous delivery microservice architectures and containers. Service discovery, registration, and routing are fundamental tenets of microservices. Kubernetes provides a platform for running microservices. Kubernetes can be used to automate the deployment of Microservices and leverage features such as Kube-DNS, Config Maps, and Ingress service for managing those microservices. This configuration works fine for deployments up to a certain size. However, with complex deployments consisting of a large fleet of microservices, additional features are required to augment Kubernetes.
Presentation in IBM Cloud Meet-up of Toronto
https://www.meetup.com/IBM-Cloud-Toronto/events/253903913/?_xtd=gatlbWFpbF9jbGlja9oAJGU3NmM3ZjdmLWE2NzgtNGVlNC1iNGZiLTBlZGE5ZWM0NDZjOQ
Presentation created for Third and Final Year students of , The Department of Information Technology, Bharati Vidyapeeth (Deemed to be University) College of Engineering, Pune. Collage has invited myself for a training program on “Recent Trends in Information Technology”. I presented on topic of "Serverless Microservices". It is Level-100 Session.
The Overview of Microservices ArchitectureParia Heidari
After reading, you are able to answer the following questions.
Why migrating to Microservices?
What are the advantages and drawbacks of Monolithic Architecture?
What are the advantages and disadvantages of Microservices Architecture?
What is the process of messaging in Microservices?
What is the process of integrating microservices with Pub/Sub?
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDavid Currie
Presented at IBM InterConnect 2105. Is your next enterprise application ready for the cloud? Do you know how to build the kind of low-latency, highly available, highly scalable, omni-channel, micro-service modern-day application that customers expect? This introductory presentation will cover what it takes to build such an application using the multiple language runtimes and composing services offered on IBM Bluemix cloud.
The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
In this slide we have discussed, Monolithic application vs Microservices, applicable scenarios for adopting the architectural pattern, when we need microservices, what are the benefits, case study of an e-commerce platform by compartmentalizing the scopes into different sample microservices and Docker implementations.
The full talk has been recorded here: https://youtu.be/tNlp7HS533g
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceJack-Junjie Cai
This presentation talks about how to develop an enterprise application using the micro-service architecture and how platform-as-a-service cloud like IBM Bluemix makes this easier.
This is a small introduction to microservices. you can find the differences between microservices and monolithic applications. You will find the pros and cons of microservices. you will also find the challenges (Business/ technical) that you may face while implementing microservices.
DEVNET-1142 Decomposing Monolithic Applications to MicroservicesCisco DevNet
Microservices style architectures provide several benefits, such as enabling shorter delivery cycles, improved elasticity and resiliency. However, most existing applications are not developed using a microservices-style architecture. In this session, we describe how you can incrementally transform a traditional 3-tier monolith application, into a microservices style application. Beyond design and development of microservices, the session will also provide best practices and guidelines on the operations and cultural changes required for a successful transformation to Microservices.
Microservices Tutorial for Beginners | All You Need to Get StartedShailendra Chauhan
Learn Microservices Online At Your Own Pace. Start Today and Become an Expert in Days. Microservices has technically evolved out of Service Oriented Architecture where SOA features are further broken down into tasks level services making it fine-grained architecture.
Energy Harvesting Techniques in Wireless Sensor Networks – A SurveyFarwa Ansari
It is a Self effort done under the supervision of my Respected Supervisor Dr. A Rehman, to surveyed out all the techniques for Energy harvesting in WSNs. Harvesting Systems are basically subdivided into two types. One in which ambient energy is converted to required electrical energy directly without any storage and the other is where storage of converted energy is required before supplying. So for these sub-systems different energy harvesting techniques are proposed which are Radio Frequency based, solar based, thermal based, flow based from source of ambient environment and from external sources of mechanical based & human based. Flow based are further classified into wind based and hydro based. Each energy harvesting technique’s source has its own capability to harvest energy and can effectively overcome the issues of energy consumption.
Optimizing the memory management of a virtual machine monitor on a NUMA syste...Farwa Ansari
NUMA systems provide non-uniform access to memory. Though they are providing many benefits by meeting the requirement of memory bandwidth and to achieve high performance a Virtual Machine Monitor is utilized which was working appropriately in small scale enterprises but on the other hand due to shifting of large scale datacenters towards the NUMA architecture, it is suffering from some memory management challenges in a virtualized environment. Hence to address the challenges the memory management of its VMM needs to be fully functional/optimized. This survey paper first demonstrates the main issues that are causing the performance degradation of the VMM on NUMA system and then the current trends and methodologies to remove or lessen these issues are explained. Memory over-commitment, Memory ballooning, swapping and performance degradation due to migration time and downtime in live virtual machine’s migration are the issues currently being addressed.
Comparative Analysis of Face Recognition Methodologies and TechniquesFarwa Ansari
In the field of computer sciences such as
graphics and also analyzing the image and its processing,
face recognition is the most prominent problem due to the
comprehensive variation of faces and the complexity of
noises and image backgrounds. The purpose and working
of this system is that it identifies the face of a person from
the real time video and verifies the person from the images
store in the database. This paper provides a review of the
methodologies and techniques used for face detection and
recognition. Firstly a brief introduction of Facial
Recognition is given then the review of the face
recognition’s working which has been done until now, is
briefly introduced. Then the next sections covered the
approaches, methodologies, techniques and their
comparison. Holistic, Feature based and Hybrid
approaches are basically used for face recognition
methodologies. Eigen Faces, Fisher Faces and LBP
methodologies were introduced for recognition purpose.
Eigen Faces is most frequently used because of its
efficiencies. To observe the efficient techniques of facial
recognition, there are many scenarios to measure its
performance which are based on real time.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
2. Micro-Services Architecture
• Defined as:
functional system decomposition into manageable
and independently deployable components
• “micro” refers to the sizing
• a micro service must be manageable by a single
development team (5-9 developers)
• Functional system decomposition means vertical
slicing
• in contrast to horizontal slicing through layers
2
3. More specifically
• Each micro-service is functionally complete with
• Resource representation
• Data management
• Each micro-service handles one resource (or verb),
e.g.
• Clients
• Shop Items
• Carts
• Checkout
3
4. Micro-services architecture is an evolutionary design
ideal for evolutionary systems where you can’t fully
anticipate the types of devices that may one day be
accessing your application
4
6. Problems of Monolithic
Architectures
• Code complexity and maintainability
• Deployment becomes the bottleneck
• Fear to change
• Lack of ownership
• Failure dependencies
• One size doesn’t fit all (ex: relational DB)
• Hard to scale out
6
7. • Code complexity and maintainability
• Deployment becomes the bottleneck
• Fear to change
• Lack of ownership
• Failure dependencies
• One size doesn’t fit all (ex: relational DB)
• Hard to scale out
7
9. Components & Connectors
• Components – individual programs
• Connectors are discussed below:
• Communication between micro services is often
standardized using
• HTTP(S) – broadly available transport protocol
• REST – uniform interfaces on data as resources with
known manipulation means
• JSON – simple data representation format
• REST and JSON are convenient because they simplify
interface evolution
9
11. Decentralization
• Micro-services decentralize data storage
decisions
• Monolithic applications prefer a single logical
database for persistent data
• Micro-services prefer letting each service
manage its own database
• either different instances or entirely different
database systems
11
12. Independence
• Independent deployability is key
• Each service has its own software repository
• Each micro service can be scaled
independently
• Data sharing can be applied to micro-services as
needed
• Independent evolution of Features
• Micro-services can be extended without affecting
other services
12
13. Black Box
• Black box testing is a type of component
interface testing
• verifies that data being passed among
components in the system is done right and it
verifies application flow
13
14. Polyglot
• Polyglot persistence is an approach
• Used in monolithic but frequently in micro
services
• Using multiple data storage technologies for
an individual application
• chosen based upon the best way data can be
stored and retrieved for the application
14
16. Typical Usage and Applications
• Money Transfer/Transactional processing in
Financial Systems
• Most large scale web sites including Netflix,
Amazon and eBay have evolved from a
monolithic architecture to a Micro-Service
architecture.
16
21. Constraints and Limitations
Constraints
(principles that drive desired properties)
• Elastic
• Resilient
• Composable
• Minimal
• Complete
Limitations
• Complexity
• Creational (in case of
Distributed Systems)
• Operational
• Deployment
• Increased Memory
Consumption
21
22. Micro-Service Constraint #1 -
Elastic
• A Micro-Service must be able to scale, up or
down, independently of other services in the
same application.
• This constraint implies that based on load, or
other factors, applications’ performance and
availability couldn’t be affected.
• Multiple instances of each micro service can
run ineffectively
22
23. Micro-Service Constraint #2 -
Resilient
• A Micro-Service must fail without impacting
other services in the same application.
• A failure of a single service instance should
have minimal impact on the application.
• Failure of all instances of a micro service, should
impact a single application function & users should
be able to continue using the rest of the application
without impact.
• Micro-Services are Loosely Coupled
23
24. Micro-Service Constraint #3 -
Composable
• A Micro-Service must offer an interface that
is uniform and is designed to support service
composition.
• Micro-Service APIs should be designed with a
common way of identifying, representing, and
manipulating resources.
24
25. Micro-Service Constraint #4 -
Minimal
• A Micro-Service must only contain highly cohesive entities
• In software, cohesion is a measure of whether things belong
together.
• High cohesion – all objects and functions in it are focused on
the same tasks
• A Micro-Service should perform a single business function,
which implies that all of its components are highly cohesive.
• Higher cohesion – more maintainable software.
25
26. Micro-Service Constraint #5 -
Complete
• A Micro-Service must be functionally
complete
• A Micro-Service must offer a complete
function, with minimal dependencies (loose
coupling) to other services in the application.
• Minimal but Complete.
26
27. Limitation #1 - Complexity
• Too many Micro-Services
• Developers must deal with the additional complexity of creating a
distributed system.
• Testing is more difficult
• Developers must implement the inter-service communication mechanism.
• Developers must implement mechanisms for handling
operations/functionality of many different types of services.
• Obviously, the deployment complexity will be increased – need to
deploy and manage many different service types.
27
28. Limitation #2 – Increased
Memory Consumption
• The micro-services approach leads to the
increased memory consumption. It simply, due
to own address space for the each service.
28
29. Summing Up
• Improves fault isolation
• Makes it easier for a new developer to understand the
functionality of a service.
• Developing distributed systems can be complex.
• Multiple databases and transaction management can be
painful.
• Testing a Micro-services-based application can be
cumbersome.
• Deploying Micro-Services can be complex.
• Ease of Modification – make a change/modification to a
single service and deploy it independently of the rest of
the system.
29
http://www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice-architectures.pdf
it becomes critical to have standardized methods of communication between them. Since services don't all have to be written in the same language, the chosen communication protocols must be language and platform independent.
http://www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice-architectures.pdf
For example, you can deploy a new version of (a part of) the UI without re-deploying the whole system
when it comes to testing levels, we have unit testing, integration testing, component interface testing and system testing.
Developing distributed systems can be complex. By which I mean, because everything is now an independent service, you have to carefully handle requests travelling between your modules. There can be a scenario where one of the services may not be responding, forcing you to write extra code specifically to avoid disruption. Things can get more complicated when remote calls experience latency.
Testing a microservices-based application can be cumbersome. Using the monolithic approach, we would just need to launch our WAR on an application server and ensure its connectivity with the underlying database. But now, each dependent service needs to be confirmed before you can start testing.
Deploying microservices can be complex. They may need coordination among multiple services, which may not be as straightforward as deploying a WAR in a container.