080: Resin.io with Alison Davis and Ronald McCollam

Hosted byElrick Ryan and Joe LaSala

August 17th, 2017.

Alison Davis: LinkedIn

Ronald McCollam: @ronaldmccollam | ronaldmccollam.com

Show Notes:

  • 01:19 - The Future of IoT
  • 04:57 - Where does Resin.io fit in?
  • 07:04 - Founding Resin and The Unicorn
  • 11:26 - How Resin Works
  • 15:16 - Diffing
  • 17:58 - Tooling and Workflow
  • 23:02 - Resin is Open Sourced!
  • 24:05 - Case Studies
  • 30:04 - Security
  • 34:47 - Scaling Up and Improving User Experience

Resources:

Transcript:

ELRICK: Hello and welcome to The Frontside Podcast, Episode 80. We have a wonderful podcast today. My name is Elrick Ryan, a developer here at the Frontside and I'm going to be hosting the podcast today, in place of Charles because he's on the frozen tundra. I also have co-hosting with me today as well, another developer from the Frontside, Joe LaSala.

JOE: Hello.

ELRICK: Joe, how are you doing?

JOE: I'm doing well, how are you?

ELRICK: I'm awesome, man, and we have a wonderful podcast today. We're going to be talking about Resin.io and we have some wonderful people here from Resin with us, not one but two people came over from Arizona. We have Alison Davis, who is the director of product marketing and strategy at Resin. Alison, how are you doing?

ALISON: Hey, Elrick, I'm great. Thanks for having us.

ELRICK: Thank you for coming on. Also, we have Ronald McCollam, who is the solution architect at Resin.io, he's on the call with us on the podcast. Ronald, how are you doing?

RONALD: I'm doing great, Elrick. Happy to be here, thank you for having me.

ELRICK: Thank you for coming on. Thank you. Let's kick it off and we're going to talk about some IoT today, some Resin in IoT. What do you guys think is the future of IoT? What does it hold in your perspective?

RONALD: If you had asked me a couple of years ago, I probably would have said that it's a bunch of connected refrigerators and maybe light switches and kind of left it at that. But the more I see the industry evolving, the more I realize that IoT really means that everything is getting interconnected and everything is sending data and exchanging data. I think we'll start to see IoT, not only in smart appliances and lights and so forth on the consumer side, but also on the industrial side. A lot of building automation, a lot of just more general information being provided by the environment and environments adapting to suit humans better. I think really the answer is IoT is going to be everywhere you look over the next few years.

ELRICK: That is a broad takeover of IoT. It's going to be everywhere.

ALISON: Yeah and I'll just add that we also think that IoT is going to become more prominent as compute power really does push further and further out to the edge. We see this trend happening already, where the amount of data and computing that needs to happen is too much to continuously be communicating back up to the cloud and more and more computing will need to take place on the edge in IoT devices and we really see these strong devices weakly connected as we often say as the future of IoT. One thing, we can talk about with Resin is, we see this creating what we call a management gap in between the developer and the fleet owner of these devices on the edge and the devices themselves and that's where Resin comes into the picture.

ELRICK: That's interesting, so these devices are going to be sharing the computation and taking away some of that computations from the actual cloud?

ALISON: Yeah, we think so. I think the devices themselves are getting stronger and it's becoming more and more possible for that to happen. Then there's just simple reasons of physics and economics why it will be too slow and too expensive to continuously be relying on the cloud for compute. This is a trend that we really see happening and something that we want to help fill that management gap between developers and their fleets of devices that are running out on the edge.

ELRICK: I can see how that could be a plus for a company to not have to try to do all these computation on the cloud. As Ronald said earlier, since IoT is everywhere and it's going to be in devices all over the world, we could end up with probably trillions of devices trying to leverage cloud to do with computation and taken some of that away from the cloud would be a definite plus because I don't think that there is a platform that can handle that kind of data throughput.

RONALD: Yeah and even as Alison said, there are just times that for reasons of the laws of physics, you really can't wait for that round trip to the cloud. We'll go sci-fi here. Let's say you've got some automated robot in an environment with a lot of people around, you don't want that thing sending all of the camera information that it has as it's moving through a crowd of people up to the cloud, waiting for the processing to happen there and then being pushed back. By the time it gets there, that robot may have already run over somebody. We really don't want that. You've got to do some of that processing out at the edge where the data is being collected.

