we can split the word to :
Dev(elopment) + Op(eration)S = DevOps 😁
DevOps is a software development methodology that allows an organization to deliver applications and services at high speed.
The speed is due to the collaboration between software development and IT operations teams which, by collaborating, are able to reduce the development cycle and provide continuous delivery while maintaining high software quality.
How does It work ? 😯
The team of developers creates code collaboratively using a version control tool (for example Gitlab) as a place to keep all the code and update its features.
TIPS : learn to use branches on version control (Gitlab or Github) to develop your program features, your future team will appreciate.
The development team is constantly testing the code for bugs.
Automatic testing tools are used to test various parts of code in parallel according to various criteria (style test, security test, code coverage test, etc.)
The integrations with external services (for example a database) that the program performs are also continuously tested, this is called integration test.
TIPS : Learn to use Docker, with it you can simulate test environments automatically (and not only)
The operation team releases the build (i.e. the application) and then takes care of deploying it on all production servers. In this way the application is available to the public.
Containerization tools (for example Docker) are used to maintain consistency between the environments in which the application is developed, tested and deployed, thus avoiding errors during the development cycle ( the application will work in any computer).
TIPS : Did I mention that Docker is important ?
The operations team constantly monitors the performance of the application looking for problems, guaranteeing the security and availability of the application. In this phase, problems such as low memory errors, server unreachable, network problems, and the like are automatically identified and fixed.
HOW IS ALL THIS POSSIBLE ? 😯
The teams develop code in an agile way (DevOps derives from this methodology) and therefore not perfect and immediately send it to the pipeline (the one just described).
The pipeline being automated will provide fast reports and the code will be fixed continuously.
A loop is created that allows the team to always improve the quality of the code while still providing an excellent service to the end user.
WHAT DO YOU THINK ABOUT THIS METHODOLOGY ?
Let me know !! 👊