The document discusses agile microservices and their advantages over monolithic architectures. It describes how to decompose a monolithic real estate management application into independent microservices for properties, facilities, and engineering. Microservices allow for improved independence, speed of development, automation, and use of different technologies. Inter-service communication can occur over REST, HTTP, or AMQP, while an API gateway pattern hides service complexity from clients. Cloud computing platforms like Docker and Convox can deploy and manage containerized microservices. The Internet of Things connects physical devices to these services over protocols like MQTT and WebSocket.
Microservice architecture is a new way of developing an application as a suite of independently deployable and manageable small services talking to each other using web services(REST) or a message broker(AMQP). While there is no precise definition and others consider microservices to be simply an ideal, refined form of SOA(Service-oriented architecture ), each microservice should be relatively small so that it's easier for a developer to understand, use suitable framework and IDE, deploy, scale, easily isolate fault.
Microservices (msa) insights with commentsLior Bar-On
The document discusses microservices and common patterns used with microservices architectures. It notes that many patterns predate microservices and are really patterns for distributed systems in general. While microservices allow for continuous deployment and improved development scalability, they also have downsides like increased network sensitivity. The document advocates understanding your problems deeply before applying patterns or splitting into microservices.
Talk on history, values and current state of Code Sprinters software development company, presented by Adam Byrtek, one of its founders, at Agile Gathering in Kiev, Ukraine.
Will the Real Public API Please Stand Up? Amir ZukerCodeValue
API's are at the heart of the modern software development world, we do it everywhere! It's not only a matter of distributed systems, it's in every code that we write, and more often than not - it matters.
The focus of this talk is about authoring Public API's between systems, be that different parts within the same distributed system or a fully blown real-world public API and everything in between.
Facing such a challenge, one may meet all sorts of dilemmas and consider different strategies and several practices. For instance, how to author specifications, how to approach stability, how to authenticate calls, what practices to consider, and more.
Join me in this session as we tackle such questions head-on and see cool demos of code and tools as we build a public API in the process.
What is this Docker and Microservice thing that everyone is talking about? A primer to Docker and Microservice and how the two concepts complement each other.
Limiting software architecture to the traditional ideas is not enough for today's challenges. This presentation shows additional tools and how problems like maintainability, reliability and usability can be solved.
Enterprise-Ready Private and Hybrid Cloud Computing TodayRightScale
RightScale User Conference NYC 2011:
Enterprise-Ready Private and Hybrid Cloud Computing Today
Rich Wolski - Founder and CTO, Eucalyptus
In this session, we'll discuss the use of Eucalyptus and RightScale to build enterprise-grade cloud computing environments. By combining on-premise clouds with Amazon Web Services (AWS) through a common cloud management interface, Eucalyptus and AWS form a coherent platform for reliable and cost-effective enterprise cloud computing. The RightScale Cloud Management Platform delivers the high-level framework for cost-effectively automating and managing this ensemble of technologies.
This document discusses hybrid cloud networking challenges and solutions. It presents typical web application deployments on-premises and in the cloud. Architectural challenges with hybrid clouds include performance, reliability, and security. Implementation challenges involve using switched versus routed networks and managing IP addresses, routes, and network appliances across environments. The document proposes two approaches for hybrid cloud networking - a routed virtual private cloud using routing and firewalls, and a switched virtual private cloud using virtual switches and tunnels to simplify connectivity while maintaining security and performance.
This document provides an overview of Amazon Elastic Container Service (Amazon ECS). ECS is a fully managed container orchestration service that allows users to run and scale containerized applications. It supports Fargate, which provides serverless compute for containers without needing to provision or manage servers. The document compares ECS concepts like clusters, tasks, and services to similar concepts in Kubernetes. It then walks through creating a sample ECS task definition, service, and load balancer. It discusses ECS networking options and differences between using EC2 instances versus Fargate. In the end, it notes that ECS can simplify modern application patterns and Fargate provides flexibility, but there may be less documentation and open source tools compared to alternatives
Windows azure mobile services from start to restAidan Casey
This document provides an overview and agenda for a presentation on Windows Azure Mobile Services. It discusses features like storage, push notifications, authentication, scheduling, and diagnostics. It also demonstrates creating a mobile service and using APIs for storage, notifications, and scheduling tweets to a hashtag. The presentation aims to show how to build a tweet aggregator using Mobile Services.
Nodifying the Enterprise - Prince Soni, TO THE NEWNodejsFoundation
Node has transcended from being the cool tech stack for fledgling start ups to the darling of enterprise CIOs and CTOs.
It is no longer just the rapid development language for moving ideas to production fast. It is now very much the responsible mature technology that large enterprises need to solve their myriad problems of scale, user engagement, faster go-live cycles, security, performance and more and how this is achieved by Node is what we will be talking about in this presentation.
1. The JavaScript landscape and why it is the language of the next decade.
2. Evolution of Node and apps built on it
3. Solving the problems of scale, high uptime, multi channel and secure applications with Node
4. Node toolkit (various frameworks and supporting technologies)
5. Pitfalls to guard against
This document provides an overview of CI/CD on Google Cloud Platform. It discusses key DevOps principles like treating infrastructure as code and automating processes. It then describes how GCP services like Cloud Build, Container Registry, Source Repositories, and Stackdriver can help achieve CI/CD. Spinnaker is mentioned as an open-source continuous delivery platform that integrates well with GCP. Overall the document outlines the benefits of CI/CD and how GCP makes CI/CD implementation easy and scalable.
The document discusses principles for evolutionary architecture:
1. Delay decisions as long as possible but no longer, and integrate changes continuously.
2. Write tests first and integrate code frequently to allow the architecture to evolve freely.
3. Use lightweight documentation like wikis for discussions and decisions, not emails.
4. Embrace continuous delivery and feature switches to reduce fear of releasing software.
5. Adapt the architecture to the organization's structure and use small, self-organizing teams.
6. Design systems to be robust and components to be replaceable.
The document compares Java and JavaScript, noting that while both are important for developing applications, they serve different purposes. For end users, the technology is irrelevant as long as the application works well. For developers, JavaScript may be better to learn first as it allows for elegant user experiences, while Java enables more capabilities. For management, the skills of their current team should be considered to determine which language to use. The document provides examples of companies that used JavaScript or Java for their projects based on these considerations. It concludes that while JavaScript is often sufficient, developers should learn Java to expand their skills.
The document discusses using Google Cloud Armor to secure applications. It provides an introduction to why web application firewalls (WAFs) are important for protecting business and sensitive data. It then gives an overview of common network security threats like denial of service (DDoS) attacks and application vulnerabilities. The presentation focuses on how Cloud Armor can help detect and mitigate DDoS and layer 7 attacks at Google scale while also providing WAF capabilities to block common exploits. Specific use cases are discussed where Cloud Armor can allow/block IP addresses and protect against attacks like SQL injection and cross-site scripting.
The document discusses some of the pros and cons of using microservices compared to monolithic applications. Some advantages of microservices include that they are simpler to develop, allow for faster build and deployment times, enable more scalable development with empowered teams, and provide more freedom to try different technologies. Some challenges of microservices include that they have complex operations and distribution, require managing multiple databases and transactions, are harder to test as distributed systems, and require coordination when changes affect multiple services.
Java vs. Java Script for enterprise web applications - Chris BaileyJAXLondon_Conference
The document compares Java and JavaScript for enterprise web applications. It finds that while JavaScript has a larger developer base and adoption according to metrics like GitHub repositories and StackOverflow surveys, Java remains dominant in enterprise applications and for server-side development. It discusses the different deployment models for each language, with JavaScript being ubiquitous in browsers while Java has a long history on servers. JavaScript code tends to be more concise, requiring around 1/3 less code on average. The document also evaluates performance, finding JavaScript is faster for I/O tasks while slower for computationally intensive work. It discusses challenges in optimizing dynamically typed languages like JavaScript.
Accompanying presentation for Cloud Study Network group (https://www.meetup.com/Cloud-Study-Network/) :
Event link - https://www.meetup.com/Cloud-Study-Network/events/283988261/
hosted on 24.02.2022 , at https://www.youtube.com/watch?v=d4kGI3ARn5o
Cloudify your applications: microservices and beyondUgo Landini
The document discusses moving applications to a microservices architecture using Cloudify and Istio. It begins by describing typical customer landscapes today with complex, heterogeneous environments running across virtual and physical infrastructure. It then introduces Cloudify and Istio as platforms that can help modernize existing applications and develop new ones using microservices. Key capabilities of Cloudify and Istio are described such as container platforms, developer tools, and services for integration, automation, security and management.
Microservizi e container Docker in produzione: strumenti e consigliAmazon Web Services
This document provides an overview and summary of microservices and containers. It discusses:
- Why organizations are adopting containers and microservices architectures
- What containers are and their advantages for microservices
- Characteristics of microservices architectures
- How Amazon ECS can be used to deploy and manage containers at scale
- New placement strategies and attributes in the Amazon ECS task placement engine
- How to consume real-time events from Amazon ECS using the event stream
- An open source project called Blox for building container-based microservices
Stay productive while slicing up the monolithMarkus Eisele
The document discusses strategies for evolving monolithic applications into microservice architectures. It notes that modern software needs to meet increasing demands around release frequency, developer velocity, and infrastructure costs. While classical architectures based on monoliths and service-oriented architectures were effective, they no longer address today's challenges. The document then introduces microservices as an alternative, describing characteristics like independent deployability, language/data agnosticism, and process isolation. It acknowledges that while building individual microservices is straightforward, the difficult part is designing the overall system architecture and operational capabilities required to manage many interconnected microservices. Lagom is presented as one framework that can help implement reactive microservices on the JVM.
Stay productive while slicing up the monolithMarkus Eisele
Microservices-based architectures are in vogue. Over the last couple of years, we have learned how thought leaders implement them, and it seems like every other week we hear about how containers and platform-as-a-service offerings make them ultimately happen.
Tech Talent Night Copenhagen 11/22/17
https://greenticket.dk/techtalentnightcph
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
Do microservices force us to look differently at the way we lay down and evolve our integration architecture, or are they purely about how we build applications? Are microservices a new concept, or an evolution of the many ideas that came before them? What is the relationship between microservices and other key initiatives such as APIs, SOA, and Agile. In this session, we will unpick what microservices really are, and indeed what they are not. We will consider whether there is something unique about this particular point time in technology that has enables microservice concepts to take hold. Finally, we will look at if, when, where and how an enterprise can take on the benefits of microservices, and what products and technologies are applicable for that journey.
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsDataStax Academy
The SimianViz microservices simulator contains a model of Cassandra that allows large scale global deployments to be created and exercised by simulating failure modes and connecting the simulation to real monitoring tools to visualize the effects. The simulator is open source Go code at github.com/adrianco/spigo and is developing rapidly.
Building Cloud-Native App Series - Part 5 of 11
Microservices Architecture Series
Microservices Architecture,
Monolith Migration Patterns
- Strangler Fig
- Change Data Capture
- Split Table
Infrastructure Design Patterns
- API Gateway
- Service Discovery
- Load Balancer
Building microservices with azure functionsJustin Maurer
Getting started in Microservice can be a steep hill to climb, but with Azure Functions we can begin building them within minutes. Azure Functions is a "serverless" computing offering, that allows you to run small bits of JavaScript, C#, Python, PHP, Bash, Batch, and PowerShell that is managed by Azure to scale as needed. In this talk we will cover what are the best applications for Azure Functions, where they fit amongst the many options in cloud computing and go over specific use cases, including building a completely serverless backend for a web application and how it can be used for home automation.
Reference architectures shows a microservices deployed to KubernetesRakesh Gujjarlapudi
The document discusses microservices architecture on Kubernetes. It describes microservices as minimal, independently deployable services that interact to provide broader functionality. It contrasts this with monolithic applications. It then covers key aspects of microservices like ownership, tradeoffs compared to traditional applications, common adoption cases, and differences from SOA. It provides a reference architecture diagram for microservices on Kubernetes including components like ingress, services, CI/CD pipelines, container registry, and data stores. It also discusses design considerations for Kubernetes microservices including using Kubernetes services for service discovery and load balancing, and using an API gateway for routing between clients and services.
Serverless is FaaS-tastic - All Things Open Meet-upMark Hinkle
Serverless can be misleading as a descriptor. Serverless infrastructure actually runs on servers. However, the “server-less” reference comes from the fact that serverless abstracts the complexity of running servers away from the software developer which enables them to develop software without having to worry about the scaling, redundancy and overall infrastructure design. This is called Function-as-a-Service or Faas for short.
For the purposes of this talk, we’ll discuss serverless technologies where someone else is providing serverless infrastructure. Popular serverless platforms include Amazon Web Services Lambda, Google Cloud Functions, and Microsoft Azure Functions.
The presentation will also discuss the software that can be used to deliver Functions-as-a-Service (FaaS) that enables serverless, including serverless frameworks like Knative, Kubeless, OpenFaaS, and Oracle’s fn.
Finally, we’ll cover what a cloud-native application might look like including the use cases and design patterns that serverless is geared towards providing.
This document provides an overview of architecting microservices using .NET. It discusses why microservices are used, common architecture patterns, and implementation considerations. Key points include:
- Independent, loosely coupled services that are fault tolerant and easy to scale are goals of a microservices architecture.
- Communication between services should be kept simple, using either synchronous HTTP or asynchronous messaging. Synchronous calls can lead to temporal coupling so circuit breakers and failure handling are important.
- Domain-driven design principles like bounded contexts and separating queries from commands (CQRS) can help define appropriate service boundaries and responsibilities.
- Event sourcing avoids shared state and two-phase commits by persisting a sequence of events rather than
Container Days: Architecting Modern Apps on AWSTara Walker
This document provides an overview of architecting modern applications on AWS using microservices. It discusses evolving from monolithic architectures to microservices by breaking applications into smaller, independent services. Key principles of microservices architectures are described, including services relying only on public APIs, using the right tools for the job, securing services, being a good citizen in the ecosystem through monitoring and documentation, and addressing organizational transformation. Specific AWS services for building microservices are also covered, such as API Gateway, Lambda, EC2, ECS, DynamoDB, and others. The document aims to help architects modernize applications on AWS.
Microservices - Hitchhiker's guide to cloud native applicationsStijn Van Den Enden
Microservices are a true hype these days. Netflix, Amazon, eBay, … are all using microservices, but why? The idea is simple; split your application into multiple services which can evolve autonomously through time. The name suggests to keep these services small. Conceptually this seems not all that different from a classical Service Oriented Architecture (SOA). Nonetheless, microservices do offer a new perspective. A monolithic application is divided into a couple small services which can be independently developed, deployed and scaled. Flexibility is increased, but using this model also has some pitfalls.This session sheds a light on the microservices landscape; the key drivers for using the pattern, tooling to support development and maintenance, and the pros and cons that go with it. We’ll also introduce some key design principles that can be used in creating and modelling these modular enterprise applications.
Adrian Cockcroft on his top predictions for the cloud computing industry in 2015 and beyond, as well as how cloud-native applications, continuous-delivery and DevOps techniques, will speed the pace of innovation and disruption.
For more about Adrian be sure to check out his page on Battery Ventures:
https://www.battery.com/our-team/member/adrian-cockcroft/
Follow Adrian on Twitter: @adrianco
The document discusses containers and infrastructure as a service (IaaS). It lists various types of cloud services including IaaS, storage as a service, networking as a service, compute as a service, platform as a service, software as a service, middleware, and frameworks. It also mentions automation, continuous integration/delivery, and developer experience. Some criticisms of Docker are provided, and there is a call for a better approach to containers with a unified architecture.
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareKai Wähner
In addition to focusing on many related concepts like container or service discovery, technologies like Docker and cloud platforms, my session also discussed ten lessons learned from building cloud-native middleware microservices together with our customers in the last months.
The demo brings this from theory to practice by showing how to deploy a single (i.e. built just once) TIBCO BusinessWorks Container Edition microservice to different cloud and container platforms: Docker, Kubernetes and Pivotal CloudFoundry. The video also shows how to leverage other cloud-native open source frameworks such as Consul and Spring Cloud Config for distributed configuration management and service discovery of middleware microservices.
[Capitole du Libre] #serverless - mettez-le en oeuvre dans votre entreprise...Ludovic Piot
Tout comme le Cloud IaaS avant lui, le serverless promet de faciliter le succès de vos projets en accélérant le Time to Market et en fluidifiant les relations entre Devs et Ops.
Mais sa mise en œuvre au sein d’une entreprise reste complexe et coûteuse.
Après 2 ans à mettre en place des plateformes managées de ce type, nous partagons nos expériences de ce qu’il faut faire pour mettre en œuvre du serverless en entreprise, en évitant les douleurs et en limitant les contraintes au maximum.
Tout d’abord l’architecture technique, avec 2 implémentations très différentes : Kubernetes et Helm d’un côté, Clever Cloud on-premise de l’autre.
Ensuite, la mise en place et l’utilisation d’OpenFaaS. Comment tester et versionner du Function as a Service. Mais aussi les problématiques de blue/green deployment, de rolling update, d’A/B testing. Comment diagnostiquer rapidement les dépendances et les communications entre services.
Enfin, en abordant les sujets chers à la production : * vulnerability management et patch management, * hétérogénéïté du parc, * monitoring et alerting, * gestion des stacks obsolètes, etc.
Tour through the history of middleware from old architectures to cloud-native middleware microservices leveraging Docker, Kubernetes, Cloudfoundry.
Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. Continuous Delivery automates deployments. This way you get shorter time to results and increased flexibility. Containers improve these even more offering a very lightweight and flexible deployment option.
In the middleware world, you use concepts and tools such as an Enterprise Service Bus (ESB), Complex Event Processing (CEP), Business Process Management (BPM) or API Gateways. Many people still think about complex, heavyweight central brokers. However, Microservices and containers are relevant not just for custom self-developed applications, but they are also a key requirement to make the middleware world more flexible, agile and automated.
This session focuses on live coding to demonstrate how to develop, deploy and operate cloud-native microservices in the middleware world. The live demos leverage frameworks and tools such as Docker, Kubernetes, Cloud Foundry, Consul, Spring Cloud Config, Eureka and Hystrix.
Comparison Table of DiskWarrior Alternatives.pdfAndrey Yasko
To help you choose the best DiskWarrior alternative, we've compiled a comparison table summarizing the features, pros, cons, and pricing of six alternatives.
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsMydbops
This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization.
Key Takeaways:
* Understand why connection pooling is essential for high-traffic applications
* Explore various connection poolers available for PostgreSQL, including pgbouncer
* Learn the configuration options and functionalities of pgbouncer
* Discover best practices for monitoring and troubleshooting connection pooling setups
* Gain insights into real-world use cases and considerations for production environments
This presentation is ideal for:
* Database administrators (DBAs)
* Developers working with PostgreSQL
* DevOps engineers
* Anyone interested in optimizing PostgreSQL performance
Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc
Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk.
What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year?
Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year.
This webinar will review:
- Key changes to privacy regulations in 2024
- Key themes in privacy and data governance in 2024
- How to maximize your privacy program in the second half of 2024
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Bert Blevins
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
The Rise of Supernetwork Data Intensive ComputingLarry Smarr
Invited Remote Lecture to SC21
The International Conference for High Performance Computing, Networking, Storage, and Analysis
St. Louis, Missouri
November 18, 2021
2. about me
CIRO DONATO CAIAZZO
CTO & Software Architect @SCAIBO
SCAI Consulting s.r.l.
ciro.caiazzo@scai-consulting.grupposcai.it
cd.caiazzo@gmail.com
@CyrusD87
https://www.linkedin.com/in/ciro-donato-caiazzo-35a38a32
3. in the next 40 minutes I will talk about...
microservices @scaibo
the sometimes (evil) monolith
building microservices
cloud computing solutions
internet of things
6. the sometimes (evil) monolith
browser
load
balancer
User interface
Business logic
Persistence database
7. the sometimes (evil) monolith : Features
Simple to develop, test, deploy, scale… for small applications
Application puts all its functionality into a single process
Application scales by replicating the monolith on multiple servers
if an application becomes large and complex?
8. the sometimes (evil) monolith
browser
load
balancer
User interface
Business logic
Persistence
database
User interface
Business logic
Persistence
…
9. a real case:
Real estate management platform (I)
browser
load
balancer
User interface
property
module
Persistence database
10. a real case:
Real estate management platform (II)
browser
load
balancer
User interface
property
module
Persistence database
facility
module
11. a real case:
Real estate management platform (III)
browser
load
balancer
User interface
property
module
Persistence database
facility
module
engineering
module
12. a real case:
Real estate management platform (then?)
browser
load
balancer
User interface
property
module
Persistence database
facility
module
engineering
module
13. then? Problem!
possible constraints on technology stack
one change can affect the entire system
one change in one component requires the deploy of the entire system
difficult integration between cross-functional teams
few release (more UI tests & QA work)
15. decomposing applications into services
Divide an application in components
Each component is built as a service
Each service is a unit of software that is indipendently upgradable and deployable
16. a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
database
17. a real case:
Real estate management in microservices
property UI
property
service
facility
service
engineering
service
database
database
database
facility UI
engineering UI
18. microservices: Rules
a service should have a small set of responsibility
SINGLE RESPONSIBILITY PRINCIPLE
a service should be developed in small time (max 2 weeks)
a service should be isolated from others (isolation for storage and deploy environment)
19. microservices: Rules
a service should model a single and well defined part of the business domain
DOMAIN DRIVEN DESIGN
20. microservices: Benefits
Simplicity
each service is relative small
it is simple for a developer to understand the business logic
a service can eventually be redesigned very quickly.
21. microservices: Benefits
Independence
each service can be released without affect the others
problem on a service (like memory leak) does not affect the others
Independent deploy
22. microservices: Benefits
Speed
release early & release often
less coordination between developers
cross-functional teams can work in parallel reducing the integration problems
23. microservices: Benefits
o a service can be built with different technologies, in terms of
platform & programming languages (.NET, Java, NodeJS, …)
Database (Oracle, Sql Server, MongoDb, Cassandra, …)
…but it is not true for the communication protocol : HTTP, AMQP, MQTT
24. microservices: Benefits
Automation
each service has a build on the Continuous integration server
it is more simple to automate the continuous delivery & deploy
blue green deploy for each service
25. a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
database
26. a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
databaseHow to manage
interactions?
27. a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
database
Between clients & services
REST
(HTTP)
REST
(HTTP)
REST
(HTTP)
28. a real case:
Real estate management in microservices
property
service
facility
service
engineering
serviceBetween services
REST
(HTTP)
REST
(HTTP)
REST
(HTTP)
29. a real case:
Real estate management in microservices
property
service
facility
service
engineering
serviceBetween services
AMQP
30. microservices: a more complex scenario
User interface
facility
service
property
service
engineering
service
REST
(HTTP)
REST
(HTTP)
REST
(HTTP)
AMQP
AMQP
31. microservices: a more complex scenario
Granularity
each client should know each service in details
Localization
each client should know the location of each service
Complexity
business logic to build and manage more complex objects at the client level
32. API Gateway pattern
User interface
facility
service
property
service
engineering
service
REST
(HTTP)
REST
(HTTP)
AMPQ
AMQP
AMQP
API
Gateway
REST
(HTTP)
mobile interface MQTT
AMQP
33. API Gateway
Benefits
hide to the clients how services are structured
encapsulation of multiple requests for multiple services
API optimization for each client
Drawbacks
increase in complexity
require an additional network hop
35. cloud computing solutions
Software as a Service (SAAS)
Platform as a Service (PAAS)
Infrastructure as a Service (IAAS)
Container as a Service (CAAS)
36. cloud computing solutions
Software as a Service (SAAS)
Platform as a Service (PAAS)
Infrastructure as a Service (IAAS)
Container as a Service (CAAS)
37. cloud computing solutions
Software as a Service (SAAS)
Platform as a Service (PAAS)
Infrastructure as a Service (IAAS)
Container as a Service (CAAS)
38. cloud computing solutions
Software as a Service (SAAS)
Platform as a Service (PAAS)
Infrastructure as a Service (IAAS)
Container as a Service (CAAS)
39. cloud computing solutions
Software as a Service (SAAS)
Platform as a Service (PAAS)
Infrastructure as a Service (IAAS)
Container as a Service (CAAS)
41. how does Docker work?
Server
Host OS
Hypervisor
Guest OS Guest OS
Middleware Middleware
AppApp
Server
Host OS
Docker engine
Docker image Docker image
Virtualization Container
42. how does Docker work?
Build a container reading the instructions in Dockerfile
Configure and orchestrate one or more containers in docker-compose
43. convox
An open source tool to deploying, managing and monitoring applications in cloud infrastructure
https://convox.com
https://github.com/convox/rack
https://convox-public.slack.com/
44. convox: Rack
A rack is a structure to create and manage all the infrastructure needed to run and monitor your
applications
In a rack you can create and define each service to build your microservices using docker