What is DevOps?
DevOps is not a tool.DevOps is not a job title.DevOps is the practice of development and operations engineers working together through the entire software development lifecycle, following Lean and Agile principles allow them to deliver software in a rapid and continuous manner.
DevOps is a cultural change that requires trust, transparency, and discipline across teams. Atlassian says, “Culture is the number-one success factor in DevOps.Building a culture of shared responsibility, transparency, and faster feedback is the foundation of every high-performing DevOps team.”
DevOps History
DevOps Dimensions
Essential characteristics of DevOps
- cultural change
- automated pipelines
- infrastructure as code
- microservices
- containers
- immutable infrastructure.
Please introduce yourself and share why you want to learn about DevOps. Is your organization currently practicing or considering DevOps?
Hello,
I am Poonam Joshi a software developer more experienced in android but currently wish to revamp my career by exploring machine learning and data science thus currently pursuing Mtech in the same.
As stated I wanted to explore something new and grow more apart from the front end with the buzz of DevOps I just explored the course but within a few videos, I understood this is exactly what I was searching for Not a total nerdy code part nor total management and operations I like both So DevOps suits the best
As I am a student no my organization doesn't practice DevOps but will surely like to implement or be a part of the process in my future organization
Some Practices/aspects to achieving DevOps
Social Coding
Social coding is done communally with public repositories and all team members are encouraged to contribute.
Pair Programming
Pair programming results in higher quality code because defects are found earlier, costs are lowered, and there is a broader understanding of the codebase.
Git Repo Handling
creating a repository for every component, following the Git Feature Branch workflow, then creating branches, and using pull requests is a good practice.
Working in Small Batches
working in small batches means delivering something useful quickly. Using single-piece flow leads to faster feedback loops.
MVP: Minimum Viable Product
An MVP is the minimal thing that you can do to test your hypothesis. An MVP is not about delivery as much as it is about learning. It’s okay if the MVP fails — make sure that you learn from it.
Test-Driven Development
TDD means test case drives the design and development of code.TDD allows you to develop faster and with more confidence. The Red, Green, Refactor workflow has to do with red as a fail and green as a pass, and it increases the quality of the code. In order to create a DevOps CI/CD pipeline, you must first automate your testing.
Behaviour Driver Development
BDD focuses on the behavior of the system from the outside in. It looks at the system as a consumer of it.BDD uses an approachable syntax that everyone can understand. Key benefits of BDD include improvement in communications, a common syntax, and acceptance criteria for user stories.
Gherkin
Gherkin is an easy-to-read natural language syntax that uses a familiar Given…When…Then… syntax.
Gherkin is easily understandable by both technical and non-technical people. If you’re wondering where the name Gherkin came from, the original tool that used this syntax was called Cucumber, and Gherkin is a pickle, and pickles are made from cucumbers. Tools have a way of producing funny names like that. Here is how the Gherkin syntax is used.
Cloud-Native MicroService
Cloud-native architecture is a collection of independently deployable microservices. Stateless microservices each maintain their own state in a separate database or persistent object-store. Microservices are loosely coupled services, designed for scalability and communication with APIs.
Continuous Integration
Continuous integration is a DevOps software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run
Continuous Delivery
CI/CD pipeline tools provide a way to automate deployment. Release, deploy, and operate are part of continuous delivery. The five key principles of continuous delivery have to do with quality, working in small batches, automation, continuous improvement, and shared responsibility. Continuous deployment is when automation is used to deploy to production.DevOps manages risk by increasing the rate of change rather than avoiding it.