Mohammad Umair Khan
Trainer, Mentor, Foo, Bar !
Software Developer
Jul 2013
Jul 2014
Snr. Software Developer
Jul 2015
Technical Lead
Aso. Architect
Jan
2018
Jan 2020
Soft.
Architect
Src: Wikipedia
How we should have built the software system
time
features
Difficult to add features overtime
time
features
Easier to add features overtime
Locate the code easily
Identifiable at a glance
Flat structure as much as possible
Try to stay DRY (Don't repeat yourself)
Credit: John Papa
Locate the code easily
Which is the controller layer?
Which is the service layer?
WTH is Elixir?
Locate the code easily
No need to say anything here ...
function mashIt(x, y) {
let retVal = x / y;
return retVal;
}
function divide(dividend, divisor) {
let result = dividend / divisor;
return result;
}
function helper.remove (x, y) {
delete x[y];
return x;
}
function deleteProperty(obj, prop) {
delete obj[prop]
return obj;
}
function delCostomer (x, y) {
// some logic
// to delete costomer
}
function deleteCustomer(obj, prop) {
// some logic
// to delete customer
}
Look for patterns to make the right decision instead of searching for the silver bullet
vertical/up or horizontal/out
Memory: 1 GB
vCPU: 2
Memory: 2 GB
vCPU: 4
Memory: 1 GB
vCPU: 2
up/vertical
out/horizontal
Monitor
CloudWatch
X Ray
Internet
App Server
Database
Internet
Load balancer
App Servers
DB
Cluster
App Server
Cached data
App Memory
Internet
App Server
Database
Internet
Load balancer
App Servers
with in-memory cache
DB
Cluster
Internet
Load balancer
App Servers
DB
Cluster
Distributed Cache Servers
Redis Cache
ElastiCache
Block Storage
S3
Glacier
File Storage
Page Blob
Block Blob
Files
Storage
Works the same way
SQL
CosmosDB
RDS
DynamoDB
Blue/Green Deployments
AKS
AppService
EBS
ECS
EKS
Login with your COGS credentials
Not every project needs cross-region replication
By Mohammad Umair Khan