Avoid join() in Azure Databricks, save $$$$
dotnet catch
by rschiefer (@chief7)
2y ago
We recently replaced an old Kubernetes cluster in Azure AKS with a new set of notebook jobs in Azure Databricks. Overall the migration was a success but we definitely had to live through some growing pains.  Databricks is a for profit company founded by the creators of Apache Spark.  They offer a distributed compute platform with the same name which builds on top of and improves Apache Spark.  Azure and AWS both offer managed Databricks services in the cloud. Support It took us about 6 months for the full migration with the replacement running in production and the old system t ..read more
Visit website
MicroServerlessLamba.NET Series – API Call Resilience
dotnet catch
by rschiefer (@chief7)
3y ago
In this next blog post of the MicroServerlessLamba.NET series, we will review how we managed to make microservices calls in a more resilient way.  As previously covered, hosting via functions as a service is not a silver bullet and it has its own set of challenges.  AWS Lambda is not an exception to this.  Functions can scale with elastic loads with ease and the cold starts are usually not an issue when the caller can tolerate some delay in the response.  When using microservices to drive a UI for active users, however, its a different story.  We can’t expect to retain ..read more
Visit website
Retry OData Client calls with Polly in .NET 4.5
dotnet catch
by rschiefer (@chief7)
3y ago
Polly is a powerful fault handling library which can help make your service calls more resilient to failure.  Polly makes it very easy to define policies for service call retries, timeouts, circuit breaking and fallbacks that configure against your service client in a fluent way. We use Polly in our serverless microservice architecture extensively to make our service integrations more resilient and it works really well.  There is a bit of a learning curve to these fault handling patterns and how to set them up the right way for your system but it is well worth it.  Fault handli ..read more
Visit website
AWS Lambda with ALB – Seemingly random 502 errors
dotnet catch
by rschiefer (@chief7)
3y ago
Hit an issue this week as I was upgrading a service from .NET Core 2.1 to .NET Core 3.1.  After the upgrade everything worked locally so we deployed to our AWS environment.  This service is executed via Lambda and routed requests through ALB. Everything also seemed to work in AWS except for our Swagger UI page.  Through further troubleshooting found the swagger-ui-bundles.js file that the Swagger UI page requests was coming back with a 502 – Bad Gateway response code.  Other js/css files on the page loaded without any problem. Initially I suspected a bug in the latest versi ..read more
Visit website
MicroServerlessLamba.NET Series – HTTP Service Endpoint Routing & Access
dotnet catch
by rschiefer (@chief7)
3y ago
In this post we will cover how we make our microservices in Lambda available to API consumers via HTTP both internally and externally. The first thing you need to understand is a Lambda is not accessible via HTTP by default, you have to configure some form of HTTP endpoint that will route to the Lambda.  You can configure many different types of triggers from the console: AWS API Gateway When we first started designing our new architecture in late 2018 the API Gateway was the best option for providing an HTTP endpoint to a Lambda.  API Gateway is especially useful if you need to sec ..read more
Visit website
MicroServerlessLamba.NET Series – Config Organization & Basic Service Registry
dotnet catch
by rschiefer (@chief7)
3y ago
In my last post of this series, we covered how we store and retrieve configuration information in AWS System Manager SSM parameters.  In this post, we will look at how the configuration information is organized by environment and how it serves as a basic service registry. SSM Path Structure First off we have two accounts in AWS to separate our live (production) and development environments.  This is a common best practice from AWS to control security and costs more easily at the appropriate levels. Next is the environment.  We use 4 different environments CI, QA and DEMO in the ..read more
Visit website
MicroServerlessLamba.NET Series – Configuration Management
dotnet catch
by rschiefer (@chief7)
3y ago
This post continues my series covering the design and development of our latest server-less micro-service architecture written in .NET Core and hosted in AWS Lambda.  In this particular post we will cover how we are managing configuration data. Configuration management is a core capability in cloud native applications and one of the 12 factors as defined by The Twelve-Factor App. Traditional apps often stored application configuration in the source code which generally causes issues when those values need to change in various environments (local, CI, QA, PROD, etc).  These configura ..read more
Visit website
Building Self-hosted Azure DevOps Agents with Windows Server 2019 Core
dotnet catch
by rschiefer (@chief7)
3y ago
We recently needed to rebuild a self-hosted Azure DevOps agent and decided to use the latest Windows Server Core OS (2019). We used an old VMWare server to host the VMs but generally these steps should work regardless of the hosting method (bare metal, cloud VMs, containers, etc). Server Core This was our first time using Windows Server Core which is a bit different if you only have experience with the GUI version of Windows. For example, you cannot remote into the server using Remote Desktop, instead you get access to the OS commandline through the hosting console or remoting in via PowerShel ..read more
Visit website
MicroServerlessLamba.NET Series – Intro: A Scalable Server-less Architecture in AWS Lambda with ASP.NET Core Microservices
dotnet catch
by rschiefer (@chief7)
3y ago
Over the last 18 months I have been working with our team to develop a scalable microservice architecture in AWS Lambda.  Starting with very little experience in AWS prior to this undertaking and now feeling MUCH more comfortable with it, I wanted to summarize our journey and share it with others who may find it useful.  I would also love to hear and learn from those of you who may have feedback on our approach. First, why server-less? While containers seem to be all the rage in the software industry (and I do appreciate their utility), I do not believe they are the silver bullet ma ..read more
Visit website
.NET DateTime Basics [are trickier than you might think]
dotnet catch
by rschiefer (@chief7)
3y ago
#TLDR Handling dates/times in software is deceptively hard. If handling dates, times and zones extensively/accurately is a core concern (you will know if it is), use NodaTime. For the rest of us, the built in .NET classes will usually suffice if you know how they work. If you fall into the latter camp, read this brief post to gain a working knowledge of DateTime and DateTimeOffset in .NET. Background .NET provides classes for handling dates/times which generally work as well as most other programming languages but they can leave a lot to be desired if you need to take full control.  That ..read more
Visit website

Follow dotnet catch on FeedSpot

Continue with Google
Continue with Apple
OR