top of page

An Insight on our Journey to Azure Infrastructure

Updated: Mar 4



Our previous client has been a big proponent of Microsoft technologies and chose to host every single platform to Azure cloud. The journey is very challenging but overall rewarding as we learn the new steps to grow the platform.


The technology is a Microsoft product composed of React, windows servers, C#, Microsoft SQL Server, Redis, Kafka, and containers.


Customer asks:

  • Customers don’t want all infrastructure systems running all the time in DEV if they are not used.

  • The customer wants all production systems running all the time with High Availability. The application has a lot of caching in place so that the database does not get overloaded.


Our Solution for DEV:

  • Use Kubernetes to host all containers.

  • Utilize Microsoft Azure SQL database serverless since it shuts down or pauses the database when not in use.

  • Convert all cron job tasks to either Kubernetes cronjob or Azure function timer trigger.

  • Utilize Istio for blue/green deployment.

  • Utilize Azure DevOps for ci/cd deployment since it has integration to Azure resources.

  • Utilize elastic search, logstash, metric beat, and filebeat for monitoring

  • Utilize Grafana for dashboarding and alerting that is integrated with Slack and Microsoft Teams

  • Utilize Azure event hubs as an alternative to Kafka

  • Utilize Azure cache for Redis


Our Solution for Prod:

  • Use Kubernetes to host all containers

  • Utilize Microsoft Azure SQL database with Elastic Pools so it scales on demand.

  • Convert all cron job tasks to either Kubernetes cronjob or Azure function timer trigger.

  • Utilize istio for blue/green deployment.

  • Utilize Azure DevOps for ci/cd deployment since it has integration to Azure resources.

  • Utilize elastic search, logstash, metric beat, and filebeat for monitoring

  • Utilize Grafana for dashboarding and alerting that is integrated with Slack and Microsoft Teams

  • Utilize Azure event hubs as an alternative to Kafka

  • Utilize Azure cache for Redis


The goal is to optimally utilize Azure to its full potential without causing too many problems on the budget.


Deployment:

  • Developers wanted to use a solution that is GUI based so we implemented Azure DevOps and argocd.


Why serverless?


We picked serverless database and function for various reasons.

  • It allows us to only use the resources as we need them

  • It allows us to scale on demand as we need them

  • It is highly available and reliable at least for development.


The biggest pain point we realize with serverless services are:

  • It is hard to upgrade resources

  • Databases are not updated to the latest.


The project took 5 months to complete and we verified that the platform auto-heals, auto-scales, and has safe deploys so that the entire business could develop more functionality as they go.


58 views0 comments

Comments


bottom of page