GitLab Installation | CentOS 6.x

This tutorial describes the steps to be installed GitLab WebUI server on CentOS 6.x edition. Before we move forward, let’s see what is this GitLab, it’s a web based code repository for management , review and issue tracking. Developers no need to worry about whatever the development methodology, is a waterfall, Agile or any traditional methods, it always streamline the collaborate development workflow up to the CI/CD pipelines.


This tool is basically opensource tool and anyone can setup the server easily for their testing or in-house development. As in git lab it comes with a visualize dashboard with monitoring as well, Further, developers could get stats for the projects as well.
Read More »


Semantic Versioning

When the development scope is being incremented, the complexity of development, Testing & Releases would be more complicated in Continuous Integration & Continuous Delivery pipelines. Downloading dependencies in software packages, and versioning is even more complicated of frequent releases if there is no well defined mechanism. Semantic versioning is one of the solution for reduce this complicated hassle.

Version is more important to developers to track their historical tracking, it gives a well defined versions of software releases. Therefor it adds more befits to the software development as well as CI/CD pipelines.

Benefits of Semantic Versioning

  • Historical tracking of code development.
    At any point developers can get the idea of code status from any historical point.
  • Universal builds packages are available to anytime deployment.
    Build can be triggered from any of previous tags, and it includes all the required dependency and other configurations. Therefor those tags can be easily used for build project deliverable as required from history.
  • Easily identify the code changes including API, functional and bug fixes.
  • Helps to manage releases and code development.

Semantic Versioning Format

There are three Major parts are in semantic versioning, Major, Minor & Patch.

  • Patch : Patch is where the developers change code to bug fixes after production deployment. This part is only changed when other major & minor are remained as it is. And this change should be backward compatible Please take a look on below example.
    v1.3.4 //before bugfix
    v1.3.5 //after bugfix
  • Minor : minor part also a backward compatible changed in functional requirements. When there is a feature development for a release, which is versioned with minor part of the version number, and this feature should be backward compatible. Below example shows the feature development versions.
    v1.3.5 // before feature development
    v1.4.0 //new feature development
  • Major : Major version defines about a massive change with backward incompatible of code change. That may a API change, architectural change or related changes.
    In such a major version is released, it cannot be revert back to a previous version since there a backward incompatible changes.

    v1.4.0 // before major change
    v2.0.0 // after major change

There are some several basic rules that everyone adopts in the semantic versioning.

  • Initial development should start with v0.1.0
  • When you want to release as first release from the project, it should be changed to v1.x.x

Best practice of versioning is very convenient way of improving software delivery cycles including CI/CD. Since most of the companies are adopting with DevOps and Agile practices, best practice of versioning is most important.

AWS CodePipeline for Continuous Delivery & Continuous Integration

AWS Codepipeline is one of the best CI/CD tool and which can be configured from developers’ code changes through production deployment. This tool visualizes and automates workflow and can be integrated with pre-configured tools to make the flow easier.

AWS CodePipeline

As in the above figure, AWS CodePipeline has been divided in to five categories.

Source : This is where the code repository is configured, this can be a 3rd party repository or AWS Codecommit lab. Any code change will be triggered soon after the code repository is updated.
Read More »


Automate EC2 Instance Start/Stop Using AWS Lambda.

AWS is one of the most purpler cloud service providers and most of the companies, individuals are using features are used in here. If user wants to start/stop EC2 instances after the R&D is done, why do we pay more for some 3rd party applications. Now you can use AWS Lambda instead of other 3rd party applications.


AWS Lambda is free for up to some level as follows. And instance start/stop can be integrated with a Lambda function in order to accomplish the task. A lambda function is where we list the task that we want to execute during lambda function runs.
Read More »


TURN Server | Installation & Configuration On AWS

This blog post describes the way how to deploy and configure Google TURN server with all required steps. Mainly this installation and configuration has been tested on AWS(Amazon Web Services) cloud computer and confirmed. Because there are some connectivity issues while connecting to the TURN server remotely.

  1. Login to the AWS console and go to the EC2 menu and then launch new instance. In here there is called “Community AMIs”, go to that option and select the AMI called “rfc5766-turn-server”.
    Screen Shot 2015-03-24 at 10.37.52 AM
  2. There are several AMIs are listed under “rfc5766-turn-server”, take the latest version of the TURN server AMI and launch it with the relevant CPU, Memory, HDD, Network ,etc.
    Screen Shot 2015-03-24 at 10.42.17 AM
  3. Read More »


Automating AWS Server Instances

This document describes how to automate server instance start/stop on AWS using a script. This automation make servers up only when they need for specific hours, as per user wants.

Please follow the steps to automate.

  1. Create an IAM role called ec2-operator using the IAM console view. (
    Read More »