Git Product home page Git Product logo

fifteen-factor-app's Introduction

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

fifteen-factor-app's People

Contributors

vikasg11 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.