ELRICK: Yep. That's both technology issue and legal liability there so we got to make sure there's no robots running over anyone.

RONALD: Yeah, exactly.

ELRICK: How does Resin then blend itself to helping to promote this computation in strong devices that are weakly connected?

RONALD: What Resin does is really enable you to be sure that you are running the right code on the right device and that any updates you push out to that device are not going to take that device offline or brick the device. Resin really sees whatever is running on the device as sort of a black box. We really don't have a lot of opinion about what the right thing to do on your device is. We think you know that better than we do. But what we can do is help you make sure that the devices that you have out in the field are always running the latest code, that when you find security flaws or you want to push an update out, you can always reach those devices and be sure that you can do that safely and effectively. Really, from our point of view, we want to make sure that the IoT is running safely and is always running the latest and greatest, the best code that you can possibly have out on your devices.

ALISON: You need to have a way to remotely manage an update on all of these devices in a way that won't brick the devices or make you lose access to them when you can't physically access the device again. Resin is here to make it simple, easy, efficient, fast and most importantly, safe to update, as Ronald said, the code and software running on the devices so you can push updates as often as you like, send security patches and then remotely monitor what's going on with your entire fleet, all from your laptop.

ELRICK: That's amazing. We've had some experience using Resin here at the office and we've been very excited and delighted with the service. I've been in Boston, actually pushing code down to Texas and it happens like almost instantaneously, which is amazing.

JOE: Yep. We really enjoy using it. I think it's really cool. We're only using it currently on one Raspberry Pi but it be really fun to have a fleet of Pis and get expand that reach. I got to ask what the origin story is for the Unicorn that gets displayed.

ELRICK: Yeah and in that vein, what is the founding story like? How was Resin founded?

RONALD: The founding of Resin is really an interesting story because it's not that there were a bunch of people sitting around in a boardroom with a whiteboard and saying, "What's the next big thing coming along, what can we get into?" This really came about as a result of real world events. Back in the 2012 Winter Olympics in London, the team that would later go on to found Resin ended up in charge of a project dealing with a bunch of digital signs, so think of advertising and information about what was going on in the Olympics. These were all over the city of London. Mostly on a really, really interesting smart bomb proof rubbish bins. They really went all out to make sure nobody could come to harm as a result of these.

But the team was intending to push some updates out to these devices -- update the information on the signs -- and had inherited this project that had been built where they were really doing what everybody was doing at the time. You just SSH into a device remotely, you run a set of script and you kind of hope everything works. That's how we had a whole bunch of people walking around the city of London in the middle of winter with USB keyboards and USB sticks, trying to get all of these individual rubbish bins back online and back up and running after a bad update.

After pulling back from that, they said, "You know, this is terrible. There ought to be a better way to do this. Why did we end up in the situation?" It turns out, there really wasn't a great way to do it at the time. That's where Resin comes from. It's an effort to fix this problem, not only for ourselves but for everybody in the world to make it easy to push updates to remote devices and be sure that you're not going to have to walk around in the cold and the sludge to try to get those things back online if you do a bad update.

I don't really know what the origin of the Unicorn is. I know it was an in-joke with that team that, I guess kind of slipped out more into the real world. I don't know, Alison if you know more about the Unicorn than I do but it's still a fun thing to see every time you do a push.

ALISON: Yeah, I think our CTO Petros, who was also the first person we think anyway to -- when we get into this when we talk about how Resin works -- port Docker to ARM, which as a core piece of the Resin platform, he wanted to add in something fun so that when you complete a successful deployment on Resin, you see the Unicorn and that means that your push is successful and your device has fully downloaded the update. I think that's part of what makes Resin 'Resin' is where we're very, very serious and we want everything to be secure and completely buttoned up. But we also like to keep things a little bit fun and make sure that, not only is it safe and easy to deploy updates but also enjoyable.

ELRICK: We definitely enjoy seeing that Unicorn as well. I've just been pushing the simplest code of all time just to see that Unicorn pop up on a successful build.

RONALD: Yeah, it's always nice to get some feedback that everything worked well and everything is going perfectly for you today.

