Rules : Scenario of Building an App

Rumman Ansari   Software Engineer   2025-02-11 08:51:48   442  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Table of Content:

CI/CD Rules

Until now, you had read through the concept of continuous deployment.

The main rules to be followed for building and deploying an application are listed in the upcoming cards. (Short summarization of CI and CD concepts).

Codebase

Rule: One codebase, many deploys.

Codebase: Single repository (like subversion) or set of repositories (like Git).

  • One to one correlation must be maintained between codebase and application.

  • Codebase must remain same across each deployment (versions can be different).

Dependencies

Rule: Declare and isolate dependencies.

  • Maintain a dependency manager

    • To specify the libraries required for the app.

    • Enables a developer to check out the app's codebase.

  • Install language runtime and dependency manager as prerequisites.

Configuration

Rule: Store configuration information in environment variables (Env Var).

Configuration includes:

  • Resource handles to the database, other backing services.

  • Credentials for external services like AWS S3.

Configuration varies across deploys while code does not.

Storing it in Env Var makes it easy to change without changing code.

Backing Services

Rule: Treat backing services as attached resources.

Backing Services are resources that the application needs for its normal operation like:

  • Data stores (MySQL)

  • Messaging systems (RabbitMQ)

  • Email services (Postfix)

  • Caching systems (Memcached)

Backing Services...

Backing services are managed:

  • Locally by system administrators (like a database).

  • By the third party (like email services).

Ensure for the app:

  • There must be no distinction between local and third party services.

  • Services must be easily swapped without any code change (local with a third party and vice versa).

  • Attach and detach services when required.

 
 

Build, Release and Run

Rule : Separate the build, release and run stages.

Codebase gets transformed into a deploy element in three stages:

Build stage:

  • Converts a code into an executable bundle.

  • Gets dependencies and compiles binaries.

Build, Release and Run...

Release stage:

  • Integrates the build with configuration.

  • After this stage, change is ready for immediate execution.

Run stage (or runtime) :

  • Runs the application.

Strictly separate build, release and run stages. For example, do not change a code at the run stage, as it cannot propagate back to the build stage.

 

Port Binding

Rule: Export services through port binding.

At times web apps are executed inside a container. For example, Java apps may run inside Tomcat.

Instead, the app could export services:

  • By binding to a port.

  • Listening to the requests coming in on that port.

For example:

  • Tornado is used for Python.

  • Visit a service URL such as http://localhost:5000/ to access the service.

Disposability

Rule: Fast startup and graceful shutdown.

  • Start and stop application processes when required.

  • Enables robust production deploys (quick code or configuration deployment).

Environment Parity

Rule: Keep all environments as similar as possible.

All environments such as dev, staging and production must use the same type, versions of backing services.

 



Learn Continuous Deployment from scratch! This beginner-level course covers CI/CD pipelines, automation, and deployment strategies. Perfect for developers, testers, and IT professionals looking to streamline software delivery.


Stay Ahead of the Curve! Check out these trending topics and sharpen your skills.