Rodrigo Antonialli presented on microservices architecture. He began by defining microservices as independent services that communicate through lightweight mechanisms like HTTP APIs. Each service focuses on a specific business capability and can be independently deployed.
Antonialli then discussed characteristics of microservices like componentization via services, organization around business capabilities, and infrastructure automation. He also covered enabling technologies like containers, messaging systems, and monitoring tools.
Finally, Antonialli noted both pros and cons of microservices, such as improved scalability but also increased complexity. He recommended students focus on high-level concepts first and that experienced developers will know how to apply microservices appropriately based on their situation.
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.
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.
Discover and learn how to build a microservices platform, get a view of the best of breed architecture, solving common challenges, dig into Netflix stack, Yelp PaaSTA, AirBnB SmartStack, Apache Mesos, SoundCloud, Spinnaker experiences.
French audience : the JUG live recording is available here, https://www.youtube.com/watch?v=5LnL1HYmLwY&feature=youtu.be
[ Microservice architecture 바로 알기 ]
Slidesahre, Facebook, 각종 블로그, 사이트등을 통해 얻은 다양한 자료를 정리해볼까하며 개인적으로 끄적거리는 중인 자료입니다.
간단한 세미나에서 공유하고 잘 완성해 공유하려다 근래 잉여력이 바닥인지라 ...그냥 투척합니다. 요즘 아몰랑...... 하고 마구 투척하는 것도 유행인듯하니... ㅋㅋ
다양한 클라우드플랫폼, CI/CD의 성숙, DDD, 오픈소스.. 등등등 Micro service architecture를 이야기하기에 기술적인 환경은 어느 정도 준비가 되었다고 봅니다.
여기서는 이러한 부분에 대한 내용을 다루며
조직이나 커뮤니케이션에 대한 부분은 이야기 하지 않습니다 ^^;
저도 답을 찾아 방황하는 중이에요~~~ +_+
Slides from the October 2016 meetup presentation of the Massachusetts Microservices Meetup group.
Kenzan
Twitter: @kenzanmedia
Linkedin: www.linkedin.com/company/kenzan-media
Blog: techblog.kenzan.com
Facebook: www.facebook.com/kenzanmedia/
The Microservices approach is a new way of building composable, cloud-native applications. This session is designed for developers who are transforming existing applications to Microservices, or creating new Microservices style applications. The session will cover best practices, patterns including Service Registration and Discovery, and key development tools required for building distributed Microservices style applications. The session will also cover best practices for automating the operations of these applications, using container orchestration services.
A brief intro to microservice patters and strategies.
This is a presentation from the series "by Developer for Developers" powered by eSolutions Grup.
You can find the practical example at https://github.com/eSolutionsGrup/microshop
A presentation to explain the microservices architecture, the pro and the cons, with a view on how to migrate from a monolith to a SOA architecture. Also, we'll show the benefits of the microservices architecture also for the frontend side with the microfrontend architecture.
Discover and learn how to build a microservices platform, get a view of the best of breed architecture, solving common challenges, dig into Netflix stack, Yelp PaaSTA, AirBnB SmartStack, Apache Mesos, SoundCloud, Spinnaker experiences.
French audience : the JUG live recording is available here, https://www.youtube.com/watch?v=5LnL1HYmLwY&feature=youtu.be
[ Microservice architecture 바로 알기 ]
Slidesahre, Facebook, 각종 블로그, 사이트등을 통해 얻은 다양한 자료를 정리해볼까하며 개인적으로 끄적거리는 중인 자료입니다.
간단한 세미나에서 공유하고 잘 완성해 공유하려다 근래 잉여력이 바닥인지라 ...그냥 투척합니다. 요즘 아몰랑...... 하고 마구 투척하는 것도 유행인듯하니... ㅋㅋ
다양한 클라우드플랫폼, CI/CD의 성숙, DDD, 오픈소스.. 등등등 Micro service architecture를 이야기하기에 기술적인 환경은 어느 정도 준비가 되었다고 봅니다.
여기서는 이러한 부분에 대한 내용을 다루며
조직이나 커뮤니케이션에 대한 부분은 이야기 하지 않습니다 ^^;
저도 답을 찾아 방황하는 중이에요~~~ +_+
Slides from the October 2016 meetup presentation of the Massachusetts Microservices Meetup group.
Kenzan
Twitter: @kenzanmedia
Linkedin: www.linkedin.com/company/kenzan-media
Blog: techblog.kenzan.com
Facebook: www.facebook.com/kenzanmedia/
The Microservices approach is a new way of building composable, cloud-native applications. This session is designed for developers who are transforming existing applications to Microservices, or creating new Microservices style applications. The session will cover best practices, patterns including Service Registration and Discovery, and key development tools required for building distributed Microservices style applications. The session will also cover best practices for automating the operations of these applications, using container orchestration services.
A brief intro to microservice patters and strategies.
This is a presentation from the series "by Developer for Developers" powered by eSolutions Grup.
You can find the practical example at https://github.com/eSolutionsGrup/microshop
A presentation to explain the microservices architecture, the pro and the cons, with a view on how to migrate from a monolith to a SOA architecture. Also, we'll show the benefits of the microservices architecture also for the frontend side with the microfrontend architecture.
With microservices gone mainstream a few years ago, many organizations have now adopted them; even though all are paying the price in terms of training, solution complexity and operational costs, few are reaping the promised benefits.
Lower velocity, quality and performance issues, along with an overall lack of visibility are what we hear about most often.
In this session, working from our experience as advisors to software development teams, we’ll walk you through some of the symptoms you might experience, their possible causes and some potential solutions.
This talk was done in Feb 2020. Sergey and I co-presented at CTO Forum on Microservices and Service Mesh (how they relate, requirements, goals, best practices and how DevOps and Agile has had convergence in the set of features for Service Mesh and gateways around observability, feature flags, etc.)
Architecture principles, How to, Patterns,
Comparison with other SOA styles
Pragmatic options to scale Monoliths
Illustrated with the Netflix stack and Gilt, SoundCloud testimonials
To go futher, check 200 - Building Microservices
http://fr.slideshare.net/SteveSfartz/building-microservices-55458071
Talk given at GDG Uberlandia on January 2018. It's an introduction to the topic and some key techniques that I believe will help the implementation of microservices.
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.
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreSimform
IT organizations can be benefitted from a microservices approach to application development with more agile and accelerated time to market. However, there is a catch in order to break an app into fine-grained services.
NewsCred Dhaka hosted an interactive session on MircroServices. The main focus of the event was to provide a platform for people to share their experiences, understand the architecture and hear about the challenges and benefits of continuous deployment.
Presenters: Asif Rahman (CTO), Brian Schmitz (Director of Engineering), Rana Khandakar (Lead Software Engineer), Ashrafuzzaman Jitu (Engineering Manager), and Zahiduzzaman Setu (Senior Software Engineer), as they share their experiences with MicroServices and in the process find out if it is right for you.
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.
How to Overcome Data Challenges When Refactoring Monoliths to MicroservicesVMware Tanzu
When taking existing monoliths and decomposing their components into new microservices, the most critical concerns have much less to do with the application code and more to do with handling data.
In this webinar, Kenny Bastani from Pivotal and Jason Mimick from MongoDB will focus on various methods of strangling a monolith’s ownership of domain data by transitioning the system of record over time. The new system of record, MongoDB, will fuel rapidly built and deployed microservices which companies can leverage for new revenue streams.
They will use practices from Martin Fowler’s Strangler Application to slowly strangle domain data away from a legacy system into cloud-native MongoDB clusters using microservices built with Spring Boot and Spring Cloud.
Speakers:
Kenny Bastani is a Spring developer advocate at Pivotal. As a passionate blogger and open source contributor, Kenny engages a community of passionate developers on topics ranging from graph databases to microservices. Kenny is a co-author of Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry from O’Reilly.
Jason Mimick is the Technical Director for Partners at MongoDB developing new product and technical innovations with a number of companies. He's been at MongoDB nearly 4 years and previously spent the last 20-odd years in various engineering positions at Intersystems, Microsoft, and other companies.
Vodafone Devops Days - Micro service architectureTurgay Can
Microservice transition is better or easy :)
Telecommunication domain!
If the organization is ready for this, it is quite simple!
You should use right tool for the problem!
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.
An eventful tour from enterprise integration to serverless and functionsChristian Posta
In this talk, Marius (@mariusbogoevici) and I (@christianposta) discuss the value of event-driven architectures (both business and technical merits) and how the landscape of integration, streaming, and messaging and now functions/lambdas have evolved to implement EDA while balancing agility, utilization, and simplicity.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
2. Agenda
● What is a Microservices Architecture ?
○ Microservices Characteristics
■ Focus on Pros and Cons
■ Enabling Technologies
● Where to go from here
3. Before we begin
● Don’t blindly trust anyone
○ Be responsible for your own choices
● Try to keep your pre-established concepts "under control"
○ You should get to know it, even, and specially, if you don’t like it.
○ Open minded always see something good from it…even if it’s to avoid it.
5. Microservices Architecture
"In short, 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. These services are built around business capabilities
and independently deployable by fully automated deployment machinery. There is a bare minimum
of centralized management of these services, which may be written in different programming
languages and use different data storage technologies."
-- James Lewis and Martin Fowler (2014)
6. Microservices Architecture
"Microservices - also known as the microservice architecture - is an architectural style that structures an
application as a collection of services that are
● Highly maintainable and testable
● Loosely coupled
● Independently deployable
● Organized around business capabilities
● Owned by a small team
The microservice architecture enables the rapid, frequent and reliable delivery of large, complex
applications. It also enables an organization to evolve its technology stack. "
-- Chris Richardson - microservices.io
7. Microservices Architecture
● It's not only about how the software components are organized
○ Requires a cultural change
Independent Services
Independent Teams
Projects Products
Highly Coupled Teams
Single Application
8. Microservices Architecture
● Microservices Architecture emerged from the community
○ No single definition, although some consensus
○ Experienced developers who adventured (and had a lot of failures) with SOA
○ Some say: "How to do SOA right"
○ Desired Characteristics and Patterns to do SOA
● Some references with good resources:
○ Martin Fowler & James Lewis - https://martinfowler.com/articles/microservices.html
○ Chris Richardson - https://microservices.io
○ Sam Newman - https://samnewman.io/books/
9. Microservices Architecture
● Most common scenario:
Monolith
Database
Monitoring
Events
Presentation
Business Logic
Data Model
Load Balance
Service A
Database A
Discovery
Service B
Database
Migration
10. Microservices Architecture
● Most common scenario:
Monolith
Presentation
Business Logic
Data Model
Migration
Monolith
Database
Presentation
Business Logic
Data Model
Monolith
Presentation
Business Logic
Data Model
Monitoring
Events
Load Balance
Service A
Database A
Discovery
Service B
Database
Service A
Service A
11. Microservices Architecture
● Where is it adopted today?
○ Big tech companies:
■ Netflix - Shared a lot of tools and libraries they use as open source
■ Uber, Amazon, Ebay, Spotify… and others
○ It's becoming an industry standard solution to solve high scalability and faster delivery
■ There is, however, a lot of discussion about this future
● It’s more suitable for BIG companies with BIG problems to solve
○ It doesn’t mean you can’t start with it - Don’t start with a monolith - Stefan Tilkov
○ You definitely can learn from it
12. Microservices Architecture
● Not a silver bullet - It will not solve all of your problems
● No strict set of rules - No single definition, no single way
● Not the end goal - You should not measure success based on how you “do microservices”
● New set of problems: No receipt. Custom solutions you'll have to figure out by yourself.
○ Patterns established to help with decisions and implementation
Effort and Time
Big organization
Multiple teams
Small organization
Small team(s)
Starting from Scratch
Migrating from a
Monolith
14. Microservices Characteristics - How “micro”?
How “micro” is a microservice?
● 100-200 lines of code?
● Small enough to be re-written in 2 weeks?
● Of course: no single rule to fit it all.
Tips that indicate if two services should be merged:
● Feature redundancy or similarity between features
● High number of calls between services
● Change in interpretation of Business Capabilities and/or Domains
● Constantly updating different services together
15. Microservices Characteristics
● Componentization via Services
● Organization around Business Capabilities
● Products not Projects
● Smart endpoints and dumb pipes
● Decentralized Governance
● Decentralized Data Management
● Infrastructure Automation
● Design for failure
● Evolutionary Design
Microservices - by Martin Fowler
16. Microservices Characteristics - Componentization via Services
Pros
● Highly maintainable and testable
● Independently deployable
● Owned by a small team
● Very flexible scalability
Cons
● Distributed Systems - harder to program, specially with async
communication
● Eventual Consistency - distributed data
● Operational Complexity - large number of services deployed
microservices.io
17. Enabling Technologies
● Containers & Containers Orchestrators
○ Help to automate and simplify deployment - core technologies to enable microservices
○ Docker
○ Podman
○ Docker Compose and Swarm
○ Kubernetes
18. Microservices Characteristics - Organization around Business Capabilities
Pros
● Well-defined scope - favor independent teams work
● Enables faster collaboration - teams can solve design and integrations
faster
Cons
● Might be challenging to define - depends on interpretation
● May slow down at first - the capabilities and domains must be
discussed and defined before multiple teams starting to work
microservices.io
19. Microservices Characteristics - Products not Projects
● Products not Projects
○ Development is not an isolated activity with beginning and end:
■ You build it, you run it
○ The team owns the full life-cycle of the service: design, development, deployment and
monitoring in production
○ Teams also collaborate to product decisions
Pros
● Constant relationship of developers and owned product - easier to
evolve and to provide better user experiments
Cons
● Change in culture - takes time, specially because it involves multiple
teams, developers and managers.
20. Microservices Characteristics - Smart endpoints and dumb pipes
Pros
● Logic and filtering is owned by the service - easier to
understand and change in the future
Cons
● Messaging might pose a different paradigm to build
software - services may follow choreography pattern
instead of orchestration pattern
MS 1
MS 2
MS 3
MS 1
MS 2
MS 3
BUS MS 1
MS 2
MS 3
MS 1
MS 2
MS 3
MS 1
MS 2
MS 3
MS 1
MS 2
MS 3
REST Messages
21. Enabling Technologies
● Messaging
○ Implement event storage, routing and other support functionalities for event driven
communication
■ RabbitMQ
■ Apache Kafka
■ Google Cloud Pub/Sub
■ Amazon SQS
22. Microservices Characteristics - Decentralized Governance
“not every problem is a nail and not every solution a hammer.” - Microservices - Martin Fowler
Pros
● Flexibility to adopt different languages - the right tool for the job
● More opportunities to adopt new technologies
Cons
● Challenges to promote culture of reusage
● Difference between languages might still pose challenges
sometimes
Java Service
Python Service
Go Service
JS Service
23. Enabling Technologies
● Interface Definition Languages - IDL
○ Specification languages used to describe Application Programming Interface (API) - usually
associated to code generation - most common for polyglot environments
■ Google Protocol Buffers
■ Apache Avro
■ Apache Thrift
■ JSON
24. Microservices Characteristics - Decentralized Data Management
Pros
● Flexibility to adopt different models, schemas and storage
technologies - the right tool for the job at data level
Cons
● Distributed Transactions - an operation may involve multiple
services
● Eventual Consistency - needs to be supported/fixed with
compensating operations
● Conceptual alignment may be very hard
Bounded Context - Martin Fowler Microservices - Martin Fowler
25. Microservices Characteristics - Infrastructure Automation
Benefits
● Fast, frequent and reliable delivery - automated tests reduce the
risks of a broken instance to be used - increases the trust on the
deployed software
● Monitoring and tracing automation - faster response to failures
Challenges
● Change in culture to adopt tests as first class citizens (Test
Driven Design)
● Requires knowledge and effort to set up infrastructure beyond
the service domain
Wikipedia - DevOps
26. Enabling Technologies
● Continuous Integration & Continuous Delivery
○ Automate integration and deployment. Heavily used in combination with Containers and
Containers Orchestrations
■ GitHub Actions
■ GitLab Pipelines
■ Jenkins
■ Ansible
■ Puppet
27. Microservices Characteristics - Design for failure
Pros
● Fault tolerance contributes to more responsive application.
● Well-established monitoring helps decrease failures response
time
Cons
● Sync calls - easy to implement, more chance to fail
● Good level of monitoring and distributed tracing may be
challenging to achieve
Circuit Breaker - Martin Fowler
29. Enabling Technologies
● Frameworks
○ Language specific frameworks to make it easy to implement microservices
○ Spring Boot & Spring Cloud - Java
■ Netflix OSS
○ Eclipse Vert.X - Multiple Languages
○ Moleculer - NodeJS
○ What about python? Although you can use Django, Flask or Tornado, to build microservices,
they present themselves as Web frameworks
30. Microservices Characteristics - Evolutionary Design
Pros
● Changes can be more frequent, fast and well-defined.
● Small services can be easily scraped and replaced
● Functionalities can be added as services to existing
monoliths
Cons
● Eventually contracts between services will break
● Versioning - hard for clients when constantly updated - hard for
developer team to support multiple versions
● Monolith to Services - challenging depending on the scenario
microservices.io - Strangler Application Pattern
Service A
Database
Today:
Service B
Database
input
Service A
Database
Tomorrow:
Service B
Database
data
input
Missing required param
31. Microservices Pros
● Flexible Scalability
○ The application doesn’t need to scale homogeneously
○ Scale just what you need
● Improved maintainability
○ Small service is easier to understand and change - makes onboarding easier
● Better testability
○ Faster to test
● Better deployability
○ Services can be deployed independently
○ Reduces breaking changes when best practices of code-review and automated tests are applied.
32. Microservices Pros
● Developers tend to be more productive
○ The IDE is faster, the application starts faster, tests run faster.
○ Less code to keep track and control
● Technology stack is flexible
○ Polyglot Programming: Choose the right tool for the job.
○ Flexible data storage: Choose models and schemas according to context
● Over time, it increases fault tolerance and fault isolation
○ When patterns and best practices are applied and a certain maturity is reached, it’s easier to isolate where/why
a fault happened/is happening.
33. Microservices Cons
● More complex
○ New technologies, new concepts, new patterns - new set of problems to solve
○ Inherits complexities of any distributed systems: latency, failure.
● Requires cultural change
○ Teams might need to be restructured
○ Organization management needs to delegate responsibilities to teams - they own the service, they make
decisions
● More expensive
○ Remote calls - again
○ More resources - independent services, independent CPU, memory, etc.
34. Microservices Cons
● No strict set of rules
○ Still susceptible to different interpretations - disputes on how to adopt/implement
○ It’s hard to choose when/why to adopt
● It may introduce more problems than it solves
○ Maybe your problem is just communication between stakeholders (management and developers)
○ Maybe your problem could be solved just by infrastructure automation
36. Microservices Architecture
Student
Yet another thing to
learn. It’s fine if you
want, but start with
getting the high level
concepts and focus on
the enabling tech.
Junior/Mid-level
You’ll eventually come
across it somewhere,
sometime. It’s helpful
to improve skills and
make choices for your
career.
Experienced
You’ll most likely know
what to do by yourself,
but remember we
never quit learning.
● Should I think / worry / use / learn Microservices Architecture?