Watts Water Dapr Community Call - Building Distributed Systems with Dapr
ssuserfb6acb
15 views
13 slides
Jun 23, 2024
Slide 1 of 13
1
2
3
4
5
6
7
8
9
10
11
12
13
About This Presentation
Community call presentation by Mark Cupito, Watts Water Technologies
Size: 2.9 MB
Language: en
Added: Jun 23, 2024
Slides: 13 pages
Slide Content
Dapr APIs for building secure and reliable microservices Mark Cupito Watts Water Technologies
👋 Hello! Been at Watts 2 years Been developing hybrid cloud and fully cloud native applications for 12 years Favorite tech stack: React, .NET, Azure Dapr enthusiast Mark Cupito Engineering Manager, Watts Digital
Introduction Watts is a global leader in quality water solutions, but is a family of brands Each Watts brand o wns the manufacturing, distribution, and connectivity of IoT-enabled hardware across a broad spectrum, from Thermostats to Water Heaters On a journey the last 5 years to make our sensors and equipment ‘Smart & Connected’ Recently shifted focus to develop a new platform , a foundation that all Watts equipment can connect to that we can use to supercharge connectivity across the enterprise
About our solution We’re building a solution that gives our customers remote visibility and management into their plumbing system, with a ‘digital twin’ representation of their mechanical room. Real-time Equipment Dashboard System Map – a real-time view of your mechanical room
How Dapr fit perfectly into our use-cases MassTransit (.NET) Service B Service A CRON Binding .NET ecosystem focused solution. What about polyglot apps? New Application means a new URL for other apps have in their config CRON job? Better spin up an Azure Function or rely on Quartz/ Hangfire & write + deploy your scheduler Pub/Sub Service-to-Service CRON Framework-specific SDKs SDK-fatigue & learning new APIs State Store
Is there a better way? D evelopers should be focused on building features that differentiated our application We needed to accelerate our time to production We needed something that felt familiar We wanted to stay away from tool-sprawl Wanted optionality for languages & frameworks A great DevEx is a must, with emphasis on local development and traceability
How we stumbled upon Dapr Kubernetes is great, but our DevOps team was only a team of 2 with 3 other apps to support. Let’s keep exploring.. Azure Container Apps – A quick start landing zone for serverless distributed apps with built-in KEDA, Orchestration, and plug-and-play Dapr configuration. (for now)
Local Development name : nexa services : - name : api-gateway project : src/ApiGateway/ApiGateway.csproj bindings : - port : 5000 protocol : http name : http - port : 5050 protocol : https name : https - name : admin-service project : src/Admin/Admin.csproj bindings : - port : 5001 extensions : - name : dapr log-level : debug components-path : "./components/local" Tye.yaml (.NET-focused but it’s OK) Launch 1..N services with a simple config file Extremely clear bindings Limited tools and runtimes to build distributed applications. Dapr dapr init
Telemetry processing Ingest Telemetry Publish Telemetry Received Event Start Receive Telemetry Evaluate Telemetry End Cache Latest Telemetry Send Alert via Channels Alert Created Bindings Update real-time system map Publish Telemetry Received Event
Telemetry processing Ingest Telemetry Publish Telemetry Received Event Start Receive Telemetry Evaluate Telemetry End Cache Latest Telemetry Send Alert via Channels Alert Created Bindings Update real-time system map Publish Telemetry Received Event
Telemetry processing with Dapr : Over 75 million events per month and growing! Message broker Ingestion Service Workflow Service MQTT Broker Admin Service Alerting Service Message broker Twilio Message broker State Store SysMap Service Receive Telemetry
Dapr is the catapult we needed D evelopers are able focus on features because security, tracing, resiliency are available out of the box with Dapr . That’s 1000s of lines of code that we didn’t have to write Dapr ’s component model makes development in distributed environments plug-and-play Dapr’s Docs are great , we saw references to Project Tye and examples in .NET that made it feel familiar Dapr let’s us get up and running with very little overheard or tooling – install dapr and you’re 50% there Dapr is vendor agnostic – by default it provides optionality for languages & frameworks DevEx is a hot topic these days – and Dapr gets it right. Dapr replaced SDK-sprawl, scattered retry login, hardcoded URLs, and so much more