Good morning, good afternoon, good evening, everyone. Thank you for joining us today. We are here for Managing IoT Software at Scale. I have the great pleasure in introducing Amit Ezer and Yoav Landman. Amit is CEO of Upswift, and we have Yoav, CTO of JFrog. I just wanted to give a quick introduction to the both of them v ersus me chatting away, I'm going to hand it over to the both of them. Thank you guys so much for joining us today. Okay. Welcome, everyone. Let me just give you a brief overview of our agenda for today. We'll give a brief introduction about JFrog, and then I'd like to speak with you about the challenges with updating connected devices. Next, we're going to move on to Amit, who will speak about the benefits of Upswift and how they solve those challenges for the world. Of course, we're going to show you a demo, and hope that everything will work out smoothly. Finally, we are going to speak a little bit about what's coming up next, what JFrog is going to do with Upswift, where we're going to take this domain of connected device updates in JFrog. Let's just dive right into it. JFrog is solving the problem of a vision we call Liquid Software. The idea is to have a continuously updated, what we call version-less software. Of course, every software has a version, but in the eyes of the user, the update needs to be so smooth and transparent that the version doesn't matter. You can think about it as software flowing seamlessly from source to destination to the runtime. Since we speak about the runtime, I'd like to speak a little bit about the challenges in updating devices. A couple of challenges here. I'll start with the fact that the act of deploying a release to an edge is often a siloed process. It's siloed from the traditional CI/CD process, and it often looked at as a separate state, different tooling to achieve this state. JFrog customer actually approached us and asked us to allow them to continue this flow of the DevOps pipeline all the way to the connected devices, to the world of IoT. This is the first challenge. Another challenge is about securing the updates. You need to apply the security from two directions, right? From left to the right. First, you want to make sure that the software that you're running is secure. You want to scan it. You want to rule out any vulnerabilities or compliance issues. Once your device is already running the updates, you want to validate that it behaves the same way that you expect it to behave. One key differentiator from traditional software is that if you have a faulty release, it may break the device. Fixing this is a much more acute problem than in traditional software because your device may not be so easily accessible. For instance, it may sit at the top of a communication tower or something like that. The security leads us also to the next challenge, which is maintaining a chain of custody for your releases. A strong side effect of being a disconnected flow is that you also get disconnected from the software supply chain process. That means that the binaries and the releases that end up running on the device cannot be easily tracked to the process that created them. They cannot be vetted against the software supply chain. This is a miss. Non-data center. Non-data center is something that many people kind of look over it, but updating devices is really different from updating software that is running on a data center, on an immutable infrastructure data center. First of all, devices, normally they cannot be contacted directly. They don't have an open port they listen on. They may be disconnected from time to time. More often than not, they are behind some kind of a double NAT. I call this a cattle of pets, right? Because you treat your devices, at least the scale of the devices, the number of your devices is like a cattle. Each device is identified. It's like a pet and it's an unreplaceable piece of runtime. You cannot just fire up a replacement device like you do with a infrastructure as code. It doesn't work for devices. That's another challenge. Another challenge is the scale, right? If you are a company, even a small, medium company getting success in the world of IoT, you will find yourself managing sometimes, even in your early stages, hundreds or even thousands of runtime of devices, which you would otherwise not encounter as a DevOps of a traditional microservice-based deployment. Finally, there is the question of what's happening post-update. You can get your software on the device, but similar to any kind of software, it doesn't end up there. You need to be able to monitor the health of the device. You need to be able to roll back a bad release if needed. You need to be able to run remote troubleshooting, get the logs, and e xtract them. Even remote controlling to the device to see what's going on. This continuous feedback loop is even more challenging in the scale of IoT. What we're saying is that, and we're really seeing this exceeding trend in this fast-growing domain in the market, that companies are slowly becoming edge companies. Almost every company will end up using edge technology or employing edge technology in order to compete in the market, and it's kind of a new necessity for success. It's happening very fast. We broadly speak about three types of edges or three types of connected environments. First, there's this new consumer edge. It's used to deliver software closer to users. Think about users playing a game, basically letting the users interact with your software faster. There is a very growing area of regional edges. This is where you deploy your software into regional locations, such as local retail branches. This has recently been pretty much heavily accelerated by COVID, and we don't think this trend is going anywhere. COVID accelerated a new type of application-driven businesses. For example, this whole curbside pickup that you go to the store and people deliver the application, the merchandise to you. We're thinking we're going to see more and more of that application-driven businesses. Finally, there is the third kind of edge, which is about connected devices. From routers to wearables. Think about Nike moving from an apparel company to a smart fitness company. This is the way that you actually use connected devices to extend your TAM. Many of these devices run embedded Linux, which is what Upswift is predominantly dealing with. We see tremendous innovation and use case variety happening across the Upswift customer base. This is the third kind of edges. What we're seeing here is the JFrog DevOps Platform. It's one of the most widely adopted DevOps platform, covering all the stages of software releases, of software binary release management. Normally, you start on the left side, you have some kind of a source control system like GitHub. In most environments, the first thing you do, you consume some binaries, dependencies as you assemble your application. Then you compile and package your software and bundle it into pieces of binaries that are going to go through the different stages. Testing, release approvals, and distribution, and deployment to the runtime. The end state is that those binaries are going to run and end up in your runtime. The JFrog Platform allows developers to manage binaries across all those stages. Most specifically, we have Artifactory that stores and manages the life cycle of binary artifacts like software packages and container images. We have Xray that scans the binaries to clear out any security and compliance issues. We have distribution, which is about taking the binary and moving it across the physical boundaries closer to the runtime, including to devices and enabling deployment. In summary, what JFrog offers is an end-to-end DevOps Platform for managing the life cycle of binary releases from code to deployment to production. The issue with Upswift is that it's actually a very natural extension to the DevOps Platform that JFrog provides today. While for devices today, the DevOps flow, not just at JFrog, it stops at the distribution, and then there is a new siloed process that is starting. This natural extension of the JFrog Platform by Upswift allows the continuous flow to be carried on, to update, to run, to monitor, and back again. It's a continuous loop. Now I think will be a good time to pass it over to Amit. I think you're all waiting to actually see the product and see Upswift in action. Yeah, to you, Amit. All right. Thank you. I'm very excited to join this webinar today. This is the first time we share some insights about what we have done at Upswift and how our mutual future with JFrog will look like. Thank you all for joining us today. I hope you will find this webinar and platform demo that I'm going to show in a few moments valuable and informative to your future projects. Feel free to reach out after this session if you have any questions. I will leave my contact information in the chat below. I'm happy to begin with a quick intro of Upswift product, vision, and market. Upswift's goal is to bring every edge device from robots to connected cars, to security cameras or kiosk screens to the cloud. Bringing the edge device to the cloud means to give IoT producers, the developers, the power of managing the device as if it's in their own office, in their own local network. Today, there are already tens of thousands of devices all over the world managed by Upswift Platform. It's just amazing to see so many different verticals and industries that are doing this transformation by building connected devices that are being managed remotely. We see healthcare machines, agricultural devices, automotive products, and the list just goes on. Developers today prefer to manage their fleet remotely and ship software quickly and safely in each and every industry or edge device. Great. Let's, for a minute, talk about Upswift's purpose. Our solution solves the complexity of managing devices with a plug-and-play design that can be integrated into any type of Linux-based device in seconds. It brings four major values to the developer. First, and most importantly, Upswift helps to reduce or even eliminate product recalls. Take, for example, thousands of smart kiosk screens at post offices across the U.S. that are suddenly required for a recall because of a software bug that occurred. With Upswift, these devices could be completely supervised remotely. Even if the application crashes, the developer can always have access to support and fix the issue remotely. The second point is ensure software reliability. If it's a fleet of cars or traffic lights, the device's software must stay stable and reliable 24/7. That can be achieved by pushing daily software updates to the edge devices. When the device's fleet is stable, we can start thinking about remaining innovative. Just like in today's cloud deployment flow, with Upswift, your edge devices will stay updated with the latest feature releases the development team worked on. Simple as that. Finally, when the product fleet is in the field in production, it is important to always stay in control. Here at Upswift is continuously monitoring the device resources and application, helping you, the developer, to analyze, find device software issues, debug, and fix everything before any real damage occurs. From here, let's jump to the demo of Upswift Platform. I will share my screen. All right. Great. All right. Before we jump into the major features of the platform, we can notice from the categories in the left side, right here, that the platform includes the necessary tools to maintain a fleet of devices remotely. Starting from over-the-air software updates capabilities to control, monitor, and security. It's all mixed with smart alerting system. It's of course all designed to work out of the box just by installing Upswift agent on the edge device. It is important to notice that the agent is always running as a client side in terms of networking, which of course is great for devices that do not have public IP and running under double NAT. For this webinar session, I will use a Raspberry Pi device with a touch screen on it, running a blue demo application called Webinar V1. Let's go back for a moment to my camera. All right. Right now, if you will look closely on the camera, you will see my Raspberry Pi device with the application Webinar V1. Let's go back to my Upswift account. Continuing the demo. All right. Back to my screen. All right. That's it. We're ready to begin. Let's begin with going to our group for today, our specific Raspberry Pi device. The device will be under a specific group called Boston right here. Let's jump to the device page, where we will see our device today. All right. Here it is. Here is the main page of Upswift platform, where we can simply view the devices in different groups with name, tag, and most importantly, live status, if the device is currently online or offline. As you can see right now, my Raspberry Pi is online. We are going to use it right now in the demo. I will focus on four of the platform tools, updates, remote control, remote commands, and some of the monitoring capabilities we have here at the platform. Let's begin with the updates category. All right. Upswift Updates is a lightweight, easy-to-use tool to deploy software to the edge devices. It's all based on the creation of a flow right here. In the flow, you can build the steps of the deployment process. For example, you can run a Bash command, deploy a file defining the rollback, integrate a Git repository or even a Docker registry. It's all very intuitive and easy to use right from here. For this demo, I have created two different update flows, both pulling different images of containers from JFrog Artifactory and pushing them to the edge device while replacing the current running container with almost zero downtime. For a moment, let's jump to the Artifactory right here where we can see both of my images, V1 and V2. V1 is right now running on the device. We have a running container on the device running Webinar V1 application. Our goal for today is to deploy the new container, V2, to the edge device, to my Raspberry Pi. Let's go back to the updates category and begin the deployment. To begin the deployment, all we need to do is just to click on the New Deployment button right here under the role of Webinar App V2. Choose a group of devices or a specific device. In that case, we will use the filter right here to choose a specific device, and then we're going to go ahead and choose the Raspberry Pi and click on Apply. Of course, we can deploy updates on a group of devices at scale. Let's click on Next. Of course, the total affected devices will be one, and we'll click on Finish. Choose our Webinar app for this demo and the new version that we are going to deploy. Let's click on Create Deployment and go to the Progress tab. Right now we're waiting the device to receive the update in a few seconds. All right. We're going to see it in progress. Let's quickly move to my camera again just to show you how it looks like. It's pretty amazing actually to see it. You can see right now that my Raspberry Pi screen changed to the new green application, Webinar V2. Pretty amazing. I'm going back to my screen. All right. We can see the output of the update right here. We have some metadata of the deployment, like container ID, image ID, image name. It's all here. In this case, we have just one step in the deployment. In case you have few steps, you will see them all right here, including rollback, for example. Let's jump to the Devices page. All right. We can see here in the Raspberry Pi device row that the version has changed accordingly to Webinar App version 2. We can also see that we have a running Python application right now on the Raspberry Pi, which is, of course, the container that is running the Python application, showing a green screen with the Webinar V2 text on it. All right. From here, let's quickly jump to the remote control tool. Using it, we can remotely access the device shell and debug everything inside the device. This tool is just excellent for having a better understanding of some deep support situations. In a few moments, we will have access to the device shell. The reason we need to wait right now is because the device and Upswift agent running on the device is always running as the client side. We are basically waiting for the device to communicate with Upswift's servers. Let's copy the secret key here and access the device. Great. We can now debug the device, do whatever we need to make sure that our application is running as expected. In this case, let's just run Docker and check what containers are running right now on the device. As you can see, we do have here a container that is currently running with the tag V2. You can see that the uptime is two minutes, which of course makes sense. Let's just keep the remote control open and continue to the next features at Upswift. From here, let's jump to the remote commands tool. In most situations, the remote commands tool will be our best friend for basic remote support, just by running some commands. For example, to restart an application, maybe rebooting a device, and so on. Of course, even here, we can run commands on a group of devices as we need. All right. The last feature we're going to show very quickly is the monitoring and alerting capabilities of the p latform. Using Upswift, it's possible to monitor the device resources, CPU, RAM, and disk, as you can see right here. As well as the device running application. As you can see, I already monitor a Python 3 application running on the device. I can define here any other application that I want to monitor. It's all coming together to the alerting system right here, where we can define different alerts. As you can see, I have some alerts for the resources on the device and some for the processes on the device. I can trigger them by just defining different kind of triggers. I do have here for my Raspberry Pi an alert that said that, if the device CPU is crossing 5%, send me alert about that. As you can see, I had today a CPU alert that was echoed to 78%. Of course, I received email about that. That's all. I will have to stop here to continue the webinar. Before that, I will say that you are all welcome to open a free account and explore Upswift features with your devices. Again, it takes just a few seconds to register and connect the device. Thank you, and back to you, Yoav. Thank you, Amit. Great demo and great technology. Of course, there are more features to explore, but due to the time limit, we cannot get any deeper at this point. Like Amit said, go ahead and feel free to open a free trial. It comes with virtualized devices as part of the trial, and you can explore further. Everything is very developer-friendly. In fact, most of the adoption of Upswift today is bottom-up. We're seeing a lot of developers coming onto the platform and trialing it and adopting it for the IoT scenarios. I want to speak now about what to expect from the integration of JFrog and Upswift in the coming future. Like you just saw, this integration basically takes us to a full round of form codes to runtime with devices. The update stage, the run stage, the monitor stage, they all happen naturally as part of your regular DevOps pipeline. The first thing that we are going to do in the near future is, of course, provide more out-of-the-box integration of the Upswift platform with the JFrog DevOps platform, specifically with Artifactory first. We're going to provide you this 360 view of your releases coming from Artifactory ending up in the runtime of your IoT devices. One key element here is the integration of releases or Release Bundles as we call them at JFrog. This is an easy way to consume an application. It's an SBOM that defines in Artifactory both your files, your Docker containers, any additional file that accompanies them as one bundle of files that you can deploy from Upswift in one go into your devices. That being said, you can and you will be able to integrate Upswift with any automation workflow. We intend to keep the open developer APIs of Upswift and the usage of it open to any kind of integration, and that's not going to change. If you wish to start directly with Upswift, you can do it right now, and you can explore it even without the JFrog Platform. Of course, we're also going to invest in adding more capabilities and features to Upswift. Another type of integration that we're going to present is about the area of distribution. We see great synergy here with Upswift. JFrog Distribution and private distribution networks specifically. The idea here is to accelerate the deployment to the devices and make it more reliable by allowing devices to pull from regional distribution nodes to which the JFrog Distribution is pushing releases. You get your updates from more reliable source that is closer to the device, and it keeps a lineage to the source of the software in your DevOps platform. Yeah. Just to recap, we see Upswift as a very synergetic piece of the DevOps tool chain that JFrog is providing. It's a natural extension to the platform. While also serving as an open service for integration, it allows our users to achieve fully automated developer to device deployments, to gain complete visibility to this process, to monitor, to troubleshoot, you saw the remote control, and to manage the secure device update flow at scale. Finally, consolidate the DevOps processes and bridge over the previously siloed workflows for device update management. Again, like Amit said, we urge you to go on and try it. I think this is a good point to go to some Q&A from the audience. Courtney, do you wanna? Yeah. Well, I just want to first say thank you guys for a great presentation. That was wonderful. Again, reminder to everybody on the webinar presentation today, please don't hesitate to answer all and get all questions answered in that Q&A chat window. We do have a couple of questions that I want to kind of release and see what you guys think about it. The first question is, what verticals do you see mostly adapting edge and IoT? Amit, do you want to take it? Yeah. Well, it's actually pretty amazing to see so many industries and verticals. It's hard to pick one. I would say that we see a lot of smart kiosk screens for many kind of situations and industries that just prefer to have a touch screen with a running application showing what the application is doing. It's something that I think that we'll see from it more and more in the next couple of years. Awesome. I can maybe expand on it. Actually, the amount of industries adopting, and actually also requesting JFrog to extend the life cycle to IoT devices, to connected edge environments, it's very varied. Like Amit said, there are use cases of kiosks and when we actually saw the portfolio of the Upswift customers, the innovation going there, and the type of things people develop and how they push the market forward with all kind of It can be farming, it can be even taming pets, it can be automotive industries, it can be remote retail point of sales. It's very diverse, right? Like software that is everywhere, the edge software and the type of software developed for devices is cross domain. I don't think there is any single domain that is standing out here. Just everywhere. Awesome. All right. We have a second question that just came in. It's, how can I take advantage of the IoT capabilities in the JFrog Platform, and when will they be available? Like I said, in the what's next section, you can try it out today. It's production ready. It's not a trial platform. There is a free trial that you can try immediately. The closer integration. Since the platform is very API driven and very developer open, it works with the JFrog Platform very easily today. It's a very decoupled connectivity if you want to integrate both platforms. We're going to, as I explained before, invest in more out-of-the-box features that will also allow you to gain better visibility from JFrog to Upswift back, in fact, will make it a very seamless experience. Yeah, you can try it out today, and you can adopt it today. There is no need to wait for that integration. Wonderful. Everybody, we have our technical experts here on the line. Please don't hesitate to ask your questions. Obviously, if you do have questions post-event, Yoav, Amit, do you want to provide them the best way to ask those questions if they do have any after this call? Yeah. Go on. i"ll leave my email in the chat. I will do it right now. Again, feel free to reach out for any kind of technical question, that we will be happy to answer. Great. Thank you guys so much. Amit, if you want to go ahead and just put it in our, yep, team chat there. I will go ahead and provide that to the group here. I'll provide the contact information. It's because, again, I know that always post-event that sometimes those questions come up, and you wish you would have asked them then, and you think about them later. It happens all the time. I did go ahead and just put Amit's email into the public Q&A chat for all the attendees. If you guys have any questions after this, please don't hesitate to reach out. Again, thank you, Amit, thank you, Yoav, for coming, taking time today to talk about this integration, and new partnership. I really appreciate it, and I know everyone on the call appreciates it. I will close it out. Everybody, have a great day, a great weekend, hopefully. Other than that, I will close it out. Thank you guys so much. Thank you. Thank you. All right. Bye-bye.
Loading workspace