Why 12-Factory methodology matters to your Microservice development?

Overview

In the Microservice development era, everyone is talking about Cloud-native, Cloud-friendly application development. But there are so many confusions measuring whether I am following cloud native / cloud friendly application development or not. One of the well known methodologies to measure such development practice is ’12-Factor’ application development methodology. We will dig deeper on what is 12-Factor methodology and how you can develop cloud friendly application with such practice below.

What is 12-Factor Methodology?

12-Factor Methodology

#FactorDescription
1CodebaseThere should be exactly one codebase for a deployed service with the codebase being used for many deployments.
2DependenciesAll dependencies should be declared, with no implicit reliance on system tools or libraries.
3ConfigConfiguration that varies between deployments should be stored in the environment.
4Backing servicesAll backing services are treated as attached resources and attached and detached by the execution environment.
5Build, Release, RunThe delivery pipeline should strictly consist of build, release, run.
6ProcessesApplications should be deployed as one or more stateless processes with persisted data stored on a backing service.
7Port BindingSelf-contained services should make themselves available to other services by specified ports.
8ConcurrencyConcurrency is advocated by scaling individual processes.
9DisposabilityFast startup and shutdown are advocated for a more robust and resilient system.
10Dev/Prod ParityAll environments should be as similar as possible.
11LogsApplications should produce logs as event streams and leave the execution environment to aggregate.
12Admin ProcessesAny needed admin tasks should be kept in source control and packaged with the application.

Why is it important?

12-Factor methodology ensures your development practices aligned with the Cloud native / Cloud friendly application development framework. This also ensures that, your development and deployment practices are aligned properly. Moreover you can also define business function boundaries efficiently when you plan your microservice application development.

Measure your 12-Factor support wheel

You can experiment the 12-Factor methodology in your projects. In-order to do that, first you need to measure your current level of support and then you can plan to improve your standards over the period of time. This should be done for each factor and the score will range from 0 to 10. I have demonstrated the measurement below just to explain how this should be done. You can also try such fun exercise and try to improve the score in the future.

NOTE: Never be worried about your current situation and score level.

I hope you have got a basic understanding of what is 12-factor application development methodology. I will share more details on how to use those factors and apply the concepts during your real application development in the future.

Further readings:

API Evangelist | Chief Hustler @workrituals.com | Habit Coach | Madras Java User Group Leader
78FollowersFollow
0SubscribersSubscribe

Latest articles

Flutter: How does column layout work?

Layouts are the fundamental starting points for developing Flutter applications. There are many layout options are available by default. I am going...

Flutter: Stateless vs Stateful widgets

Flutter is a mobile application development framework developed by Google. You need to understand the fundamental building blocks before you dig deeper...

Why Flutter is a great technology for makers &...

As per the wikipedia, Flutter is an open source UI development kit created by Google. It is used to...

Why 12-Factory methodology matters to your Microservice development?

The 12-Factor application development methodology and why is it important for your microservices strategy

When to use Firebase Cloud functions?

Recently I got a question from one of the Indie makers that, when to use Firebase Cloud Functions? This...

Similar articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here