Releasing product is one of the critical phase of software development life cycle, so much brainstorming will go in to design versioning and release strategy for a product. In olden days, it was all different, applications were monolithic, build and release management teams used to build this, entirely as a package (.WAR or .EAR files) by creating one version and putting it in artifact repository, triggering a process to deploy package in application servers. Versioning is pretty straight forward because it is monolithic and treated as one application. Now things are changed, considering complexity and inflexibility of monolithic application, people has opted to build application as set of smaller and interconnected services called microservices. In effect of this, versioning and releasing of individual microservices and for overall application became complex. There are no straight forward principles which solves problem, it entirely depends on various factors like branching strateg...
This blog contains posts related to DevOps and Site Reliability Engineering practices. Following concepts are Covered vastly across posts: DevOps Principles ( Continuous Business Planning, Integration, Deployment, Testing and Monitoring ), Docker Lifecycle management, Micro Services, Software Configuration Management, Automation, Operating System(Compute, Network, Storage, Security), Programming languages and Container technologies.