Radu Vunvulea

Radu Vunvulea

Solution Architect @iQuest

Serverless and microservices confusion

Six years ago, I started to work on the first microservices projects. It was a migration from a monolithic solution to something different, to containers and microservices. Fast forward, we are in 2020, and in ALL engagements where I am involved, we have containers and something more – serverless.

Let’s be inventive with how we can process and collect data

In the world of smart devices, devices are more and more chatty.  Let’s assume that we have a smart device that needs to send, every 30 seconds, a Location Heartbeat that contains . Worldwide we have 1.000.000 devices that send this information to our backend. At global level, backend runs on 4 different Azure Regions, with an equal distribution of devices. This means that, on each instance of our backend, there will be 250.000 devices that send heartbeats with their locations. From a load perspective, it means that, on each Azure Region, there are around 8.300 heartbeat requests every second. 8K messages per second might be an acceptable load or not. It depends on what actions we need to do for each request.

Plan the project decommission from the beginning

We all make mistakes. Sometimes, they are small with no impact on business continuity, while, other times, they are bigger and can impact the business. A few years ago, I was indirectly involved in a project where a wrong decision resulted in a large amount of money being lost, which impacted the current business and the business continuity. I decided to write this post as a lesson for all of us learn, in order to avoid making the same mistake, especially in this era, where SaaS is the preferred option. It is an era where buying licenses for existing solution is better than developing your own – without analyzing the impact and without considering what should be done if you want to change the provider.

Overview of Azure CDN

Let us start with the first topic, and talk about the features and functionality that are available at the moment (Q3, 2016) on Azure CDN.  You will find a lot of useful information on the Azure page and I am pretty sure that you already checked it. In comparison with the last few years, Microsoft took a big step forward, by signing partnerships with Akamai and Verizon (both of them are some of the biggest CDN providers in the world).

Things that we should consider when the content stored in Azure shouldn't leave a specific country

Nowadays, Microsoft is opening more and more data centers around the globe. Regions like Japan, the UK (to be announced), Brasil, Germany, Korea are already in-place or will soon be in-place. These specific countries have laws requiring that specific industry or data does not leave the country. In the health-care industry, especially, it is common to have restrictions preventing patient-related information to leave the country at any time. Similar laws exist for other industries like banking or data protection. In this context, we need to be aware of these laws, of the solutions we come up with and of what actually happens with the content that is transmitted between Azure Regions and on-premises systems.

Logging on external storages.... lesson learns

Logging and audit is a must have to for all applications. Without this information, monitoring and support team would not be able to know what is happening in the system, if the system works correctly and what happens in a specific point in time. On top of this, from a security perspective, you need to audit at different levels of your system who is accessing your system, what is the action and when.

Screen Sharing using Service Bus Relay (Azure) - an out of the box Tunneling solution

We started to work on a project where we need to be able to offer a reliable solution for Remote Screen Sharing - RDP (Remote Desktop Protocol). Luckily, all devices are running Windows operating system and we can use with success the support from Windows. Because all the devices are spread world-wide we need a tunneling solution. All the content that is send over the wire needs to be encrypted. In theory we would need some relays servers that would be ‘the man on the middle’ between devices and people that would like to access that device - tunneling.

Deep dive in clouds providers SLAs

In the era of cloud we are bombarded with different cloud services. New features of cloud providers are lunched every day and prices are dropping every month. In this moment the most known cloud providers are Amazon, Google and Microsoft. Looking over their services we will see SLAs (Service Level Agreement) that reach 99.9% availability, 99.95% availability or even 99.99% availability. This article will jump into cloud providers SLAs, trying to explain why the SLAs are so important, what are the benefits of them and last but not least how much money we could get back if a service goes down.

What messaging queue should I use in Azure?

In theory, sending a message over a wire to another device is a simple task. But sending a message in a reliable and secure way can be a pretty hard job. In an IoT era, where every day the number of devices that are connected to the internet increases drastically, we need to find different communication mechanisms. Because we cannot control when a device is connected to the internet and ready to receive our package, we need to find different ways to communicate with it.

Clean Code – Boundaries, Error Handling and Objects

In the last 3 months I tried to talk about different subjects presented in Clean Code. Even if this is the 4th article about this topic, I have the feeling that there are so many things that we should talk about when we are talking about a clean and good written code. We could say that the ‘Clean Code’ book, written by Robert C. Martin, has set the standards in our industry from this perspective. It is the developers’ Bible and many times it is used as the ‘law’ of the code. I don’t want to go deeper into this subject, but I promise that one day I will talk in detail about why we should (not) use this book as THE Bible.

Clean Code – Comments and Formatting

In the last two numbers of TSM we discovered what kind of naming we should use for our methods, fields, classes and so on. Related to this we saw we should always use meaningful names that are related to the problem that we want to solve. Also, we saw that a method name should always express an action (start with a verb) and a class name should be always a noun (or to express a noun). After this, we talked about function, where we found out that a function should be short, do only one thing and the number of parameters should be limited. All the information from this series is inspired from “Clean Code”, written by Robert C. Martin. I hope that in this way I will be able to make people read this book and write better code.

Clean Code - Functions

In the last article of TSM we discovered the universe of Clean Code written by Robert C. Martin. We had the opportunity to go deeper on the naming topic and see how easily small things like meaningful names or naming that revel intention can improve the quality and readability of the code itself. Today we will dive deeper in Clean Code and we will talk about ‘Functions’. This basic and simple mechanism used to write programs can impact not only how easily a program can be maintained and extended but also the mental health of developers. Don’t forget that long methods will make your eyes bleed.

