Skip to main content

Posts

ISTA Con 2015, November 18-19 - Sofia

Next month I am invited to participate as a speaker at ISTA Con 2015 . This conference takes place in Sofia, Bulgaria. It seems that each year the conference is getting bigger and bigger. Last year there were more than 600 people that participated at the event. A big difference between ISTA Con and other conferences is the number of tracks in parallel - there are 4 track in parallel and more than 30 speakers from 3 continents will speak.  one.  I'll talk about cloud and how to scale above clouds limits. We are living in era of cloud (Azure, Google, AWS) where scalability is not a real problem. Scalability may not be a real problem anymore. For having a good cloud solution you need more than 1.000 VMs and an ESB (Enterprise Service Bus). You need a healthy and reliable architecture. See you at ISTA Con 2015 , that will take place in Sofia (November 18-19, 2015).   My session: Title:  How to scale above clouds limits  Abstract:  The numb...

Re-awarded as Microsoft MVP (4th year)

I'm happy that I was re-awarded as Microsoft Most Valuable Professional (MVP). This is my 4th year in a row as MVP on Microsoft Azure. I'm exited that I can sustain the local communities and online one with valuable content and information. I'm proud to be part of Microsoft MVP program. This year was a special one.I received the news exactly when we were in a load test with out IoT platform having more than 1900 CPU Cores allocated on Azure and trying to handle 100.000 of smart devices from life-science industry (for us a device is not a phone, is a real laboratory from an hospital). The devices were simulated using AWS infrastructure (more than 20k VMs that hit our platform - 250.000 requests/s) I will talk more about this in the future posts, but for new I will take a short brake, recovering after the load tests. What is MVP award? This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others....

How you can deactivate session affinity on Azure Web App and ARR

In today's post we will talk about REST API and stick sessions. Nowadays, REST API and Web Services are very common. We can find a lot of system and devices worldwide that are using HTTP(s) protocol and REST Services to communicate. It not very common to send a cookie or session information when you calling a REST endpoint. All information are send in the heather, but not like cookies or session data. In this situation you may want to disable sending cookies and session information to the clients. In this way you could use a little less resources on backend. Especially when you have a system that will need to manage hundreds of thousands of messages per second. This two things can be manage and disabled pretty easily. Going further, let's analyze what is happening when you host an endpoint like this on Azure like a Web App. It is important to know that in front of a Web App on Microsoft Azure we have out of the box a Load Balancer when multiple instances are deployed ...

What to do when you hit the throughput limits of Azure Storage (Blobs)

In this post we will talk about how we can detect when we hit a throughput limit of Azure Storage and what we can do in that moment. Context If we take a look on Scalability Targets of Azure Storage ( https://azure.microsoft.com/en-us/documentation/articles/storage-scalability-targets/ ) we will observe that the limits are prety high. But, based on our business logic we can end up at this limits. If you create a system that is hitted by a high number of device, you can hit easily the total number of requests rate that can be done on a Storage Account. This limits on Azure is 20.000 IOPS (entities or messages per second) where (and this is very important) the size of the request is 1KB. Normally, if you make a load tests where 20.000 clients will hit different blobs storages from the same Azure Storage Account, this limits can be reached. How we can detect this problem? From client, we can detect that this limits was reached based on the HTTP error code that is returned by HTTP ...

ListBlobsSegmented - perfect to iterate in large containers - Azure Storage Blobs

In this pot we will talk about 'ListBlobsSegmented' command, that allow us to get blobs from a container. When this command is useful? 'ListBlobsSegmented' is used when we need to fetch the list of blobs that are under a container of Azure Storage. This command will not fetch the content of blobs, only the metadata of blob will be fetched. Based on this information, if needed we can trigger the download. An important thing is related to the number of blobs that will be fetched when we make a call. The number of blobs that will be retrieved from a call is maximum 5.000 blobs metadata. If the container has more than 5.000 items, the response will contain also a BlobContinuationToken. This token can be used to fetch the next 5.000 blobs from the container. The size of the result cannot be changed. We cannot modify this value. Example: BlobResultSegment blobResultSegment = blobContainer.ListBlobsSegmented(new BlobContinuationToken()); while (blobResultSegment.Contin...

What to do when I receive 502 error code on an Azure endpoint - HTTP Request failed. Error Code: 502.

From time to time we started to receive from Azure Web 502 HTTP error code during some load tests. In this post we will talk a little about what can be the root cause of this error and how we can manage it. HTTP client exception: HTTP Request failed. Error Code: 502. This error does not appears very often, but can be annoying. Especially because the root cause of this error cannot be traced easily. When you have an Azure WebApp (Azure WebSite) or an Azure Web Role this error is not returned by your application. This error is returned in most cases by Azure Load Balancer that plays the role of ARR (Application Request Routing). When ARR doesn't receive a response from your application in 3 minutes (default timeout for Azure WebApp), a 502 error is returned. For ARR this means that the system is not in a good health, it could be even in a Pending state. The 3 minutes timeout period is specific for Azure Web App (Azure Web Sites) Solutions First think that you need to do is t...

App Service Plan - Why is important for Azure Apps

In this post we will talk about App Service Plan that exists for Azure App Service. The main scope of this post is not to cover all the details, but to put on the table the small things that can make a difference. Do we have a service plan for Web/Worker Roles? No, App Service Plan exists only for Azure App Services like Web Apps, API Apps, Logical Apps, Mobile Apps and so on. Why when I increase the number of instances of a specific Web App I increase automatically the size of the rest of the Web Apps from the same service plan? All resources are shared between all the applications from the same App Service Plan. This means that when you increase the number of instances, you will see this change on all Apps from the same App Service Plan. When I use the same App Service Plan does multiple apps share the same physical resources? Yes. All Azure Apps under the same App Service Plan are using the same resources. For example if you have 3 Web Apps under the same App Service Plan, ...