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