System Design

Azure functions with Swagger and OpenAPI

What is OpenAPI specification? This is a specification for machine-readable interface files for describing, producing, consuming and visualizing RESTful web services. Apparently, this was earlier part of the Swagger framework, it became a separate project sometime in 2016 overseen by the Open API initiative, an open-source collaboration project of the Linux Foundation. I am not trying to sound clever here. That’s all taken from wikipedia as I just wanted to give you an idea of what it is without having to leave this post. ...

September 19, 2021 · 5 min · 952 words
Dev Ops Loop from Atlassian

DevOps, Continuous Integration, Delivery and Deployment

A year or so ago, I was looking into ways to improve releases at my current job. We have a whole bunch of small legacy .NET applications that until 3 years ago were manually be deployed into a server that was provided to us by a third party. After migrating things to Azure, the sky was the limit for us. It was time to take control of our releases and make it better. ...

August 29, 2021 · 14 min · 2886 words
Azure Search

Azure Cognitive Search (formerly Azure Search)

Background I have in the past, in my previous job, used ElasticSearch extensively for our internal search. When I joined my current firm, I proposed using Elastic Search for our policy search problem, which apparently was slow and inefficient. This wasn’t surprising at all to me, as they were using simple SQL to search for relevant data. This was bound to be slow. So having proposed Elastic Search, I did a little POC and showed how easy it was for me to set up Elastic search on my machine on one node and showed how searching was a breeze using RESTAPIs and other clients. This POC was sufficient enough for us to consider a wider project and develop a solution which later got ported to Azure Search as we migrated to the cloud. To this day, we haven’t regretted our decision. ...

August 27, 2021 · 7 min · 1351 words
Software Architecture

What is Software Architecture and what does a software architect do?

What is Software Architecture Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. What is a Software Architect Some people compare the role of a software architect to that of a town planner. The town planner does not care how a house in a residential block is built. The town planner is responsible for deciding where blocks of residential properties go, think about the commercial complexes, the parks and schools or institutions, how they are laid to make the town easy to navigate and also making sure that essentials like water and electricity supply gets to where it is needed in the most efficient way. They do have to think about where the place would be to keep exits to highways, and if we might need flyovers, traffic signals, roundabouts, etc in certain parts based on how the population evolves. ...

July 24, 2021 · 10 min · 2064 words
CI Pipeline

Azure Pipelines and test code coverage for Dotnet core projects

Background I am proud to say that I work in a team where we follow Test Driven Development and pair programming. This has been a life changing experience for me as for several years, I had been writing code first and only writing tests after I thought it was doing what it meant to be doing which often lead to tests that only tested the bare minimum or lead to poorly thought out code that was badly coupled. However, since the last quarter of 2020, I have been practicing TDD with my pair programming partner on every new project except for when it came to working on legacy code where it would take us, much longer to refactor and make the code testable in the first place. ...

June 29, 2021 · 7 min · 1432 words
EF Core

Entity Framework Core: Configure Database Connection using Azure Service Token Provider

Update - READ THIS FIRST There is now support to connect to any Azure SQL database, Azure SQL Managed Instance and Synapse SQL in Azure Synapse Analytics from your .NET Core app using just the connection string. To learn more about this read the following pages: Use Azure Active Directory Authentication with your Azure DB Using Azure Active Directory auth with SqlClient This will completely eliminate the need to write any code to obtain a service connection in your application. I found this out when I shared this post earlier on Twitter. ...

June 26, 2021 · 11 min · 2319 words
Open Json

OPENJSON - The Utility function you did not know you needed in a Data transfer Logic App

Background I have been using Logic Apps to transfer data from one database to another. Of course, there is business logic in the queries run on the source database. And in such a case, maybe Azure Data Factory might have been a better choice. It very well could be. But for now I have been using a logic app, that simply runs a pretty big query, fetches the results and inserts into my destination database after some checks on the data present in the destination database. It works. However, using your Logic App to do some data related operations, especially to a SQL database, requires some wisdom. ...

June 21, 2021 · 6 min · 1146 words
Cache

What is Caching? The different types of caches and interfaces in .NET Core for caching

What is caching? Storing frequently accessed information closer to where you need it for faster subsequent access to it. Caching is so ubiquitous that you probably have benefited from it without even knowing about it. Your computer or your phone or other mobile devices use caching at different levels like at its hard drive, CPU, GPU, browser, operating system etc to improve its performance. And when you think about things outside your computer, like databases, web servers, DNS etc also use caches for the same reason, improving performance, by keeping frequently requested for items closest to where it is accessed, in a faster, more volatile storage system. Also cache storage is often times more expensive than regular storage, as it is often stored either in super fast access memory or solid state drives. Hence choosing what you store in the cache and how much you store in the cache is also something you must consider before deciding to use a cache. ...

June 20, 2021 · 5 min · 1056 words
Azure Logic Apps in Azure Pipelines

What are Azure Logic Apps and How to deploy them using Azure Devops Pipeline - A tutorial and a list of challenges you might encounter

What are Azure Logic Apps? Azure Logic Apps are an Azure service that lets you visually build integrated solutions to connect several different apps and services together, and comes with a click and select interface. It enables you automate business processes without writing any code at all! What is business process? A business process or workflow is a sequence of tasks that produce some sort of outcome, which may be some data, decision, notification. ...

June 12, 2021 · 19 min · 4040 words
Reverse Proxy

Proxy vs Reverse Proxy - What are they?

I was recently helping my friend with some preparation for a system design interview and as we discussed solutions, the terms Proxy server and reverse proxy came up in our discussions. I really struggled to give a simple explanation of the terms during our discussion. I just knew what one did. I did not even know that load balancers were generally reverse proxies. This is where knowledge of a natural language could be helpful. So I thought I would try and compile a simple description of both here and go look at the definition of Proxy from the dictionary. ...

June 6, 2021 · 3 min · 519 words