Clean Code - Naming

If you are a ‘true’ developer, then you’ve heard about ‘Clean Code’ written by Robert C. Martin. In many companies, this book has become part of the developer’s bible. In combination with ‘Clean Coder’, I would say that these two books are mandatory for all developers. I will start a series of articles related to this topic. If you’ve already read this book, then it is a good occasion to refresh your memory. For others, it is the perfect moment to discover how good code should look like. All the main ideas are from ‘Clean Code’. You can look at this series of articles as a summary of the book itself.


In the last weeks we discovered together the base principles of Aspect Oriented Programing (AOP). Now is the time to see how we can use at real power the AOP characteristics using PostSharp. Before going straight to subject, let’s make a short recap. AOP is a programming paradigm with the main goal of increasing the modularity of an application. AOP tries to achieve this goal by allowing separation of cross-cutting concerns – using interception of different commands or requests.

AOP using Unity

In the last number of Today Software Magazine we talked about the base principles of AOP and how we can implement the base concept of AOP using features of .NET 4.5, without using other frameworks. In this article we look at Unity and see how we can use this framework to implement AOP.

AOP using .NET stack

In the following lines we will talk about AOP and how we can implement our own AOP stack using .NET Core features. First of all, let us see what AOP means. The acronym comes from Aspect Oriented Programming and it is another programming paradigm with the main goal of increasing the modularity of an application. AOP tries to achieve this goal by allowing separation of cross-cutting concerns.

Metrics in Visual Studio 2013

In the article of the last issue, we talked about how we can measure software metrics by using Sonar. This is a tool that can be very useful not only to the technical lead but also to the rest of the team. Any team member can very easily check on the web interface of the Sonar what the value of different metrics is.

Debugging in production

How many times has it happened to you to have a problem in production or in the testing environment which you are unable to reproduce on the development machine? When this thing happens, things can go off the track, and we try out different ways of remote debugging. Without even knowing, helpful tools can be right near at hand, but we ignore them or simply don’t know how to use them.

Load Test using Windows Azure

n a perfect world I would except to be able to run a load test or a stress test using a cloud provider without being forced to change any line code from my tests. In this article we will find out how to do this thing using the new cloud service. How will a person without knowledge of cloud be able to run a load test with 50.000 users for 24 hours with minim costs, without being obliged to purchase and configure 10, 20 nodes

Hadoop (III)

In the former issues, we discovered the world formed by Hadoop, a world in which 100GB or 500GB files are something ordinary. This allows us to do things we weren’t able to do before. When? The data our company collects can become a gold mine. As we are able to process huge amounts of data, we can visualize the data in a way that was not possible until now.

Hadoop (II)

In the previous number we’ve discovered what the secret of Hadoop is when it needs to store hundreds of TB. Based on a simple master-slave architecture, Hadoop is a system that can very easily store and manipulate a big amount of data. Hadoop contains two types of nodes for storing data. The NameNode is the node that plays the role of master. It knows the name and locations of each file that Hadoop stores.

Big data and Hadoop

We all heard about trends. We have trends in music, fashion and of course in IT. For 2013 there were announced some trends that are already part of our lives. Who didn’t hear about cloud, machine to machine (M2M) or NoSQL. All these trends have entered in our lives as part of our ordinary day. Big Data is a trend that existed last year and it remained one of the strongest one.

NoSQL Introduction

NoSQL – one of 2013’s trends. If three or four years ago we rarely heard about a project to use NoSQL, nowadays the number of projects using non-relational databases is extremely high. In this article we will see the advantages and challenges we could have when we use NoSQL. In the second part of the article we will analyze and emphasize several non-relational solutions and their benefits.

Microsoft in Open-Source

As we all know, the open-source project exists from the moment when the first line of code was written. In this post we will see what open-source meant for Microsoft in the past and what is the relationship between open-source community and Microsoft nowadays.

Scalability points on Cloud

Cloud - another buzz word that we hear almost every day. For the moment the providers that offer this service are: Amazon, Microsoft (Windows Azure), Google, Rackspace. When we think about cloud what comes to our mind? One, two or more instances that we keep on the cloud and when we need more resources we can grow very easy the number of instances.

Windows Azure - Mobile Services

The number of people who own new generation tablets or mobile phones is increasingly higher. Nowadays, almost every family has at least one device of this type. Much of the desktop applications have been or will be ported on this kind of devices. On tablets and phones we can currently see everything, from Office to very complex games.

Windows Azure Service Bus Messaging patterns

In this article we will discuss two design patterns you can use when you need to solve certain problems in an enterprise solution. The two solutions described here are based on Windows Azure Service Bus. This is a message delivery system offered by Microsoft. It is not necessary to install or configure any server in order to use it.

Service Bus Topics in Windows Azure

The first CTP of Windows Azure was announced in 2008 and after two years the commercial version was launched. Since then each new version of Windows Azure has brought new functionalities. If in 2010 the web role and worker role were the main strengths, Windows Azure from now is more complex and allows us to do things we could not imagine.

Background tasks Metro

The new operating system released by Microsoft has quite a few changes. One of these changes is the background tasks for Metro applications. Before talking about background tasks from Windows 8 we need to understand why they were introduced. Windows 8 appeared because of the necessity of the operating system to run on multiple types of devices. Besides those we are used to (desktop and laptop) more and more people have started using tablets. Even though in terms of CPU and memory they are becoming more powerful, the expectations we have from a tablet are different. Battery life is extremely important for a tablet.

Other authors from iQuest




  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • Yardi
  • P3 group
  • Ing Hubs
  • Colors in projects


Design contribution