You are on page 1of 7

Acceder a Medium con Google

Julian Ignacio
japazac3@gmail.com

Web Application Architecture


Ignacio
ignacio.apcc@gmail.com

What’s web application architecture?

Viplove Prakash Follow


Sep 13 · 5 min read

A web application architecture describes the layout


of all the component of a web application and also
highlights the interactions between various
application components, third-party middleware
systems, web services, and databases. This provides
a snapshot of interaction between a number of
applications working together simultaneously to
provide service to end users.
The Difference Between Software Architecture And Software Design
Software architecture is highlights all the high-level components of a system and the
interaction within them.

Software design is a code level design focusing on distributing application business


logic into various modules with its own specific purposes. This helps in building and
managing the application business logic.

Web Application Architecture Diagram


Acceder a Medium con Google

Julian Ignacio
japazac3@gmail.com

Ignacio
ignacio.apcc@gmail.com

Web Application Architecture Diagram

User Agent
User-Agents are primarily tools that help users to interact with a server. User primary
interacts with a server using a web browser — Google Chrome, Firefox, Microsoft
Edge, Safari, and mobile applications on — Android and IOS platforms. User Agent
sends a request to the server and receives a response which is then shown to the user.

DNS
Domain Name Servers are like an address book for websites. Whenever a user send a
request to web address using browser, the browser utilize the DNS to find the web
server’s real address (IP Address) before it can send the request. The browser needs to
find out which server the website lives on, so it can send HTTP requests to the right
place.

Load Balancer
Load Balancer primarily deals with horizontal scaling. It directs the incoming requests
to one of the multiple servers, and the load balancer then sends the response which it
receives from these servers to the user. Usually, web application servers exist in the
form of multiple copies mirroring each other to provide consistency and availability.
The load balancer distributes tasks among them. It works well alongside server auto-
scaling.
Virtual Machine
In computing, a virtual machine (VM) is theAcceder
virtualization/emulation
a Medium con Googleof a computer
system. Virtual machines are based on computer architectures and provide the
functionality of a physical computer. Their implementations
Julian Ignacio may involve specialized
japazac3@gmail.com
hardware, software, or a combination.
Ignacio
Web Server ignacio.apcc@gmail.com

Webserver processes a user’s request and sends a response that includes data (HTML,
JSON, XML, etc.) back to a browser. Web servers hosted on a virtual machine utilize
computation power provided by VMs to perform their tasks. A web server usually refers
to back-end infrastructures such as database, cache server, job queue, and others.

Databases
The database provides tools for organizing, adding, searching, updating, deleting, and
performing computations on the data. There are generally relational databases —
MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database, and Microsoft Access, etc
and non-relational databases — MongoDB, Dynamo DB, etc.

Caching Service
Caching service provides storage for data, which allows storing and searching data.
Caching allows you to refer to the previous result to make computation much faster.
Caches can be applied and leveraged throughout various layers of technology
including Operating Systems, Networking layers including Content Delivery Networks
(CDN) and DNS, web applications, and Databases.

Client-Side — HTTP Cache Headers, Browsers

DNS — DNS Servers

Web — HTTP Cache Headers, CDNs, Reverse Proxies, Web Accelerators, Key/Value Stores

App — Key/Value data stores, Local caches

Database — Database Cache, buffers, Key/Value data stores

Content Delivery Network(CDN)


A content delivery network, or content distribution network (CDN), is a geographically
distributed network of proxy servers and their data centers. The goal is to provide high
availability and performance by distributing the service spatially relative to end-users.
CDNs serve a large portion of the Internet content including web objects (text,
graphics, and scripts), downloadable objects (media files, software, documents),
applications (e-commerce, portals), live streaming media, on-demand streaming
media, and social media sites. Acceder a Medium con Google

External Storage
Julian Ignacio
External Storages are used to store assets including images, videos, documents, and
japazac3@gmail.com

other large files. In many cases, there are also operations performed on these files.
Ignacio
Example — Youtube auto converts videos uploaded by users in multiple resolutions.
ignacio.apcc@gmail.com
Facebook converts user images and videos into a mobile-friendly format. Because
storing these data on a VM local disk can be costly and can consume large computation
resources, they are generally stored in external storage. Cloud Storage is one of the
most popular options.

Cloud storage is a cloud computing model that stores data on the Internet through a
cloud computing provider that manages and operates data storage as a service. It’s
delivered on-demand with just-in-time capacity and costs and eliminates buying and
managing your own data storage infrastructure

Web Services
Web services provide a common platform that allows multiple applications built on
various programming languages to have the ability to communicate with each other.

Web services use SOAP (Simple Object Access Protocol) for sending the XML data
between applications. The data is sent over HTTP Request. The data which is sent from
the web service to the application is called a SOAP message. The SOAP message is
nothing but an XML document. Since the document is written in XML, the client
application calling the web service can be written in any programming language.

There are mainly two types of web services.

1. Simple Object Access Protocol or SOAP web services.

2. Representational State Transfer or REST web services.

Data Warehouse
Data Warehouse is a system used for reporting and data analysis and is considered a
core component of business intelligence. Every modern application collects, stores, and
analyzes data. DWs are central repositories of integrated data from one or more
disparate sources. They store current and historical data in one single place that is used
for performing business intelligence and for creating analytical reports for the
enterprise.
The two main approaches used to build a data warehouse system are Extract,
transform, load (ETL), and extract, load, transform (ELT).
Acceder a Medium con Google

These three required processes are —


Julian Ignacio
japazac3@gmail.com
Extract: Extract data from multiple sources.

Ignacio
Transform: Transform the data including cleaning, margin, and categorizing.

ignacio.apcc@gmail.com
Load: Loading the data in storage for data warehousing.

Models of Web Application Components


There are only three models of web application components. It’s closely related to the
number of services and databases used for a web application. Here they are:

One Web Server, One Database

Multiple Web Servers, One Database

Multiple Web Server, Multiple Databases

Applicaton Services

The three so-called “Monolithic” models are due to their server’s rigid and stable
nature. In contrast, application services (microservices and serverless) tend to be agile
since they simplify upgrades and scaling. Applying this model allows splitting up web
servers into smaller parts: ‘services’ in microservices and ‘functions’ in serverless. Thus,
modifying and scaling independently using each of them is easier.

Web Application Architecture Best Practices


The principal criteria for building a reliable application architecture:

Efficient

Flexible

Reusable

Easily testable

Solves problems consistently and successfully

With well-structured and understandable code

Scalable in the development process


Have fast response times
Acceder a Medium con Google
Doesn’t crush

Doesn’t have a single point of failure Julian Ignacio


japazac3@gmail.com

Simple
Ignacio
ignacio.apcc@gmail.com
Uses go-to security standards

Useful resources:

https://www.youtube.com/watch?v=Z3SYDTMP3ME

https://en.wikipedia.org/wiki/Web_application

If you want to uncover few more mysteries behind


all the success in Silicon Valley, please follow me on
Twitter, LinkedIn or GitHub and checkout my
website viploveprakash.com.
Sign up for Geek Culture Hits Acceder a Medium con Google
By Geek Culture

Subscribe to receive top 10 most read stories of Geek Culture — delivered straight into your inbox,
Julian Ignacio
once a week. Take a look. japazac3@gmail.com

Your email Ignacio


ignacio.apcc@gmail.com

Get this newsletter

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information
about our privacy practices.

Web Development Web Server Software Development Software Architecture AWS

About Write Help Legal

Get the Medium app

You might also like