Detailed Notes
DevOps is a hot topic in recent years. However, it is often misunderstood or ill-defined. This presentation tries to correct that. We look at its short history and how DevOps is used. Likewise, we look at the pros and cons involved when your team embraces this facet of software development.
DevOps Is a Steadily Growing Area While a young way to look at a part of the software development process, it is still rapidly growing. The tools available to assist in this area grow daily. Also, the growth of the Cloud and systems deployed there make DevOps more and more a necessity for developing modern solutions.
Transcript Text
[Music] so first benefits one of the benefits we get probably one of the major benefits we get from devops is communication we have we don't have as many silos because devops sort of absorbs a lot of those and so we're not dealing with developers doing their thing testers are doing their thing operations are doing their thing devops just sort of takes sits over all of that and says hey we'll we will help you out and so you guys don't have to worry about your platforms your environments we are going to own that and help ensure that they are consistent throughout the the team or the the enterprise we've talked about a lot of ways that devops is a faster way to developers software we're going to have a shorter time to market we're going to get stuff out in front of people faster because we're not having to reinvent the wheel when we move from one environment to the next we've already through code or whatever else through automation we've already got a process for building that out and so it's oftentimes it's just a matter of point it at a different location and then press the button and it's off and running and it's it's built it up it deploys the things it needs to deploy and we have something in front of the users the reproducibility of it is should not be missed there are if you've spent any time developing where you've had multiple developers on a team you probably run into the situation where hey we we need this such and such a library or this version of an application or whatever it is and you spend a lot of time trying to figure out what is it that i have on my machine that you don't have that will allow us to you know do that hey it works on my machine kind of you know solve that problem just to make sure that we have consistency and it could it could be as big as you know you can say you're a java developer and you've got uh you you're running java 11 and somebody else is running java 8 and things like that database versions and all of these are things that i have run into in the last year probably multiple times just because their common problems is making sure that everybody's on the the same software page be it libraries or compilers or whatever it is and actually in some cases now it's even operating systems because your developers maybe maybe they're on mac maybe they're on windows maybe they're on linux and it's being able to provide a a single consistent environment no matter where you're at so we can get a lot of those head-butting moments of you know my thing is not quite configured configured the same way as yours how do we get that fixed tracking all that down that goes away and so that now is time that we can use to work on features and quicker read quicker and getting things to market that also combines that we're gonna have less downtime or maintenance windows can be smaller because we know what we're dealing with we're not having to worry about oh this is a new environment how's this gonna work and between the scripting and everything else we we are confident that this environment is almost identical if not effectively identical to the environment we're coming out of so we don't we don't see environmental change or difference issues as often and that allows us to you know when something's running we get to the new one and that one can be running as well we know that that's going to work because it worked in the other environment if something crashes in an environment it's we're able to just recode you know use code and just launch a new instance of it and we're off and running again automation is always going to save us time well in the long run is always going to save us time but most importantly it saves us from errors from typos and fat-fingered entries and things like that that when we do it manually we will see if we script it if we automate it then it becomes a non-issue and honestly and it can be run as often as you want or whenever you want so you don't have to have somebody awake at two in the morning to run a bunch of scripts instead it just automates it and lets us know so we you know we'll get a warning if things break and this again there were people that probably you know that were there was night ops and there still are in some places but it used to be there were a lot of night ops people that they would come in at you know midnight or whatever and be the operation side where they're running backups and doing all the different things that need to be done from the operation side and we can automate that now so you don't have these people have to come in in the middle of night to do these things manually we haven't really talked about cons this has almost been selling you on devops the whole point so we need to think about also there's concerns here one devops is a change they there's no way around it it is a change to how you do stuff if you haven't had it before and you add devops in it it's it's a whole different set of skills that people are going to need there are different roles there may be different departments there may be different managements different processes the whole thing you are bringing in a a new you're cutting out of existing groups certain roles and certain responsibilities and using that to create a whole new group it's a lot of changes uh sometimes very um sizable like impactful as far as roles and uh like management and titles and things like that that people can get you know nervous about so it that's always going to be a challenge you know we're dealing with big change is going to be big work sometimes devops can be expensive there are when you think of the tools um [Music] they're not cheap it's not necessarily cheap to do this automation and that's not just the tool itself but the time required the expertise the resources that you may have to hire to put these things in place to the time you're going to invest to look at what is it we do how do we ramp up a devops team to the point where they can understand and reproduce our environments in some cases that especially if you've been around for a long time building software then you haven't had devops there are situations where you're almost blocked building an environment from scratch is some cases impossible i've been in more than a few environments where there is no like the database there's really no way to build it from scratch you just have to back up and restore that's the only way that you move a database from one another i've been in situations where there is source code that has been compiled and built into an executable or dll and the source code was lost so you don't have a way really to rebuild uh some of those pieces but doing so and so getting yourself to a point where you can do that that can be time consuming it can be costly with all of this because we are doing things a little differently as far as cicd and automation and scripting there's going to be more tools uh probably more um like development languages and stuff like that your tech stack is going to expand almost always it's very rare that that doesn't happen which in itself can be an issue because now as you have an expanded tech stack you have to have a broader skill set for your team or you have to hire a broader team to to match those needs there is a there's a risk to this this increased speed it's just like if you're walking on a sidewalk a completely healthy normal not klutzy person or whatever but if you run there is a risk that's incurred because if something you know that you don't see it shows up last second you have more momentum it's harder to change your pace um and it there is a risk to that you know that's why you don't run with scissors you know things like that when you move faster there is a risk involved and actually when you automate stuff there is it's sometimes referred to as you know versus the difference between having a gun or you can shoot yourself in a foot versus having a shotgun where you can blow your whole leg off automation tools sometimes do that is they give us the ability to well we can fail fast because of the automation we will see it quickly sometimes we also are going to fail bigger because those scripts propagated stuff further and you also have because the the devops group uh and this is a particular one that developers can complain about at times if you do it completely then the devops group is essentially controlling the don't the development environments they're saying here you go here's a script for it if you need to change it then you need to let us know so we can incorporate that into our scripts so that can propagate through to testing into production that means there are situations where you could have your development team down because some tool is there another good example is the the pros and cons when you think of developers not working on a local machine but having a vm that they they work on if those vms are unavailable or the network's down so they can't get to them they're down they are not going to be productive and so there is a there's definitely a risk to all of this and there's the rewards but there's also risks to doing so and then while you may think you know looking at it just off the top of your head say wow this should probably be pretty easy to scale scaling up based on the automation and the infrastructures of code and things like that is is pretty good but when you have to use that across multiple projects in complex environments it can be it can be quite a challenge and when you think about like just that developer example i use this is another one where you may have a development team that you've got it's very big so you've got windows developers you have apple developers you have people in web development languages you have people doing mobile development and all these are different languages different tools and different environments if the if you push it back on developers and they just sort of figure it out and they make it work when you have devops that means they have to find a way to get all these things to be scripted to work to integrate with each other it's just it becomes more complex and can be very challenging particularly from a cost-effective point of view because sometimes it is easier or more more reproducible to have these specialized individual environments that you've scripted out as opposed to you may have these like i don't know almost like frankenstein environments that can occur when you have these developers working on a lot of different tools at a time and they're able to do it because they've you know got all of these libraries and everything in place and they just made it work as opposed to having to do it and reproduce it there's sometimes it's it's going to take longer you know doing a one-off is almost always going to be faster than doing something where you need to be able to reproduce it so that's another concern when you get to big complex environments so in this little summary overview what do we what should we take away from this but one devops is pretty new you know worst case it's you know 15 maybe ish years old it's a new way to think about software development and it has come from though very consistent ways to produce software in the past it's people have seen that we need a development environment we need a testing environment we need a production environment and we need to you know keep those sort of in silos and make sure that we they are called clean environments in each of those areas so it's new it's a different way to think about software development it's powerful we're talking about automation we're talking about scripting but it can be very complex when you look at some of these scripts you know even just like a simple doctor script can seem like oh this will be great it's awesome but if you wanted to pull in a you know a certain version of a language and then certain libraries and versions for the bat language as well you've got to set up certain structures and maybe import database and certain files and it can start getting complex quickly you will find that yes there's whenever you have the ability to configure stuff heavily then it can take a while to configure it properly as we looked in the pros and cons part you know automation can go a long way towards helping us but you know and it can reduce errors but it can also be almost like a crutch and we have to make sure that we are validating that automation along the way so that we don't automate our way into a lot of damage that needs to be redone a good example in in the database world is the idea of you know deleting one record is one thing but if you've got these scripts that are going out and trying to figure out all these records to delete you can delete your entire database before you you know if you have a couple typos in there at the wrong place this has been done a lot there are a lot of teams and people and some very smart people that are have been doing devops for over a decade now but even even at this point even with all these tools and the advances and all the in you will see there are steady advances like this month it's going to be different from next month as far as what's available out there but there's still there's a lot of pros and cons to the world of devops questions and comments that was pretty good rob yes it was but um so you need uh pretty much in like the skill set since this is kind of a new i'll call it a phenomena software development in companies like uh you need to train since we kind of used in uh the old way of developing software like uh do this without the dev ops like does somebody need the skill set for the devops it's all it's pretty much automatic like uh somebody can just pick it uh just like that oh no it's definitely a there's definitely a skill set to it um it is currently probably the i think it's probably an area that is most uh i say impacted by certification programs and certificates because there's not really it's really it's it's young enough that you i don't know that there's schools that have you know dev ops degrees but there are definitely tool specific dev ops kinds of things you can get if you if you go out and do a certification in google or azure or aws there is going to be for the ones i've seen at least there's going to be some level of devops that that are part of that part of using those environments and being able to automate and configure those and there are definitely certificates that are built around a lot of these tools and how to automate and code your way into environments so it's it's a different it is a different tool set a different skill set a different experience and focus a lot of the the devops people have come out of configuration management and even some of the development world but it is not it's definitely not developer skills there's coding involved but it's a different type of coding that i don't know and i i don't know how much uh coding skills would translate over to devops because devops is much is almost it really is more of a hardware kind of a perspective on the world as opposed to software because you're thinking about memory and resources like that and you know space and processing and those kinds of things that you don't really think about normally in the in the development world other questions and comments like that said though one thing to think about though with the containerization like docker more cloud-based um a lot of it is i want to say more vm so you're thinking a little bit more in a virtual sense and you're a hardware sense but it's kind of both it's a different type of resource uh collection and kind of resource allocation so to speak yeah yeah there's definitely a a crossing of those lines you think like you're thinking the same way you would if you were building hardware it's just you don't have to do it physically you're just doing it now in a virtual machine it's the same things if you had to price the server 20 years ago you're going to look at things like okay how many processors am i going to need how much memory do i need how much disk space do i need uh if you want to get complex you know how much power supply do i need to do this and things like that now you still have essentially a lot of those same concerns it's just you're not thinking about it from a hardware point of view and you're able to do it almost more a la carte than you would have you know in the past other questions and comments all right so as always thanks for listening in for following along uh always appreciate and are thankful for the time that you guys give just for us it gives us an excuse to learn some more stuff for yourselves to make the industry better to become a better developer if you have questions you can always shoot an email at info developernorm.com throw something out on the contact us form on developer.com we have a youtube channel if you look up developer door spot right you see we've got oh i don't know 200 videos out there now something like that growing every week vimeo we've got a lot of the same youtubers smaller or shorter format 15 to 20 minutes typically vimeo can run an hour or more on some of those and we still have somewhere out there facebook.com we've got a developer page if you would like to you know throw anything out there and give us feedback as well as always thank you for your investment in yourself and helping us with our goal of making every developer better have a good one
Transcript Segments
[Music]
so first benefits
one of the benefits we get probably one
of the major benefits we get from devops
is communication we have
we don't have as many silos because
devops sort of absorbs a lot of those
and so we're not dealing with developers
doing their thing testers are doing
their thing operations are doing their
thing
devops just sort of takes sits over all
of that and says hey we'll
we will help you out and so you guys
don't have to worry about your
platforms your environments we are going
to
own that
and help ensure that they are consistent
throughout the the team or the the
enterprise
we've talked about a lot of ways that
devops
is
a faster way to developers software
we're going to have a shorter time to
market we're going to get stuff out in
front of people faster because
we're not having to
reinvent the wheel when we move from one
environment to the next we've already
through code or whatever else through
automation we've already got a process
for building that out and so it's
oftentimes it's just a matter of point
it at a different location and then
press the button and it's off and
running and it's it's built it up it
deploys the things it needs to deploy
and
we have something in front of the users
the reproducibility of it is
should not be missed
there are
if you've spent any time developing
where you've had multiple developers on
a team
you probably run into the situation
where
hey we we need this
such and such a library or
this version of an application or
whatever it is and you spend a lot of
time trying to figure out what is it
that i have on my machine that you don't
have that will allow us to you know do
that hey it works on my machine
kind of you know solve that problem just
to make sure that we have consistency
and it could it could be as big as you
know you can say you're a java developer
and you've got
uh you you're running java 11 and
somebody else is running java 8
and things like that database versions
and all of these are things that i have
run into
in the last year
probably multiple times just because
their common problems is making sure
that everybody's on the
the same software page
be it libraries or
compilers or whatever it is
and actually in some cases now it's even
operating systems because your
developers maybe maybe they're on mac
maybe they're on windows maybe they're
on linux and it's
being able to provide a
a single consistent environment no
matter where you're at
so we can
get a lot of those
head-butting moments of you know my
thing is not quite configured configured
the same way as yours how do we get that
fixed
tracking all that down that goes away
and so that now is time that we can use
to work on features and
quicker read quicker and getting things
to market
that also combines that we're gonna have
less downtime or maintenance windows can
be smaller because we know what we're
dealing with we're not having to worry
about oh this is a new environment how's
this gonna work
and between the scripting and everything
else we
we are confident that this environment
is
almost identical if not
effectively identical to the environment
we're coming out of so we don't
we don't see environmental change or
difference issues as often
and that allows us to
you know when something's running we get
to the new one and that one can be
running as well we know that that's
going to work because it worked in the
other environment if something crashes
in an environment it's we're able to
just recode you know use code and just
launch a new
instance of it and we're off and running
again
automation
is always going to save us time well in
the long run is always going to save us
time but most importantly it saves us
from errors from typos and fat-fingered
entries and things like that
that when we do it manually we will see
if we script it if we automate it then
it becomes a non-issue and honestly and
it can be run
as often as you want or whenever you
want so you don't have to have somebody
awake at two in the morning
to run a bunch of scripts instead it
just automates it and lets us know so we
you know we'll get a warning if things
break
and this again there were people that
probably you know that were there was
night ops and there still are in some
places but it used to be there were a
lot of night ops people that they would
come in at
you know midnight or whatever and
be the operation side where they're
running backups and doing all the
different things that need to be done
from the operation side
and we can automate that now so you
don't have these people have to come in
in the middle of night to do
these things manually
we haven't really talked about
cons this has almost been selling you on
devops the whole point so
we need to think about also there's
concerns here
one
devops is a change they there's no way
around it it is a change to how you do
stuff if you haven't had it before and
you add devops in it
it's it's a whole different set of
skills that people are going to need
there are different roles there may be
different departments there may be
different managements different
processes
the whole
thing
you are bringing in
a
a new you're
cutting out of existing
groups
certain roles and certain
responsibilities and using that to
create a whole new group
it's a lot of changes
uh sometimes very
um
sizable like impactful as far as roles
and uh like management and titles and
things like that that people can get
you know nervous about
so it that's always going to be a
challenge you know we're dealing with
big change is
going to be
big work
sometimes devops can be expensive there
are
when you think of the tools um
[Music]
they're not cheap it's not necessarily
cheap to do this automation and that's
not just the tool itself but the time
required the
expertise the resources that you may
have to hire to
put these things in place
to
the time you're going to invest to look
at what is it we do
how do we ramp up a devops team to the
point where they can understand and
reproduce our environments in some cases
that especially if you've been around
for a long time building software
then you haven't had devops
there are situations where
you're almost blocked
building an environment from scratch is
some cases impossible i've been in more
than a few environments where
there is no like the database there's
really no way to build it from scratch
you just have to back up and restore
that's the only way that you move a
database from one another
i've been in situations where there is
source code that has been compiled and
built into an executable or dll
and the source code was lost
so you don't have a way really to
rebuild
uh some of those pieces
but
doing so and so getting yourself to a
point where you can do that that can be
time consuming it can be costly
with all of this because we are doing
things a little differently as far as
cicd and automation and scripting
there's going to be more
tools uh probably more um like
development languages and stuff like
that your tech stack is going to expand
almost always it's very rare that that
doesn't happen which in itself can be
an issue because now as you have an
expanded tech stack you have to have a
broader skill set for your team or you
have to hire a broader
team
to
to match those needs
there is a
there's a risk to
this
this increased speed
it's just like
if you're walking on a sidewalk
a completely healthy normal not klutzy
person or whatever but if you run
there is a risk that's incurred because
if something you know that you don't see
it shows up last second you have more
momentum it's harder to change your pace
um and it there is a risk to that you
know that's why you don't run with
scissors you know things like that
when you move faster
there is a risk involved and actually
when you automate stuff
there is
it's sometimes referred to as you know
versus
the difference between having a gun or
you can shoot yourself in a foot versus
having a shotgun where you can blow your
whole leg off
automation tools sometimes do that is
they give us the ability to
well we can fail fast because of the
automation we will see it quickly
sometimes we also are going to fail
bigger because
those scripts
propagated stuff further
and
you also have
because the
the devops group
uh and this is a particular one that
developers can complain about at times
if you do it completely then the devops
group is essentially controlling the
don't the development environments
they're saying here you go here's a
script for it
if you need to change it
then you need to let us know so we can
incorporate that into our scripts so
that can propagate through
to testing into
production that means there are
situations
where you could have your development
team down
because
some tool is there
another good example is
the the pros and cons when you think of
developers not working on a local
machine but having a vm
that they they work on
if those vms are unavailable or the
network's down so they can't get to them
they're down
they are not going to be productive and
so there is a there's definitely a risk
to all of this and there's the rewards
but there's also risks to doing so
and then while you may think
you know looking at it just
off the top of your head say wow this
should probably be pretty easy to scale
scaling up based on
the automation and
the
infrastructures of code and things like
that is
is pretty good
but when you have to use
that across multiple projects in complex
environments it can be
it can be quite a challenge
and when you think about like just that
developer example i use this is another
one where
you may have a development team that
you've got
it's very big so you've got
windows developers you have apple
developers you have people in
web development languages you have
people doing mobile development and all
these are different languages different
tools and different environments
if the
if you push it back on developers and
they just sort of figure it out and they
make it work when you have devops that
means they have to find a way to get all
these things to be scripted to work
to integrate with each other it's just
it becomes more
complex
and can be
very challenging particularly from a
cost-effective point of view
because sometimes it is
easier or more
more reproducible
to have these specialized individual
environments
that you've scripted out
as opposed to
you may have these like
i don't know almost like frankenstein
environments that can occur
when you have these developers working
on a lot of different tools at a time
and
they're able to do it because they've
you know got all of these libraries and
everything in place and
they just made it work as opposed to
having to do it and reproduce it
there's sometimes it's it's going to
take longer
you know doing a one-off is almost
always going to be faster than doing
something where you need to
be able to reproduce it
so that's another concern when you get
to big complex environments
so in this little
summary
overview what do we what
should we take away from this but one
devops is pretty new you know worst case
it's you know 15 maybe ish years old
it's a new way to think about software
development
and it has come from though
very
consistent ways to produce software in
the past it's people have seen that we
need a development environment we need a
testing environment we need a production
environment and we need to you know keep
those
sort of in silos and make sure that we
they are
called clean environments in each of
those areas
so it's new it's a different way to
think about software development
it's powerful we're talking about
automation we're talking about scripting
but it can be very complex
when you look at some of these scripts
you know even just like a simple doctor
script can seem like oh this will be
great it's awesome but if you wanted to
pull in
a
you know a certain version of a language
and then certain libraries and versions
for the bat language as well you've got
to set up certain structures and maybe
import database and certain files and
it can start getting complex quickly you
will
find that yes there's
whenever you have the ability to
configure stuff
heavily
then it can take a while to configure it
properly
as we looked in the pros and cons part
you know automation can go a long way
towards helping us
but
you know and it can reduce errors
but it can also
be almost like a crutch and we have to
make sure that we are validating that
automation along the way
so that we don't automate our way into
a lot of
damage that needs to be redone
a good example in in the database world
is the idea of you know deleting one
record is one thing but if you've got
these scripts that are going out and
trying to figure out all these records
to delete you can delete your entire
database before you you know if you have
a couple typos in there at the wrong
place
this has been done a lot there are a lot
of teams and people and some very smart
people that are have been doing devops
for
over a decade now
but even even at this point even with
all these tools and the advances and all
the in
you will see there are
steady advances like this month it's
going to be different from next month as
far as what's available out there
but there's still there's a lot of pros
and cons to the world of devops
questions and comments
that was pretty good rob
yes it was but um
so you need uh pretty much in like the
skill set since this is kind of a new
i'll call it a phenomena software
development in companies like
uh
you need to train
since we kind of used in uh the old way
of developing software like uh do this
without the dev ops like
does somebody need the skill set for the
devops it's all it's pretty much
automatic like uh somebody can just pick
it uh just like that oh no it's
definitely a there's definitely a skill
set to it um
it is currently probably the
i think it's probably an area that is
most
uh i say impacted by certification
programs
and certificates because there's not
really
it's really it's it's young enough that
you i don't know that there's schools
that have you know dev ops degrees
but there are definitely
tool specific dev ops kinds of things
you can get if you if you go out and do
a certification in google or azure or
aws
there is going to be
for the ones i've seen at least there's
going to be some level of devops that
that are part of that
part of using those environments and
being able to
automate and configure those
and there are definitely
certificates that are built around a lot
of these tools and how to
automate and code your way into
environments
so it's it's a different it is a
different tool set a different skill set
a different experience and focus
a lot of the the devops people have come
out of configuration management and even
some of the development world
but it is not
it's definitely not developer skills
there's coding involved but it's a
different type of coding
that
i don't know and i
i don't know how much
uh coding skills would translate over to
devops because devops is much is almost
it really is more of a hardware
kind of a
perspective on the world as opposed to
software because you're thinking about
memory and
resources like that and you know space
and
processing and
those kinds of things that you don't
really think about normally in the in
the development world
other questions and comments
like that said though one thing to think
about though with the containerization
like docker more cloud-based um
a lot of it is
i want to say more vm
so you're thinking a little bit more in
a virtual sense and you're a hardware
sense
but
it's kind of both it's a different type
of resource uh collection and
kind of resource allocation so to speak
yeah yeah there's definitely a
a crossing of those lines you think like
you're thinking the same way you would
if you were building hardware it's just
you don't have to do it physically
you're just doing it now in a virtual
machine
it's the same things if you had to price
the server
20 years ago you're going to look at
things like okay how many processors am
i going to need how much memory do i
need how much disk space do i need
uh if you want to get complex you know
how much
power supply do i need to do this and
things like that
now
you still have essentially a lot of
those same concerns it's just
you're not thinking about it from a
hardware point of view and you're able
to
do it almost more a la carte than you
would have you know in the past
other questions and comments
all right
so as always thanks for listening in for
following along uh always appreciate and
are thankful for the time that you guys
give
just for us it gives us an excuse to
learn some more stuff for yourselves to
make the industry better to become a
better developer
if you have questions you can always
shoot an email at info developernorm.com
throw something out on the contact us
form on developer.com
we have a youtube channel if you look up
developer door spot right you see we've
got
oh
i don't know 200 videos out there now
something like that growing every week
vimeo we've got a lot of the same
youtubers smaller or shorter format 15
to 20 minutes typically vimeo can run an
hour or more on some of those
and we still have somewhere out there
facebook.com we've got a developer page
if you would like to you know throw
anything out there
and
give us feedback as well
as always thank you for your investment
in yourself and helping us with our goal
of making every developer better
have a good one