ELRICK: Yeah, that's beautiful. We were thinking about that as we were talking about some IoT things before. We had not the best product idea in the world and since everyone drinks Topo Chico in Texas, we were like, "I wonder if we had a Topo Chico popper in the refrigerator," and then we're like, "If millions of people end up with this Topo Chico popper, how we then going to update the code on these Topo Chico popper in everyone's refrigerators?" That's where we're like, "Resin.io would be a perfect solution for that," or as you said, half people are walking around in the sludge going to update these devices.

These devices could be located anywhere in the world and Resin seems to be a platform that could handle that type of requirement that you have to update these devices that could be anything and anywhere. I guess we can talk about how Resin then works in order to get that code deployed to anywhere and keep all of these devices updated with fresh code, as you said.

RONALD: Yeah, absolutely and you're completely right. This is designed from the ground up to be something for working with distributed systems, devices that are not really under your physical control. They may not even be on a network that you control so this could be something that is out in the middle of the ocean, up on top of a mountain. Anywhere that you have network access and you want to be able to update a device is really the target for Resin.

The way that this works is there's a lot of bells and whistles and things that we've learned over years of updating devices and managing devices but at kind of a high-level, we maintain a host OS on the device. There's a stripped-down version of Linux on that device that maintains a connection to the network. Really, its entire job is to just keep that device humming, keep it on the network and not do a whole lot else.

Everything else happens inside of a Docker container and if you're not familiar with Docker, Docker is really sort of like a lightweight virtualization. It's a container technology that allows us to pack an application, all of its libraries, even its operating environment into one container that can be deployed and managed very, very easily. Because everything is sitting inside of a container, we can push updates to a container and not touch that underlying OS layer that is managing the network connection.

Even if you do push bad code, that's not great. Your code might crash but the host operating system is still going to stay online. It's still going to maintain that network connection so that you can roll back or push another update to fix things very quickly. Then on top of that, we layer on a lot of technology that we have developed in-house to do things like computed delta between what is running on the device and what code you have just pushed to us to get on the device.

You might have an eight gigabyte application running on one of these IoT devices but if you make a one kilobyte change, we're really only going to push about one kilobyte out to the device. We're not doing a full blast of a firmware update, making you pay for eight gigabytes of data over your 3G connection. We're really doing everything we can to minimize the amount of data that we send over the air, both so updates go faster but also so that we don't have to pay as much for bandwidth or wait as long in intermittent network connectivity environments.

Then the final part of this is that by using Docker, we get for free some of the really cool things that Docker brings to typically larger data center environments. We have things like atomic updates. When you push an update out to a device, if you lose power or you lose connectivity in the middle of that update, that's fine. The device is just going to keep running the same code that it had on it previously until network connectivity is restored. It will resume that update and only once the full container is downloaded and put on the device, it will shut down the old version and start running the new one. There's really a lot of under the hood stuff that we've developed and we've layered on to make sure that when you push an update out to these devices, it's always doing it safely and always doing what you want to do.

I get to say this because I didn't write any of the underlying code. I'm constantly amazed at some of the stuff that Resin does under the hood. It's really fun to see, just how easy it can be to update devices that are anywhere in the world. I'm constantly pushing things to London or to Seattle. I'm in Boston so it's really cool to see these things update all over the world.

ELRICK: That is amazing, all of the various things that Resin gives you out of the box that you don't have to worry about as a developer, as a company. It provides you that underlying foundation for you to then build whatever product that you want to build or software that you want to build on top of it and it's absolutely amazing. I'm blown out the water every time I do something out on it as well.

RONALD: Oh, cool. I'm really glad to hear that. That makes me feel good.

ELRICK: That's interesting. There's so much in what you just said. There's so many different parts. I know that Joe one time, he was wondering how you guys actually do that diffing in the code that's pushed up to then on the download those changes and not the entire bulk of that code. Can you dive any deeper or give a further explanation on that portion of it?

RONALD: Yeah, absolutely. I'm happy to. At a high-level, it's very simple to explain. Of course the devil is in the details. It's just like, "Updating the device. Oh, great. I'll just push bits out to it and run some stuff." If you think about it too simply, that's how you end up having to trudge around in the snow with USB stick. But at high-level, we're tracking what's already deployed on all of those devices. Because the devices out in the field are in contact with the Resin service on the backend, we know what version of your code is running on every single device at any given time.

