This was a talk from DDDSW on Akka.Net, the actor model, concurrency and reactive. It covered what they are as well as an example use case and the lessons learned when running in that use case.
Reactive applications with Akka.Net - DDD East Anglia 2015Anthony Brown
Application requirements have changed significantly over the past 20 years and we’re now building software which has to handle potentially millions of users and billions of devices. The reactive manifesto is a set of common traits shared by applications capable of handling these new requirements. Akka is the canonical example of a toolkit for building such applications, but thanks to a team of dedicated developers, Akka has arrived on the CLR in the form of Akka.Net. This session looks at the key principles of Akka.Net and how using these you can build applications which handle potentially massive traffic.
The actor model is an approach to designing concurrent systems that has been around since the early 70's, but is gaining more popularity today. Being a message-based approach, the actor model fits nicely when building out transactional or multi-step workflow process systems. Message-driven actor systems take a lot of the complexity away and allow you to create small classes (actors) that handle very specific tasks. These actors are coordinated via the passing of immutable messages, which allows your system to scale out if needed. In this talk, we’ll look at a popular .NET actor system Akka.NET and, through several simple examples, show you how to get started building scalable message-driven solutions.
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016DevOpsDays Tel Aviv
"As we move into the age of containerization, it becomes more important than ever to figure out how to automate, monitor and deploy systems which are resilient and well-understood.
In this talk, we'll discuss methods for building infrastructures with universal event buses and reactive systems which can act as a nervous system for our computing environments."
Introduction to Akka.NET and Akka.Clusterpetabridge
Demands and expectations for .NET developers have never been higher.
We're expected increase customer value against higher and higher expectations; deliver our services and content across a greater variety of devices; retain, analyze, and use ever-growing volumes of data faster; and to do all of this while being available 24/7.
That's a tall order, but it's one that is being done successfully by .NET companies all over the world - right now.
In this webinar, lead by Petabridge CEO Aaron Stannard, we're going to cover how the obvious ways of scaling software in the past are doomed to fail and how .NET shops are developing and deploying their own distributed systems to tackle these problems efficiently and effectively using Akka.NET and Akka.Cluster.
This was a talk from DDDSW on Akka.Net, the actor model, concurrency and reactive. It covered what they are as well as an example use case and the lessons learned when running in that use case.
Reactive applications with Akka.Net - DDD East Anglia 2015Anthony Brown
Application requirements have changed significantly over the past 20 years and we’re now building software which has to handle potentially millions of users and billions of devices. The reactive manifesto is a set of common traits shared by applications capable of handling these new requirements. Akka is the canonical example of a toolkit for building such applications, but thanks to a team of dedicated developers, Akka has arrived on the CLR in the form of Akka.Net. This session looks at the key principles of Akka.Net and how using these you can build applications which handle potentially massive traffic.
The actor model is an approach to designing concurrent systems that has been around since the early 70's, but is gaining more popularity today. Being a message-based approach, the actor model fits nicely when building out transactional or multi-step workflow process systems. Message-driven actor systems take a lot of the complexity away and allow you to create small classes (actors) that handle very specific tasks. These actors are coordinated via the passing of immutable messages, which allows your system to scale out if needed. In this talk, we’ll look at a popular .NET actor system Akka.NET and, through several simple examples, show you how to get started building scalable message-driven solutions.
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016DevOpsDays Tel Aviv
"As we move into the age of containerization, it becomes more important than ever to figure out how to automate, monitor and deploy systems which are resilient and well-understood.
In this talk, we'll discuss methods for building infrastructures with universal event buses and reactive systems which can act as a nervous system for our computing environments."
Introduction to Akka.NET and Akka.Clusterpetabridge
Demands and expectations for .NET developers have never been higher.
We're expected increase customer value against higher and higher expectations; deliver our services and content across a greater variety of devices; retain, analyze, and use ever-growing volumes of data faster; and to do all of this while being available 24/7.
That's a tall order, but it's one that is being done successfully by .NET companies all over the world - right now.
In this webinar, lead by Petabridge CEO Aaron Stannard, we're going to cover how the obvious ways of scaling software in the past are doomed to fail and how .NET shops are developing and deploying their own distributed systems to tackle these problems efficiently and effectively using Akka.NET and Akka.Cluster.
A brief report on Client Server Model and Distributed Computing. Problems and Applications are also discussed and Client Server Model in Distributed Systems is also discussed.
Microservices for performance - GOTO Chicago 2016Peter Lawrey
How do Microservices and Trading Systems overlap?
How can one area learn from the other?
How can we test components of microservices?
Is there a library which helps us implement and test these services?
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...confluent
Eventing and streaming open a world of compelling new possibilities to our software and platform designs. They can reduce time to decision and action while lowering total platform cost. But they are not a panacea. Understanding the edges and limits of these architectures can help you avoid painful missteps. This talk will focus on event driven and streaming architectures and how Apache Kafka can help you implement these. It will also discuss key tradeoffs you will face along the way from partitioning schemes to the impact of availability vs. consistency (CAP Theorem). Finally we’ll discuss some challenges of scale for patterns like Event Sourcing and how you can use other tools and even features of Kafka to work around them. This talk assumes a basic understanding of Kafka and distributed computing, but will include brief refresher sections.
Updated: Should you be using an Event Driven ArchitectureJeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...confluent
Eventing and streaming open a world of compelling new possibilities to our software and platform designs. They can reduce time to decision and action while lowering total platform cost. But they are not a panacea. Understanding the edges and limits of these architectures can help you avoid painful missteps. This talk will focus on event-driven and streaming architectures and how Apache Kafka can help you implement these. It will also discuss key tradeoffs you will face along the way from partitioning schemes to the impact of availability vs. consistency (CAP Theorem). Finally, we’ll discuss some challenges of scale for patterns like Event Sourcing and how you can use other tools and even features of Kafka to work around them. This talk assumes a basic understanding of Kafka and distributed computing but will include brief refresher sections.
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICESMykola Novik
Stateless service architectures can be easily scaled horizontally by adding backend servers to a front-end load balancer. Such approach is not always optimal, any application that needs to perform soft real-time work could never be built using stateless CRUD models, because state locality is required in order to achieve those response times. In this talk I'll cover benefits of statefull services, gave an overview of academic research and existing frameworks in js, scala, .net and golang worlds. Unfortunately in this area python has little to offer. To fix this we will figure out key concepts for building scalable stateful services: membership and dissemination protocols, failure detection and message routing.
Understand KUSTO Engine (ADX Pro and Cons, Query Processing and Concurrency)
How to use ADX to Kusto-mize data pipeline (Trigger2fill & Rewrite Patterns)
The real role of the Data Engineer (CD/CI for the Data Engineer, Git-ize Kusto statements, External Data integration)
A brief report on Client Server Model and Distributed Computing. Problems and Applications are also discussed and Client Server Model in Distributed Systems is also discussed.
Microservices for performance - GOTO Chicago 2016Peter Lawrey
How do Microservices and Trading Systems overlap?
How can one area learn from the other?
How can we test components of microservices?
Is there a library which helps us implement and test these services?
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...confluent
Eventing and streaming open a world of compelling new possibilities to our software and platform designs. They can reduce time to decision and action while lowering total platform cost. But they are not a panacea. Understanding the edges and limits of these architectures can help you avoid painful missteps. This talk will focus on event driven and streaming architectures and how Apache Kafka can help you implement these. It will also discuss key tradeoffs you will face along the way from partitioning schemes to the impact of availability vs. consistency (CAP Theorem). Finally we’ll discuss some challenges of scale for patterns like Event Sourcing and how you can use other tools and even features of Kafka to work around them. This talk assumes a basic understanding of Kafka and distributed computing, but will include brief refresher sections.
Updated: Should you be using an Event Driven ArchitectureJeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...confluent
Eventing and streaming open a world of compelling new possibilities to our software and platform designs. They can reduce time to decision and action while lowering total platform cost. But they are not a panacea. Understanding the edges and limits of these architectures can help you avoid painful missteps. This talk will focus on event-driven and streaming architectures and how Apache Kafka can help you implement these. It will also discuss key tradeoffs you will face along the way from partitioning schemes to the impact of availability vs. consistency (CAP Theorem). Finally, we’ll discuss some challenges of scale for patterns like Event Sourcing and how you can use other tools and even features of Kafka to work around them. This talk assumes a basic understanding of Kafka and distributed computing but will include brief refresher sections.
KEY CONCEPTS FOR SCALABLE STATEFUL SERVICESMykola Novik
Stateless service architectures can be easily scaled horizontally by adding backend servers to a front-end load balancer. Such approach is not always optimal, any application that needs to perform soft real-time work could never be built using stateless CRUD models, because state locality is required in order to achieve those response times. In this talk I'll cover benefits of statefull services, gave an overview of academic research and existing frameworks in js, scala, .net and golang worlds. Unfortunately in this area python has little to offer. To fix this we will figure out key concepts for building scalable stateful services: membership and dissemination protocols, failure detection and message routing.
Understand KUSTO Engine (ADX Pro and Cons, Query Processing and Concurrency)
How to use ADX to Kusto-mize data pipeline (Trigger2fill & Rewrite Patterns)
The real role of the Data Engineer (CD/CI for the Data Engineer, Git-ize Kusto statements, External Data integration)
Data saturday malta - ADX Azure Data Explorer overviewRiccardo Zamana
This is a step-by-step approach the entire ecosystem of features driven by Azure Data eXplorer. You can find many examples using Kusto dialect, in order to acquire data, process and build up complete web interfaces using only one service: ADX.
Let’s discover with a step-by-step approach the entire ecosystem of features driven by Azure Data eXplorer. Let’s have many examples using Kusto dialect, in order to acquire data, process and build up complete web interfaces using only one service: ADX. Using IoT Asset monitoring as Functional Context, we’ll make a full example, using Azure Data Studio, SQL Server, ADLS managed by ADX infrastructure.
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...Riccardo Zamana
Time series Analytics - a deep dive into ADX Azure Data Explorer. Let’s discover with a step-by-step approach the entire ecosystem of features driven by Azure Data eXplorer.
Azure Data Explorer deep dive - review 04.2020Riccardo Zamana
Full review 04.2020 about Azure Data Explorer service. Slide Desk is a sort of review od Kusto, in terms of usage, ingestion techniques, querying and exporting data, using anomaly detection and clustering methods.
Today it is possible to apply the Edge to Cloud pattern in the industrial world. Microsoft is putting the idea of intelligent edge into practice by providing not only IoT Edge,but a series of field transpositions of important cloud services, including:
Functions, Storage, SQL Edge, SQL Lite, Event Grid, Redis, Stream Analytics, Cognitive Services.
In addition to these, contact points are also emerging towards the old industrial world, for example with OPC-UA.
The session deals with the IoT Edge service in a focused way, compared to the concept of connected factory.
Let's make a brief introduction to Azure Data eXplorer, with many examples using Kusto dialect and C# client.
With a particular focus on IIoT contexts and proces control data, let's discover how to implement time series analysis in terms of pattern recognition, and trend correlation.
OVERVIEW: Java secondo Microsoft
STRUMENTI:Java nel cloud
MODALITA’: Il Development life cycle secondo Microsoft
APPROCCIO: Stack cloud native basato su JAVA ed Azure
CAMBIAMENTO: Know how necessario per lo sviluppo su AZURE con Java
OPPORTUNITA: Use case di implementazione «first approach»
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
5. Intro
..where are we going?..
• Why reactive architecture is
important?
• What problem it's trying to solve?
• How are Reactive Systems related
to Reactive Programming?
… Is "wrong" the answer, really?
6. The past and the present
Key factor Yesterday Today
Size of Installation Large inst - Few nodes Small inst – many nodes
Among of data Gbs Tbs/Pb
Data change Nightly (batches) Constantly change
Maintenance Window 3 hours … Comeback
later!
101% SLA
User patience < 30sec < 3sec
7. Whats happen
• In case of failure, is difficult to recover data stream
• 100% SLA is achievable
• Small maintenance, no more hours
• Micro Deployments are born
• User patience is less then 3seconds
• Software must respond… otherwise user search for
alternatives
9. PRINCIPLES
RESPONSIVE (faster
then ever)
• Generate USER
CONFIDENCE
RESILIENT (remain
responsive in case of
failure)
• Replication,Isolation,
Containment,
Delegation
• Failures isolated in
every single
component
• Only recovery may be
delegated to external
components
ELASTIC (active during
deployments or scaling)
• responsive during
scale out or scale
down
• predictive auto scaling
tecnique
• cost effectiveness
MESSAGE Driven
(async, non blocking)
• Decouple everything,
isolation, location
transparency
• Resource
Consumption only
when are «active and
«GREEN LIGHT»
10. Programming vs Architecture
• Reactive SYSTEMS: Apply principles to Architecture
• Reactive Programming: Used to implement Reactive Systems
• RX.NET is only a programming tecnique
• You can do a ReactiveSystem WITHOUT ReactiveProgramming
• REACTIVE Systems (based on Reactive Microservice) are separated throw
Async mimic and boundaries
Reactive Programming VS Reactive Systems/Architecture
11. REACTIVE MICROSERVICES
Entities/Domains with dedicated
services, with different Database,
using other services throw API.
My Opinion: No Black, nor white.
But a spectrum of capabilities between Monolith
and MicroServices
MicroServ is a SOA subsystem… but the difference?
• Independent Govern
• Async communication
• Continuous deloyment
• Independent team delivery
SINGLE RESPONSABILITY PRICIPLE <||> BOUNDED CONTEXT
Remember the SOA dream?
12. KEYWORD n.1: ISOLATION
ISOLATION
IN STATE
No backdoor straight to other DBs
Evolve internally throw API version
Health State API embedded
ISOLATION
IN SPACE
Discovery or Gateway to find out the MS Location – not hard coded
Independent scale out/down
ISOLATION
IN TIME
No wait for other MS. Async message Driven mimic and Not Blocking also.
Eventual consistency is a MUST
ISOLATION
IN FAILURE
Other consequences on other MS if there is a failure
13. ISOLATION TENCHIQUES
BULK HEADING
Failure is isolated in failure zones (made by more ms)
Failure is not propagated
It admits a degraded flow but not dead flow => doubling the way or
Health API
CIRCUIT BREAKER
Problem: OverLoaded Services? pMaybe other MS could retry and
worse the situation.
With a 3 state semaphore, I can send the retry time or predict it !!
COMPETING CONSUMER
Message Driven: Enqueue, Exchange, Dequeue with Async messaging
14. ISOLATION TECNIQUES
GATEWAY SERVICES
Managing complexitty: Who
aggregates MS.API in macro
services? Should client know
how to aggregate MS.API? i
client hanno bisogno di
gestire loro i casini di
disponibilità dei micro servizi?
PROXY/GATEWAY: not only
binding! But aggregation also.AUTONOMY:
Every service must have strategies to solve its wn problem (mantaining internal state, with
eventual consistency, avoiding direct dependencies on external services
16. ANY DOUBT?
Is it possible to have ReactiveProgramming without a
Reactive System?
YES. Examples:
1) One unique node => No Resilience
2) Local cache and no way to sync cache with other nodes
=> NO Elasticity
17. ACTOR MODEL
• An Actor is a primitive unit of computation
• Actors are completely isolated from each other
• They will never share memory.
• Actor can maintain a private state
• They come in systems, never alone
• They need to have addresses
• It will just execute one at a time
• Concurrence means Actor of Actors
• Communicate with asynchronous messages
When an actor receives a
message, it can do one of
these 3 things:
A) Create more actors
B) Send messages to other actors
C) Designate what to do with the next message
18. LOCATION TRANSPARENCY
LOCATION TRANSPARENCY:
Local or remote, it doesnt matter.
They ca be ROUTEE, routed by a ROUTER
YES. I can send msgs to a Router, without knowing about
the subscribers.
WE HAVE TO COMBINE REACTIVE Systems, message driven, in order to have
Location Transparency. Location TRANSPARENCY = Elasticty + Resilience
19. REACTIVE SYSTEMWITHOUT ACTORS?
Could be…
1. Service Registry
2. Load Balancer
3. Message BUS
4. Service that interchange msgs using a BUS
IT’s a reactive system... But not inside the Microservices,
because they lack of an Observer, and there isnt an entity
alive.
21. WHAT’S ABOUT THE REAL DESIGN?
• HEXAGON Fulcrum is DOMAIN
• 2 SIDES, RIGHT & LEFT
• FIRST SIDE: DATA SIDE API with ADAPTERS to
DBs, Fs, etc. consumed by DOMAIN
• SECOND SIDE: USER SIDE API, where PORTS
(they are API) that serve Domain data to USER
(interface, API, message broker)
• INFRASTRUCTURE: where
Adapters maps PORTS
REAL DECOUPLING || REAL PORTABILITY || REAL SCALING
25. ORLEANS
Everything is an actor.
Computational entity that, in response to a message it receives,
can concurrently:
• send a finite number of messages to other actors;
• create a finite number of new actors;
• designate the behavior to be used for the next message it
receives.
Asynchronous communication and control
structures
Recipients of messages are identified by address, sometimes
called "mailing address". Thus an actor can only communicate
with actors whose addresses it has.
26. Event GRID
QUESTA E' la chiamata da mettere nel WebHook del EventGrid
https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}
COME SI FA ad ottenere la system key? QUESTA è la chiamata GET per ottenere la SystemKEY
http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}
DA DOVE PRENDI LA MASTER KEY? Pubblichi la funzione, vai su MANAGE e trovi la _Master
ESEMPIO COMPLETO:
http://FuncAppEventTrigger20190422124458.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code=Sri9I
KxvpbbpJdFn6dF3dlXZoAuk4DF6URWYf5g1yVGw1A0q0787AQ==
ECCO LA RISPOSTA:
QUINDI:
https://FuncAppEventTrigger20190422124458.azurewebsites.net/runtime/webhooks/eventgrid?functionName=StartSessi
on&code=Bks9oZKL9VS9aB2O/Poir073bW671UBZhGc34//vdK9ZtMqw2ZwQiQ==
{
"name": "eventgrid_extension",
"value": "Bks9oZKL9VS9aB2O/Poir073bW671UBZhGc34//vdK9ZtMqw2ZwQiQ==",
"links": [{
"rel": "self",
"href": "https://funcappeventtrigger20190422124458.azurewebsites.net/admin/host/systemkeys/eventgrid_extension"
}]
}
27. Azure Maps
• SDK WEB
• API REST
• Map controls
• Android SDK
• Azure Maps Services
• Rendering service
• Route planning service
• Research service
• Time zone service
• Traffic information service
• IP to location (country)
• Batch geocoding service
• Batch routing service
28. Azure Container Instances
Advantages:
- Start containers in seconds => NO NEED to
provision VMs.
- Simple Public IP connectivity and DNS
name
- Exact specifications of CPU cores and
memory
- Get billed by the second
NEWS: Virtual network deployment (preview)
NOTES:
• Persist state with Azure Container
Instances, we offer direct mounting of
Azure Files shares.
• Azure Container Instances can schedule
both Windows and Linux containers with
the same API
• Co-scheduled groups that share a host
machine, local network, storage, and
lifecycle
Great solution for
- isolated containers
- including simple applications
- task automation
- jobs
29. Azure Container Instances
Co-scheduled groups that share a host
machine, local network, storage, and lifecycle
az container create --resource-group myResourceGroup --file deploy-aci.yaml
Size of Sw installation is grown (multi node..ten)
Among of data (gb of data)
Data at REST: non cambiava frequentemente (batch notturno)
Long mantenance windows is changed (reduced)
Oggi
NEWER sistem
small installation + scaleout
petabytes! il dato czmbia costanatemente
se c'è un fallback, non siamo in grado di recuperare..troppi dati
100% uptime è raggungibile.
No more mantenance per ore.. per aggiornamenti
NON ACCEPTABLE
DEployment è cambiato
Natura del cambiamento.
Utente odierno
Cambiata l'aspettativa dell'utente.
poche ore di down.. gran casini ora!
gmail giu? github giu? o365 giu?
In quanto tempo devono rispondere?
30secondi? noooooo
utenti non vogliono aspettare. Sito è giu, passa dopo... MORTO!
il software eve rispondere. altrimenti oggi.. ne ccerco un altro.
Non cambia in qualsiasi condizione!
RESILIENT (remain responsive in case of failure)
ELASTIC (rimane attivo anche se lo cambio sotto) << Scalability sia in scale UP, ma anche in SCALE DOWN << MOOOLLTO DIFFICILE!!
MESSAGE Driven (async, non blocking)
GREENLIGHT = CIRCUIT BREAKER con semaforo di stato
Remember the SOA dream?
Entità/Dominio hanno servizi staccati, ognuno con un DB - mai dritti sul DB ma sempre via API
MicroServ è un sottoinsieme di SOA. Deploy è indipendente, questa è la differenza e ognuno scala come vuole.
MicroServ è govern independent
comunicazione async
continuous deloyment
team delivery in modo indipendente (tramite versioni di api differenti)
i model comuni..... sono il primo errore per me!!!
CQRS ragazzi, CQRS!!
SINGLE RESPONSABILITY PRICIPLE
BOUNDED CONTEXT
ISOLATION!
STATE, SPACE, TIME, FAILURE
Quindi devo dare ad ognuno una dimensione propria.
Il problema quindi è la correlazione!
ISOLATION IN STATE
no backdoor per andare drritti verso DB
evolve internally tru API versioni
ogni ms deve avere il proprio API di stato
SPAZIO
non devo avere il punto fisico dove c'è un Microservice (discovery? Gateway?)
scale out/down indipendente
TIME:
no wait altri microservices. Async message Driven. async and Non Blocking
Eventual consistency between
ISOLATION IN FAILURE
gli altri non devono fallire se uno fallisce
BulkHEading (scompartimenti della nave)
failure is isolated in failure zone (fatte da piu microservizi)
non propaga fallimento
teoricamente sta in piedi cn degrado ma non fallimento totale
=> doppia strada? oppure chiamo API Status, e avviso che non è su.
OverLoaded Services?
chiamo un ms già stressato, e faccio retry... e peggioro solo lo stato di stress
CIRCUIT BREAKER: Il ms ha un semaforo che dice se è verde/giallo/rosso dando info per il retry o il fail.
(chiamami poco, chiamami pure quanto vuoi, chiamami tra un po sono fallito)
MEssageDriven Architecture
Async messaging
AUTONOMY:
Autonomous Service – every service must have strategies to solve its wn problem (mantaining internal state, with eventual consistency, avoiding direct dependencies on external services
GATEWAY SERVICES
Managing complexitty: Who aggregates MS.API in macro services? Should client know how to aggregate MS.API? i client hanno bisogno di gestire loro i casini di disponibilità dei micro servizi?
i PROXY/GATEWAY: non fanno SOLO binding!!! ma fanno aggregazione! così il client rimane ignorante
Is it possible to have ReactiveProgramming without a Reactive System?
YES. Examples:
1) One unique node => No Resilience
2) Local cache e no way per fare sync con altri nodi... => NO ELASTIC
DOMMINIO => API => Infrastructure (che adapts incoming e outcoming traffic into the ports)
fa in modo che il domian sia portable (cambio il DATA SIDE tra cloud e onprem)
FACCIO Adattatori verso DATI
li chiamo come librerie dentro il DOMAIN
nel DOMAIN mappo verso i dati
POI FAccio le API verso i DOMINI
API non sanno ildb , ma sanno solo che usi un dominio
il dominio è fatto di ATTORI?
1) DOMINIO CHIAMA ADAPTERS verso API (PORTS) DEI DATASOURCE
2) USER CHIAMA API (PORTS) CHE MAPPANO API di DOMINIO
DEMO DI RX.NET
ARCHITETTURA LAMBDA SU AZURE con MAPPA