-
How much time to invest in code refactoring?
-
Typically for new projects, assuming you are curating code well, no dedicated effort
-
Second year of the projects - start investing 10% of team effort on code refactoring
-
Increase this effort by 10% every upcoming year
-
-
Spagetti codebase
-
Lasagna Architecture - Un-necessary layering in code
-
Ravioli Architecture - Microservices
-
Rule of Three - code duplication
-
ReadMe Contents
-
Purpose
-
Scope
-
Installation
-
API details
-
Architecture diagram
-
-
Grow Fat - Codebase grows, all things slow down
-
Age - Introduction of new technology becomes difficult
-
Ownership -
-
Economics of Scale
-
Optimize for rapid aad sustainable flow of value
A minimal Service:
-
Expose a port
-
Health check - 200 UP, 500 DOWN
-
Stateless
-
Deep Check
-
Check if service fails to connect to its dependency
-
Code and Builds - 1 repo 1 build Separation of config from code
-
Always deploy empty service to production
-
Developers in control
-
Artifact
-
Compute
-
Resources
-
Ownership
-
Alarms
-
Configuration
-
How to trust your mock?
-
Rely on Monitoring
-
Stable API’s
-
Contract testing - for internal fast moving API’s
Semantic Check:
Automated test runs against a node before it is added to LB.
-
Neural Networks - Every pixel of the image is considered as a separate neuron
-
Activation Function
-
Learning Algorithm
-
Pick up a training example (e.g. image) **
-
-
Stop promoting use of openjdk:latest (promote use of right versions)
-
Alternatives to Docker - Joyent Triton, CoreOS, CloudFoundry
Benefits containe brings (PODA):
-
Portable
-
Immutable
-
Faster to build
-
Lighter to distribute and run
-
Availability of pre-built blocks e.g. prebuilt images
-
Consistent across platforms, stages