DevOps and CI/CD

DevOps and CI/CD pipelines are crucial for modern software development. DevOps are practices, tools, and standard philosophies that are integrated in software development to standardize development and IT operations in one. CI/CD pipelines are continuous integration and continuous delivery pipelines that are created to speed up the development lifecycle.


CI/CD allows for developers to frequently merge code in shared repositories with each other and complete automated testing. The impact of such is that features and changes are pushed quickly while also maintaining a standard of quality through non time consuming testing. 

-Continuous integration (CI) is the aspect that ensures that developers code changes are frequently integrated to create less major merge conflicts of codes, and allows for bugs to get caught early on.  

-Continuous Delivery/Deployment prepares code changes for deployment through testing and deploying changes to production when ready. 


The importance of DevOps and CI/CD is that it shortens typically lengthy development cycles, it can be used to automate repetitive and time consuming tasks such as building, testing, and deploying code, when done properly can completely cut out human error from the process. DevOps can be used to better collaborate among teams, and lastly features and updates can be released frequently. 


CI/CD pipeline stages in a simplified manner typically consist of: i) code commits to shared repositories such as GitHub or GitLab, ii) Building where code is compiled through the CI tool, iii) Testing is done automatically to ensure functionality and detection of bugs, iv) Deployment, where builds that are approved go to staging or production, v) monitoring, where the system checks for performance or errors in the application.


Simple diagram (more stages can be added depending on product): 

Code Commit → Build → Test → Deploy → Monitor


CI/CD popular tools that are used in the industry are GitLab, Jenkins, GitHub Actions, Circle CI, Azure DevOps, etc. 


Comments

Popular posts from this blog

Software Engineering Best Practices

Netflix and On Demand Streaming