Skip to main content

Posts

[Post-Event] Autumn ITCamp Community Event in Cluj-Napoca | November 7th, 2018, Romania

Recent posts

Features branching strategy using Git and Azure DevOps

Let’s talk about different branching strategies that can be used when you use Git. Let’s assume that you are working on a project where based on what clients need (and pay) you shall be able to provide a specific list of features. Each client can decide what feature he wants to buy and use.
The code is hosted inside Azure DevOps where you have a private Git repository. The solution is designed in such a way that you have a CORE layer, that it is common for all features. Because of the project complexity and how the solution is designed you cannot isolate each feature in a separate location. It means that the implementation of each feature can be found across the projects, in 2-3 different locations. A good approach that you can have is to create a branch for your CORE layer. Once this layer is stable for each feature, you can create a new branch from the CORE layer. The most significant advantage of this approach is the ability to merge different features at the moment when you need t…

HTTP 409 code when you use CreateIfNotExists with Azure Tables

A few days ago I took a look over Application Insights information that I have on one of my websites that are hosted as a Web App inside Microsoft Azure. In the last weeks I’ve made some improvements, and in theory, I should not have any errors reported by the Web App.

Taking a look on the Application Insights, I notified a 409 error that was repeating pretty often. It seems that the HTTP Error is thrown each time when a new user session is an initiate, and some information is read from the Azure Table.
POST azurestorageaccountname/Tables 409
The error was pretty odd initially, mainly because from the user flow and functionality, all things were on the right track. No errors reported on the UI, and the application behaved as expected.
The 409 error represents reported at the moment when an entity already exists, for example when an Azure Table already exists. Looking closer on the call stack I notified that the error happens each time when ‘CreateIfNotExists’ method on the table was ca…

IoT Home Automation | Alarm System Integration

In the last post related to home automation and IoT solution we talked about a simple watering system - http://vunvulearadu.blogspot.com/2018/05/iot-home-automation-basic-plant.html
In this post, we talk about how you can integrate the alarm security system and what is the approach that I used in the end. From the hardware perspective, I have an alarm system based on Paradox Magellan MG5050 with a K35 Keyboard and REM15 remote controls. On top of this, I have an additional module for messages - PCS 250

Mission
To connect the alarm system to ESP8266 in such a way that I could arm and disarm the house using the ESP8266.


First approach – Zone 8
To be able to control from an external device the Paradox board, you could, in theory, define a zone that can be used to arm or disarm the system. It can be confirmed using zone 8 (Z8) in combination with temper feature. Because I’m not a power user of Paradox systems, I was not able to configure it, just triggering the alarm system for too many tim…

Azure DevOps - Spin-up your software development pipeline

In the last weeks, Microsoft announced a new cloud service available for all – Azure DevOps. The main scope of this post is to identify the core features of this new service and what are the differences between Visual Studio Team Services and Azure DevOps.

What?
Azure DevOps it is a collection of services used during the software development phase. All these services are interconnected between each other and can be orchestrated from one location. There is full support for services like:

Task Management and Tracking (Agile boards, including Kanban)Source Control (Git)Build and Release for CI/CDTesting (Load and Performance Testing, manual or exploring testing)WikiReporting and custom dashboard capabilityCI/CD pipelinesExtension for integration with 3rd parties

Services Overview
Some services are similar from the functionality perspective with the previous service called VSTS. It is normal because Microsoft replaces the original service (VSTS) with Azure DevOps that has five pilers:

Azure P…

Immutable blobs inside Azure Storage (WORM)

Did you ever have a requirement that specifies that once a document is written in storage, nobody shall be able to modify or delete it, including the administrators? 
OR
Do you have a special business requirement that specifies that audit data can be written only once and nobody shall be able to alter them?

WORM
This kind of business requirements are called WORM (Write Once, Read Many) and are common for industries like financial or healthcare. When you have such a requirement on top of Azure, there were not too many options until now.

What we had until now?
With available features of Azure Storage, you could define groups of users that are allowed only to do read operations. The same thing can be accomplished if you wrap everything behind an API (e.g., REST API) that manage one operation are allowed or not.
In both scenarios, you still have some users or access keys that can do delete or update actions. From this perspective, it is impossible to guaranty or offers an SLA where data it i…

How to calculate the cost of CI/CD on top of Azure VSTS

In this post, we tackle the cost estimation of a CI/CD system that is hosted on top of Visual Studio Team Services (VSTS).

Context
We are starting from an on-premises system that has a CI/CD system build on top of Jenkins, which deploys the web application on a local IIS. Beside web application, we have for each project an SQL Server Database that can reach up to 100GB. The source control repository is GitHub, and for task management and tracking, we have JIRA.
In the current environment, we have around 20 projects that need such a migration, but the cost estimation is done project base, allowing us to have a better forecast for each project. We don’t take into consideration any other dependencies that a specific project could have like Windows Services.
Most of the client is already using Azure to host their production environments for their web application. Going into the cloud is more than acceptable for them. Beside this remember that you have the code inside GitHub.
In some cases,…