Skip to content

You probably use Semantic Versioning for tags and you should not deploy master branch #1

@AhtiAhde

Description

@AhtiAhde

I believe you are probably using Semantic Versioning when you create tags. This would be nice thing to mention (how to name your tags).

You should always deploy from detatched heads (tags/commits instead of branches, which have history that can move), because this creates certainty to the deployment process (deployment with static commit hashes, instead of dynamic branches).

Also in robust systems, you should be able to run certain front-end servers with tags of next release and others with the previous release tag; this way your developers can test the actual servers and you can use load-balancers to direct only part of the visitors to the new release.

e.g. When Netflix releases a new version, only 5% of the users are redirected to the cluster which has the new release and rest of the users use the reliable version of Netflix. This way deployment doesn't create cascading problems.

Of course this is a bit too robust for non-critical systems, but the practice of Semantic Versioning and releasing tags instead of branches is easy to adopt, and when things get critical, you are ready.

Hopefully I expressed the ideas clear enough, I am in a bit of hurry at the moment. Hope this was helpful!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions