0% found this document useful (0 votes)
4 views

Module 6 – Applications_systems Development,And Deployment

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Module 6 – Applications_systems Development,And Deployment

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

MODULE 6 –

APPLICATIONS/SYSTEMS
DEVELOPMENT,AND
DEPLOYMENT
BY NATI & ESROM
PLANNING AND
SOFTWARE DEVELOPMENT REQUIREMENT ANALYSIS

LIFE CYCLE

PLAN

BUILDING OR
MAINTENANCE MAINTAIN DEVELOP DEVELOPING THE
PRODUCT

DEPLOYMENT IN THE
MARKET DEPLOY TEST TESTING THE PRODUCT
DESIGNING TINYURL
Steps needed to complete to production

REQUIREMENTS AND
GOALS OF THE SYSTEM 1
CAPACITY ESTIMATION
2 AND CONSTRAINTS

SYSTEM APIS 3

4 DATABASE DESIGN

BASIC SYSTEM DESIGN


AND ALGORITHM 5

6 SCALABILITY

CACHE 7

8 LOAD BALANCER

SECURITY AND
PERMISSIONS 9

10 MAINTENANCE
REQUIREMENTS FUNCTIONAL REQUIREMENTS

AND GOALS OF
NON-FUNCTIONAL REQUIREMENTS
THE SYSTEM
EXTENDED REQUIREMENTS
EXAMPLE OF URL SHORTENING

Input URL
Given a URL, our service should generate a shorter and
unique alias of it. https://www.ethiopia.com/collection/page/5668639101419520/5649050225344512/5668600916475904/
This link should be short enough to be easily copied and
pasted into applications.

Output URL
http://tinyurl.com/jlg8zpc
When users access a short link, our service should
redirect them to the original link.
CAPACITY TRAFFIC ESTIMATES
Assuming, we will have 500Mil new URL shortenings per
ESTIMATION month.

AND STORAGE ESTIMATES


CONSTRAINTS Let’s assume we store every URL shortening request (and
associated shortened link) for 5 years.

BANDWIDTH ESTIMATES
For write requests, since we expect 200 new URLs every
second, total incoming data for our service will be 100KB
per second.
500 million / (30 days * 24 hours * 3600 seconds) = ~200 URLs/s
New URLs 200/s

URL redirections 20K/s

Incoming data
THE FINAL GATHERED DATA 100KB/s

Outgoing data 10MB/s

Storage for 5 years 15TB


SYSTEM CREATE URL
createURL(api_dev_key, original_url, custom_alias=None, user_name=None, expire_date=None)

APIS api_dev_key (string): The API developer key of a registered account. This will be used to, among
other things, throttle users based on their allocated
quota.original_url (string): Original URL to be
shortened.custom_alias (string): Optional custom key for the
URL.user_name (string): Optional user name to be used in the
encoding.expire_date (string): Optional expiration date for the shortened URL.

DELETEURL
deleteURL(api_dev_key, url_key)

Where “url_key” is a string representing the shortened URL to be retrieved; a successful deletion
returns ‘URL Removed
DATABASE WHAT KIND OF DATABASE SHOULD WE USE?
A few observations about the nature of the data we will
DESIGN store:
1. We need to store billions of records.
2. Each object we store is small (less than 1K).
3. There are no relationships between records—other
than storing which user created a URL.
4. Our service is read-heavy.
BASIC ENCODING ACTUAL URL
We can compute a unique hash (e.g., MD5 or SHA256, etc.)
SYSTEM of the given URL. The hash can then be encoded for display.

DESIGN
AND
ALGORITHM
SCALABILITY CACHE
Presentations are communication tools that can be used as
demonstrations.
LOAD BALANCER
We can add a Load balancing layer at three places in our
system:
1. Between Clients and Application servers
2. Between Application Servers and database servers
3. Between Application Servers and Cache servers
PLANNING AND
SOFTWARE DEVELOPMENT REQUIREMENT ANALYSIS

LIFE CYCLE

PLAN

BUILDING OR
MAINTENANCE MAINTAIN DEVELOP DEVELOPING THE
PRODUCT

DEPLOYMENT IN THE
MARKET DEPLOY TEST TESTING THE PRODUCT

You might also like