Skip to content

vikasg11/fifteen-factor-app

Repository files navigation

Fifteen Factor App

In the continuously evolving world of technology, the most pressing requirement for any software development is to have the application performant, scalable, easily manageable, and resilient. In 2012, programmers at Heroku debuted the Twelve-Factor app methodology that states the General Principles and Guidelines for creating robust Enterprise Applications.

Modern application architectures are very complex and the containerized approach of hosting Cloud Native applications, especially the microservices architecture, makes the complete environment highly dynamic. Though Twelve-factor app principles are equally effective today and do align with the changing environment, but need to have extensions to these principles is felt.

This article focuses on the additional factors that are pretty much in force and are highly discussed across the industry now-a-days.

The Methodology - Fifteen Factor App

Fifteen Factors are an extension and suggested additions to the twelve factors that support the modern application architectures. Looking at the complexity and architectural changes witnessed in modern applications, existing layout principles are being elaborated further and the key suggested factor additions are as below –

  • API First Approach
  • Telemetry
  • Security (Authentication and Authorization)

The methodology remains aligned with the principles suggested in core Twelve-Factor App methodology with an extension to additional factors –

  • Use Declarative Formats for setup automation, to minimize time and cost for new developers joining the project
  • Have a Clean Contract, offering maximum portability between execution environments
  • Are suitable for deployment on modern Cloud Platforms, obviating the need for servers and systems administration
  • Minimize Divergence between development and production, enabling continuous deployment for maximum agility
  • Dynamically Scalable without significant changes to tooling, architecture, or development practices.
  • Service-Driven Approach – Availability of the contract to be consumed by a Front-end client application, routing gateway, or any other downstream system
  • Monitoring the distributed applications deployments for domain/application-specific logs/data, health information, or more statistics on modern cloud platforms
  • Security (Authentication and Authorization) is addressed appropriately so that identity is implemented for each of the requests

15FactorApp-15-Factors.jpg

Article References to 15 Factors

Reference Description
Initial Setup & Tools Quick setup and tools reference to start with
01 - Codebase Start with Git Repository
02 - Dependencies Handle Dependencies
03 - Config Managing project Configurations
04 - Backing services Backing Services Insight
05 - Build, Release, Run Build, Release, Run stages reference
06 Processes Stateless Processes
07 - Port binding Port Binding Approach reference
08 - Concurrency Bringing-in Concurrency
09 - Disposability Bringing-in Concurrency
10 - Dev / Prod Parity Bringing-in Concurrency
11 - Logs Logging Guidelines
12 - Admin Processes Manage Admin Processes
13 - API First API First Approach
14 - Telemetry Telemetry - Application Monitoring
15 - Security Security - Authentication and Authorization

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published