this is the slides from the talk i gave at DevGeekWeek2014
further details are in my blog: http://blogs.microsoft.co.il/iblogger/2014/06/25/devgeekweek-2014-slides-and-demos/
The document discusses cloud computing and designing applications for scalability and availability in the cloud. It covers key considerations for moving to the cloud like design for failure, building loosely coupled systems, implementing elasticity, and leveraging different storage options. It also discusses challenges like application scalability and availability and how to address them through patterns like caching, partitioning, and implementing elasticity. The document uses examples like MapReduce to illustrate how to build applications that can scale horizontally across infrastructure in the cloud.
A presentation on best practices for J2EE scalability from requirements gathering through to implementation, including design and architecture along the way.
Oracle Coherence is a distributed in-memory data grid solution that provides a single consistent view of data across multiple nodes. It ensures high availability and scalability. Coherence distributes data and backups across nodes so that the failure of a single node does not result in data loss. It uses a peer-to-peer protocol for fast consensus and scalable communication between nodes. Coherence provides features like caching, transactions, events, and querying for building scalable applications.
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...SL Corporation
Tom Lubinski is the founder and CTO of SL Corporation, located near San Francisco. SL Corporation produces the RTView platform for application performance monitoring and operational visibility, including the Oracle Coherence Monitor (OCM) and Viewer (OCV). The document discusses why monitoring Coherence clusters is important, what typically happens with Coherence projects, and provides 10 things that can be done to better monitor and manage Coherence clusters, such as understanding network metrics, configuring services for monitoring, and instrumenting applications.
This document provides an overview of patterns for scalability, availability, and stability in distributed systems. It discusses general recommendations like immutability and referential transparency. It covers scalability trade-offs around performance vs scalability, latency vs throughput, and availability vs consistency. It then describes various patterns for scalability including managing state through partitioning, caching, sharding databases, and using distributed caching. It also covers patterns for managing behavior through event-driven architecture, compute grids, load balancing, and parallel computing. Availability patterns like fail-over, replication, and fault tolerance are discussed. The document provides examples of popular technologies that implement many of these patterns.
This document provides an overview of Oracle Coherence, an in-memory data grid. It discusses what a data grid is and how Coherence works, including clustering, caching, querying, and aggregating data. It also provides examples of how Coherence can be used and customer use cases, such as for user session management across brands.
The document provides an overview of Microsoft Azure's data platform and various database options, including SQL Database, SQL Server VMs, DocumentDB, HDInsight, and Azure Search. It discusses the architecture and features of these services, how to provision and manage databases, and includes demos of interacting with the databases. The key services covered allow for relational, non-relational, and search databases hosted on Azure infrastructure at varying levels of management and control.
Tracing allows you to see the path a query takes through the Cassandra cluster. It shows details like which nodes are queried, how long each step takes, and can help identify performance bottlenecks. The tracing information can be accessed via the Java driver, cqlsh, or DevCenter and provides a detailed timeline of query execution. Reviewing traces is recommended during development to catch unexpected query behavior.
Getting Started with MariaDB with DockerMariaDB plc
This document discusses deploying MariaDB databases with Docker from development to production. It recommends using Docker containers to encapsulate dependencies and isolate processes for easy deployment on-premise, in the cloud, or in hybrid environments. It highlights challenges like orchestration complexity and outlines requirements for data durability, self-discovery, self-healing, and application discovery of database clusters. It demonstrates building a Python/Flask app in Docker, deploying it to a Swarm cluster, and scaling the web tier behind HAProxy. It also shows deploying a 3-node Galera MariaDB cluster and 2-node MaxScale proxy for high availability.
Oracle Coherence is a data grid that provides reliable, scalable universal data access and management. It manages information in a grid environment where multiple servers work together to store, process, and manage data as a service. Coherence uses different topologies like replicated, partitioned, and near caching to distribute data across servers. It supports features like events, queries, and various caching modes like read-through, write-through, and write-behind caching. Coherence improves performance by reducing latency through locality of data and parallel processing. It increases availability through redundancy and removes single points of failure. Scalability is achieved through scale-out functionality and the ability to add more nodes to the Coherence cluster.
Applications of Virtual Machine Monitors for Scalable, Reliable, and Interact...Amr Awadallah
My PhD oral defense.
An overlay network of VMMs (the vMatrix) which enables backward-compatible improvement of the scalability, reliability, and interactivity of Internet services.
Three applications demonstrated:
1. Dynamic Content Distribution
2. Server Switching
3. Fair placement of Game Servers
Do you need to scale your application, share data across cluster, perform massive parallel processing on many JVMs or maybe consider alternative to your favorite NoSQL technology? Hazelcast to the rescue! With Hazelcast distributed development is much easier. This presentation will be useful to those who would like to get acquainted with Hazelcast top features and see some of them in action, e.g. how to cluster application, cache data in it, partition in-memory data, distribute workload onto many servers, take advantage of parallel processing, etc.
Presented on JavaDay Kyiv 2014 conference.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
This presentation:
* covers basics of caching and popular cache types
* explains evolution from simple cache to distributed, and from distributed to IMDG
* not describes usage of NoSQL solutions for caching
* is not intended for products comparison or for promotion of Hazelcast as the best solution
High Performance Computing - Cloud Point of Viewaragozin
This document discusses high performance computing in the cloud. It covers different types of workloads like I/O bound, CPU bound, and latency bound tasks. It also discusses handling task streams and structured batch jobs in the cloud. It proposes using techniques like worker pools, task queues, routing overlays, and task stealing for scheduling tasks. It discusses challenges around distributing large data sets across cloud resources and proposes solutions like caching data in memory grids. Finally, it argues that frameworks like Hadoop are not well suited for the cloud and proposes cloud-friendly alternatives like Peregrine and Spark.
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...SL Corporation
The most critical large-scale applications today, regardless of industry, involve a demand for real-time data transfer and visualization of potentially large volumes of data. With this demand comes numerous challenges and limiting factors, especially if these applications are deployed in virtual or cloud environments. In this session, SL’s CEO, Tom Lubinski, explains how to overcome the top four challenges to real-time application performance: database performance, network data transfer bandwidth limitations, processor performance and lack of real-time predictability. Solutions discussed will include design of the proper data model for the application data, along with design patterns that facilitate optimal and minimal data transfer across networks.
Virtualizing Latency Sensitive Workloads and vFabric GemFireCarter Shanklin
This presentation was made by Emad Benjamin of VMware Technical Marketing. Normally I wouldn't upload someone else's preso but I really insisted this get posted and he asked me to help him out.
This deck covers tips and best practices for virtualizing latency sensitive apps on vSphere in general, and takes a deep dive into virtualizing vFabric GemFire, which is a high-performance distributed and memory-optimized key/value store.
Best practices include how to configure the virtual machines and how to tune them appropriately to the hardware the application runs on.
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshootingJovan Popovic
Finding and fixing performance issues in SQL Server and the Azure SQL database requires understanding how database engine works and what can affect performance. People sometime make changes without finding the exact cause of the problem, which causes additional issues in the future. In this presentation, we will see some techniques you can apply to identify problems and solutions using Query Store technology, DMVs, SQL plan analysis, etc.
https://www.tarabica.org/Session/Details/78
DV01 Ten Things You Always Wanted to Know About Windows Azure But Were Afraid...Ronald Widha
The session took a look at the Window Azure platform and asks the hard questions that everybody is thinking but nobody wants to ask. Is Windows Azure right for me? Should this application be migrated to Azure? Will Azure save me money? How do I manage my Azure implementations? Is Azure secure? The session look at real world implementations on the Windows Azure platform to try and answer some of these hard questions.
The document discusses clustered architecture patterns for delivering scalability and availability. It describes using network attached memory and JVM-level clustering to eliminate bottlenecks. This allows state to be shared across multiple servers for improved performance and reliability. An example application called HelloClusteredWorld is provided to demonstrate how state can be clustered in memory across multiple JVMs. Configuring Hibernate and enabling its second level cache can further reduce database load.
ScaleBase is a startup offering a database-as-a-service that provides unlimited database scalability and availability. It uses a Database Load Balancer to elastically scale any SQL database across multiple database instances in a shared-nothing architecture. This allows linear scaling of the database to meet increasing user demands and volumes of data while maintaining high availability.
This document discusses Cassandra drivers and how to optimize queries. It begins with an introduction to Cassandra drivers and examples of basic usage in Java, Python and Ruby. It then covers the differences between synchronous and asynchronous queries. Prepared statements and consistency levels are also discussed. The document explores how consistency levels, driver policies and node outages impact performance and latency. Hinted handoff is described as a performance optimization that stores hints for missed writes on down nodes. Lastly, it provides best practices around driver usage.
Object oriented design patterns for distributed systemsJordan McBain
This document proposes an object-oriented design pattern for distributed systems using LabVIEW. The pattern involves published variable classes that can be inherited from and instantiated. Published variables are registered with aggregators and broadcast across networks by a broadcastor. Services can subscribe to published variables to update their state based on variable values. The goal is to abstract away networking and communication details while promoting reuse through encapsulation and inheritance. Sample code is provided as a proof of concept, but further work is needed to implement error handling and optimize the networking architecture.
Using all of the high availability options in MariaDBMariaDB plc
MariaDB provides a number of high availability options, including replication with automatic failover and multi-master clustering. In this session Wagner Bianchi, Principal Remote DBA, provides a comprehensive overview of the high availability features in MariaDB, highlights their impact on consistency and performance, discusses advanced failover strategies and introduces new features such as casual reads and transparent connection failover.
Cloud patterns - NDC Oslo 2016 - Tamir DresherTamir Dresher
Cloud computing provides amazing capabilities for the modern application, but there are many pitfalls to be aware of – scalability, resilience, elasticity, security and more.
In this session we will look at basic must-know patterns when architecting for the Azure cloud: Message-Oriented, Poison Messages, Cache, Priority Queues, Retry Patterns and more.
Azure architecture design patterns - proven solutions to common challengesIvo Andreev
Building a reliable, scalable, secure applications could happen either following verified design patterns or the hard way - following the trial and error approach. Azure architecture patterns are a tested and accepted solutions of common challenges thus reducing the technical risk to the project by not having to employ a new and untested design. However, most of the patterns are relevant to any distributed system, whether hosted on Azure or on other cloud platforms.
The document provides an overview of Microsoft Azure's data platform and various database options, including SQL Database, SQL Server VMs, DocumentDB, HDInsight, and Azure Search. It discusses the architecture and features of these services, how to provision and manage databases, and includes demos of interacting with the databases. The key services covered allow for relational, non-relational, and search databases hosted on Azure infrastructure at varying levels of management and control.
Tracing allows you to see the path a query takes through the Cassandra cluster. It shows details like which nodes are queried, how long each step takes, and can help identify performance bottlenecks. The tracing information can be accessed via the Java driver, cqlsh, or DevCenter and provides a detailed timeline of query execution. Reviewing traces is recommended during development to catch unexpected query behavior.
Getting Started with MariaDB with DockerMariaDB plc
This document discusses deploying MariaDB databases with Docker from development to production. It recommends using Docker containers to encapsulate dependencies and isolate processes for easy deployment on-premise, in the cloud, or in hybrid environments. It highlights challenges like orchestration complexity and outlines requirements for data durability, self-discovery, self-healing, and application discovery of database clusters. It demonstrates building a Python/Flask app in Docker, deploying it to a Swarm cluster, and scaling the web tier behind HAProxy. It also shows deploying a 3-node Galera MariaDB cluster and 2-node MaxScale proxy for high availability.
Oracle Coherence is a data grid that provides reliable, scalable universal data access and management. It manages information in a grid environment where multiple servers work together to store, process, and manage data as a service. Coherence uses different topologies like replicated, partitioned, and near caching to distribute data across servers. It supports features like events, queries, and various caching modes like read-through, write-through, and write-behind caching. Coherence improves performance by reducing latency through locality of data and parallel processing. It increases availability through redundancy and removes single points of failure. Scalability is achieved through scale-out functionality and the ability to add more nodes to the Coherence cluster.
Applications of Virtual Machine Monitors for Scalable, Reliable, and Interact...Amr Awadallah
My PhD oral defense.
An overlay network of VMMs (the vMatrix) which enables backward-compatible improvement of the scalability, reliability, and interactivity of Internet services.
Three applications demonstrated:
1. Dynamic Content Distribution
2. Server Switching
3. Fair placement of Game Servers
Do you need to scale your application, share data across cluster, perform massive parallel processing on many JVMs or maybe consider alternative to your favorite NoSQL technology? Hazelcast to the rescue! With Hazelcast distributed development is much easier. This presentation will be useful to those who would like to get acquainted with Hazelcast top features and see some of them in action, e.g. how to cluster application, cache data in it, partition in-memory data, distribute workload onto many servers, take advantage of parallel processing, etc.
Presented on JavaDay Kyiv 2014 conference.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
This presentation:
* covers basics of caching and popular cache types
* explains evolution from simple cache to distributed, and from distributed to IMDG
* not describes usage of NoSQL solutions for caching
* is not intended for products comparison or for promotion of Hazelcast as the best solution
High Performance Computing - Cloud Point of Viewaragozin
This document discusses high performance computing in the cloud. It covers different types of workloads like I/O bound, CPU bound, and latency bound tasks. It also discusses handling task streams and structured batch jobs in the cloud. It proposes using techniques like worker pools, task queues, routing overlays, and task stealing for scheduling tasks. It discusses challenges around distributing large data sets across cloud resources and proposes solutions like caching data in memory grids. Finally, it argues that frameworks like Hadoop are not well suited for the cloud and proposes cloud-friendly alternatives like Peregrine and Spark.
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...SL Corporation
The most critical large-scale applications today, regardless of industry, involve a demand for real-time data transfer and visualization of potentially large volumes of data. With this demand comes numerous challenges and limiting factors, especially if these applications are deployed in virtual or cloud environments. In this session, SL’s CEO, Tom Lubinski, explains how to overcome the top four challenges to real-time application performance: database performance, network data transfer bandwidth limitations, processor performance and lack of real-time predictability. Solutions discussed will include design of the proper data model for the application data, along with design patterns that facilitate optimal and minimal data transfer across networks.
Virtualizing Latency Sensitive Workloads and vFabric GemFireCarter Shanklin
This presentation was made by Emad Benjamin of VMware Technical Marketing. Normally I wouldn't upload someone else's preso but I really insisted this get posted and he asked me to help him out.
This deck covers tips and best practices for virtualizing latency sensitive apps on vSphere in general, and takes a deep dive into virtualizing vFabric GemFire, which is a high-performance distributed and memory-optimized key/value store.
Best practices include how to configure the virtual machines and how to tune them appropriately to the hardware the application runs on.
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshootingJovan Popovic
Finding and fixing performance issues in SQL Server and the Azure SQL database requires understanding how database engine works and what can affect performance. People sometime make changes without finding the exact cause of the problem, which causes additional issues in the future. In this presentation, we will see some techniques you can apply to identify problems and solutions using Query Store technology, DMVs, SQL plan analysis, etc.
https://www.tarabica.org/Session/Details/78
DV01 Ten Things You Always Wanted to Know About Windows Azure But Were Afraid...Ronald Widha
The session took a look at the Window Azure platform and asks the hard questions that everybody is thinking but nobody wants to ask. Is Windows Azure right for me? Should this application be migrated to Azure? Will Azure save me money? How do I manage my Azure implementations? Is Azure secure? The session look at real world implementations on the Windows Azure platform to try and answer some of these hard questions.
The document discusses clustered architecture patterns for delivering scalability and availability. It describes using network attached memory and JVM-level clustering to eliminate bottlenecks. This allows state to be shared across multiple servers for improved performance and reliability. An example application called HelloClusteredWorld is provided to demonstrate how state can be clustered in memory across multiple JVMs. Configuring Hibernate and enabling its second level cache can further reduce database load.
ScaleBase is a startup offering a database-as-a-service that provides unlimited database scalability and availability. It uses a Database Load Balancer to elastically scale any SQL database across multiple database instances in a shared-nothing architecture. This allows linear scaling of the database to meet increasing user demands and volumes of data while maintaining high availability.
This document discusses Cassandra drivers and how to optimize queries. It begins with an introduction to Cassandra drivers and examples of basic usage in Java, Python and Ruby. It then covers the differences between synchronous and asynchronous queries. Prepared statements and consistency levels are also discussed. The document explores how consistency levels, driver policies and node outages impact performance and latency. Hinted handoff is described as a performance optimization that stores hints for missed writes on down nodes. Lastly, it provides best practices around driver usage.
Object oriented design patterns for distributed systemsJordan McBain
This document proposes an object-oriented design pattern for distributed systems using LabVIEW. The pattern involves published variable classes that can be inherited from and instantiated. Published variables are registered with aggregators and broadcast across networks by a broadcastor. Services can subscribe to published variables to update their state based on variable values. The goal is to abstract away networking and communication details while promoting reuse through encapsulation and inheritance. Sample code is provided as a proof of concept, but further work is needed to implement error handling and optimize the networking architecture.
Using all of the high availability options in MariaDBMariaDB plc
MariaDB provides a number of high availability options, including replication with automatic failover and multi-master clustering. In this session Wagner Bianchi, Principal Remote DBA, provides a comprehensive overview of the high availability features in MariaDB, highlights their impact on consistency and performance, discusses advanced failover strategies and introduces new features such as casual reads and transparent connection failover.
Cloud patterns - NDC Oslo 2016 - Tamir DresherTamir Dresher
Cloud computing provides amazing capabilities for the modern application, but there are many pitfalls to be aware of – scalability, resilience, elasticity, security and more.
In this session we will look at basic must-know patterns when architecting for the Azure cloud: Message-Oriented, Poison Messages, Cache, Priority Queues, Retry Patterns and more.
Azure architecture design patterns - proven solutions to common challengesIvo Andreev
Building a reliable, scalable, secure applications could happen either following verified design patterns or the hard way - following the trial and error approach. Azure architecture patterns are a tested and accepted solutions of common challenges thus reducing the technical risk to the project by not having to employ a new and untested design. However, most of the patterns are relevant to any distributed system, whether hosted on Azure or on other cloud platforms.
Message queuing is becoming an essential part of modern architectures and essential for asynchronous architectures and microservices. In this session will be described the benefits of messaging systems, the software solutions that are available and typical messaging architectures. Examples will be made using Azure Storage Queues, Azure Service Bus and RabbitMQ. This presentation is primarily about messaging, however as this session is for tech hipsters, the demos will be done giving an extensive introduction to Azure functions, Azure Resource Manager Templates, .Net core and Docker.
Learn more about message-based architecture in the cloud including implementation details, real-world examples, insights from leading experts in NServiceBus and Microsoft Azure.
This document provides an agenda and overview for an Advanced Topics in App Service training session. The agenda includes discussing compute options, application deployment and configurations, authentication and authorization, custom domains and SSL, backups and restores, scaling, monitoring, and App Service Environments. It also provides overviews of App Service architecture and features, deployment slots, WebJobs, and monitoring options. Key aspects of App Service Environments like isolation, scale, and integration with virtual networks are explained.
Design patterns and plan for developing high available azure applicationsHimanshu Sahu
1. Design Patterns High Availability of Azure Applications
2. Practical Demo on points to take care for High Availability from Infrastructure point of view(the points we discussed in last seminar)
3. Different Patterns for High Availability
3.1 Health Endpoint Monitoring Pattern
3.2 Queue-based Load Leveling Pattern
3.2 Throttling Pattern
3.3 Retry Pattern
3.4 Multiple Datacenter Deployment Guidance
4. Architecture for High Availability of Azure Applications
5. best practices for developing High Available Azure Applications
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"Fwdays
For more than decade .NET has been used primarily in enterprise software development. We all remember intranet deployment, IIS, SQL Server, N-tier applications and so on. The toolset (Visual Studio, SQL Management Studio, IIS Management snap-in etc) seemed to be set in stone as well as architecture (controllers, services, repositories). .NET people were isolated from other folks, who were using clusters, containers, clouds, and Linux.
However, adoption of clouds during few past years, the release of .NET Core made much more choices available to developers. It turned out that traditional way of building application is not that efficient from many viewpoints, including costs, time, performance or robustness. It happens because the environment has been changed and many assumptions are not still relevant.
In this talk, we will discuss what and why has been changed and how to deal with that. What are new requirements for our applications? What are new services available, and how to use them wisely? And finally, how should we design our applications to be cost-effective, competitive and have a lot of fun working with .NET Core.
The document discusses architecting applications for the cloud using Microsoft technologies. It provides an overview of Microsoft's Azure platform, including hosting applications on Azure infrastructure as a service (IaaS) or platform as a service (PaaS). It also discusses using Azure storage services like tables, queues and blobs to build scalable cloud applications.
Learn about the challenges and the design patterns that will help you prepare your application for Azure.
.NET Core samples are available here: https://github.com/cmendible/dotnetcore.samples/tree/master/cloud.design.patterns
The document discusses Windows Azure AppFabric, which is a middleware platform for building and connecting cloud applications. It provides several services including caching, access control, application management, and service bus. The service bus allows for reliable messaging between applications across networks through features like queues and topics. It also enables hybrid cloud/on-premise messaging. The presentation provides demos of these AppFabric services and how they can be used to integrate applications and connect cloud and on-premise systems through reliable and secure messaging.
Windows Azure provides you with the capabilities to infinitely scale your applications, but how do you achieve this effectively and efficiently. In this session we will introduce the patterns and anti-patterns of scalability on the Windows Azure platform, demonstrating how to leverage connected systems technologies like the Azure AppFabric Service Bus to achieve scale, and an implementation of some of these patterns that demonstrates how to cost effectively scale your architectures.
This document discusses cloud architecture patterns and provides examples to address common problems in cloud applications. It begins with an overview of common problem areas such as availability, data consistency, scalability, security and resiliency. It then describes and provides code samples for several cloud design patterns, including the queue-based load leveling pattern to handle variable workloads, the retry pattern to address transient faults, and the static content hosting pattern to optimize storage of static resources.
The document discusses microservice architecture and data stream processing. It provides a history of these approaches and challenges they aim to address like growing application complexity and data size. Microservices are proposed as a solution, breaking applications into small, independent, communicating services. Advantages include fault tolerance, scalability, and easier development. Disadvantages include additional complexity for deployment, updates and monitoring. Examples and implementation suggestions are also provided.
The document discusses migrating applications from Azure Cloud Services to other Platform as a Service (PaaS) options like App Services and Service Fabric. It outlines some of the challenges with the existing Cloud Services deployment, including the large number of services and long deployment times. It then describes exploring App Services and Service Fabric by building prototypes of the worker role in each. App Services was selected as the new PaaS due to its ability to scale instantly and leverage existing tooling. A solution is proposed that uses WebJobs to replace worker roles and some cross-cutting techniques to minimize code changes and deployment downtime during the migration.
The document provides an overview of Azure Service Bus messaging capabilities. It recaps messaging patterns and scenarios. It describes the key components of Azure Service Bus including namespaces, queues, topics, and subscriptions. It covers sending and receiving messages with code examples and considerations around retries, duplicate detection, and large messages. Advanced features like sessions, auto-forwarding, and scheduled delivery are also mentioned. The presentation includes several demos of queues, topics, subscriptions, and sessions.
When IoT meets Serverless - from design to production and monitoringAlex Pshul
IoT is not the future anymore. It is happening right here and right now. There are more and more applications for deploying tiny electronic devices and companies are starting to see the value in this approach. To meet the high demand for IoT solutions, Microsoft invested 5 BILLION dollars in their IoT services last year.
Developing and deploying IoT code using Azure services is easy. The hard part is supporting the large amount of data that comes with it. By using the classic approach for developing backend services, scalability, maintenance, deployment and deciding frameworks are the biggest nightmares any architect will face.
Serverless computing comes to solve these issues and allows us to focus on what matters most – the logic. In this session we will discuss the differences between the classic backend approach and the new serverless approach. We will go over the services that Azure provides us for IoT development and how we can connect them to other services on Azure to create a completely serverless system, which will save us development and maintenance time.
Engineering tools for making smarter decisions .pptxTamir Dresher
Ever wondered how to make decisions in a more methodical way? Join me in this session to discover how the arms of bandits, hidden spreadsheet tools, and even movie ratings can guide you to smarter engineering decisions. Whether you're allocating budgets in a startup, planning your next refactoring project, choosing the best library, or deciding which features your users will love most, we’ll explore practical methods that turn data into decisions and leave the guesswork behind.
The document discusses new features in .NET 7 including:
1) Static abstract members can now be added to interfaces to allow for generic math and parsing functionality.
2) File scoped types allow types to only exist within the file they are declared.
3) Time related types now support microseconds and nanoseconds for more precision.
4) StringSyntaxAttribute allows marking strings as containing specific types like JSON for validation and syntax highlighting.
Tamir Dresher - What’s new in ASP.NET Core 6Tamir Dresher
ASP.NET Core is a modern Web framework for .NET that gives you everything you need to build powerful backend services.
With .NET 6 things are simpler than ever before and there are many new features that will make your development fun and fast.
In this session we'll explore all the cool and new things that were added and all that changes that make ASP.NET Core 6 the best web framework
Asynchronous processing of work is in the heart of any scalable system and interactive applications.
Over the years, the industry developed many techniques, frameworks and patterns to make it easier for developers to add the asynchronicity to their code and .NET was no exception.
However, most of the the innovation concetrated on a single work item and the concept of streams of data was given little attention.
With the new addition of IAsyncEnumerable and the System.Linq.Async and System.Interactive.Async librarirs things has finally changed.
In this lecture you will learn what asynchronous streams mean in C# and how you can leverage them to build complex asynchrounous pipelines inside your .NET applications.
Debugging tricks you wish you knew Tamir Dresher - Odessa 2019Tamir Dresher
My talk from the Odessa .NET User Group - http://www.usergroup.od.ua/2019/02/microsoft-net-user-group.html
Source can be found here: https://github.com/tamirdresher/DebuggingTricks
Do you know what developers do most of their day (except for surfing the internet)?
Writing code? WRONG!
They are debugging. The debugger is a powerful tool, but in this talk you'll learn tricks that will help find bugs in half the time and with less frustration. Because a happy developer is a productive developer.
I'll show you to use tools that will point to you to right direction and features didn't know that are even there, for both development time debugging and post-mortem production analysis.
From zero to hero with the actor model - Tamir Dresher - Odessa 2019Tamir Dresher
My talk from Odessa .NET User Group - http://www.usergroup.od.ua/2019/02/microsoft-net-user-group.html
Code can be found here: https://github.com/tamirdresher/FromZeroToTheActorModel
here's nothing new about the actor model, in fact it was invented in the early seventies. So how come its now the hottest buzzword? In this session you will learn what is the Actor Model and why it helps making your system Reactive - scalable, responsive and resilient. You will get to know Akka.Net library that makes the Actor model a piece of cake.
Tamir Dresher - Demystifying the Core of .NET CoreTamir Dresher
.NET Core has revolutionized the way we build applications. Today, you can write .NET code once and run it anywhere using the tools, practices, and techniques that .NET community known and loved for years. In this session, you'll learn about architecture of .NET Core and .NET Standard which allows it to run on any platform like Linux, OSX and windows. And you will explore how to integrate the different utilities, libraries and concepts to maximize your .NET skills in the new world of cross-platform .NET.
Breaking the monolith to microservice with Docker and Kubernetes (k8s)Tamir Dresher
This document discusses breaking a monolithic application into microservices using Docker and Kubernetes. It begins by defining modularity and microservices. Docker is presented as a way to containerize applications and isolate dependencies to help break apart a monolith. Kubernetes is then introduced as an orchestrator to manage deploying and scaling the containerized microservices. The document concludes by discussing best practices for architecting microservices and using a DevOps approach for continuous integration, delivery, monitoring and automation when managing microservices on Docker and Kubernetes.
.Net december 2017 updates - Tamir DresherTamir Dresher
This document summarizes updates for application developers and DevOps from 2017, including new features in Visual Studio 2017, Visual Studio App Center, Live Share, and connectivity to Azure Kubernetes Service. It also covers upcoming features for C# 7.2 and 8.0 like private protected access modifiers, readonly structs and arguments, nullable reference types, and Span<T> to reduce memory allocations and improve performance.
Video can be found here: https://www.youtube.com/watch?v=qOST2eCgo2I
Rx helps us solve many complex problems, such as combining different streams and reacting to events that involve timing aspects.
However, solving those problems with code is not really "done" unless you can validate and assure your results.
In this session you'll learn the Rx.NET testing utilities and patterns that makes testing Rx code not only easy but also a lot of fun
Building responsive application with Rx - confoo - tamir dresherTamir Dresher
Code examples can be found here: https://github.com/tamirdresher/Rx101
Reactive applications are designed to handle asynchronous events in a way that maximizes responsiveness, resiliency, and elasticity. Reactive Extensions (Rx) is a library that abstracts away the sources of events and provides tools to handle them in a reactive way.
With Rx, filtering events, composing event sources, transforming events, and dealing with errors all become much simpler than with traditional tools and paradigms.
.NET Debugging tricks you wish you knew tamir dresherTamir Dresher
Do you know what developers do most of their day (except for surfing the internet)?
Writing code? WRONG!
They are debugging. The debugger is a powerful tool, but in this talk you'll learn tricks that will help find bugs in half the time and with less frustration. Because a happy developer is a productive developer.
This session will show you tools that will point to you to right direction and features you didn't know that are even there.
From Zero to the Actor Model (With Akka.Net) - CodeMash2017 - Tamir DresherTamir Dresher
These are the slides from my talk at the CodeMash 2017 conferenece: http://www.codemash.org/session/creating-a-responsive-application-using-reactive-extensions/
Code examples are located here: https://github.com/tamirdresher/FromZeroToTheActorModel
Building responsive applications with Rx - CodeMash2017 - Tamir DresherTamir Dresher
Slides from the CodeMash 2017 conference: http://www.codemash.org/session/creating-a-responsive-application-using-reactive-extensions/
Code example are here: https://github.com/tamirdresher/Rx101
Debugging tricks you wish you knew - Tamir DresherTamir Dresher
Tamir Dresher presents debugging tricks and techniques for software developers. The presentation covers setting breakpoints, comparing objects while debugging, handling exceptions, debugging multithreaded applications, post-mortem debugging using dumps, and debugging LINQ queries. Attendees are encouraged to try the open source OzCode debugger, which provides additional features to aid the debugging process. Contact information is provided for any questions.
Tamir Dresher presents an introduction to Reactive Extensions (Rx) which provides a framework for building asynchronous and event-based applications. Rx allows composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. The presentation covers Rx core concepts like Observables and Observers, creating Observables, Rx queries, and managing concurrency using Schedulers.
Reactiveness All The Way - SW Architecture 2015 ConferenceTamir Dresher
Tamir Dresher is a software architect, consultant, and instructor who specializes in reactive systems and the Reactive Extensions (Rx) framework. The presentation discusses architectural concepts like responsiveness, resilience, and reactiveness that are important for distributed and reactive systems. It provides examples of using Rx and the actor model with Akka to build systems that can react to various stimuli like user input, failures, or messages in an elastic and resilient manner. The presentation encourages adopting reactive principles and reactive frameworks to build systems that can adequately respond to and recover from changes.
War Story: Removing Offensive Language from Percona ToolkitSveta Smirnova
Slides for the online stream at https://www.youtube.com/live/JOEpIQL7cXM for Percona (https://percona.community/events/2025-03-sveta-toolkit/) MySQL 8.4 GA was released with dropped offensive replication statements, such as START/STOP SLAVE. As a maintainer of the Percona Toolkit: a set of tools, originally written in the early days of MySQL when nobody was even thinking that these statements would change, - I had to rewrite all tools and libraries that use replication statements. This ended up with a huge changeset for 511 files in the toolkit. This stream covers the resolved and not yet resolved challenges that I have met when renewing legacy code.
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdfNorthwind Technologies
ManageEngine Endpoint Central (formerly known as Desktop Central) is an all-in-one endpoint management solution designed for managing a diverse and distributed IT environment. It supports Windows, macOS, Linux, iOS, Android, and Chrome OS devices, offering a centralized approach to managing endpoints — whether they’re on-premise, remote, or hybrid.
Unlock the full potential of cloud computing with BoxLang! Discover how BoxLang’s modern, JVM-based language streamlines development, enhances productivity and simplifies scaling in a serverless environment.
AI Alternative - Discover the best AI tools and their alternativesAI Alternative
AIAlternative.co is a comprehensive directory designed to help users discover, compare, and evaluate AI tools across various domains. Its primary goal is to assist individuals and businesses in finding the most suitable AI solutions tailored to their specific needs.
Key Features
- Curated AI Tool Listings: The platform offers detailed information on a wide range of AI tools, including their functionalities, use cases, and alternatives. This allows users to make informed decisions based on their requirements.
- Alternative Suggestions: For each listed AI tool, aialternative.co provides suggestions for similar or alternative tools, facilitating easier comparison and selection.
- Regular Updates: The directory is consistently updated to include the latest AI innovations, ensuring users have access to the most current tools available in the market.
Browse All Tools here: https://aialternative.co/
Scalefusion Remote Access for Apple DevicesScalefusion
🔌Tried restarting.
🔁Then updating.
🔎Then Googled a fix.
And then it crashed.
Guess who has to fix it? You. And who’ll help you? - Scalefusion.
Scalefusion steps in with real-time access, not just remote hope. Support for Apple devices that support you (and them) to do more.
For more: https://scalefusion.com/remote-access-software-mac
https://scalefusion.com/es/remote-access-software-mac
https://scalefusion.com/fr/remote-access-software-mac
https://scalefusion.com/pt-br/remote-access-software-mac
https://scalefusion.com/nl/remote-access-software-mac
https://scalefusion.com/de/remote-access-software-mac
https://scalefusion.com/ru/remote-access-software-mac
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdfQuickBooks Training
Are you preparing your budget for the next year, applying for a business credit card or loan, or opening a company bank account? If so, you may find QuickBooks financial statements to be a very useful tool.
These statements offer a brief, well-structured overview of your company’s finances, facilitating goal-setting and money management.
Don’t worry if you’re not knowledgeable about QuickBooks financial statements. These statements are complete reports from QuickBooks that provide an overview of your company’s financial procedures.
They thoroughly view your financial situation by including important features: income, expenses, investments, and disadvantages. QuickBooks financial statements facilitate your financial management and assist you in making wise determinations, regardless of your experience as a business owner.
Explore the professional resume of Pramod Kumar, a skilled iOS developer with extensive experience in Swift, SwiftUI, and mobile app development. This portfolio highlights key projects, technical skills, and achievements in app design and development, showcasing expertise in creating intuitive, high-performance iOS applications. Ideal for recruiters and tech managers seeking a talented iOS engineer for their team.
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...Philip Schwarz
In this deck we look at the following:
* how unfolding lists is the computational dual of folding lists
* different variants of the function for unfolding lists
* how they relate to the iterate function
Alt-lenders are scaling fast, but manual loan reconciliation is cracking under pressure. See how automation solves revenue leakage and compliance chaos.
https://www.taxilla.com/loan-repayment-reconciliation
Top 10 Mobile Banking Apps in the USA.pdfLL Technolab
📱💸 Top Mobile Banking Apps in the USA!
Are you thinking to invest in mobile banking apps in USA? If yes, then explore this infographic and know the top 10 digital banking apps which creating ripples in USA. From seamless money transfers to powerful budgeting tools, these apps are redefining how America banks on the go.
The rise of e-commerce has redefined how retailers operate—and reconciliation...Prachi Desai
As payment flows grow more fragmented, the complexity of reconciliation and revenue recognition increases. The result? Mounting operational costs, silent revenue leakages, and avoidable financial risk.
Spot the inefficiencies. Automate what’s slowing you down.
https://www.taxilla.com/ecommerce-reconciliation
AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATIONmiso_uam
AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATION (plenary talk at ANNSIM'2025)
Testing is essential to improve the correctness of software systems. Metamorphic testing (MT) is an approach especially suited when the system under test lacks oracles, or they are expensive to compute. However, building an MT environment for a particular domain (e.g., cloud simulation, automated driving simulation, production system simulation, etc) requires substantial effort.
To alleviate this problem, we propose a model-driven engineering approach to automate the construction of MT environments, which is especially useful to test domain-specific modelling and simulation systems. Starting from a meta-model capturing the domain concepts, and a description of the domain execution environment, our approach produces an MT environment featuring comprehensive support for the MT process. This includes the definition of domain-specific metamorphic relations, their evaluation, detailed reporting of the testing results, and the automated search-based generation of follow-up test cases.
In this talk, I presented the approach, along with ongoing work and perspectives for integrating intelligence assistance based on large language models in the MT process. The work is a joint collaboration with Pablo Gómez-Abajo, Pablo C. Cañizares and Esther Guerra from the miso research group and Alberto Núñez from UCM.
2. About Me
• Software architect, consultant and instructor
• Software Engineering Lecturer @ Ruppin Academic Center
• Technology addict
• .NET and Native Windows Programming
@tamir_dresher
[email protected]
http://www.TamirDresher.com.
5. What are Cloud Patterns
• Architectural Patterns:
“A design pattern in architecture and
computer science is a formal way of
documenting a solution to a design problem
in a particular field of expertise”
(http://en.wikipedia.org/wiki/Architectural_patterns)
7. DevGeek Coffee Shop
• DevGeek Coffee is a well known and
established coffee shop
• In business for 20 years
• Lately, with the increasing competition,
sales are dropping
• Lets Help!
10. What does this has to do with software?
• Cashier == Server
• Basically, this is a scalability issue
• Running in the cloud (potentially) makes
scaling problem appear faster
11. Scale Up
• Add More Resources to a Node
• Faster cashier
– Better CPU to the server
– More Memory
• Faster Coffee machine
– Use a better algorithm/service
12. Everything has a limit
MoneyMoney
CPUCPU
MEMMEMBANDWIDTH
BANDWIDTH
StorageStorage
13. Scale out
• Add More Nodes
– More Cashiers
• Load Distribution
– Round Robin
– Performance
– Other (location, expertise, etc)
16. DevGeek Coffee Shop – The clients complaints
• Long standing
• Sometimes orders gets lost
• Sometimes the line is so long that the
workers close the doors
17. DevGeek Coffee Shop – Latency and throughput
• Latency is a time interval between the
stimulation and response
– Time between ordering and receiving the coffee
• Throughput is the number of requests that
can be served per unit time
23. Azure Queuing Options
• Azure Storage Queues
– Simple, Reliable, Persistent Queue
– Max 200TB and 7 days TTL per message
• Azure Service Bus
– Broader capabilities: publish/subscribe,
remoting, integration patterns
– Max 80GB and unlimited TTL per message
http://msdn.microsoft.com/en-us/library/hh767287.aspx
30. Service Bus Messaging – Dead letters
• the name of the sub-queue is [queueName]/
$DeadLetterQueue
• The path can be obtained using the
FormatDeadLetterPath method of the
QueueClient
• Can be consumed by any other consumer
and check the messages, log them etc.
31. Priority Queue
• The queue may hold message with different
priorities (3-High, 1-Low)
Web Sites
worker role
:
:
worker roleweb role
:
35. DevGeek Coffee Shop – The clients complaints
1. Sometimes the soy milk ran out
2. the barista calls to the storeroom
3. The line is busy
4. The barista move to next order
5. Customer receive an order cancellation
36. Transient Faults
• “Transient fault is a fault that is no longer
present if power is disconnected for a short
time and then restored.” (http
://en.wikipedia.org/wiki/Transient_fault#Transient_fault)
• Many faults in connectivity to cloud are
transient by nature
• Commonly occur when connecting to
service or database
37. Retry Pattern
• If at first you don’t succeed, try try again
(William Edward Hickson)
• Retry Logic
– Linear – every fixed amount of time
– Exponential – if the server is heavy-used
(throttling) we don’t want to flood it
immediate….1 sec….5 seconds….etc.
– Other
38. Operation With Basic Retry
int currentRetry = 0;
while (currentRetry < MaxRetries)
{
try
{
// Calling external service.
await TransientOperationAsync();
}
catch (Exception ex)
{
currentRetry++;
// Check if the exception thrown was a transient exception
if (!IsTransient(ex))
{
// If this is not a transient error
// or we should not retry re-throw the exception.
throw;
}
}
await Task.Delay(TimeBetweenRetries);
}
39. Retry Pattern – Solutions
• Azure Storage IRetryPolicy
• Azure Service Bus RetryPolicy
IRetryPolicy noRetryPolicy = new NoRetry();
BlobRequestOptions requestOptions = new
BlobRequestOptions()
{
RetryPolicy = noRetryPolicy,
};
MessagingFactory factory = MessagingFactory.Create();
factory.RetryPolicy = RetryExponential.Default;
factory.RetryPolicy = RetryPolicy.NoRetry;
40. The Transient Fault Handling Application Block
var retryPolicy =
new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
retryPolicy.Retrying += (sender, args) => {
Trace.WriteLine(args.LastException, "Information");
};
try {
retryPolicy.ExecuteAction(() =>
{
TranisentErrorOperation();
});
}
catch (Exception) {
// All the retries failed.
}
http://msdn.microsoft.com/en-us/library/hh680934(v=pandp.50).aspx
42. Retry Logic – Not Always Not all The time
• Baristas keeps retrying/failing – Time
Consuming
• Maybe we can call someone else?
• The remote service still might get flooded
• If a failure is not transient, we wish that next
attempts fail immediately
43. Circuit Breaker
• Circuit Breaker pattern prevent repeatedly
trying to execute an operation that is likely
to fail
• continue without waiting for the fault to be
rectified
• Prevents wasting valuable resources
because of the wait
44. Circuit Breaker
• The Circuit Breaker is a proxy
• Monitor the number of recent failures
• Decide if to proceed or do something else
– Throw exception
– Try different destination
45. Circuit Breaker States
Closed Open
Success
Fail [threshold reached]
Half
Open
Retry Timeout
Fail
Success
Fail [under threshold]