Hi, I’m Dinesh T, a DevOps Engineer. In this Series about DevOps, we will be diving into how organizations make cultural and Technical transformations to be successful and flourish in their DevOps journey so you can cherish the full potential of DevOps in your Organization.
Introduction,
Gartner Predicts that through 2024, 75% of DevOps initiatives will fail to meet expectation due to issues around organizational learning and changes.
~ Gartner inc, Technology & Research firm
One of the key reasons an organisation fails to meet expectations is not related to skills or tools but to organizational learning and cultural change issues. changing or adopting the new culture will have a significant amount of positive effects on DevOps’ success. cultural change for the well established big enterprise is quite harder compared to creating a new culture in the startup so during the initial stages startups have an unfair advantage of easily attaining DevOps success reason is they don’t want to change a long followed culture all they have to do is to follow the new culture. so how do you change a culture?
to change the culture, we need to learn new ways of how to think, how to work, how to organize, and, how to measure.
Throughout this series, we will cover how businesses are being affected by disruption and how DevOps culture can help prevent it. thinking differently through social coding and improving software reuse and sharing. we will learn ideas from lean Manufacturing such as working in smaller batches to reduce waste and creating minimum viable products to gain valuable insights. and to ensure repeatable behaviour and high-quality code we will explore Test-driven and Behaviour-driven Development. lastly, how establishing continuous integration and continuous deployment will make all the code changes potentially shippable features.
According to the 2021 Accelerate State of DevOps report by the DevOps Research and Assessment Team (DORA) “Team Culture makes a large difference to a team’s ability to deliver software and meet or exceed their organizational goals” to change your culture you’ll need to organize your teams differently because how you organize directly impacts the architecture and design of the products that you produce.
Humans have a knack for figuring out what behaviour is rewarded, and then doing - or atleast pretending to do that rewarded behaviour.
The last cultural change we will be looking at in this series is measuring differently and, how changing your measurement system. to encourage the correct behaviour is critical for your success because you get what you measure. finally how to avoid being fooled by vanity metrics and use actionable metrics to gain valuable insights about your product and customer.
Why businesses need to practice DevOps,
Technology is a enabler of Innovation, rather than a driver of Innovation.
~ John.D.Rofrano, IBM
Since 2000, fifty-two per cent of Fortune 500 companies have disappeared, primarily due to disruption. It's not a question of if a company will be disrupted, but when.
Take banks, for example. While they may think, “Who could disrupt me?” but, they risk losing customers if they take too long to innovate. when a competing bank can quickly launch an app that allows customers to deposit checks by simply taking a photo.
Many people attribute their disruptions to technology, but the same technology is available to established firms. The difference lies in the business model.
Uber exemplifies this. They combined existing technologies like GPS and electronic payments with a groundbreaking approach to ride-sharing, allowing users to summon drivers via smartphone. It’s not just about technology; it’s about how you apply it.
Similarly, Blockbuster failed to recognize that it was in the entertainment business, not just video rentals, while Netflix evolved from mailing DVDs to streaming content, ultimately leading to Blockbuster's downfall.
In contrast, Garmin successfully pivoted from GPS devices to fitness trackers, showing that adaptation is crucial in an ever-changing market. Companies must either innovate or face extinction.
DevOps Definition,
I know you’re already familiar with the term DevOps. since it’s been buzzing around in all the tech community. but the thing is all are terming the DevOps according to their own understanding which led to a lot of ambiguity in the market. and many are conveyed that DevOps is all about tools and people forget about the original core idea of DevOps. so in order to break the ambiguity let’s go back to its inception and work our way forward.
In 2009 Patrick Debois coined the term “Development Operations”. As he said “Development Operations” is an extension of an agile development environment that aims to enhance the process of software delivery as a whole.
yes, DevOps is an extension of Agile. To completely understand devops it becomes mandatory to know about what Agile did for the Devs and how it did nothing for Ops. Agile transformed software development by focusing on flexibility, collaboration, and faster iterations, but it didn't address the challenges faced by operations teams, who were still dealing with manual, slower deployment processes. This disconnect created friction between Devs (who wanted faster releases) and Ops (who prioritized stability).
Patrick Debois is saying, “What if we applied Agile to Ops? What if we treat them the same?” This is why sometimes people call DevOps “Agile for Ops.” This makes the Ops as Agile as the Devs by working together for a common goal. which led to promoting collaboration between Development and operations, automating the deployment process, and enabling faster and more reliable software delivery.
DevOps is a recognition that development and operations must stop working in silos. They have to start working together.
I like to say DevOps is the practice of development and operation engineers working together during the entire development lifecycle, following lean and Agile principles that allow them to deliver software in a rapid and continuous manner. I want to do it fast. I want to do it continuously. And I want to do it with Dev and Ops both together through the entire software lifecycle.
To do that, we need to change to a culture of collaboration that values openness, trust, and transparency. We must adopt a new application design that does not require entire systems to be redeployed just to add a single function.
we are not going to be able to deploy these large, monolith applications 10 times a day. We need automation that accelerates and improves the consistency of application delivery so that we can deploy and deliver our software with speed and stability.
DevOps Adoption,
Devops is not about tools. its all about Trust, Transperancy, communication, co-ordination, and Discipline.
why major companies are embracing DevOps and recognising that DevOps requires a cultural change. Yes, they were right DevOps requires a completely different mindset so you must first unlearn what you have learned. to embrace the culture of DevOps you must unlearn your current culture. it’s easier said than done. but consider this, what if you fail fast and roll back quickly? you could limit your blast radius of change. if you put something into production and if it goes wrong. it won’t put the complete system down. what if you could test in the market instead of second-guessing and analyzing? split test or A/B test is where a new feature will be available to a set of audiences and the remaining audience continues to use the current version they analyze how the users react to the new feature and decide to either pivot or persevere. this is the test in the market and it is very powerful. what if you had an application design that allows you to change individual components to be replaced? instead of Bigbang release of a complete application.
This was the approach followed by Spotify an online music streaming company where instead of maintaining their source code as one large chunk they have decided to divide the app into microservices. so that even if there is an issue in the recommendation service the user would still continue listening to the music instead of complete system down. these are the things that enables to move features Fast time to the market
in 2009 at the velocity conference fast time to market opened lot of peoples eyes where john alspaw and paul gave the presentation of “10+ deploys per day by practicing dev and ops at coperation Flickr”
it is a unicorn startup. but, what about big enterprises is it possible? yes it made possible even in bigger enterprises some are
TicketMaster talked about a 98% reduction in Mean Time to Recovery. In the traditional IT market we talk about Mean Time to Failure but in DevOps, we measure Mean Time to recovery.
Nordstrom had achieved a 20% shorter lead time
Target’s full stack deployment went from 3 months to minutes.
all are possible not because they have bought a tool or followed a procedure all they did to attain the benefits of DevOps is change the culture of their company.
Essential Characteristics of DevOps,
Agility is the goal. in order to being agile you want to do smart experimentation. and moving in the market with maximum velocity and minimum risk.
in this way, you can gain quick, valuable insights to consistently change the value proposition and the quality that you deliver to your customers.
Agile is powered by three pillars. they are,
DevOps which include cultural change, automated pipeline, Infrastructure as Code, Immutable Infrastructure.
Microservices include loosely coupled application designs using microservices that communicate via REST API’s. designed to resist failure and tested by breaking them and failing fast.
Containers are developer-centric environments that give us portability and fast startup.
it’s called Perfect Storm taken separately they are impressive technologies but together they make a powerful change. in short, DevOps is for Speed and Agility, Microservice for small Deploys, and containers for ephemeral Infrastructure and Fast Startup.
DevOps has Three dimensions. they are,
Culture,
Methods,
Tools.
Conclusion,
In conclusion, DevOps represents a transformative approach that integrates development and operations teams to enhance software delivery through collaboration, automation, and cultural change. By adopting DevOps, organizations can achieve faster and more reliable software releases, adapt to market disruptions, and foster innovation. The journey to DevOps success involves embracing a new culture, leveraging agile principles, and utilizing modern tools and methodologies. As businesses continue to evolve, the principles of DevOps will remain crucial in driving efficiency, agility, and competitive advantage in the ever-changing technological landscape.
Summary and Key points,
Technology is an enabler rather than a driver of innovation. To leverage technology, one must have an innovative business idea.
DevOps is the Practice of Development and Operation Engineers working together during the entire development lifecycle, following lean and agile principles that allow them to deliver the software rapidly and continuously
it is not just Dev and Ops working together. It is a cultural change and a different way to work. DevOps has three dimensions: culture, methods, and tools. Of these, culture is the most important.
The essential characteristics of DevOps include cultural change, automated pipelines, infrastructure as code, immutable infrastructure, cloud-native application design, the ecosystem of containers, and how to deploy with immutable infrastructure.