Because of that, what we can do is when you push a new version of your application, we can just do a binary diff against the image that was pushed out earlier to the image that you just wanted to push right now. We can say, "This device is running version one. I want to bring it to version three." I already know what version one is. I, obviously know what version three is because I have it right here. We'll just calculate a diff between those two versions and send only that diff out to the device.

Then because the device is fairly intelligent, we can do a lot of computation at the edge to just reverse that diff and apply it on top of what's already there. These are Linux devices. They can run the same code that we use on the backend to generate that diff just in reverse, to generate the final image that we want to deploy. Even if you've got devices on five different versions of your application and you want to push them all out to the latest version, we can apply a different diff for every single device and push that diff out to the devices and they will then apply it on top of the container they're running. From the user perspective, it's nice and easy. Under the hood, there's a lot going on that we've developed to make sure that process always happen safely and securely. JOE: That's very impressive. We use Resin for our lights here in the office. We have a Raspberry Pi that controls a bunch of Philips Hue lights. I just started here a few months ago when I came on. Elrick had already have been poking around this Resin stuff and particularly that part, being able to do that diff and push only the code necessary, it was really impressive. It's also very easy to me, instead of 'get push' origins, it's 'get push' Resin, like you have the ability to send it out in your normal workflow.

RONALD: Yeah, that was, honestly one of the big issues that we've seen in the IoT space in general is that the tooling and the workflow that people are using, I don't want to insult it but it's out of date. It's very much a 20th century mindset. People aren't tending to use the latest tools. They don't have continuous integration. It's really like I'm writing some C code or assembly and I'm blasting out a firmware update. That's worked in the past but it doesn't get to the scale that you can do things in the web and cloud world.

Look at Facebook. They're doing multiple deployments a day sometimes to production and when was the last time you heard about a deployment taking Facebook down. There's a lot of tooling and a lot of really cool development that has been worked on and put into practice over the past 10 or 15 years to make those things possible. We're taking those same tools and we're bringing them to the IoT world. Just like you mentioned, when you do a deploy through Resin, you're actually doing a get push. We're using the exact same tools that you would use to deploy to a cloud environment but now, you're deploying those out to an IoT environment so we can fit right into a continuous integration pipeline. We can let you do things like distributed development.

Resin is a very distributed team. We have people in something like 19 or 20 countries. We're using these tools to develop Resin. We kind of said, let's use those same tools to bring that experience to the IoT world. It's a really great way if you already have some experience with cloud development or modern desktop software development to be able to use those same tools for IoT, without having to come from a really heavy hardware background or firmware background.

I, myself am a software guy and a web guy from way back so it's really cool for me to be able to deploy things on the devices without having to think about assembly code or firmware blobs or things like that. I can just write, even maybe some Electron code, get push that and it lands on a Raspberry Pi and I've got my code running on a device somewhere out in the world without me having to learn a new tool set. It's really powerful from that aspect as well.

ALISON: An important point is that we want to bring the best and most modern and newest tools to the IoT but we also want to bring a workflow that feels native to developers who are coming to IoT from the cloud and web world. Given the growth that we think will take place in IoT and more and more devices moving out to the edge and more compute are moving out to the edge, we'll need more and more developers to be building software and code for these devices and we want to make it very accessible and easy and native to all developers and to the workflows that they're used to so they can develop applications for IoT and have it feel like a very native workflow.

JOE: You've hit on what I think is like a very important point about this. The IoT is a marriage of these systems programming, embedded programming and web development in a way. That's a very different codes that is written. People who write code in embedded systems, it's a very different world than what we do as web developers. The one thing that you might be able to bridge that gap with is a common workflow and we're all used to version control or used to kind of pushing code out the way that we push code out and Resin sits right in the middle there. That's worth a lot, I think.

ALISON: Exactly.

RONALD: That exactly it. There are millions of mobile developers and millions of web developers but only hundreds of thousands of traditional embedded developers. Being able to bring those millions of developers using their same tools they're already familiar with to this IoT space, I think just really dramatically increases the opportunity for people to get involved and to build the next cool thing.

JOE: Definitely.

ELRICK: That is totally true because we were able to hook up Resin into CircleCI so we can get a continuous integration and continuous deployment pipeline. It was definitely a painless solution to set up. That is testament to that, if anyone wants to build something on top and start to add other things into Resin that you guys definitely do have those hooks for people to then, add whatever they need to build, whenever they need.

