Lec1 - Web Application Architecture Flashcards

(23 cards)

1
Q

Web application architecture

A
  • Framework defining interactions between components of a web app (e.g. UI, Server logic, databases)
  • Determines performance, scalability and security of web app
  • Front-end (client side), Back-end (server side)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Client-server model

A

Request services as client, server provides response. The request-response cycle repeats.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

multi-page apps

A

Multiple pages loaded separately. When new pages accessed, browser sends request to server, which returns a new page for the request.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Advantage of multi-page apps (MPA)

A
  • better for SEO (search engine optimisation) (loads it faster because it only has to load one page at a time), easier to maintain certain types of application
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Negative of MPA?

A

More server load (each new page means a new request) so slower navigation (slow to wait for page to load)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

single page applications (SPA)

A

Front-end loaded initially in entirety and further interactions are handled without full-page reloads (dynamic content updates). Updates happen by making API calls to back-end.

E.g. Google maps - each scroll
Is new content, only content updates not whole page

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Advantages of SPA

A

Faster user experience
Reduced server load

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Disadvantages of SPA

A

SEO challenges (as whole front end loaded at once) and so initial load times can be high

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Monolithic architecture

A

Single indivisible unit
Components are interconnected (database and backend are tightly coupled)
(One big system)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Pros and cons of monolithic architecture

A

+Simpler to develop and deploy, easier debugging
-Scalability issues (harder to update and maintain)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Micro services architecture

A

Small independent services that communicate via APIs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Pros and cons of micro services architecture

A

+Scalability and flexibility (using different technologies to complete tasks and it all working cohesively)
- Complex to manage and deploy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

DNS

A

DNS provides a distributed database we can query for the IP address

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Front-end technology

A
  • HTML
  • CSS
  • JavaScript
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Back-end technologies

A
  • server-side languages: Python, JavaScript, Ruby
  • Web-servers
  • APIs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Database management

A
  • CRUD (Create, Read, Update, Delete)
  • SQl
  • NoSQL (MongoDB)
17
Q

RESTful API architecture

A

Styled for designing networked applications.
Stateless, resource-based interactions

18
Q

Deployment

A
  • ensures app is accessible, scalable, secure and has high performance.
19
Q

Deployment environments

A
  • development: Local machines, write and test code
  • production: live and accessible to users
  • staging: replica of production used for full-scale testing
20
Q

Deployment models

A
  • on premises: app hosted on physical servers by organisation
  • cloud-based: hosted on cloud services, offering scalability and reduced overhead
  • hybrid: combo of both
21
Q

Deployment costs

A
  • initial: setup including server or cloud-services
  • ongoing: maintenance, scaling and monitoring
  • optimisation: Auto-scaling and pay-as-you-go methods
22
Q

Metrics

A

Response time
latency
throughput

Used to analyse performance of good apps

23
Q

Scaling and performance

A

Types of scaling: Horizontal (more machines), Vertical (increase power of machines)

Performance optimisation: caching, load balancing (distributed load across two or more server)