DevOps is all about collaboration and communication. The ability to work with others, share information and ideas, and solve problems is essential for a DevOps engineer.
In recent times, DevOps(Developer Operations) has become a buzzword that many companies and individuals are referring to. To begin with, "What is DevOps?" cannot be answered in a few words or phrases. It is a part of Cloud Computing that helps us manage the operations we conduct on our infrastructure. It is the perception, experience and understanding of the culture of the organization and how it fits within the current era. Despite its name, DevOps isn't an innovative technology, tool, or framework. Rather, it is a philosophy and concept. Alternatively, we might consider it as a culture of an organization that places the application lifecycle at the center of its focus. However, DevOps is made of merging two words:
1. Development
2. Operations
Both teams have different responsibilities in the Application release management cycle. It is more related to communication, collaboration, and feedback between different stakeholders such as developers, testers, infrastructure teams, configuration management teams, deployment teams, etc. DevOps includes different sub concepts such as:
Continuous Integration(CI):
In this case, it is a practice of integrating application code or source code into source code repositories such as SVN and GIT on a daily basis. The sources of source code and continuous integration tools such as Jenkins, Atlassian Bamboo, etc. are incorporated into Ant and Maven to verify check-ins.
Continuous Delivery or Continuous Deployment(CD):
Continuous Delivery or Continuous Deployment is a term which used loosely in day-to-day use. A package file that is ready for deployment in any environment is considered Continuous Delivery, while a production ready package file can be considered Continuous Deployment. In order to manage applications release effectively, it is wise to orchestrate the end-to-end process. Being able to look at orchestration enables insight into the end-to-end automation process, which is highly beneficial to creating and maintaining DevOps cultures.
Continuous Testing:
These tools are also known as Automated Testing or Unit Testing. Junit or Selenium are used for this type of automated testing, and they are integrated into continuous integration.
Continuous Provisioning or Cloud Provisioning:
Cloud instances and virtual machines are highly available, flexible and pay-per-use. For different environments such as development, testing, staging, and production, creating different instances can be beneficial. Several cloud service providers, including Microsoft Azure, Amazon Web Services (AWS), and Google Cloud Platform (GCP) can be used to create an instance on the cloud. There are several cloud service models to take into consideration, including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), or even Software as a Service (SaaS).
Configuration Management:
The purpose of configuration management is to make sure that the runtime environment is ready consistently across all the environments. Ansible, Chef, Puppet and Puppetify are all configuration management tools. Using such tools in a Cloud environment makes managing resources a breeze.
Here's a very informative video from Will:
Thanks everyone!🤍
That is all for this post! Thank you for taking the time to read it - I highly appreciate it. I hope this Blog was helpful and you could take something out of it.
Leave a comment if this article helps you in any way... I'll see you next time!