RONALD: Yeah, definitely. We think that the days of walled gardens are really over. We don't want to see companies try to lock other people or locked developers into a single application or a single environment or a single device. We really want these things to be as open and interoperable as possible. Part of that is just making sure that everything that we do is also open and interoperable. We expose all of our APIs to anyone, you don't have to use any of the Resin tooling, you can wrap that right into CircleCI, for example, you can pull that into Jenkins, you can pop this right into your development workflow and just keep rolling right along and we're happy to be a part of that.

ALISON: I think that brings up another important point about what Resin does too is that we're really committed to open sourcing all of Resin and currently everything that runs on the device, including our operating system -- resinOS -- is open source so that people can see exactly what's going on. We even had people take our operating system and tweak it to support new device types or add in their own functionality on top of that OS. We're working really hard to actually open source all of our backend as well. That's something that's really important to us in this world of open and accessible software for IoT. We want this to be something that feels approachable and open to anybody.

ELRICK: That is amazing. I didn't know that all of the code or majority of your code was open source. You heard it here first. If you want to go and check out some awesome code, head over to GitHub and look up Resin.io's codebase.

ALISON: Yeah, all of the code on the devices and the whole operating system is all open source already and then where we're releasing all of the pieces of our backend so that if you want to run Resin on your own, you can do that. Hopefully, by the end of the year, I think is our goal.

ELRICK: We've been talking about Resin and all of the benefits that Resin would give developers and companies that want to build products and it has a slew of things that it gives you out of the box, if you don't have to build that you can then build on top of. It will be interesting to hear some case studies or how people are actually using Resin in the wild to bid out their products. Do you have any specific case studies or things that you can talk about in respect to how people are using it out in the world?

RONALD: Yeah. We have a huge variety of companies using Resin. We like to say that it's everything from smart locks to skyscrapers. The smallest physical device that I know of that we're managing is smart locks like actual door locks on houses and buildings. Then we have things as big as skyscrapers like industrial automation, building automation. It's really all over the place.

One of the most interesting use cases to me is there's a company called OpenROV that does underwater drones. They have remote submersible vehicles that are exploring and doing cool science underneath the ocean. They're managing the software that's running on those devices using Resin. They throw these submarines out in the ocean, they let him tool around on their own. When they come up to the surface, they send back data and check in for updates so they can be constantly refining what those submersibles are doing out in the ocean without having to physically go pick them up or bring them back in to make changes. It's a really, really exciting thing to see.

But we've got similar stories in things like power generation. I mentioned earlier out in the middle of the ocean or on top of a mountain that was literal. We do have companies that are making wind turbines that are in all kinds of environments that are very difficult to get to. They really want to get the top performance out of these devices. If you can pull a 1% increase in power generation from a wind turbine, you've really started making a lot more money. That's a very significant improvement. They have devices in these wind turbines that are constantly monitoring every part of the turbine itself and the environment so they're feeding data back and then they can use that to build a new model of the best way to say, angle blades on a turbine and then push that new model out to the device without having to go miles out into the ocean or up on top of a mountain to physically touch those devices.

Again it's a really cool way of being able to pull data back in, modeled it in the cloud and then push that back out to the edge for application without having to physically visit every one of those devices. It's just really exciting to see all the cool use cases that Resin has being used in.

ELRICK: That is amazing. I actually gave a talk one time and I said, these devices could be out in the middle of the ocean somewhere, who knows? And someone could be pushing updates to it and it's amazing to hear that someone is actually doing that. I didn't just pull that out of the thin air. This is a real thing.

RONALD: Yeah, absolutely. We've got, like I said, out in the ocean, on top of mountains. We've got ones in the middle of cities. Anywhere that you have a network connection, you can put a device. We even have some companies doing things over 3G or even 2G modems, I think like out in the jungle or in very rural areas where you want to be able to collect things like environmental data or maybe air quality information. Really, anywhere that you can have a network connection, you can have a device that you're managing and updating and making sure it's kept up to date without having to physically go touch that thing.

