3. What is DevOps?
DevOps is a relatively new term in the Agile world, its often not understood correctly or misinterpreted,
hopefully this post can help you understand the fundamentals of this concept. Is it a culture? Is it a job
title? Is it a way of organizing a team? Is it a way of thinking? Is it a fancy term for something that already
exists?
Teams who adopt agile are always evolving and trying new ways to find new ways to adapt and improve,
so there are always new trends and methodologies that come out of these teams.
I would define DevOps as the following.
In its most basic term, its the merger of the following:
• Development
• Testing
• Operations
4. What is DevOps?
The development part is covered by the coders, the guys
that build the functionality.
Testing is covered by a QA team, who test the
functionality and ensure quality.
Finally, operations is covered by the IT operations team
who manage releases, deployments and coordinating
deployments.
As a Venn Diagram it would look something like this.
5. Why Use DevOps?
As agile teams where improving interpreting and developing new functionality, it became clear that there
was still a bottle neck in some organizations. The IT operations or service delivery team or whatever you
want to call it were not able to keep up – and still being technically a different team, communication and
shared understanding was not often there.
DevOps brings these teams together, just as in Agile we do with the developers, QA and product owners; we
now incorporate more roles into the team such as a SBA, SysAdmin or Middleware to improve the
communication, collaboration and integration through the full software delivery lifecycle.
Now, rather than having two separate teams with a hand over, this part if the process is integrated into your
team. Using DevOps allows you to enforce the dependence on development and operations and ensure rapid
delivery is actually there.
.
7. What is DevOps?
Probably around 2009, this was a hot topic of discussion in many conferences and social media, teams could
deliver quickly through agile, but the last step was often an issue.
Naturally agile teams and IT operations teams when discussing their issues came up with the DevOps
movement. Even though the introduction of the agile methodology allowed software development to make a
massive step forward in efficiency, the delivery method was still very ‘waterfall’.
As teams started to move into continuous delivery; this was the obvious bottle neck or last hurdle from
achieving this.
Adapting DevOps allowed these teams to become fully cross functional, share responsibility and also
incorporate shared goals, DevOps encourages automation of the change, configuration and release
processes.
9. Amazon
Amazon ran into an issue when they were running on dedicated
servers, it struggled to meet traffic demands and estimate when they
would see spikes in tragic.
Its documented that about 40% of Amazons server capacity was
wasted. The company then moved to Amazon Web Services (AWS)
cloud, which allowed them to scale up or down incrementally,
whenever they needed.
Not only did the company save money, but it allowed them to move to
continuous deployment; meaning any developer had the capacity to
deploy their own code to any server, at any time. This move also
reduced outages and increased revenue
Within a year the developers were deploying code every 11.7
seconds, on average. .
10. Netflix
You might not remember, Netflix’s original business model was
shipping out DVDs, which it eventually evolved to the streaming
service we know and love today.
At the time it did this, there weren’t any enterprise tools which would
allow them to smoothly stream video, and keep its cloud infrastructure
in tact. It had to turn to its own and open source solutions, which
evolved into something called the Simian Army.
This is a set of tools that stress test Netflix’s infrastructure and identify
vulnerabilities before they become a real issue.
Netflix embraces automation and open source, and its
developers deploy thousands of times a day.
11. Facebook
Facebook, not just as an industry leader in social media, but also
software development.
Some the the techniques implemented by Facebook helped to reinvent
the way we build software. Some of the staple points in agile where
installed into Facebook’s culture from the beginning such as
responsibility and ownership of code, iterative development and
change management, automation and continuous delivery.
These values allow Facebook to adapt and continuously improve,
speeding up the software development lifecycle, you might have
noticed that you get a notification now to update your Facebook
applications every two weeks now….
12. Etsy
Etsy, in its early days had a lot of problems with slow, painful updates
that made the site often go down for long periods of time. This
obviously impacted customers massively, thus making revenues
decline.
Obviously Etsy had to do something about it, so they integrated a new
tech team management system which allowed it to move from its slow,
inefficient waterfall methodology to a more agile one.
The company now has a full automated deployment pipeline, and its
continuous delivery process has more than 50 deployments a day.
13. Adobe
For most of us who use Adobe software, many years ago will
remember the packaged CD-ROM you had to buy.
Over time, the company moved away from this to a cloud
infrastructure, and rather than big annual software updates to smaller
more frequent updates.
Adobe uses CloudMunch’s end-to-end DevOps platform to automate
deployments, because its very central and integrates with other
software – users can easily see the impacts it has any any other
software they are using.
This move obviously enabled faster delivery, meaning it was easier to
maintain its software and keep users using it for longer.
14. LinkedIn
LinkedIn started to user deployment automation all the way back from
its beginnings, to manage releasing hundreds of applications/services
on a 1000+ node environment.
Now they are cultivating the worlds DevOps communities.
15. Moving to DevOps?
A lot of development teams will go through a long, tedious and methodical process to deliver a project, and
by the time the software is ready; have already amassed a list of changes and fixes to apply to the next major
release.
The downsides to this are obvious; and since the mobile and smartphone revolution this has completely
changed the way we use software.
Think about it, every time you load up your App Store, you are expecting there to be updates to your
applications, new features and functionality to enhance how you currently use the application now. Moving
to DevOps allows any company to keep up with the demand of their user bases expectations, and at the
same time maintain scalability and performance.
17. How to Move to DevOps?
In order to innovate quickly, maintain profitability and deliver high quality, stable applications in the
modern day 3 things are required:
• DevOps
• Cloud Architecture
• Test Automation
Dev Ops is not software, a tool or a service – the only way a company can adopt DevOps is to have a
culture change.
How teams work together, and how you get from idea to production in the quickest most effective way.
18. How to Move to DevOps?
This is a very long process, and there is no silver bullet. It takes a lot of trust and vision, there will be people who don’t
like change or are afraid of the unknown, not just on development but on the business side too. Both often have
conflicting goals and targets.
The only way this can be realistically done is through small measurable steps; make a change, did it work? If results are
good then more buy in is easier, if not, why? Review and try again. The move to DevOps takes a lot of investment and
you can not change the whole company over night. Prioritize where DevOps might be most useful, and start from there.
I also think automation is a key factor to the move to DevOps, for sure you need to invest in technology. There are a lot
of overheads in testing, industrialization and deployment. You should look to start to automate the areas that need less
human intervention. Look at build and deployment automation, test automation.
Finally, consider your architecture and code base. New companies can roll out DevOps easier because they use the latest
technologies and don’t have to deal with legacy code that larger, older companies do. Simultaneously, you will need to
fix issues with architecture and get it into a place that can deliver faster business innovation.
19. Summary
To close, the important think is to understand why companies are moving towards DevOps, how it benefits them and
how it can benefit you. Realize that its not an overnight silver bullet, and there can be a lot of pain in moving to the
methodology. Its important to have a clear goal and vision in place to drive continuous improvement and iteratively
change and improve.
20. If you like, take something away or reference any of my content, please consider leaving a small donation to
help with the running of the site!
You can send a donation to: donations@full-stackagile.com
Or use this link (copy in browser): https://www.paypal.com/cgi-
bin/webscr?cmd=_donations&business=donations@full-stackagile.com
&lc=US&item_name=
Donation+to+Full-Stack+Agile&no_note=0&cn=&curency_code=USD&bn=PP-
DonationsBF:btn_donateCC_LG.gif:NonHosted