Module 6 – Applications_systems Development,And Deployment
Module 6 – Applications_systems Development,And Deployment
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
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.
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
Incoming data
THE FINAL GATHERED DATA 100KB/s
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