ALISON: And Resin really is use-case agnostic and we see end users using Resin in their workflow, no matter what project they're working on. It all comes down to, I think all of these companies and projects are looking for ways to operate more efficiently and to gather data about their businesses and their projects. Any company in any business can use IoT to improve their operations. We see more and more companies finding ways to incorporate IoT into their work and I think part of that is driven by the availability and accessibility of tools like Resin devices, like the Raspberry Pi. That's affordable and easily available and quick to get up and running on. That's a new trend and I think it's enabling a lot faster and broader adoption of IoT.

JOE: Absolutely. It feels constantly like we're right on the cusp of something with IoT. But we do work in that space a lot just in our own time and as part of the work that we do here at the Frontside, we're always finding the tool set seems a step behind and Resin is a stark contrast of that. We're coming into a whole new era of computing with something with a very powerful tool in our belt already. That is very well fleshed out. Thank you for that.

RONALD: Yeah, thank you. It really does feel like we are on the verge of a sea change in how we see computing. We've gone, like I said from a few years ago thinking of IoT as sort of silly things like smart refrigerators. I shouldn't say silly but just sort of one off use-case like smart refrigerators or smart lighting. Now, to the extent where it's really about pervasive computing and I think we're just barely starting to scratch the surface of what that means and how that's going to change the world when we start having data about everything that's going on in the world around us. All of the equipment that we have and all of the compute power that we have around us is able to adapt to us and change as the needs of the environment change is just a really exciting time. I don't even think we can predict what the world is going to look like in 15 years as a result of this.

ALISON: As IoT and edge computing becomes more pervasive, we touched on this at the beginning but this is where management and security become really important and you hear a lot of people in the press and elsewhere talking about the security of IoT devices and how they're vulnerable to attacks. This is where something like Resin is really important where you need to be able to access and be able to update and send security patches to those devices remotely and to send those updates constantly so that they're not vulnerable. As this field grows, which we think it will exponentially, we really need to find ways to fill this management gap and Resin, hopefully can help do that to some extent.

RONALD: I think that traditionally, if you were building a device, you think like a hardware manufacturer like Alison says, you're not thinking about necessarily security and updates because in the past, it was just, we build a device, we'll put it out in the world and that's it, unless the things are catching on fire and we have to do a recall, we just move on to the next thing. But today, all of these devices are connected to the internet, which means they're constantly being attacked, people are looking for vulnerabilities and as soon as one of those is found, that spreads across the world like wildfire.

We see the news articles on a weekly basis of IoT devices being used as part of botnets or being taken offline. Having a way to make sure that you can constantly address those issues as they come up is really, really important. Even if you're a hardware manufacturer, once that device is released, you have to think like a software company. You have to be thinking of updates. You have to be thinking about security all the time or you're really letting your customers down.

JOE: Yeah, that's very true and the only way to mitigate threats is to constantly addressing those threats. I've worked in the security space. There's no such thing as secure really. We're never going to reach a level where it's like, we solved it. You have to constantly be rolling with the punches, so to speak. It's great that that's built in with Resin.

RONALD: Yeah, exactly. Security isn't really an end state. You don't ever get to say, "Yes, I'm secure now." It's a process. It's how do I deal with things as they happen because they will happen.

ELRICK: That is definitely true and people shouldn't be afraid to be constantly pushing data to these devices because as you said, people and some of your customers are using Resin on 3G and 2G networks so that is proof there because of the diffing that you do in the backend and you only have to push down a small subset of your code that you can definitely just constantly be pushing and staying up to date to make sure that you're on top of your security issues.

RONALD: Yeah, exactly and it's only going to become more and more important as we expect these devices to do more things and work with more data and perform more analytics at the edge. We just have to stay on top of that as an industry.

ALISON: And we have customers who tell us that before Resin, they used to be afraid to push updates and they would put it off until the last possible minute. We want to create an environment where the opposite is true, where you push updates all the time, not only to push any security patches but also to make your applications better and push better code out to your devices. We want people to feel empowered and they will able to do that as often as they would in the cloud [inaudible].

ELRICK: Yeah, that's definitely true because as you said, as we're getting more web developers and people into this space, we're used to, as web developers constantly pushing code and constantly sending updates about our codebase out there. As more developers from this base come into the IoT space, that's definitely something that they're going to be looking for and Resin does provide that capability out of the box.

JOE: It's interesting that it follow the same pattern because we weren't always used to that. We used to plan on a quarterly basis and releases would be these huge multi-day headaches with people on call. We kind of started going towards this very fast incremental thing and it seems like that's a pattern that isn't just web, I guess.

