Saturday, November 6, 2021

 

This post is a continuation of a series of articles on Azure such as this one: https://1drv.ms/w/s!Ashlm-Nw-wnWhKdsT81vgXlVl38AfA?e=cZz5jq . This describes the Azure architecture for startups:

Azure saves significant costs for big businesses, but it is a compelling value provider for startups as well. The core startup stack architecture makes use of factors that differentiate the requirements for startups. These refer to speed, cost and options where the business needs change rapidly and a sound architecture and system design can minimize the impact to the system while incrementally building the solutions.

Many startups start with a single monolithic application because they don’t have the requirements mature enough to warrant complex microservices pattern. This is best served by an architecture that involves an Azure App Service to provide a simple App Server to deploy scalable applications without configuring servers, load balancers or other infrastructure, an Azure database such as PostgreSQL for RDBS storage without the hassle for maintenance and performance tuning, Azure Virtual Network to segment virtual network traffic and keep internal services protected from internet threat, a GitHub Actions which helps build a continuous Integration and continuous deployment pipeline, a blob storage for unstructured data, a CDN or content delivery network for distributing data throughout the global network with reduced latency and Azure monitor that analyzes happenings across the applications infrastructure.

The core startup stack components are layered minimally such that the product can get off the ground and into the hands of the customers. 80 percent of the startups will use a stack comprising of a storage or persistence layer, a compute or static content layer and the CDN to distribute it to different clients.

With few customers at the start, a CDN might seem premature but adding a CDN serves two-fold in terms of avoiding significant costs to retrofit later on and providing a façade behind which api and architecture can be refined.

The AppServer is where the code runs. This platform should make deployments easy, while requiring the least possible operational input. The app server should scale horizontally. With the help of PaaS, challenges concerning the traditional use of bare-metal, web server, virtual machines etc. are avoided.

Static content does not have to reside on the app server.  The proper use of a CI/CD pipeline can build and deploy static assets with each release. Most production web frameworks deploy static assets.

When the app is running, it needs to store data in a database from online transactions processing. Using the managed instance of a relational database reduces the operational overhead and improves app optimizations.

Log aggregation is extremely useful to debugging and troubleshooting. Frequent integration avoids divergent code bases that lead to merge conflicts.

Leveraging the GitHub Actions, many of the compliance, regulatory, privacy and bounty program processes can be automated. These automations can similarly be expanded to relieve pain points for the startup during the initial growth phase.

 

 

No comments:

Post a Comment