Building highly scalable enterprise systems (on Azure)

Slides:



Advertisements
Similar presentations
Start with a VM. Stuff our application into a single, bloated image.
Advertisements

Not Dead Yet! Cloud Breathes New Life into SOA Jason Bloomberg Copyright © 2012, ZapThink, a Dovèl Technologies Company.
How WebMD Maintains Operational Flexibility with NoSQL Rajeev Borborah, Sr. Director, Engineering Matt Wilson – Director, Production Engineering – Consumer.
Robert MacLean BBD Software Get Ready For The Cloud TRACK: Cloud & ALM.
Monitoring Latency Sensitive Enterprise Applications on the Cloud Shankar Narayanan Ashiwan Sivakumar.
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Managing a Cloud For Multi Agent System By, Pruthvi Pydimarri, Jaya Chandra Kumar Batchu.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
BIG DATA/ Hadoop Interview Questions.
Yet Another Microservices Solution (Yams) Microsoft Studios (BigPark) Nehme Bilal.
Canadian Bioinformatics Workshops
Univa Grid Engine Makes Work Management Automatic and Efficient, Accelerates Deployment of Cloud Services with Power of Microsoft Azure MICROSOFT AZURE.
DevOps Cloud Native Microservices
Containers as a Service with Docker to Extend an Open Platform
Why the Web?.
Microsoft Virtual Academy
Service Fabrik Manage Enterprise Grade Services
Blue Mixology.
Connected Maintenance Solution
Gather Valuable Customer Data
Connected Maintenance Solution
Introduction to R Programming with AzureML
Servoy Delivers-High Productivity Platform to Design, Build and Deliver Business Applications with a Superior Experience on Microsoft Azure Partner Logo.
Nano Server in the cloud - some real use cases to take away
Unit Testing in a Team Sparkhound Presents by Steve Schaneville
Hadoop Clusters Tess Fulkerson.
Akka.NET The Future of Distributed Programming in .NET
An Intro to ALM Using TFS and Visual Studio for Source Control, Build Automation, Continuous Integration and Deployments.
Microsoft Azure Service Fabric Overview
OpenNebula Offers an Enterprise-Ready, Fully Open Management Solution for Private and Public Clouds – Try It Easily with an Azure Marketplace Sandbox MICROSOFT.
Event driven Microservices with VERT.X & Kubernetes
Serverless CQRS in Azure!
Replication Middleware for Cloud Based Storage Service
Using docker containers
Azure Container Instances
Scalable SoftNAS Cloud Protects Customers’ Mission-Critical Data in the Cloud with a Highly Available, Flexible Solution for Microsoft Azure MICROSOFT.
Microsoft Connect /17/ :34 AM
Container technology. Let’s dive into the world of docker and kubernetes Bjarte Brandt, DevOps Architect TV2.
Intro to Docker Containers and Orchestration in the Cloud
Big Red Cloud Offers a Simple Online Accounts Solution for Business Owners and Bookkeepers Hosted on the Powerful Microsoft Azure Platform MICROSOFT AZURE.
Tech·Ed North America /19/ :44 PM
MasterDoc Organizes, Shares Electronic Patient Records for General Practitioners and Their Staff Members, Thanks to the Microsoft Azure Cloud MICROSOFT.
DeFacto Planning on the Powerful Microsoft Azure Platform Puts the Power of Intelligent and Timely Planning at Any Business Manager’s Fingertips Partner.
Masashi Narumoto | Senior Program Manager Larry Brader | Senior SDET
Developing for the cloud with Visual Studio
AdQ is Azure-Powered Pre-Roll Ad Management Software That Improves Pre-Roll Ad Performance, Increases Profits, and Optimizes User Experience MICROSOFT.
Getting Started with Kubernetes and Rancher 2.0
Learn. Imagine. Build. .NET Conf
AIMS for BizTalk, Built on the Microsoft Azure Platform, Empowers Enterprises to Automate Insight and Analytics and Boost Value Creation MICROSOFT AZURE.
Yiannis Nikolakopoulos
Quasardb Is a Fast, Reliable, and Highly Scalable Application Database, Built on Microsoft Azure and Designed Not to Buckle Under Demand MICROSOFT AZURE.
2/16/2019 9:42 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Single Cell’s Progenitor Powered by Microsoft Azure Improves Organisational Efficiency with Strategic Procurement, Contract Management, and Analytics MICROSOFT.
MIROSLAV POPOVIĆ Docker i ASP.NET Core
Developing and testing enterprise Java applications
5 Azure Services Every .NET Developer Needs to Know
SUSE CaaS and Dell EMC.
OpenStack Summit Berlin – November 14, 2018
Dell EMC SQL Server Solutions Doug Bernhardt
How To Load A Fact Table Really, Really Fast
Docker for DBAs SQL Saturday 8/17/2019.
SQL Server Devops with production data
Data Pipeline Best Practices for an Increasingly Cloudy World
9/16/2019 6:55 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Michael Stephenson Microsoft MVP - Azure
SQL Server on Containers
.NET Core and Kubernetes
Presentation transcript:

Building highly scalable enterprise systems (on Azure) Ronald Harmsen In this practical session I will show you how to design and build a highly scalable and distributed system. Combining the core architectural principles of CQRS, Event Sourcing & Actor Systems to create the design and then building it with .NET core, AKKA.NET & Docker. That’s a lot of technology right? Well, they fit very nicely together and even make sense when combined. This architecture has been used successfully in some very large scale enterprise systems I’ve been working on. Of course I’ll guide you through all steps from understanding the design to deployment into Azure. Why did I choose these patterns? What are my options for scaling? How did we refactor our old implementation into this solution? And more… I’ll start with a couple of architectural drawings and the rest is all about the stuff we care about: running code. @ronaldharmsen ronald@nforza.nl #DevSum19

Ronald Harmsen Developer / Consultant / Trainer @ NForza Development >= 1993 Everything .NET >= 2004 Azure >= 2009 Others: DevOps, Software Quality, Software & Enterprise Architecture #DevSum19

The project where it all started #DevSum19

Our “adventure” Main dataset: approx. 750TB (billions of tiles:metadata/photographs) Initial application tests : ~273 days to calculate Planned run: every quarter 

Our “adventure” part 2 Issue with waiting for neighbors to be available Reloading of data Storage slow

Solution space Can we have ‘caching’ of state ? Process tiles independently ? Execute ‘multi-stage’ detections on tiles ? i.e. run algorithms for water, road, forest, buildings etc. independently? #DevSum19

The Actor Model #DevSum19 Lightweight Never share state Mailbox = message queue. So message-based or message-passing architecture One message at a time Simple threading scenario (code we write is single threaded, abstracted away in actor model) #DevSum19

Goals Resilient Scalable Fast Cloud based (Azure) #DevSum19 Resilient – we don’t want to completely start over when something crasheds #DevSum19

#DevSum19 We had some issues: Programming model How many people know how to do this? Slow deployments -> rolling updates of stateful services & hence actors #DevSum19

Azure Kubernetes Services (AKS) #DevSum19

Goals Resilient Scalable Fast Cloud based (Azure) Actor model ? Resilient – we don’t want to completely start over when something crashes Fast deployments / updates Wide spread. More knowledge available. #DevSum19

Which Actor Model ? #DevSum19 Akka. Orleans too much MS again Akka = open source, pluggable architecture Scalable -> remoting / clusters / sharding #DevSum19

Demo: akka.net actors #DevSum19 Resilient – we don’t want to completely start over when something crashes Fast deployments / updates Wide spread. More knowledge available. #DevSum19

What about resilience? Akka has some useful power-ups: Akka Remoting Akka Clusters Persistence Sharding Resilient – we don’t want to completely start over when something crashes Fast deployments / updates Wide spread. More knowledge available. #DevSum19

Akka Remoting #DevSum19

Akka Clusters #DevSum19

Akka Persistence - CQRS #DevSum19

Akka Persistence - CQRS #DevSum19

Akka Persistence #DevSum19

Akka Sharding #DevSum19

Putting it all together in code Resilient – we don’t want to completely start over when something crashes Fast deployments / updates Wide spread. More knowledge available. aka DEMO #DevSum19

Summing up Using Docker / Kubernetes for scaling Relatively simple programming model Easy to deploy the same architecture into Azure Resilient Resilient – we don’t want to completely start over when something crashes Fast deployments / updates Wide spread. More knowledge available. #DevSum19

And…. Last but not least – don’t forget to evaluate this session in the DevSum app!