RONALD: Yeah, definitely. That model really has evolved from a lot of heavily painful work. Lessons people have had to learn over the course of years or even decades, tools that have taken thousands of hours to build, all of these processes are hard won knowledge. We really should be applying that everywhere we possibly can. Let's bring that into the IoT world and not start over from scratch and have to relearn all those lessons and reinvent all those particular wheels.

ELRICK: Resin is being used by a lot of varying companies and you have a wide customer base. Are there any use cases that came up that then pushed you to say that we have to build some for the features into Resin or some other type of software to help Resin or leverage Resin?

ALISON: Yeah, definitely. We've seen over the last couple of years, as you mentioned a lot of different use cases and customers using Resin. Our goal is really to make it easy and simple for fleet owners, as we call them, people who are managing fleets of IoT devices. We want to make it easy for them to scale as quickly and seamlessly as possible. Anytime we build something, either into the platform or adjacent to the platform, it's always with that in mind.

One good example is the tool that we built called 'Etcher,' which some people may be familiar with even if they aren't familiar with Resin. Etcher is essentially a way to earn SD cards and USB sticks and essentially provision IoT devices in a way that's much easier than just using DD, if you use that or any other solution that you might be using and that was borne out of our realization that this was actually a big pain point for our users, that they were having a hard time provisioning their devices. We just built Etcher and actually released it as its own standalone open source tool.

Similarly, that's actually why we built our own operating system, resinOS, because there was no operating system that existed yet that would allow us to run containers on constrained IoT devices. We did the same thing, where we release that as its own standalone open source projects so that people can benefit from resinOS, even if they aren't using Resin the platform. We're always looking for ways to make that process of scaling up and deploying fleets easier and releasing those projects as openly and broadly as possible.

RONALD: Yeah, to add to that going forward, we're also looking to make some improvements into the Resin platform just based on a lot of the feedback that we've gotten as people are managing these very large fleets. We are, right now working on improving the experience when you are managing multiple containers on a single device. A lot of times, people will have microservices where they'll have separate Docker containers for each function that a device is doing and it's doing multiple functions. We're working on improving the user experience of deploying those individual containers and managing multiple containers on one device.

We’re also looking at ways to extend Resin from Linux devices into some smaller devices and some things that are not necessarily running Linux but are still out in the real world, out in a customer environment or out in nature, wherever you have those devices that you want to be able to manage them. We want to wrap that into the Resin experience as well. It's really a constant process of refinement just based on what we see as the IoT develops. Again, it's a really exciting time to be in this industry.

ELRICK: That is wonderful that you guys are keeping your finger on the pulse, in terms of your customer base and the feedback that you're getting to how people are using Resin and then implementing and looking for ways to improve the platform and then also open source and get your solutions into the hands of developers and into the hands of your customer base and that is a testament to just how wonderful Resin is as a company and as a platform. I think everyone out there should then go out and use Resin or at least attempt to use it because the entry into using Resin is very low. You can ramp up and start using it any time and extremely quickly.

ALISON: We encourage anybody who is interested to sign up and it's free to get started. Your first five devices are always free. We have great support. We have a really active community forum so there's lots of people there to help guide you along. But as you said, the barrier to entry is quite low by design so really anybody should go ahead and try it out. If you have a Raspberry Pi sitting at home or at work, we like to say that you can get started over a lunch break and it should only take you about 30 minutes to get your first successful push and see your first Unicorn.

ELRICK: That's awesome. You heard that. Go and use Resin and on your lunch break, you can see a Unicorn. Well, that's it for our podcast today folks. We had a wonderful podcast talking about Resin.io, the future of IoT, all the places that you can use Resin and how to deploy code all over the world, to all your embedded devices and all of your IoT devices. On behalf of Joe, Alison, Ronald, the Frontside and myself, I would like to thank you all for taking the time out to listen to this podcast.

Remember you can reach us at Frontside.io. If you have any projects that you're working on and want to tell us about it, you can reach us there and you can also, if you want to learn anything further about Resin, you can head over to Resin.io and remember you can see that Unicorn at lunch time. That's it for the podcast today and thank you all for listening.

Listen to our podcast:

Listen on Apple Podcasts