“Innovation is the outcome of a habit, not a random act.” — Sukant Ratnakar
When I interact with software developers on campus, there is something enviable about what they do. Once in a while, the thought of transitioning to computer science crosses my mind, but deep in my heart I know I wouldn’t trade a dime for Mechatronics. My experiences in this field are quite memorable. When I heard Kelsey Hightower talking about the 12-factor application paradigm, I was intrigued. I read about it and got the essence of it. The dopamine levels then relaxed. One year later, during the just-concluded JKUAT SES Tech Week, the speakers emphasized building resilient applications.
The 12-factor paradigm is predominantly applied in software development, but could we extend an olive branch to the hardware world? The rise in IoT applications sparked my idea for writing a blog series on the 12-factor IoT paradigm for IoT applications. The recent Facebook outage had a cascading effect on the internet which gave me more reasons for doing this. Are we capable of building resilient applications that scale on their own?
The twelve-factor app is a paradigm of software app development technique that saves time and money for new engineers entering the project. It also uses declarative formats for setup automation, maintains a clean contract with the operating system, and maximizes portability between execution contexts. Without requiring substantial modifications to tooling, architecture, or development methods, it can scale up.
After working on the development, operation, and scaling of hundreds of thousands of apps on the Heroku platform, Heroku developers created the Twelve-Factor App methodology. They found that successful apps have a set of key concepts in common. The Twelve-Factor App, which was first released in 2012, tries to distil that knowledge into 12 factors of best practices.
- Backing services
- Build, release, run
- Port binding
- Dev/prod parity
- Admin processes