Scaling DevOps to the Edge @JFrog Joint Meetup with Docker Bangalore

June 20, 2021

< 1 min read

With the proliferation of sensors and a huge volume of data on edge devices, the promise of sending all of this data back to the cloud for AI/ML analytics has far exceeded the capacity of both the network bandwidth and compute resources. However, by moving the workload to edge devices that contain increasingly powerful processing capabilities, this data can be processed locally and efficiently aggregated in the cloud, solving a whole new set of analysis, monitoring, and optimization scenarios. This also necessitates a DevOps approach to distribution that can scale to millions of edge devices, provide continuous and reliable updates, and provide security for a highly distributed network. Learn how to take your DevOps skillset and apply it to a new and challenging domain that is in need of the same human and technology best practices that help global organizations distribute software securely and continuously to self-hosted and cloud environments.

View Slides Here

Speakers

Stephen Chin

Senior Director of Developer Relations

Stephen Chin is Senior Director of Developer Relations at JFrog, author of Raspberry Pi with Java, The Definitive Guide to Modern Client Development, and Pro JavaFX Platform. He has keynoted numerous Java conferences around the world including Oracle Code One (formerly JavaOne), where he is an 8-time Rock Star Award recipient. Stephen is an avid motorcyclist who has done evangelism tours in Europe, Japan, and Brazil, interviewing hackers in their natural habitat and posting the videos on http://nighthacking.org/. When he is not traveling, he enjoys teaching kids how to do embedded and robot programming together with his teenage daughter.

Video Transcript

