After watching this video, you will be able to:
Describe how applications evolved to give
rise to DevOps, list the three dimensions of DevOps,
and describe some essential characteristics of DevOps.
Let's not lose sight of the goal.
What is the goal?
Agility is the goal.
You want to be doing smart experimentation.
You want to be moving in market with maximum velocity and minimum risk.
This way you can gain quick, valuable insights to consistently change the value proposition
and the quality that you deliver to your customers.
There are three pillars for agility.
One of the pillars is DevOps.
This includes cultural change, automated pipelines, infrastructure as code, and immutable infrastructure.
The second pillar is microservices and includes a loosely coupled application design using
microservices that communicate via REST APIs.
Microservices are designed to resist failure and tested by breaking them and failing
fast.
The third pillar is containers.
Containers are developer-centric environments that give us portability and fast startup.
They also enable an ecosystem that allows quick deploys with immutable infrastructure.
I like to call this the perfect storm.
Taken separately, these are impressive technologies on their own, but together they enable powerful
change.
You have DevOps for speed and agility, microservices for small deploys, and containers for ephemeral
run times with fast startup.
Ephemeral means lasting for a very short time.
They are ephemeral because when a container goes bad, we don't try to fix it.
We just delete it and replace it with a new one.
These are throw-away runtimes.
Tony Stafford says, “DevOps starts with learning how to work differently.
It embraces cross-functional teams with openness, transparency, and respect as pillars.”
That's a tall order.
Does your organization embrace openness, transparency, and respect?
That is what's required to become DevOps.
Let's talk about application evolution for a moment.
In the past, there was Waterfall, with its monolithic applications deployed on physical
servers.
And then, at some point in time, we migrated to Agile and used Service Oriented Architectures
and virtual machines.
And then, DevOps followed.
Now we are using microservices deployed in immutable containers.
This has been an incremental evolution.
We broke the monoliths into services.
The services were still large, using Service Oriented Architecture, but we had embraced
services as a design concept.
Then we had virtualization and the Cloud.
This made things much smaller.
With DevOps, we have evolved again into microservices and containers to deploy them in.
DevOps has three dimensions: culture, method, and tools.
Most companies focus on the tools.
Most vendors focus on the tools as well because that's all they can sell.
Some companies also focus on the methods, which are important.
But the most important thing to focus on is culture!
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.”
If you want to be a high-performing DevOps organization, you need to change your culture.
While tools and methods are important… it is culture that has the biggest impact.
How do you change a culture?
Culture is ingrained within us.
It defines who we are.
It includes elements such as our language, our food, our values, and our stories.
It is extremely hard to change a culture.
Countries have cultures.
Companies have cultures.
Many companies attempt to become DevOps but fail to change their culture.
This change must come down from the top and be embraced from the bottom up, in order for
the change to happen.
This is not an easy thing to do.
How do you change a culture?
You must change the way people think.
They have to start thinking differently.
You need to think about social coding and sharing.
You have to change the way they work.
They need to start working differently.
Working in small batches and using test-driven and behavior-driven development.
You must change the way you are organized.
This is a lot of companies don't get this.
You must organize differently because the organization has a direct impact on how you
build things.
Most of all, you must change the way people are measured.
You must change your measurement system and measure differently because you always get
what you measure.
In the remainder of this course, we are going to explore the DevOps way of thinking, working,
organizing, and measuring.
In this video, you learned that: Applications evolved from Waterfall development
of monoliths to Agile development of microservices.
DevOps has three dimensions: culture, method, and tools.
And the essential characteristics of DevOps include cultural change, automated pipelines,
infrastructure as code, microservices, containers, and immutable infrastructure.