Skip to main content

Cloud

Be Cloud Ready with 12 Factor App

Codebase –  One application one code base. Configuration should not be part of your application code.

Dependencies – Application must supply its dependencies than relying on environment to provide.

Configuration – Everything that changes should be declared outside code. User environment variable for configuration.

Backing Services – Backing services are external resources and should be referred using configuration/URL

Build, Release, Run – Treat Build, Release and Run as separate process. Build Step should just build application and package all its dependencies in it. Release process should use packaged app and apply necessary configuration for deploy and Run is nothing but executing deployed/released application.

Processes – Applications run as one more stateless process. If application need to maintain state, they should use backing service to maintain state.

Port Binding – Export services via port binding, One app can act like backing service for another.

Concurrency – Scale out via the process model. Scale by adding more application instances which is same as horizontal scaling.

Disposability – Maximize robustness with fast startup and graceful shutdown. Processes should be disposable.

Environment parity – Keep various environment like development, staging and production as similar as possible. This is a result of High Quality, ensures continuous delivery.

Logs – Treat logs as event streams. Your apps should write to stdout. Logs are streams of aggregated, time-ordered events. You can use software like splunk to build analytics on logs.

Admin processes – Run admin and management tasks as one-off processes. One-off admin processes should be run in an identical environment as the regular long-running processes of the app. They run against a release, using the same codebase and config as any process run against that release. Admin code must ship with application code to avoid synchronization issues.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Susheel Kumar

More from this Author

Follow Us
TwitterLinkedinFacebookYoutubeInstagram