of
the cd foundation governing board
and a member of the cncf governing board
as well
as an author of multiple books
especially in the java development space
uh i have the personal privilege of
calling steve
boss at a daily basis and he truly is an
amazing mentor for his team
so today steve’s going to be talking
about scaling devops to the edge
so looking forward to that and uh
without any further ado
i’m going to turn it over to you steve
thanks for joining us
cool thanks very much for the um uh very
warm welcome ari
it’s great that i’m able to to speak at
this event um it’s
actually been a while since since i got
to to travel to india
so this is this is my virtual trip
awesome um okay and what i’m going to
talk
today about is is a little bit about
taking devops
all the way to to the edge of your
deployment so how you can
scale and efficiently distribute and
deploy applications to
to different edge devices so as um ari
mentioned i’m vp of developer relations
at jfrog you can you can catch me on
twitter
at stevenjava so um feel free to
feel free to reach out on twitter if you
want to say
hi and um i think we’ve we’ve all been
playing this game for a while with with
working from home
um but somehow when when the whole
pandemic started i imagine things would
be
would be very different so i i figured
that um
you know we might be like vigilantes um
kind of kind of like this roaming
roaming the freeways um trying to trying
to forage for food
um with our trusty dog actually as it
turns out a lot of people got
pets during the during the pandemic my
myself included but
um i i got a cat instead of a dog or my
kid’s got a cat instead of a dog so um
that was a little bit different and the
other big difference is i think a lot of
us ended up
with a setup which looks a lot more like
this than
um than something more um
more out there so it’s great and um i
think i think it’s it’s awesome that as
developers we’re able to work from home
and we we can stay safe and productive
while working remotely
and if anything i think the um the
situation has caused companies to
realize
that it’s even more important to support
remote workers
and remote conferences like the one
we’re in so
i think it’s it’s made it much more
accessible for
um getting technology across the world
and to a much wider audience
and also create a bunch of opportunities
for for developers to do things
and if you’re anything like me you
probably have have
increased the number of iot devices
in your house over the past year maybe
you even have um
security cameras or you have um
[Music]
smart plugs or smart heaters or or other
iot devices in your in your house and
this is a
general global trend which is occurring
with the move
to the edge the move where you have lots
of
internet connected devices that need
software updates and
need to be supported so according to
gartner and statista by by the year
um well 2020 it’s already there 20.4
billion devices
and 31 billion iot devices will be
online so that’s
that’s a lot of devices and if you look
at it
it’s it’s um things like smartphones
so i think we we all have smartphones
actually smartphones have taken over
um even computer usage the the amount of
internet traffic
produced by smartphones has exceeded the
amount of internet traffic produced by
desktop computers um smart tvs
smart fridges and um smart cars if you
don’t have a smart car i think i think
we’re all
kind of envious of folks who do have
smart cars and
smart cars in particular is a an area
and an industry where
people are really pushing forward and
making huge advances so according to the
volkswagen
ceo they expect the software
to make up ninety percent of the autumn
industry innovation
um so i think all of the different car
manufacturers looking at software and
software releases
as the path forward so this is one of
the examples of an industry where
they are pushing things to the edge they
are deploying to devices
and they’re creating fleets of devices
which are
electrified so electric cars autonomous
shared and connected and
this this is everything from smart cars
to smart trucks to
smart farm equipment um and there’s the
sort of use cases which they need to be
able to account for
when you’re looking at supporting um
global
deployments of smart cars are things
like autonomous driving so the cars know
how to
to navigate by themselves fleet
management
so you can know exactly how many of
different vehicles which you have out
there
know when failures are going to occur
when you need to replace them
a lot of electric cars have very
advanced battery technology
which they’re constantly improving the
software algorithms to improve the
efficiency of them
different sensors if especially if
you’re doing autonomous driving but
for also for farm equipment so you can
measure
moisture humidity and different things
to to improve your yields
navigation and infotainment for consumer
devices automotive ai
communication systems so that you can
communicate to the devices
even when they’re remote regulation
tracking
one of the big things is for um shipping
and other industries
they need to be able to make sure that
they’re carefully tracking where things
are going and
the the path from farm to table of all
the devices
or all the cargo which they’re carrying
so this is another big
concern for companies which do trucking
and shipping
carbon footprint data so that you know
how much you’re offsetting or
increasing your cost as a company safety
and security and shared vehicle
enablement so there’s a lot of use cases
for this
um and by the year 2030 it’s expected
that the
the connected vehicle market is going to
be a 14 billion ecosystem so this is a
a huge market um it’s expected there
will be 146 million connected vehicles
in the us alone
470 manually globally and 15
of the vehicles sold will be autonomous
um 30 to 50 percent of vehicles sold by
an electric drivetrain
and shared vehicles will increase by 40
you can already see this with things
like the um
california legislation that mandates um
that all all cars sold must be um
electric um i think it was by the year
by the year 2030.
so um they’re even pushing this from uh
from a government at a regulation
standpoint
okay so if you see this trend coming
where we’re we’re pushing to
um more edge devices to more
connected devices how do we get software
to
all of these devices how do we do
software distribution to all of these
devices
um and if you if you look at it there’s
there’s a general
physics problem with software
distribution as you go to edge devices
so if you’re used to working in
with um cloud cloud computers and data
centers and even on-prem data centers
or or other environments typically you
have very fat bandwidth
you have the ability to transfer large
amounts of data transfer large docker
images
and do rapid deployments but as you push
to the edge the the fire hose becomes
more of a drip
um because essentially what you’re what
you’re deploying to
are devices on networks which are slow
which are less reliable
um and which which give you a lot of
constraints
and besides besides the general network
issues you
which is improving with technologies
like 5g
you also have the issue of the the one
to
many problem where you have a a small
number of um
servers deploying to a very very large
number of devices
um so again you’re splitting your
bandwidth and your your your ability to
deploy quickly over a very large
network of devices so just breaking down
this problem the
the the first the first problem is
rapid development so if you look at the
speed of development and change
um over 520 million new apps and
services
are going to be released by the year
2024.
so um with all of these applications and
releases being produced
it requires that you have the ability to
deploy quickly
to the edge as well the second big
constraint
is deployment frequency so how quickly
you’re pushing devices or deployments to
the edge and over 60
of enterprises are are deploying to pro
daily or faster by the year 2025.
so um if you’re if you’re still doing
releases which are monthly or weekly
or um you know even a couple times a
week this is something which
is required by
security issues zero day exploits and in
general customer
requirements for having faster delivery
that you’ll be shipping software faster
you’ll be shipping software more often
and therefore you’ll be shipping
a lot more releases the third part of
the problem is the
explosion of infrastructure
at the edge and if you look at this
we have a lot more devices which are
coming on and over 50
of new infrastructure deployed at is
going to be deployed at the edge by the
year 2023
so this exponential growth
in infrastructure basically forces um
having better better solutions to the
deployment problem
okay and the last part of the equation
is compounded artifacts
and there’s 7 million edge locations and
over
38 billion things predicted by the year
2021
and this is continuing to rise
exponentially so
as the number of devices continues to
increase
this requires that we have better
solutions for distributing artifacts
and if you look at who’s consuming these
artifacts who’s actually the recipient
of the artifacts you have a bunch of
different folks
who are who are the recipients so one of
them is just getting
um your internal repositories to two
developers
the second one is external repositories
so
pushing artifacts which are going to be
consumed by um
different companies or by consumers and
over 60 percent of global 2000 are going
to have third-party developer ecosystems
generating 20 revenue so um
exposing artifacts externally to other
companies is also a big use case
and the biggest use case is now machines
where you need to now push your releases
to the edge
with runtime environments which support
this edge distribution and i think
if today you’re primarily deploying
releases internally in your company to
kubernetes clusters or possibly starting
to deploy
releases to partners and other
ecosystems this
drive and push towards the edge will
strain your current
release bandwidth for for doing
distribution
okay and then some of the bottlenecks to
consumption
of releases are development teams
so basically your ability to
quickly deploy and produce new releases
so if you’re following an agile process
if you’re doing things quickly then
you can more quickly release your
software
operations so your ability to have
cloud native environments set up to
deploy quickly to have a lot of
automation on the site on the devops
area so
the fact that you’re here at a
conference talking about
devops and security and how to improve
the the speed of agility
will help you to deliver more quickly
and
achieve this scale
the third bottleneck is the the runtime
environment so making sure that you
actually have a global distribution
network so you can quickly deploy
and then finally getting things to the
edge and all of the
end users so um if you’re scaling
effectively
you can reduce your um
development productivity time and by
increasing your cycle time
you can increase your release velocity
and that decreases your risk
you can do global distribution at scale
and you can also
do better customer acquisition and
retention
by getting things to customers more
quickly so this helps solve the problem
of scale
um for your company
and there’s a few different ways which
you can accelerate your distribution of
releases to the edge
um so one approach is to do distribution
via edge nodes where essentially you’re
standing up
instances closer to the edge devices and
those edges are the ones that are going
to be
deploying to the edge devices rather
than your your main
artifact repository the second one is
you can rely on content delivery
networks
so using cdn distribution you can
increase the the um
your ability to deliver static artifacts
this
you can’t be quite as smart about what
you’re delivering but as long as the
um artifacts which you’re delivering are
are
static files then this can also help to
speed up delivery to a global network
and the last one which is the most
flexible is peer-to-peer download so
this gives you the ability to
um not only to deploy to the edge
devices but to have
geographically co-located nodes which
are closer to
your edge devices where you can appear
to peer sharing
and higher velocity to to quickly
distribute
so let’s go back to the the automotive
use case um and how you can
set up an environment which is going to
allow you to accomplish this use case
um to deploy to cars more quickly so
let’s say you have your
your ci cd system set up using a ci cd
system like jenkins or jfrog pipelines
this would push releases into an
artifact management system like jfrog
artifactory
um and the jfrog platform also includes
a distribution solution and what
distribution does is it allows you to
push
to artifactory edge servers to content
delivery networks
and to hybrid environments so this
allows you to
set up instances which are physically
closer to the devices you’re going to be
deploying to get
achieve that scale by setting up
multiple different edge nodes
or content delivery network nodes um and
then quickly
push releases down to devices so that
you can more effectively release and
distribute
now let’s talk a little bit about how
you could do the same thing with a
peer-to-peer
topology so let’s say instead you’re
deploying in a data center
to a kubernetes cluster and one
of the one of the problems with
deploying to large kubernetes clusters
is that the um for especially for large
docker images
the the docker image push in the data
center network actually competes with
itself when you push it to multiple
nodes simultaneously
and you see huge spikes in response time
for pushing
large images down
so you can do this with with
the same sort of setup right using
artifactory
for storing your releases artifactory
acts as a container registry
you can check your security and
compliance with jfrog x-ray and x-ray
will
dig into container images kind of peel
the onion layers apart
and then do security scanning um of
those um
vulnerabilities um which are which are
matched against hashes of in our known
vulnerability database
so it flags any known vulnerabilities
then you push it to distribution
and then this goes out to a network of
devices
now in this case rather than it being
pushed to each of the individual
um kubernetes knows individually they’re
set up in a peer-to-peer configuration
and as it’s being pushed all uh
bittorrent
they’re sharing the information with
each other
and what this does is this improves the
the reliability and the speed
of the network um so this this shows you
the
response time with peer-to-peer
technology and without peer-to-peer
technology and you can see that
um if you’re pushing a large set of data
to a large set of nodes
then the the network suffers a lot of
degradation even inside of a data center
when you’re pushing to a kubernetes
cluster because you’re competing with
yourself on bandwidth within the network
and you’re not getting efficient
throughput through the network to get
your releases pushed quickly
with the peer-to-peer technology this
evens it out because now all of the
nodes are sharing data with each other
so this helps you to achieve um kind of
constant performance
and have a more much more robust
implementation for
pushing releases
so this is an example of how the
peer-to-peer burst
technology works and you’re you’re
breaking the responsibility of serving a
package
between artifactory and the cdn so it’s
being split between those two
the initial download served by
artifactory and then it gets pushed to a
content delivery network
um artifactory the edge node does the
content resolution to figure out what
the right package is and determine which
artifacts need to be served and then
it’s the
it’s the cdn which actually serves the
artifacts
um you can configure the cdn by
repository for which things which you’re
going to put in the content delivery
network
um and you can deploy this either with
on-prem or on the cloud to to quickly
push out releases
using this technology and even for very
large docker images which are you know
85 gigabytes or larger
this combination of cdn
plus peer-to-peer on each pod
communicating with each other
gives you the best distribution
performance possible
and one of the things which we just
announced at the swap up conference
which
which just happened is in addition to
our peer-to-peer technologies and our
edge nodes
we also have a new private distribution
network which makes this even easier to
set up with a self-configuring mesh
of peer-to-peer nodes so that makes it
even easier to
to achieve this scale with very
lightweight
peer-to-peer nodes okay so putting this
all together in terms of how um
the jfrog platform helps to solve the
edge distribution use case
um so everything upstream from source
control you can you can use um
your favorite git system for do your
builds with jfrog pipelines push it into
artifactory for storage
do security scanning with x-ray
you can also can have have a lot of
visibility with mission control and
oversight and
finally push it to production using
distribution and edge nodes which work
on-prem
work multi-cloud and also allow you to
push to cdns and
take advantage of peer-to-peer
technologies
okay so the the bottom line um
is you can achieve faster downloads
improve developer productivity faster
time to
production and be able to distribute
internally externally faster using this
technology
this gives you scalability so you can
manage spikes of concurrent downloads
and distribution
so it gives you it helps you achieve
that scale as we get to
um hundreds of billions of devices your
network will actually
be able to handle all of that large load
in a peer-to-peer fashion
you’re improving the performance and the
network utilization and the resiliency
of your system
so this improves the uptime of your your
overall system
and this is a proven technology which um
we’ve been
building and using with our enterprise
customers
for quite a while now so i hope this
was informative learning a little bit
about the um the ecosystem
for edge devices some of the challenges
with pushing to large kubernetes
clusters or
to devices where you have to push things
to a large
portion of edge nodes and um how you can
apply
peer-to-peer technologies to this
problem set
to improve the performance and ability
of um
your network to be able to handle the
load so um feel free to ask any
questions
you have about um kind of these use
cases
about the technologies and also
something else which
i’m working on is a new book about
devops tools um for
developers so if you have any questions
in general about
um source code ci cd
[Music]
about um kind of how you can build micro
service architectures or how you can
deploy i’m also happy to talk about it
and answer questions along those
[Music]
[Music]
you