Previous proposalVirtual Nodes to auto-scale applications on Kubernetes
Next proposaleBPF: BPF kernel Infrastructure
Art and science of choices in engineering
Submitted by srujan akumarthi (@acsrujan) on Monday, 1 April 2019
Section: Birds Of Feather (BOF) Session Technical level: Intermediate Status: Confirmed
What’re the factors to consider when we make an engineering choice in tools/infra and how to evaluate the cost vs benefit of it.
How’s the choice usually made? What’re the several factors involved?
Do you really have a problem the tool is solving or the tool is making us think you’ve a problem.. how to find out if you’ve the problem or going to face it later.
The cost breakup of all elements:
Benefits of the tool >> Time to decide + cost (Engineering) + Cost (Operations/maintenance) + Cost (Infrastructure) + Cost (cultural drift)+etc.
How much percentage of cost is acceptable for the benefit.
Idenfifying elements unique to your company, that contribute to overall decision.
We’re going to deal with cost factor involved in choice of tools we adapt or build.
Total cost of adapting a tool = Cost (Engineering + Infrastructure + Operations + Service + Culture change)
- cost ( Infrastructure ) = straight forward.. may be map it to your cloud bills or so.
- cost ( Service ) = maintenance + management.. like every *aas out there, internal tools also require attention and service.
- cost ( Engineering ) = Average num of days it takes developers
*their average salary
*number of engineers for this project + coolness cost - tool familiarity + Estimation error + Research cost + Training cost
- cost ( Culture change) = This is hard to calculate in terms of numbers. You can measure how long did it take to bring everyone on same page. The length of meetings, time taken to decide an approach, the way a decision is made (was it with disagreements, setbacks, etc.) are some pointers.
Benefits = cost ( Engineering time saved due to the tool + Increase in revenue )
Important aspects to consider:
- This is a non-exhaustive list. There are several other factors applicable to your company.
- Take approximations when it comes to cost (culture change or human emotions)
- The solution offered by the tool, does the problem exist or you started to think you’ve this problem only after reading a blog post or such?
- Calculate it for long term.. may be, for 5 years ahead.. make a decision based on the cumulative.
Devops at webengage. We do optimisations quite frequently with cost in mind and adapt various practices+tools in order to acheive the same. I handle 40+ microservices at a scale of few services being at 100k requests per second.