High-level Introduction: DevOps

A short trip behind the scenes of DevOps

Itchimonji
CP Massive Programming
5 min readSep 14, 2022

--

DevOps is a solution enabling security, reliability, and agility. It comes into play when somebody talks about security breaches, time to market, and massive technology transformation.

What is DevOps?

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality.[1] DevOps is complementary with Agile software development; several DevOps aspects came from the Agile methodology. [Wikipedia]

DevOps derives from the combination of Dev (Development) and Ops (Operation). It is a culture that has given rise to a set of practices of certain principles, e.g. CI/CD, Observability, Infrastructure as Code, and Cloud. It is also a grassroots movement created by practitioners for practitioners.

DevOps are not tools or anything similar, but tools are essential for success in DevOps. It is also not a standard — there are so many good practices out there but we need to look which principles match our mindset or our organizational culture. It is also not a product or a job title — it is a culture of collaboration between developers and operations in the entire organization.

DevOps grew out of Agile Software Development Movement in 2007. Agile seeks to develop software in small and frequent cycles to deliver functionality to our customers quickly. So, DevOps and Agile go hand-in-hand. It became mainstream and spawned a large variety of tools and best practices. DevOps completely changed the IT industry forever.

Goals of DevOps

The goal of DevOps is the collaboration between Development and Operations departments which target different goals.

Software Developers want to deliver as many features as possible to the customer — so, we change the environment constantly. The goal is to generate value with lot of features customers want to have to solve their problems or to generate money. “Time-to-Market” is a metric to measure the speed of feature turnaround time.

The Operation department wants to stabilize the system so the customer can use the software all of the time. Many changes can compromise the environment’s reliability and cause outages. High availability is no longer guaranteed due to failures.

With DevOps, the aim is to ensure speed and stability so that both departments can achieve their goals instead of “throwing code over the wall”. Developers and Operations need to share the same goals and work together with different tools and practices. That means to minimize production failures and immediate recovery from failures — before the customer even notices.

When all these teams work together, we can create a safe system of work, enabling small teams to quickly and independently develop and validate code that can be safely deployed to customers. This results in maximizing developer productivity, organizational learning, high employee satisfaction, and the ability to win the marketplace. [DevOps Handbook]

With DevOps we have the possibility to automate various steps of every department in a Build Pipeline. With that we make each step transparent for each department.

Application monitoring is an important part of the process to make sure the software is working correctly and does not cause failures. With monitoring, we determine if a system is about to fail before it actually does — prevention, so to speak. Of course, we are also informed when a system has really failed. Alerts help with notification here. But we should be careful how frequently we are notified about certain things.

“When deciding whether a message should be ERROR or WARN, imagine being woken up at 4 AM. Low printer toner is not an ERROR.” [Dan North]

Why do DevOps?

DevOps is a growing approach and TECH employees tend to be happier doing DevOps rather than working in traditional silos. Developers and operators have more time for innovations and do not need to spent more time putting out fire. As a software developer, nobody likes to fight to get the work out there and as an operator, nobody likes to fight to get the system stabilized.

With DevOps customer features get delivered quickly and frequently.

Practices of DevOps

Over time, some common principles and practices have emerged that can be used to implement DevOps and bring it into your organisation. Here is a small list of things we can look at:

  • Build Automation
  • Continuous Integration
  • Continuous Delivery & Continuous Deployment
  • Infrastructure as Code
  • Orchestration (Automation that supports processes and workflows)
  • Monitoring
  • Microservices (Small, single responsibility, loosely coupled, fast changeable)

Conclusion

“DevOps requires potentially new cultural and management norms and changes in out technical practices and architecture. This requires a coalition that spans business leadership, Product Management, Development, QA, IT Operations, Information Security, and even Marketing, where many technology initiatives originate.” [DevOps Handbook]

Thanks for reading! Follow me on Medium, or Twitter, or subscribe here on Medium to read more about DevOps, Agile & Development Principles, Angular, and other useful stuff. Happy Coding! :)

Resources

Learn More

--

--

Itchimonji
CP Massive Programming

Freelancer | Site Reliability Engineer (DevOps) / Kubernetes (CKAD) | Full Stack Software Engineer | https://patrick-eichler.com/links