Skip to main content


Showing posts from June, 2016

(Part 2) Azure Storage - Cold Tier | Business use cases where we could use it

In the last post we talked about Cold Storage tier. Together we identified what are the main features and advantages of their tier. In the same time we discover that there are some things that we need to take into account such as the price of switching between one tier and another or the extra charge that is apply when we replicate the Cold Storage content to another region.
This post is presenting different use cases where cold storage tier is a better option to store content. Also, cases when cold storage might not be the best choice will be taken into consideration.

Archiving Logs and Raw data
Because of different requirements we might need to store content for long period of time – 1y, 5y or even 20y. For this scenarios we need to identify a cheap location where we can store this data, with a minimum cost and in the same time to be sure that the content will not be lost or damaged after a period of time.
A good example is audit logs, that needs to be stored more than we can imagine…

(Part 1) Azure Storage - Cold Tier | Things that we should know

In this post we will talk about things that we need to consider if we want to use Cold storage of Azure Storage. This post we’ll be followed by another one that will present use cases when cold storage tier is useful and how we should integrated it in our system.
(Part 2) Azure Storage - Cold Tier | Business use cases where we could use it

Cold storage tier of Azure Storage is a new tier that is available for Azure Storage for data that needs to be persisted for long time with minimum costs. This tier should be used when data is not accessed frequently. In comparison with Hot tier, cold storage latency can be a little bit higher, but still it is in milliseconds.
Azure Storage contains multiple types of storages like Azure Queues, Azure Tables, Azure Blobs (block blob, append blob and page blob). Unfortunately, their tier is available only for block blob and append blob. It means that we cannot store an Azure Table or a Page Blob in the cold tier.
The Storage Account that allows…

Lesson Learn - Vertical scalability is dead end, especialy when your app runs in cloud

This week I was involved in a migration of an existing project that was written on Java stack to Azure. The current solution is using different technologies like Oracle DB, HA Proxy, Apache Tomcat, Elastic Search, Load Balancer and so on. There are around 5-6 different out of the box applications that are running around the solution.

The main purpose of the workshop was to understand the current architecture, how different components communicate between each other and what are bottlenecks of the current solution. The expected output of this workshop was a first draft of migration plan from on-premises to Azure.
As usually, I’m done my homework before. I already had in mind different approaches using not only Azure VMs, but also Web/Worker Roles, Docker and Service Fabric. I didn’t know the current architecture, so I tried to sketch some possible solutions.

Current solution
The purpose of the solution is to increase the security of user identity by offering a additional verific…

Event Hub and Service Bus - More useful exception information

Usually I don’t write posts about this kind of things, but last week I saw an update that makes our life better, especially if we are working with Service Bus or Event Hub.
If you had the opportunity to work with one of this messaging/event system and when to production with them, I’m pretty sure (99.99%) that you had at least one exception from the messaging system that was very vague.
A large system is not using only one Topic or Queue from Service Bus. But in the logs you can end up easily with a super duper generic exception, where you might not have all information about namespace, resource and so on. Because of this you start to write in the logs information from the ‘connection’ class to be able to log all the information that are needed.
Once you get an exception from Service Bus, you usually check the status of the service, look inside the code and try to find our what is the root problem. Sometimes you find the problem and you are able to fix it.
I’m happy in the moment when…

Ordering logs with different timestamp

Time is relative? Yes, it is. When you need to write Audit Data and Logs, you don’t want to have a relative time on different systems.
There are different protocalls for time synchronization like NTP that can help us to synchronize the time on machines. Unfortunately, based on firewall configuration or the type of access we have on that machines we might not be able to use NTP protocol.
Even if we are using NTP, depending on server configuration we can have a deviation of 1-2s between machines. A deviation of a few seconds might not be too much until you write logs and you try them to order them based on time. In this situation, reading the logs is not so simple – the logs order will not match with the execution order of the actions that were logged. Trying to understand what happen inside the system wil be hard.

If this is not enough, we might have cases when our application is running in different environments that are using different time servers. For example, we can have a group o…

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

Part 1 - (Part 1) Things that we should consider when the content stored in Azure shouldn't leave a specific country
Part 2 - (Part 2) Things that we should consider when the content stored in Azure shouldn't leave a specific country

In the previews post we talked about what is happening with the content than is tranfered from Azure Regions to your endpoints that reside outside Azure Regions.
We discover that even if Azure Regions and your endpoint are in the same country, you and Microsoft doesn't have any control on what is happening with the content from the moment when content is leaving their datacenter and arrives to your endpoint. Based on ISP (Internet Service Providers) routing rules and load, an ISP can decide to redirect your traffic to routes from another country.

In this article we will talk about different the replication fetures of different Azure Services. The main focus is to understand what replication features might not be complient with our requirments …

[Post-Event] Keyboard and Mice Event, June 2, 2016, Sibiu

This week I had the opportunity to speak at Keyboard and Mice event in Sibiu. This event is one the iQuest events for local IT communities.

As usually, Sibiu didn't disappointed us and more than 115 people joined this events. It was an event with full house. It was a pleasure to speak in front of so many people about what Microsoft is doing related to microservices from Service Fabric and Azure Service Fabric perspective.

At the end of the event, there were some very interesting round table discussion around mobile development, automated testing and over-engineering.

Feel free to take a look on the slides. Don't forget that you can contact me directly if you have any questions related to this topic. Also, at the end of this postyou can find some pictures from this event.


Service Fabric – Microservices in Microsoft World, Radu Vunvulea 30 may 2016 SIbiu from Radu Vunvulea

Azure Redis Cache becomes more powerful with new features

There were a set of updates related to Azure Redis Cache last days.

If you didn't had the opportunity to use Redis Cache until now, you should know that it is a in-memory data structure stores that is used very often not only as a database or a cache, but also as a message broker. It is fully with features that can make  your life easier.
Microsoft is offering this feature as a out of the box service, that you can use it from the 1st moment, no configuration or installations needed.

Some new features are now appearing in Public Preview, that will make Azure Redis Cache more appealing to anybody.

Azure Redis Cache Clustering
Until now we didn't had to many options on Azure Redis Cache if we wanted more power from it or if we would reach the size limit of an instance.
Now, in the moment when we create a new instance of Azure Redis Cache we have the ability to activate this feature and specify the number of instances that we need. Don't forget that each instance (shard) from t…