 Welcome everybody, so the next presentation will be around the Kubernetes and crossplane and We'll have 35 minutes if you have questions at the end we'll try to take them as well And if you're watching online push push the questions as well via the chat So we'll try to get those as well. So the floor is yours. Thanks. Thank you Hello, hello, hello, do I have to do anything now sounds like we are oh My god, this is awesome, right? We're back. I've heard seven thousand. I didn't make the keynote this morning, but I heard that seven thousand So are you all excited to be back in in in person? I had so many So many awesome conversations already It's like yeah, you get you can do this virtually and then you know you do it back in slack And it's like I'm actually meeting persons for the first time is like I'm actually trying to map the zoom window around them to recognize them So first of all, it's awesome that you're all here. We're super excited to talk about it And there's one thing that I've done in the past and I haven't been doing since I don't know gazillion years Is a selfie with the audience? So if you I know, you know, it's like getting up But but if you could like a little bit of like show your pure and through the asm while we do the do the selfie with you folks All right, are you are you are you there? Awesome awesome. Well, thanks a lot for coming So I'm a tears is to be as gonna introduce him in a minute Super excited to talk about our our you know things that we've been doing in the last You know last little bit So we're gonna talk about digital twins That we're building. It's a nice fun concept and you know Being Kubernetes and cross-plane nerds like it was obvious. That's that's the only technology solution that you can find for doing these So we're gonna talk about that a little bit One sentence about myself. I'm Mattias out of Germany and working for a small company called up bound and we're the Major contributor behind cross-plane. So, you know come by grab a sticker hit our booth And happy to talk all things about cross-plane this conversation what we do here, or you know general building building platforms and Yeah, and another note. I want to see you all for beer later So stop by I want to cheers with everyone every single one of them. Cool. Yes. Oh, yeah Now Matthias is done selling your stuff. So I can geek out. My name is Tobias Anderson. I work for DFT is We are Danish logistics company. I've been around for quite a while and about A year and a half ago. I started looking at cross-plane as a way to Manage some of our we had a lot of requirements for setting up some service brokers for a lot of our cloud native workloads And we sort of stumbled on to to cross-plane and from there on it just became a Love story that have led to this point. We're now Matthias is my BFF, you know, we talk every day on slack We call each other and zoom he doesn't need to remember the frame to see my face He dreams about me every day and hopefully within, you know, a few years We will be able to get to a point where we can try to frame some Sort of subset of cross-plane that can deal with the concept of digital twins because digital twins has been on our roadmap as an Organization for over five years now If any of you work for other logistics companies, you will probably know that you've also been looking into these things because the future is Automation and in order to facilitate this automation We need digital twins to sort of interact as MS areas and on our behalf in cyberspace So a little bit about our agenda today First we're gonna give you a big picture talk of what this digital twin concept is all about in my world It's still very undefined. There are many different views on it But slowly we are getting to some sort of consensus and hopefully that the tooling will follow along and make it a lot easier then we will Matias will talk about our use cases I will talk a bit about what we or how we view digital twins internally in DFDS and how we work with them and then Matias will go through a demo that we prepared on how we could potentially go about building Digital twins with cross-plane and Kubernetes So moving on to the big picture at some point in time There was somebody who sent the spaceship into space called Apollo 13 and In order to fix that mess they ended up building some mirrored systems to salvage Apollo and that was sort of the Genesis of digital twins as we know it and then we can move forward to The 90s where a guy from Procter and Gamble was like yeah internet of things is a thing and that sort of started that whole Ride and then eventually Michael grief started discussing the theory of Digital twins at at university level and over time industry started coming in and HP started working with I Can't remember who it was, but they started actually building some of the first digital twins and then NASA eventually coined the term Digital twin in a report that they put out there and now we're at a point where looking at the audience We are clearly Seeing growing interest for the concept of digital twins. I think all of us will within the next Five to ten years be working with that concept in one way or the other as we help our different businesses On board this whole industry 4.0. What the fuck thing? So yeah, but moving on essentially For us from our point of view a digital twin is a digital representation of a physical asset In our world that could be a vessel like a ship or a truck It could be a trailer. It could also be a sensor for that matter and The thing with digital twins is that they mimic the behavior of the physical asset So we can interface with it digitally in real time and thus do Course correction if our truck is about to hit some person in a terminal area or whatnot, right? and this then bridges into the whole realm of 3d game engines and so on because how do you do collision detection between things based on events, right? You need something to run the math and we're not quite there yet But right now we are focusing on some of the taxonomy within everything and then hopefully over time we will get more mature we also sort of Views digital twins as a digital control plane for the physical world at the end of the day This is about controlling robotics and machinery and manufacturing plants and so on But we want these twins to be able to do that in a secure encrypted manner manner, obviously and The idea with digital twins might go as far as to say that when I buy my Nike air sneakers Maybe Nike will spawn an instance of a digital twin that will follow that shoe from cradle to grave and you know Keep track of where it was and if it got resold to others and so on so this is for us You know at a high level what a digital twin is and If you can move on to the next one if we try to put that into context of a manufacturing plant You have robotics. This is one aspect of what goes into it So the ability to have an embedded system that can move, you know an arm based on commands We have cloud computing services. They give us access to scale and Geolocation things and so on then we have the whole big data thing right because our digital twins are inherently stupid They need to learn over time This is where big data fits into to teach these twins to become more aware about their surroundings and thus create even better simulations and Then we have the wireless Technology that makes this all work right because in our world we you know have ships trying to you know Bridge and ethernet cable to a ship in motion is impossible So it's either satellite or something like that, right and the last part is then the embedded systems that we often have like a Sensor which will have a one-to-one relationship to its digital twin And then the ship will often be an aggregate of twins But I'll get into that a bit later and obviously the reason why we as DFTs doing this is because Our world looks very much like this But we know that at some point within like five ten maybe twenty years The world will look like this right and then all of a sudden we will have to figure out a way to Manage these digital assets as they move around because in cyberspace. There are no ships, right? There's just a lot of sensor data that makes up a thing and then you have some 3d grids and so on and then it's like You start understanding that in reality, you know when you're dealing with this concept. It's kind of like the matrix, right? It's it's not the spoon that bends. It's you that bend and then you start Reframing your thoughts and start saying okay. Well, maybe the ship doesn't really existing my system It's just a collection of sensors that are controlled by some sort of aggregate that can manage this So that is sort of the big picture and then I guess I'll hand it over to you Matias to just talk a bit about our use cases Yeah, so if we're talking about like his digital twins and these sensors, right? You there's you know a gazillion use cases that that you can think of And obviously me not not being like too deep into the to the domain Like, you know, we figured out a couple of initial use cases that way that we that we wanted to support So I'll I'll walk you through these So the first one is obviously, you know the trailers And making sure that we're reducing co2 emissions, you know It's not not only and a general good thing to do But obviously also from a fuel consumption perspective, you know Something DFT has strived for There's a lot of you know integrity that needs to be, you know Considered cold storage being one of them like making sure that if there's a container that has a certain Guarantee of how how the temperature is, you know DFT has wants to ensure it and make sure that this is also being, you know Ensured to to their customers We want to also do some predictive Maintenance, right? Like, you know working with sensors. There is a lot of you know machine learning involved to understand eventually When something needs to go into maintenance and obviously, you know global supply chains tracking on the shipments itself So, you know, we're talking like really different perspectives here It doesn't look good Did you just lose connection? I don't know. Oh, yeah. All right so on the So when we're talking about the digital twins in different areas and I'll go go and to about a little bit deeper later But we really talking about different aspects, right? So we're talking about vessels, but we can also talk about shipments So here we want to reduce the fuel consumptions. We want to have, you know, the management of these iot devices And you know do some simulation, but we can go further, right? We've got we've got the the vessels We've got the ships, but now now we're on the terminals, right? And again, right? There's a lot of things things moving around things are monitored with different iot devices and you know We want to support the automation of terminal processes will optimize the utilization of new facilities increase the productivity of of individual personnel And generally again leverage the data to reduce energy consumption On the vessels and the trucks itself there's some cooperation with Volvo that the FDS is doing and really really fancy fancy autonomy stuff, but They're working together, right? So there needs to be some interoperability between these between these vessels and trucks The ownership it might not only be the shoes, right? It might also be other things that that wants to have a digital ownership And with the autonomous stuff we you know enable remote control of these systems is obviously a you know interesting topic to to look into So this is like you know the use cases, but let's let's there's there's actually some concepts behind digital twins, which will to be as well will explain so Basically the way that we have viewed the concept and initially tried to to implement implement a poc around it was that for us You know the digital twin sits in between the real world and our control plane applications, right? So we have business people operating things on their smartphones or their laptops or whatnot And then we they interface with the digital twin and the digital twin is then tethered to a device using secured communication, right? with certificates and stuff like that And thus it becomes this sort of gateway to to talk to the to the real world sensors and this enables all these different use cases like Co-ownership or you know moving stuff around or reacting to Sensor data or whatnot in real time to optimize workloads or optimize fuel consumption and so on And the way that we sort of then reason about it if you can move to the next slide materials is that As such, you know the embedded systems offer this digital tether in the physical world, right? So it's basically something that the digital twin can mount on and take control of The digital twin itself sits in between And then you have the applications over on on the right. Can you just move to the next slide? That's fine I've been through this already. So just move on to the next one And in general the way that we've tried to reason about this architecturally is that that there's like Seems to be three different Concepts that play here The first concept is what we call the digital twin prototype And this is really the work that goes into researching how a specific digital twin should be implemented So this is not just a coding job. It's not just some infrastructure thing It's really talking with business understanding. How does a vessel operate? What sensors are on the vessel? Who are the different parties that might interact with said vessel? And how can we then go about implementing this in a way where we can first Simulate things and then maybe later, you know start bridging it into actually Controlling the vessels because initially I think a lot of this if you look at what nasa is doing now with funding of us Start up with 30 million dollars is to be able to simulate satellites and or simulate satellites and orbit So they don't have to actually fire it up there to figure it out. It's going to work, right? And the prototypes they are used to explore this thing in virtual reality, right? So we have at our place We've done quite a lot of work on Doing 3d modeling around our terminals. This will open up for us being able to interface with this in both vr and ar And essentially that gives an extra dimension to the digital twin because it becomes much more Physical in a sense, right? It's just not this service running in the background It could actually manifest itself in virtual reality if it needed to The prototype itself is not linked to any actual asset. It's more meant like a abstract class or a template or something like that for you to sort of look at if you have to implement a given twin And the explicit states of these things makes it easier to to create modular systems because I think at the end of the day You need high modularity for digital twin architectures to be really successful because They're going to be pieced together from all sorts of different suppliers, right? Siemens will have sensors You know other big companies will have sensors and then we have to send fit it into our kubernetes stack with crossplane And we use dotnet core for programming at our company, but you know other people use java So there's going to be a lot of work around making all this work The next concept that we work with is the actual instance itself And we like to say that that the instant is very simple because the instance is just the tether between A service and its corresponding sensor and in general there should always be a one-to-one relationship between this and the idea is that the instance is linked to a unique physical asset for instance my Nike Air Force whatever They're associated with that most one prototype to make it easy And they rely heavily on eventual consistency and they need huge amounts of data To actually provide any real value for us over time, right? because I worked for many years before joining dfds with Astel and their machine learning division of 60 people they spent millions of krona Sort of trying to figure out where all of this was headed and they found that for them predictive maintenance was the good the big thing Because they had like a terabyte of data coming in and as they started sort of analyzing this they they started becoming capable of building Systems that could predict that if a grain of sand in a windmill engine Started making a certain sound frequency Then within three months that grain of sand would make a two inch fur on the vessel that would break the engine, right? So this is the the essence of what we want to get to is these Sort of instances that can tell us that hey now you need to go clean your windmill engine And or your ship needs this or your trailer is leaking So the temperature seal is no longer valid which will destroy the covid vaccines The last thing is then the thing that doesn't really exist, right? This is the aggregate. This is the vessel in essence the aggregate is simply just A collection of twins, right? So if you think about a dfds ferry or a ship we have like Sensors for weather we have sensors for fuel But we also are now introducing electronic door locks on our cabins, right? That means that when truckers they come in and park their the truck We could issue a digital key card for them that would allow them to control that specific thing And that means that the ship as a whole is the spoon, right? It's not it doesn't really exist, but it kind of exists. It's just the sum of its parts And the idea with the aggregates is that they have direct access to all the sensors that they are Sort of composed of and thus often you can look at the aggregate as the I don't know gateway or the control plane or whatnot But the idea is that it works as a as a mechanism for to facilitating Command and control. So let's say you wanted to reboot all your sensors on a ship Obviously having to connect to each sensor individually would require a lot of work Having a gateway. We just say, you know reboot all the sensors on the ship is a lot easier So so these are sort of the three cardinal concepts that that we've been working with and then Matias and I have been sort of Trying to fit that into the crossplane architecture and here I will let Matias continue Yeah, so, um, I guess that's the the the question where you need to show hands. Who's familiar with crossplane? All right, the rest come to our booth afterwards, right? We need to talk so, um no crossplane maybe Yeah, let's start with kubernetes So so first of all Kubernetes and has been coined, you know, again and again as a platform for building platforms, right? So, you know when to be as was looking into this, um, and we talked about it It was pretty obvious, you know, you know kubernetes being being a good good platform for building this And this is like first of all just the general concept Of this declarative model and this constant reconciliation, right of just making sure that the desired state is is actually matching the actual state That that was just a concept that that matched very well the distributed problems that that we looked into Obviously with kubernetes and you you trying to you you saw some of these hints, right? Our control planes, so the things that are managing all these, right? They used to be they need to be running everywhere, right? They need to be running on the ships on the terminals maybe in actually in a container itself So it's like, you know, there's a gazillion ways of of kubernetes needs to is everywhere And it needs to be everywhere for our for our setup now Last but not least, right kubernetes and you know this better, right being at this conference There's a gazillion tools out there And that's obviously great, right because you don't need to reinvent everything, right? You need to you know apply standards standard interfaces But afterwards you can you know just you know use tools, right? And I've named a few here. It doesn't really matter the the point is as you're building up this platform, right? You can start, you know Stitching building blocks together That what works so kubernetes was a was a get-go. It was a pretty, you know, we from the get-go We we knew we wanted to do it. So the next step was was crossplane. So crossplane in my world are two things first of all It's a way of getting a cloud api into kubernetes, right? So you can think of like any cloud service that you want to manage and now you you have that cloud service in your In your kubernetes cluster. So not only creating the deployment for creating For creating your application, but you also have like a cr or a crd that describes a database in the cloud, right? or A database with a couple of other things stitched together and you can basically you just create this So there's this one-to-one mapping and a crossplane We call these managed resources and you can just like hack away in kubernetes really fun now the next thing What crossplane does is that it allows to compose multiple of these managed resources into some abstraction The usual way of how we see this applied is for developer platforms So there are some abstract interface for some databases. It's defined some abstract Properties like small medium Whatever right and you can a developer can just create the database and behind the scenes There isn't you know something an aws gcp azure or whatnot on prem build up, but the developer wouldn't really know So these are like, you know the rough concepts And I don't know if you kind of like you know getting like talking about digital twins You kind of already see some of some some of that alignment So here's an example right a simplified example obviously, but you know We talked about the terminal right and all these terminals. There's a couple of you know There's trucks on there and there are ships And you know they obviously you know contain or have containers on board So if we think about it and we take one one of it Oh, yeah, and by the way, uh, that's the barcode for the qr code for for the example And I've just updated two hours before the presentation. I've updated the example. Let's see if it still works Um, so but um as an example, right? We have a a composition So so we have the ship thing right which we want to use And as to be a set it contains of multiple iot devices multiple sensors. So, um, Here's just a couple of examples like a gps sensor fuel sensor weather sensor There could be could you know a gazillion And what we're going to see in a minute is that you know, we compose all these together into a composition um, and that composition is actually on how I say it implementing it a a an Definition an api that we can then later later use So and we've been arguing about this right so this is not the nest slide So we definitely need to come back in Detroit to talk about it again, but Uh, I like to think about it, you know as you know the Um The definition of these things is a prototype right the xrd is the prototype The actual composition of these different sensors together are the Is the aggregate and the digital twin instance is actually this single ship that uses us all these these sensors But again, we're walking through different different models. This is how how I'm going to show it in a minute all right, so Where are we on time? We've got I think we're good to go. We're good to go. All right, so Let me see if you can fail fast so we can get moving All right, can you see still my screen is the is the font. Okay. Was that a no or yes All right. All right. Where are we? No ships. No ships in here. All right so basically what I have is a local kind cluster with A cross plane installed right nothing nothing really nothing really fancy you can install cross plane And and and you need to talk install a couple of providers and I'll I'll show in a second what it is but with a plane Cross plane installed and with with a provider installed We've got a couple of crd's here that are new to the system first of all, it's about Cross plane itself. So you see here a couple of cross plane itself But if you if you if you take a close look, there's already a new crd here gps types, which I'm going to show you in a second which are the managed resources which a provider did did provide us and I can get the providers here All right, so we've got I've got two providers a gps and a no op provider just you know for for the example of what I'm showing All right, so in my in my um Platform here that I've defined I've basically defined a container a ship a terminal at a truck, etc So let's install these right so you can think of like okay so far It's just plane Kubernetes and some little bit more on time and let me install Let me install a platform right and now all of a sudden what we what we have are a definition Of of our domain model right we've got we've got ships containers terminals trucks But not not only the definition, but how they are made up So I can show Maybe not sure if this works ships xrd I think I should have loaded right so this is this is a cross plane definition, right? So what what what is a what is a ship right? This is our our definition of it um It basically, you know, there's some metadata on how this is called in different different perspectives There's a way of how to represent it, which which you will see in a second But most importantly, um, it has the api definition how to interact with it, right? And this is this it's just a ship and the um Imo Which was uh Mediterranean organization international Mediterranean organization something it's an idea to find that ship right so um That that that I applied these crd's right so so I'm not sure if we did we look yeah, so we've also had a have a couple of new crd's That's up and running. All right, so let's have let's have actually some some ships Installed so Just you know, you can look at these ships, right? So there's you know, pretty you know Pretty simple yamal, right? You have a spec that defines a ship with an Imo here We have containers with some IDs Terminals yada yada nothing nothing too fancy But before we install them, right? Let's let's let's let's let's look at these right so Up here, right? We've got terminals and ships and so far none of these terminals and ships have been installed, right? There's there's none, right? There's no currently Currently our current control plane doesn't manage any of these, right? So let's let's install some And what you see now is that there's uh new ships new terminals and ships are coming up, right? So we've got a couple of terminals in norway belgium yada yada and we've got a couple of ships And we also have and and you should have seen this right the the different positions of these ships So these are these different managed resources these different sensors these distant gps devices and as the you know Sensor picks it up. It propagates it up to the ship and now we can we now we can work with it, right? So we've got six ships here one is in hamburg one is in Copenhagen surprise Um, and you know you can you can now you can now work with it, right? And the gps sensor is just one sensor in this demo But you can like think about like very other sensors in in also, right? Like the fuel sensor or The weather sensor that interact and that you can work with inspect and use in your platform as as you go All right What what else so You know you can you can query for different things, right? So, um, you know, you can query query for all the terminals in danmark, you know, that's that's pretty pretty simple There's only currently one um, if you Um, if you you know just you know have your standard kubernetes rate, maybe maybe your you know terminal output Is not as nice so the trucks are here Maybe I actually want to know a little bit more and then you know you do different queries And now I can get all the trucks that are are in Copenhagen um, but you know a digital twin one of it is is showing the apis Uh, are making sure that all the sensors data is actually updated Um, uh and shown in the control plane, right? So if if if the gps is updated now the the um, the ships are currently not moving um That's a because they're not moving and b because it's a dummy provider and there's no actually gps divided but you can Imagine that this is you know, actually, you know continuously updated But you with a digital twin you want to interact, right? You don't only want to see the updates, but you actually want to interact So, you know just just as a you know simple simple example, um, you know if if if the If the um actual terminal is represented as a label what we could do You know, it's just simply update that the Humber Viking ship is going to Hamburg now, right? So we can basically just change the desired state To to Hamburg now You know, we talked with dan a little bit about it. He said like, you know, maybe we should we don't we should actually create a policy That actually updates this so this is like for our next demo The update but it's uh, you know, it shows the idea of of of where we're going So to to be as says I should keep it up Um, I should keep the time we have keep the time in it's left three minutes left. All right So The the last thing that I'd like to say I'm just going to leave that up here, right You can obviously take these crd's and move it to another kuminators cluster, right? There are the digital twin the the representation and you can manage it from that kuminators cluster But you can also move it to other kuminators. That's right. This is just a very simple example But you know, you can obviously, you know, we talked about tools There are probably other tools that you can work with it's just crd's, right? That's all Cool Thank you Matias for a brilliant demonstration I have one more slide just to go through before we finish off and take a few questions As we've been working through this for the last maybe three to six months You know, we've come to some conclusions that we hope we can share with the audience if you are considering this It's still very early days. There's going to be, you know A long period of trying to overcome technology and people challenges in order to make this a success They will benefit greatly from the abstraction because one of the things that truly inspired me for this was the US army strike fighter fighter project where they made, you know An air-gapped kubernetes installation inside the plane So if we think about each vessel having its own cluster Moving a workload from one cluster to another represents the transfer of said asset from A ship to a terminal or for a terminal to a truck and so on and so forth And that really provides a lot of out of the box functionality for us in terms of tracking our stuff And they can easily provision things with the with cross plane, right? So if I move my twin from one geolocation to another It can have different, you know strategies for either just remounting the cloud resource or moving that to another geographical location If the rds that this specific twin needs is too far away and that causes latency or whatnot And these I think the next steps in our journey to try to look at how can we implement policy engines? How can we implement even more command and control logic within the twins themselves? So they can be more responsive and and you know do the hollywood style call back So we don't constantly have to pull them but they will you know push us And I think maybe Mauricio's in the audience has been doing some great work on event enabling cross plane And Matthias and I also want to try and build on that because we see that as an absolute essential thing for for this to succeed We also did some fun work with asia iot hub that you can find here. This was the initial poc I did Before Matthias and I started out and I think with that we will conclude our talk and we will leave it for the audience to ask questions Or meet us outside So there's there's a one or yeah, there's one thing to take I'd like for you to take away, right? Crossplane is just about using some api right and we're talking about iot devices So the question for you is like what api are you managing? Might be a cloud might be a cloud and something else. How can I combine this and manage with crossplane? And that's that's like, you know get that into your head and then you know see see what other nice examples We have And yeah, do we do we have time for question? Let's say two questions Any questions Is the mic on I can repeat the question if it's not on Do we have a 3d representation? We have unity models of our terminals and stuff But unfortunately I didn't have time to source them for the presentation So hopefully when we go to kubicon in north america, we will have those things available also All right There's another question Do we also use crossplane to provision other kubernetes clusters or just for this api? So that's a great question. So generally, you know crossplane is about, you know talking to any kind of api And if you're if you're a kubernetes developer, the first thing that you reason about is other kubernetes resources And then also other kubernetes clusters and yes the answer is yes, we generally do this We do this for specific cloud clusters like an eks cluster, but also generic kubernetes clusters. Yes, so both One more question I have noticed that you have your own custom provider Yes, how can you build such one if I want to? Yeah, there's a gazillion ways. Thanks, semi for the question that there's there's a gazillion ways to build providers I've just hacked it all along and that's the other thing the nice thing what I love about cncf and open source projects You can build these right and i'm not i'm a product manager So i'm not like this most seasons go developer, but I got it by I got it running so you can just build it on your own There's like nice templates But you can also generate one There's different generator types that you can like use different sources where you can generate one So there's different different possibilities to create one Cool all right. We need to cut it here. All right. Thank you very much You find us at the different booth at the cross-band booth an app on booth If you want to grab a sticker, there are stickers up here. Have a great conference and I will see you for a beer