start	end	text
0	6040	Sounds like we're live. I wanted to start off today's presentation by thanking everybody in the
6040	12660	DEF CON community for welcoming me to present on the Storage Network in Tardigrade today.
12660	16960	This is my second time presenting at DEF CON and I'm really excited to be here.
17000	21620	Today what I'm going to do is I'm going to first give a quick update around the Storage Network,
21620	27680	which launched in March, talk about the recent wins from an adoption standpoint,
28320	31160	what tools are being built on the network, who are we working with.
31160	35420	Then I'm going to go into a quick workshop that will walk you through the process
35420	42500	of backing up Kubernetes configuration and object data to the decentralized cloud using an open
42500	48760	source tool called Valera, which is sponsored by VMware. And so with that, let's go ahead and get
48760	53020	started. And if anyone has questions, just post them in the chat and we can get to them at the
53020	61560	end right before the workshop. So as a company, our goal is to build the world's largest,
61560	68780	most secure, resilient, performant, and economical cloud storage service without owning or operating
69280	74080	a single data center. And what that really means is that rather than having the cloud
74080	79280	controlled by gatekeepers across a small number of data centers, we enable anybody to be the cloud
79280	83740	by monetizing their excess hardware capacity, their extra storage space, and their bandwidth.
84200	89600	And so we formed a decentralized cloud storage network that is highly competitive with, say,
89600	97420	an Amazon S3 or Azure Blob or Google Object Store just by incentivizing mass amounts of individuals,
97420	104760	data centers, crypto enthusiasts to offer their excess capacity to help build the network.
104760	109860	And so in terms of some stats, right, the original prototype for storage was first
109860	118620	built in 2014 by Shawn Wilkinson at a hackathon at Texas Bitcoin Hackathon.
118820	124420	It's gone through a lot of iterations since then. The key milestone was probably in 2019,
124420	130040	we began work on version three of the network after hiring Ben Golub, who is the former CEO of
130040	136040	Docker, you know, having built the largest open source community by Linux. And so we launched in
136040	142680	March. And in terms of stats, we're at 26 petabytes of capacity. We've done a number of
142680	147360	cool things, you know, outside of our early customers, we've actually backed up GitHub
147360	154400	through a tool called Git Backup. And that's a pretty cool open repository of data. And we're
154400	159760	helping other people share open data sets as well. We have about 8,000 storage nodes,
159760	164160	more than 8,000 target users, which are developers that are storing data on the platform,
164160	168120	and actually 72,000 unique wallet addresses of people that are participating in our token
168120	175720	ecosystem. We've today stored 50 million files across four satellites. And, you know,
175720	180040	are really proud to have been the number two project in terms of development activity
180040	187620	in the Ethereum ecosystem in 2019, as measured by sentiment insights and consensus media.
187620	193320	We have a really awesome partner ecosystem that's driven by a number of open source projects who
193320	198760	have integrated with Tardigrade directly, whether for backup tools, or for, you know,
198760	204200	second level kind of graphic user interfaces on the platform. One of those that's pretty notable,
204200	209680	we'll get into kind of deeper case studies in a second would be MongoDB. We recently launched a
209680	216620	native integration into their enterprise tool DevOps manager. So let's get into the fun part.
216620	221060	How does Tardigrade work? What's the security model? Why is this a better approach to storing
221060	226260	data than on traditional cloud data centers? So the way that Tardigrade works is that there
226260	231460	are three peer classes, or really three pieces of software that anybody can run that powers
231460	237560	the network. So first off, there's the uplink. The uplink uploads data to the network, encrypting it,
237560	242560	splitting it into pieces, and spreading it across nodes. The satellite talks to storage nodes,
243000	248480	which are sharing their capacity and monetizing it. The satellite builds reputation around the
248480	252980	storage nodes based off of their uptime, their response time, and their statistical
252980	258820	and correlation to each other, and then uses that reputational profile to determine where
258820	263400	data gets pushed from the uplink. And so the satellite acts as kind of the the key decision
263400	267680	maker. It's an open source peer class that anybody can run. We run a collection of them with
268900	272340	industry standard service level agreements through Tardigrade, but anyone
272340	277020	can run them and they decide basically where the data gets stored. So when you upload the data,
277020	281180	it gets broken up into pieces and uploaded in parallel directly to storage nodes without
281180	286400	touching the satellite. The satellite's just telling the uplink where to put the data. So let's talk
286400	291380	about the journey of a file, what happens when you upload a file to the decentralized cloud.
291380	297900	It's actually pretty exciting. So what first happens is the file gets encrypted. We'll get
297900	304180	into the standards in a bit. It's AES-GCM256. It then gets broken up into erasure-coded pieces,
304180	309020	and we'll get into what that means in just a second as well, and then pushed across statistically
309020	314780	uncorrelated endpoints across the world. And so what's really critical about Tardigrade is not
314780	319780	only do you have default encryption and default geo-redundancy, right, features that you might
319780	325960	pay extra for with alternative cloud storage providers, but you also have statistical
325960	330260	and correlation from an ownership of the hardware standpoint and network infrastructure. And so
330260	334180	your data, you know, there's not one single provider that could pull the plug on your data,
334180	339820	making for a much more resilient cloud storage system. We'll get into kind of how audit and
339820	344940	uptime is ensured as well in a second. So in terms of the security differentiators of Tardigrade,
344940	351980	there are a number of really interesting pieces that make Tardigrade more secure,
351980	358860	more reliant, more reliable than traditional cloud service providers. So first is client-side
358860	363740	encryption. So by default, all data is encrypted client-side. This prevents scenarios like the
363740	369240	leaky bucket scenario that Capital One faced, where an exposed S3 bucket was then downloaded
369240	373840	by everyone and exposed a bunch of customer data. So data is encrypted client-side rather
373840	379940	than server-side. It's encrypted at the edge, at the source. For API keys, we embed logic inside
379940	387620	of the API keys using a embedded logic structure called macaroons, which was originally formulated
387620	392480	by Google. What this means is that instead of, you know, querying an access control list,
392480	399260	the API key is actually the access control credential. And so inside the API key,
399260	404920	there's embedded logic that can restrict usage of a file from, say, read-write to only read
406560	411340	time-bound files to only be read for a certain period of time and is extensible. And so you can
411340	415640	actually embed third-party logic inside of it that enables you to do things like require
415640	421020	OAuth verification and pass an OAuth or SAML token. So there's some really cool constructs
421020	425240	with macaroons that we're playing around with. And today out of the box, we support kind of
425240	432220	standard file restriction capabilities. And all the developer tools on Tardigrade are simple.
432280	435980	And so it's a really easy, sweet software called libuplink that enables you to
435980	440520	connect your applications, object storage to the decentralized cloud.
441200	444440	So let's start with encryption. Encryption is really important.
449080	456880	Encryption is privacy by default on Tardigrade, and if it was only ratio-coded, it'd be easier
456880	460980	to take someone else's file. So in terms of specifications, all encryption, again,
460980	467360	occurs at the edge, at the absolute edge of the client. Using the AES-GCM-256 standard,
467360	471620	which is a military-grade standard, the encryption, if you went into libuplink library
471620	476280	and forked it, it's open source, you could plug in your own encryption if you wanted to as well.
476400	482480	It's hierarchically deterministic and it's path-based as well. And so you might have
482480	487320	heard of hierarchical deterministic encryption from BIP32, which is the Bitcoin Improvement
487320	492580	Protocol 32, which added hierarchical deterministic key derivation for Bitcoin.
492580	499280	So you can have one master wallet and sub-wallets. On storage, encryption for files works much the
499280	506880	same way. And similar to how on Ethereum or on Bitcoin, your keys are your money. On Tardigrade,
506880	512280	your keys in many ways are your data. And so protecting that key is really crucial
513400	517900	to the security of the network, and that can be held offline as well.
518240	521660	So erasure coding is kind of the next really important differentiator that we have
521660	526580	from a security standpoint. What that means is after you encrypt a file,
526580	532440	it's broken up into segments. Each segment is broken up into 80 pieces of which you only need
532440	539320	today 29 pieces of the 80 to reconstitute the file. And so from a resilience or security standpoint,
539320	544600	what that means is that you need 51 uncorrelated nodes with different owners and different geos
544600	549540	with different internet service providers to all go offline to put availability at risk
550140	555900	at a given point in time. If nodes are constantly measured for uptime, if any one of them goes down,
555900	560940	that data is repaired and new parity pieces are created. Erasure coding is also one of the core
560940	565860	reasons why we have a performance advantage. So the way that Tardigrade works is instead
565860	570540	of a single thread stream, data is streamed in parallel, somewhat like BitTorrent.
570540	578180	But erasure coding adds an extra benefit because when you call 80 pieces and you only need the
578180	582540	first 29 responders to reconstitute the file, you're always going to get the fastest 29 pieces.
582540	588360	Any what we call distributed systems, any long tail responses are basically smoothed out of the
588360	593820	distribution due to this cool erasure coding schema. And so this drives, again, both resilience
593820	599440	of the data and performance through parallel packet streaming and kind of native concurrency
599440	604580	methods in Go. The third piece, which we chatted about a second ago, is the access management piece
604580	609300	that's built around macaroons. So traditional cloud storage providers use an access control
609300	615920	list or an ACL that's stored in a cloud database to control who has permissions to each file.
615920	620840	We've seen a number of devastating attacks with the ACL model, mainly around super user privilege
620840	626560	escalation attacks, where someone climbs up the ACL privileges and then changes everyone else's
626560	631600	privilege and can create ransomware out of attacks like that. Tardigrade is natively designed to
631600	638240	prevent this. All access control happens at the edge and is associated with the macro and with
638240	643560	the API key. And so you can actually, again, embed logic into the API key, which determines identity
643560	647740	and access management. And so we think that edge-based identity access management alone
647740	654640	is a huge security advantage over traditional ACL cloud-based models because it is much more
654640	661100	resilient to privilege escalation attacks and to a number of other attacks as well.
661800	666480	And so Tardigrade is built by default from the ground up for a trustless environment, right?
667520	672980	The idea is that you can store your data on any endpoint, any uncorrelated to endpoint,
672980	678520	and it doesn't matter. It's built for zero trust, zero knowledge environment, making it from the
678520	684020	ground up much more secure than solutions that are built for trusted environments because,
684020	690600	as we know, trusted third parties often tend to be security holes. And so again, we have
690600	695900	client-side encryption, we have path-based encryption, all the content and metadata is encrypted before
695900	700640	it goes to the satellite, the data storage is distributed so there's not a single point of
700640	706180	failure, and all the endpoints are uncorrelated, and all that ties back to the encryption key
706180	712740	ownership. And so we think that this is a really exciting model to try and disrupt a lot of the
712740	719600	weaknesses that we see in standard object storage models. And so how do you get started with
719600	724120	Tardigrade? How do you upgrade your stack today? Well, here are a few ways that you can integrate
724120	729540	Tardigrade or the storage network into your stack. One of them that we've seen, one early
729540	736300	use case, is around database backups. And so we have tools today for MySQL, Postgres, InfluxDB,
736300	742280	which is a time series database, MongoDB, and other distributed databases like Flurry.
742280	751320	We have native backup tools that enable you to either dump or schedule and dedupe regular backups
751320	756120	of your database onto the decentralized cloud. And a number of companies are really interested
756120	763140	in this due to the uncorrelated nature of Tardigrade. So data is stored across 80
763140	769280	independent operators, there's no single point of failure from the storage side, and we think that
769280	776840	this creates a better security play for backups and for disaster recovery than storing your data
776840	780020	on a centralized provider that's going to be correlated with all the other providers.
781320	787460	In terms of, you know, the MongoDB integration, we're natively integrated into MongoDB's DevOps
787460	791580	Manager tool. And so that's something we're really excited about. We launched that integration
792300	797720	a couple of months ago. And if you go to MongoDB's website, if you search MongoDB Tardigrade,
797720	802760	there's a great blog post that walks you through the process of basically scheduling backups
803480	809140	from DevOps Manager to Tardigrade so that your backups are stored and secured on the
809140	814400	distributed cloud. Another great integration that we recently launched was the integration
814400	819440	with rClone. So rClone is a really popular, common command line program to sync files
819440	825520	and directories. It's often referred to as rSync for the cloud. And so any sysadmin here that's on
825520	830880	the call is going to be familiar with rSync. And rClone is a similar tool that enables you to kind
830880	837080	of map file systems, you know, basically map commands, whether they're dump commands or any
837080	842140	kind of commands to natively integrate with Tardigrade. And we have, again, a native integration
842140	846240	with rClone. So if you download the rClone command line suite and go to their website, you'll find
846240	852360	that you can just set up Tardigrade just by inputting your API key or your access directly
852360	858780	into rClone. Another interesting integration for users that might not be technical that we've seen
858900	864360	a lot of managed service providers and just non-technical end users use is our integration
864360	870460	with Duplicati. So Duplicati, again, is a GUI-based backup tool. So basically you click on your file
870460	875020	system and you choose what you want to back up and it backs it all up. And so it's great for, like,
875020	882600	just native desktop backups. And it has a lot of cool features around deduplication and compression,
882600	887240	which limit, you know, the actual amount of raw data that gets uploaded, which is more
887240	892820	economical than a non-compressed, non-deduped backup. Another really cool thing, which I'll
892820	898660	actually show as I stream the workshop, is that, you know, Tardigrade natively supports video
898660	903540	streaming today. And so from the command line, you can generate a link that allows you to stream
903540	909580	video. It's called Tardigrade Share. And so you can generate an access that's embedded inside of a URL
909580	914340	that embeds that macro and logic. You can see here it's a rather long URL string. So you might
914340	918420	need to use a shortener if you're going to share it publicly. But it embeds that logic inside of
918420	923740	the URL and lets people watch videos and streams it in parallel from the decentralized web. This is
923740	928860	something that's really cool and I think really powerful as well. I'm really excited to see where
928860	935120	we can start to do things like, you know, map link sharing outputs to decentralized DNS systems,
935120	939220	like Unstoppable Domains, Handshake, and some of the other ones that have been mentioned earlier
939220	944440	today. I think, you know, decentralized storage with decentralized DNS is going to be something
944440	952020	that's pretty cool. We also have great native integrations with a number of hardware providers.
952060	956880	And so QNAP, you may have heard of them. They're one of the larger hardware manufacturers out of
956880	963960	Taiwan, which there are many. QNAP creates network-attached storage arrays and, you know,
963960	968940	you can back those up directly to Tardigrade with a one-click app that also shares any of
968940	973400	the excess capacity to storage, monetizing both your storage and your bandwidth. And so if you
973400	978460	have a QNAP, a Synology, or Western Digital network-attached storage array, we have documentation
978460	983760	that shows how to natively and really easily install an application that both backs up your
983760	989120	device to the decentralized cloud and then shares excess capacity to help pay for it. And, you know,
989120	995440	that's also, I think, a super cool use case. Finally, we have a great integration, you know,
995440	999740	with Kubernetes, and we'll get into kind of a workshop around this in just a second.
999740	1005380	And so we have a native integration with Valero, which is, again, a VMware-sponsored open-source
1005380	1010920	tool that enables you to back up your Kubernetes configuration object data as well as persistent
1010920	1016100	volumes. And so we'll get into why you might do that, right? You know, as a DevOps manager, you
1016100	1021540	know, for looking at disaster recovery, disaster prevention, it makes sense to have, you know,
1021540	1027240	backup of your cluster on the distributed cloud where it's globally distributed. What that means
1027240	1031900	is that it's really easy to rehydrate your cluster to any compute environment rapidly across
1031900	1037160	the globe with a single backup origin. And so we solve that problem that a lot of developers face
1037160	1042260	around data locality, which is, you know, where do I store my backups? Where do I store my data?
1042560	1048040	Do I store it in U.S. East? Do I store it in U.S. West? Do I replicate it to Asia and Europe?
1048200	1052880	With Tardigrade, data is replicated globally by default, and it's globally available by default,
1052880	1057420	which makes it great for disaster recovery when you need to rehydrate, you know, it could be
1057420	1060440	anywhere, right? Maybe you need to rehydrate to Asia, or maybe you need to rehydrate somewhere
1060440	1064740	in the United States with Tardigrade, you know, one backup solves kind of all those use cases.
1065200	1069720	And so again, right, this is a great platform that was built by developers, really for developers,
1069720	1075280	and really easy to use. All of the kind of the complexity around erasure coding, encryption,
1076140	1082360	audit, repair, and those kind of backend network functions are all abstracted. And so as a
1082360	1087500	developer, you're just looking at kind of a basic, you know, CRUD library, where you can create
1087500	1092860	buckets, put objects in buckets, stream them, delete them, very similar to, say, an S3, but at
1092860	1098740	half the price of S3, you know, with better security, resilience, and often better performance
1098740	1105080	as well, depending on the use case. And so again, super easy user interface, I won't get into how
1105080	1108580	to generate a key for this next demo, we're just gonna assume that that's already happened,
1108580	1112060	where you can create an account and generate an API key in just a couple of clicks.
1112260	1117640	And if you're interested, I recommend you do so. We also drop in S3 compatibility.
1117880	1122060	And so if you, and this is really a great demo that I often show, you can actually reconfigure
1122060	1127100	the AWS command line to talk directly to the decentralized cloud through a gateway hosted
1127100	1133080	process. And so this is a fork of Medio, which provides S3 compatibility for Tardigrade. And so
1133080	1138080	if your application today is using Amazon S3, and you want to migrate to the decentralized cloud to
1138080	1142840	cut your cloud storage bill in half, and have better resilience and performance, you can do that
1142840	1148880	by running the gateway and easily migrate over without having to rewrite any code, which is also
1148880	1156620	really powerful. And so that's the quick overview. Ajit, does it make sense to answer questions now
1156620	1160960	before I get into the hands-on workshop? Or should we wait till the end for questions?
1170380	1184800	Cool. Anyone have any questions? Well, we'll go ahead and get started. And if you have questions,
1184800	1188580	post them in the chat. So for the workshop today, we're going to walk through the process
1188580	1194360	of creating a decentralized storage backend for Kubernetes that uses Tardigrade and Valero
1194360	1201460	toolset to make that possible. And so let's go a little bit deeper in what Valero is. Valero
1201460	1206760	is a tool that enables you to back up and migrate Kubernetes clusters. And so Valero
1206760	1212340	natively uses the Kubernetes API to capture the state of the cluster resources, which makes it
1212340	1217280	easy to rehydrate at any target. And so again, Tardigrade is a great backup option for this tool
1217280	1221480	because it's globally distributed, because it's highly economical, and because it's highly
1221480	1230120	secure, encrypted, and resilient as well. And here's kind of a quick little diagram,
1230120	1235220	by backing up Tardigrade, you can restore your cluster to any compute environment,
1235220	1240880	whether it's cloud or self-hosted globally, really quickly. It's really easy to install.
1240880	1245000	There's a simple install command, and then you point it at your existing kubes environment,
1245000	1251580	and you can back it up. And I'll go ahead and show that off now. And so what I'll do is I'll
1251580	1257580	stream a demo from Ivan, one of our solution architects and engineers at Storage Labs,
1257580	1262500	and he'll walk through that process. But first, in terms of early use cases and wins,
1262500	1266040	we've had a number of customers who already started using Valera to backup their Kubernetes
1266040	1270860	databases, sorry, their Kubernetes instances today. And so what's really great, what we've
1270860	1275420	heard is that backups can capture a subset of the resources, so it's really flexible.
1275420	1280400	You can filter on namespace, or on label, or on resource type. So you can really granularly
1280400	1289700	define what gets backed up. Users also are excited that it backs up the underlying etcd database.
1290840	1297260	So often, other backup solutions don't backup the etcd database, but Valera does. And then also,
1297260	1302840	the resources are exposed to the API servers. And so even if the resources are in separate databases,
1302840	1307720	they can also be backed up. And so for Kubernetes applications that are looking to improve their
1307720	1312400	disaster prevention strategy, this is one piece of a larger puzzle, right? You need to
1312400	1317120	also backup all the state associated with your existing databases and persistent volumes.
1317120	1321960	But this is kind of a really great place to start in tinkering with the decentralized cloud to
1321960	1328560	improve the resiliency of your cluster. And so what I'm going to do is I'm actually
1328560	1334920	stream this demo directly from the decentralized cloud to show you how performant it is. If this
1334920	1340840	doesn't work, if the internet gods shame me, I can switch over. But let's go ahead
1340840	1348020	and get this started. In this video, I am going to show you how to use the Valera storage plugin.
1348020	1353700	Valera is a tool that allows you to backup Kubernetes configurations and persistent volume
1353700	1360660	snapshots. In order to use the storage Valera plugin, you have to create an account in Tably
1360660	1368540	server. You can go wherever Tably server, sign up, create a project, and after you have a project,
1368540	1374000	create an API key for that project. Once you have that, make sure that you write down or you
1374000	1381160	copy and paste that API key because it's the only time that you will see that API key and keep it.
1381440	1389420	So after that, install uplink-cli. That is the command line tool that Tably has for accessing
1389420	1398160	to the network from the command line. So with uplink installed, you call setup. After you select
1398160	1403620	the server where you sign up, in my case it's US Central, select a name or use the default one for the
1403620	1412480	access, grab your API key and set it, and just select a passphrase.
1417820	1424020	Once you did that, you need to grab the access grant that has been generated with this data.
1424560	1430520	The access grant is stored in the configuration file because I haven't specified any configuration
1430520	1436880	file. The uplink has created the configuration file in the default folder. The default folder
1436880	1443920	is in the case of a unit machine in my home directory under local, share, storage, uplink,
1443920	1450780	config file, config.yaml. So I want to grab that access. That is what I need for
1452060	1459740	configuring the developer storage plugin. I copy the access. I am going to export to
1459740	1465700	one environment variable that I am going to name it access, store access.
1468860	1474220	Because I will require that environment variable every time that I need this access.
1474520	1480460	And I will avoid to pollute this demo in every command with this long string.
1482120	1486360	Bear in mind that the API key is not something that you have to share. In my case, I created
1486360	1491180	this API key just for the purpose of this demo. Right after, I will delete it to avoid that
1491180	1500660	anybody can use it for using, obviously, my network. So see my files and create files on it.
1503620	1513440	So the first thing that I am going to do is create a bucket. This bucket is needed because
1513440	1519320	once you set up that, when you specify a backup in Galero, you have to specify a bucket.
1519620	1525240	And the bucket has to exist before doing the first backup. So let's make sure that I have
1525240	1532740	the bucket, uplink.tls. So right now I have this bucket Galero, but I am going to delete it
1532740	1539440	because I want to start it from scratch. I remove the bucket with whatever content it has.
1542590	1550190	Now I don't have any bucket, so I am going to create a bucket that is going to call,
1550190	1558010	I am going to call it Galero. Once I created a bucket, obviously, that bucket is empty.
1558010	1568630	But let's show it. Okay. Now I am going to install Galero in a Kubernetes cluster that I am running
1568630	1573610	in my log. At the same time that I am installing Galero, I am defining a bucket location.
1574090	1584230	The bucket location that I am defining is using the target grade plugin. Okay, so let's
1585970	1593390	install Galero with provider target grade, that is the name of our plugin,
1596810	1604930	and specify the image where we store that provider, that is storage third-party
1608430	1619100	slash Galero. And I am specifying this tag. This is a local image that I have
1619100	1624820	in my local only. This is not available online, but in Docker Hub we have the previous version.
1624820	1629200	We are still working on this plugin, so we are improving, and I am using this one because it's
1629200	1635520	much better. After, I have to specify a bucket. In this case, it's the bucket where I am going
1635520	1643960	to do the backups, that is the Galero bucket that I created right before, and specifically
1644640	1653980	tell to Galero that I am not going to backup as an option, persistent volume as an option.
1653980	1659740	This is because our plugin doesn't support it yet, but hopefully we will support it in the future.
1660200	1665400	And after, so I have to, for this configuration location that I am creating,
1665620	1671140	at the same time that I am installing Galero, I have to provide the access grant
1671140	1676800	that is the only configuration parameter that our plugin requires.
1682350	1686350	Oops, I mistyped the command, but
1689010	1695410	whatever. Oh yeah, and another thing that I have to do is specify no secret,
1698090	1704810	because Galero requires that you specify a secret, or if you don't need it, if you don't need one,
1704810	1710190	you have to specify that you don't want, that you cannot leave it empty. So in our case,
1710190	1720850	our plugin doesn't require it. So now Galero is installed, and I can see that in my cluster,
1720850	1725550	just getting deployment from components
1725550	1725910	components
1727770	1732390	equal Galero from, so from
1733970	1735370	namespace
1737630	1741410	and space Galero, that is
1743710	1745810	components namespace
1748090	1749870	deployment components
1755780	1761440	and deployments of components of Galero namespace of Galero,
1761440	1768220	that's what, this is component. Okay, that is what the installation has created.
1771240	1774890	What I'm going to do for the demo is creating an Nginx service.
1775700	1780580	And this is the service that we are going to do a backup, we are going to destroy it,
1780580	1784980	like simulating a disaster, and after we'll recover from the backup.
1786640	1793440	The Nginx service is something, is an example that it comes with the Galero installation.
1793440	1797800	So Galero has a folder inside of the tar file that has several examples.
1798260	1803140	This is the folder that I copied from the tar file. So let's deploy the
1806660	1809840	the Nginx service.
1812690	1816950	Once I did that, I can see in my Kubernetes cluster
1819070	1820310	that I have
1825160	1829100	they have a namespace that is called Nginx example and I have
1833520	1839080	and I have a service, the Nginx service.
1841100	1846960	So now let's do a backup. But before doing that, let's see if
1846960	1850880	backups, Galero backups get.
1852320	1859180	So this backup get doesn't show anything because we don't have any backup. So let's create one.
1869980	1871200	Galero backup
1875360	1882120	great Nginx backup. I call this backup Nginx backup and I only want to
1883680	1884800	backup the
1886560	1892940	the resources that have the level up Nginx, not everything.
1894240	1899740	So I create the backup. I can do backup get again and my backup is in progress.
1900600	1904340	And I wait a bit more and after it says that it's complete.
1904900	1909860	But okay, what we can do now is see what we have in our bucket.
1910620	1917440	We go away with the uplink ls and just list the, we can list the
1918480	1924460	the Galero bucket. Now you can see that it's not empty. There is a directory
1925920	1931940	that is called backups and with, well it's not a directory because we have keys but there is
1931940	1935700	this key inside of the kubernetes but it's kind of simulating a directory.
1936740	1945240	Nginx backup and we see that under that prefix we have all these files that Galero has created.
1945240	1952160	So great, we have our backup in our target network. So what we are going to do now is simulating this
1953400	1961220	this disaster. For doing that we are going to delete the entire namespace
1963500	1966610	of Nginx, call Nginx example.
1969000	1975190	Oh, a disaster is happening now and that namespace gets deleted.
1977580	1980140	We wait until we finish.
1986030	1991350	And now we are going to see how if we are getting the services
1996380	1999180	the services from the namespace
2004520	2017950	Nginx example. So basically there is no resources found. At the same time if we try to get
2018570	2029350	this namespace from the cluster, so basically it's not found. Okay, that's we are confirming
2029350	2035650	that disaster has happened. Now we are going to restore. Galero has a command that is restore
2036450	2043550	and you have to you can say what you are going to restore. So we are going to restore creating
2043550	2051530	from a backup that is called Nginx backup. That is the backup what we created previously.
2052590	2064010	With a restore. And now Galero restore get says that it's complete. So if we are going now to
2064010	2069770	list this so that is the namespace it should be there and it's there. And after we list the service
2069770	2076810	it should also be there and it's there. So we have recovered our Kubernetes configuration from
2076810	2084930	the delegate network. Okay, but now what we can do as well is at some point you don't want this
2084930	2097070	backup anymore. So we can delete the backup. Sorry, with Galero backup delete and you have to specify
2097070	2106110	the name Nginx backup. And after it asks for confirmation we confirm and after we do Galero
2106110	2117390	backup get we don't have any backup. So basically with this we unregister this backup so the backup
2117390	2123230	is not available anymore in Galero. But obviously we would like to know if those files are stored
2123230	2131290	has been deleted by Galero from our delegate network. Let's see that. So for that reason
2131290	2132990	I am going to list again
2135810	2142860	my backup, my Galero backup, and now it's empty. So basically everything works as expected.
2143170	2149350	I hope that you enjoyed the demo and I will encourage you to try our Galero plugin with
2149350	2157750	our great delegate object storage decentralized object storage network. See you next time.
2160000	2165860	Okay, thank you Ivan. And again that was streaming directly from the decentralized cloud
2166500	2173320	which I think is pretty neat and pretty telling of some of the capabilities of Tardigrade.
2173720	2180060	And so with that, that's the conclusion of my presentation and our Valero workshop for backing
2180060	2185500	up Kubernetes data to the decentralized cloud. Does anyone have any questions?
2209690	2211830	Looks like I see one popping up in the chat.
2214470	2220550	If anyone here is a developer, questions in Twitch. I don't know Ajit if you can rattle
2220550	2225590	those off, I'd be happy to answer them. But in the meantime, if anyone here is a developer,
2225590	2232070	you can get started with Tardigrade at documentation.tardigrade.io and we have a
2232070	2237930	number of walkthroughs on the website around just basically uploading data, sharing data,
2237930	2243230	streaming it on the internet, scheduling backups with databases, creating graphic user interfaces
2243230	2247730	around that data. You can find all of those walkthroughs and more on the documentation for
2247730	2269740	Tardigrade. No problem. So with that, that means the presentation went well. I answered everyone's
2269740	2274680	questions. And if anyone else has any other questions after the call, you can email me
2274680	2282080	directly kevin at storj storage.io. And we're always looking for partners and for developers
2282080	2287720	who want to build the next generation of cloud applications on the decentralized cloud.
2287720	2292860	We're happy to give you the white glove treatment and help you get building or migrate your
2292860	2298120	application to Tardigrade. So thanks again. And thanks again for Ajit for hosting me.
2298120	2301940	And I hope everyone has a great afternoon and happy Friday. Happy almost weekend.
