 Welcome to the presentation energizing the manufacturing industry with Kubernetes and cloud native. My name is Marcel Wagner. I'm working in this network and edge group as software architect, and I'm located in unique Germany. The agenda of my presentation is as follows. First, I will give context and motivation why cloud native is relevant for industrial and manufacturing. Then I will provide semantic web standards in a nutshell, because it turns out that semantics becomes more and more important in the space. I will show the cloud native architecture derived by the institution project. Give an overview about how Kubernetes operators are used, especially how a new one has been developed to support analytics in the semantic space. I will provide a demo, give my conclusion, and after that, hopefully we will have a live Q&A session. One of my job tasks is to work with smaller and medium businesses in Europe in the manufacturing and industrial space to support them to adapt new software technologies. Small and medium businesses for all purposes are companies with less than 250 employees. But when you look at the overall statistics, you will realize that their contribution to the added value in the economy is huge. Therefore, they are very interesting to work with. The structure is very special. Normally, they are family owned. They are very focused. Some of them are even market leaders in specific niches. In the industrial space, the challenge is that many of them just started their Industry 4.0 journey. When you look at their factories, you still see a lot of heterogeneous machines from different vendors, even very old machines. It is very, very tough to provide an environment where everything works together. And also, there is not yet a common open platform where everyone feels comfortable, because one fear of the SMBs in industrial is to lose control over their data if they provide it to third party. In order to address that, more and more small and medium enterprises in different domains are getting together and creating organizations to define the rules of their digitization. One of them is Industry Fusion Foundation, which allowed me to report about their project state. Industry Fusion Foundation consists of around 60 manufacturers and stakeholders in the metal processing industry in Germany. They are very focused, metal processing or metal sheet processing, cutting, welding, deburring the main things they are doing. Of course, they want to align with the overall Industry 4.0 activities in Germany and Europe, but at the same time, they want to own the base platform. That means they want to own the semantics of the machines and the semantics of the use cases. In order to address a wider space and collaborate with more ecosystem partners, they decided to open source the project. And another very interesting decision was to go from cloud native and see what of this technology can be applied to the factory. In Munich, you can book a tour in the factory of a very famous car manufacturer and watch how dancing robots highly automated, creating very nice cars. And you might think everything is done right, automation is a no-brainer, everything is optimized, and there is no big issue with Industry 4.0. But then you go 50 kilometers outside of Munich into a smaller factory and you are more likely to see something like this. So this is showing a very simple cutting, metal sheet cutting use case or setup. So the machines are cutting, but when they are cutting metal sheets, the safety regulation demands that the air is filtered. So today, this regulation is fulfilled by a dry wire. So the filter runs on maximum and when the cutter is on, the filter is on. But apparently, this is not very economical and not very highly automated. When you knew more about the whole process, like for instance, what is the dimension of the workpiece? What is the material of the workpiece? Then you could save money by reducing the filter strength and power by retaining the air in the factory without blowing it out of the factory and by managing the hazard status of the filter cartridge to make it cheaper to when you dispose it. But it's so obvious that you can save money. Why is it not done? There are challenges. One challenge is, which is maybe not very technical, but still technical, that when you change such systems, you need a safety certification and that might be in some cases not even possible or very expensive. But when you also talk to domain experts, experts on the cutting machine, expert on the filter, they have no formal way to talk about their use cases and show the benefits of this. Also, when you look at the use cases, you need to combine information from different domains like material, building processes, environmental to create the best benefit out of that. And if you only look at the return of invest, of course, it's not very economical to do only one use case and deploy infrastructure for that. So whatever you do, the framework must be more capable to support all kinds of use cases. Otherwise, this infrastructure will never be deployed. The solution the project came up with was to go much beyond major collections and dashboards. They decided that they need semantic web modeling of the environment. So with semantic web standards, you can add relationships and context to your data. You can relate knowledge or ontologies from different domains, such as material with the knowledge you have in use specific domain. You can even use that to formally assess safety requirements from the formal description. And you can collaborate on use cases independent of a specific platform because you have a platform independent description. Therefore, semantic web standards are very important in this space, and I am now giving a quick overview. The key ingredient of semantic web is the resource description framework. And it starts very simple. So everything is a subject, a predicate and object. Subject and object apparently notes and the predicate is the link between it. And when you take this triple structure, you can, of course, define much more complicated or RPG complicated graphs. In the right side, you see another example where you can combine typing like you have a type system like, you know, plasma cutters are derived from cutters. And a cutter of this UN is a plasma cutter, but you can also define and describe other things like serial numbers or where the machine is located in. Is that you can define pretty complex knowledge trees, but also models of your environment. And you need a way to further structure it. And for this, Jason LD comes very handy, Jason LD, Jason linked data. And with Jason LD, you can still operate on an existing graph, RDF graph, but you can group it. And for instance, say in my graph, I have a workpiece, I have a plasma cutter, I have a filter, I have a filter cartridge. And with that you can even export or import plasma cutters into your system and link them with other entities like a filter. On the right side, you see an example on Jason LD. It is made in a way that it's 100% compatible with Jason specification. So all the tools, which are able to process Jason can also work on Jason ID. And it provides you some additional information about the semantic web. And this information is typically started with an ad. But now you have a model, you have information, you have knowledge, but what do you do with that? That's a very simple question. And to define your constraints and how you operate on the graph, there's another language called shapes constraint language, Shuckle. With Shuckle, you can now say, look, this is my graph, you have workpiece, plasma cutter filter, filter cartridge, but the plasma cutter must be connected exactly once with a filter. And the filter must be of a specific class, in this case, IFF filter. And if this does not happen, it's a very severe problem. You see on the right side an example how Shuckle looks like. And with that language, you can, of course, look for much more complicated relationships in your graph. For instance, you can make a statement about the plasma cutter has a state and the filter has a state, you can search for it and relate it and say when the plasma cutters on the filter must be on. Another example is when you, the plasma cutter is processing a workpiece, you can derive from the material of the workpiece the hazard or waste glass of the filter cartridge because everything is linked. You have only to formulate, first of all, what states are problematic and what manipulations or what changes you want to do on the graph. To summarize it, the RDF resource description framework is needed to define knowledge graphs and context. The RDF is helping to serialize the source description framework in a human readable way and also grouping relevant parts of the model for you. And Shuckle is the language where you can define constraints on knowledge graphs and entities. You can define constraints between entities. You can also define rules how to operate and how to change the graph. So with that, you have a very expressive way to define use cases. And of course constraints, for instance, for safety and have language and a platform to collaborate in a specific domain. Now, when you look at such a system, right, you have huge graphs and those graphs are updated by the data coming from the machines. You see it's looking very closely to a streaming analytics problem, but you're not any not only need to map the information in real time to the graph. You have also to check every single event coming in, whether it's having or creating a problem, whether the whole system is still fulfilling the constraints, and if not, what has to be done. The knowledge graph, so that the main knowledge might be huge. So, you better have a scalable system. And then when you look at Shuckle, you will realize that it's a pretty declarative system. So you define what states you want to have, what not, and what to do if you are in a specific state. So whatever this system you derive, it must be able to work in the declarative space. Low latency is needed. And one rule from the diffusion foundation was to say, when you have two frameworks, select always the more generic one, which has a broader communities, because they want to the technology that stays for a longer time. And the solution which was made was to use graph, which we were the traditional Jason, going towards relational using streaming SQL, scalability, stateful data processing. Low latency is fulfilled by using a page of link and Patrick Kafka. And from the beginning, we derived also the requirement to do as much as possible with Kubernetes. And that led to a simplified architecture, which you can see here filter and cutting system ascending data by MQTT to which is bridged to Kafka. And on Kafka, you have a page of link operating on the data which comes in the concrete logic, how a page of link operates is provided by an industry fusion semantic operator. And we show how we derive from the semantic descriptions, the actionable processing pipelines. The time to this data is stored in Apache Cassandra and managed with the K8 Sandra operator to manage the JSON LDPAR, you have the Scorpio broker, which is also connected to Kafka, and which needs Postgres for saving the state. And then you need a human being or a more intelligent application, which is receiving the alerts, but also able to configure the system like making sure that the right cutter is connected with the filter and the model and that the model reflects the reality. But you can also have applications operating on the data models. To derive the actionable processing pipeline, the project develop an operator and a framework how to derive from Shackle, which we just saw the data description and the data manipulation. For instance, that data tables are created for alerts and of course for the models like cutter, filter, whatever you define in this environment. But then you want also to operate on the data, you want to detect whether constraints are broken, violated, or you want even to trigger an alert. And that's what you see on the right side. So, when you for instance want to create an alert based on a specific observation, the operation, the secret operation would be something like insert into alerts and then your condition you're checking. To make this work in general environment, we send it around Apache Kafka. So, we operate on tables, right, we derive rules on tables but actually when you talk about streams, those tables are topics. So therefore, there's a link between tables and topics. For instance, when you have the cutter or the filter or the machine table, you map them to topics. So when you, when for instance the broker is changing a cutter it will also forward it over the bridge to the topic. When you want to get an alert or seen alert to insert something into the alerts table but actually, again, it's a Kafka, it's an event on a Kafka topic. And with that you can even integrate other services with specific topics in order to manage those streaming SQL jobs. The project creators to several CD's and on the left side you see the description table description called beam SQL table. You can define, you know, columns or fields of your table, but you can also link it with Kafka. I can say that's a Kafka topic and that is how you reach Kafka. On the right side, you see a structure and customer source which is called beam SQL statement set. This is needed to manage all the SQL statements you derive from Shackle. So it can be 20, 30 hundreds and put them into one object and let the link optimizer create an optimized pipeline out of that. And now I will show a demo. Now I switch to my Linux system to show the demo. I'm starting with sharing the Shackle file which as discussed provides all the constraints and the operation on the graph. So here's an example. You're saying that there must be a class cutter class cutter has, for instance, state exactly one state. It has one filter exactly one filter. So the filter must be of class I have a filter and if this is requirement, this constraint is not met. It is. It has a high severity, but you can also define much simpler constraints like saying a string must have a specific pattern or a specific length. For instance, the material, or you can define min and max values like you know the depth and have a specific min and max value. But you can also describe more advanced constraints. This is an example where you make a requirement on the knowledge on the graph and you're saying, look at the cutter state and the connected filter state and if the cutter is running the filters not running, then have an alert. This is a very high severity. So now we have the file with all the constraints. What does it get into a real pipeline for this institution developed tools. And I'm now executing all those tools in the script. And you will in a second, you will see that after some tests, everything is deployed. And for instance, take a look at, so there are table described or deployed dependent on the shuttle description and statements as described for instance shackle validation. So when you look at shackle validation, then you see that it's a custom resource containing a list of sqa statement or SQL statements derived from the shuttle file. So this has been deployed as customer source. It means it will be collected and deployed as Kubernetes as a link pipelines you see. And the pipeline has recently 25 seconds deployed here the shuttle validation pipeline when you click on it. And you will see that it's actually a huge pipeline derived from all the chocolate descriptions and all the secret scripts. And to show the pipeline. The show the other tool which is as described earlier connected to the respective bridge. And you will see the words with the respective a lot stable right now if I create objects, I can either do it directly from the machines over empty to your Kafka or I can do it over the broker. The Jason ID broker. That's what I'm not doing because it's it's more handy. So, for instance, I submit an object describing a plasma cutter so it has an ID says a type plasma cutter and provides the fields, which have been defined and chuckle like state workpiece as filter and his filter is defining and well to a specific filter. So, let's submit that. And as a result, the analysis happens of the shuttle pipeline and realizing two problems. One is that the filter that is not connected to the filter so that is a severe is high criticality mistake. So high constraint violation is that there is no workpiece connected to a cutter. Now, I submit in the same way, a filter and submitted to the system and the same described and the strength and cartridges and so on. I submit that you see that the alerts are changing so the old severe one is deleted but now you have a new one because the filter doesn't have a cartridge. And now by deploying the other like the workpiece and the cartridge. You see that the model is now compliant. And also other things like for instance now I'm switching on the filter. And as described earlier, now it's comparing it with the state of the switching on through the cutter. Now it's comparing it with the state of the filter and it's a critical error. The filter is off. So either you switch on the off the cutter on the filter. Let's switch on the filter with this JSON API. And with that, you see that the model is again in. With the constraints and all the constraints are fulfilled. And there are no alerts created and with that you can create arbitrary relationships on a large graph. So I know switching back to the presentation. One question to ask is of course does community is fit to industrial small and medium businesses. For my part of you, the answer is yes. Go ahead this helps a lot to unify the operations from cloud to edge. It's applicable to a large amount of typical edge operations in a factory. It's the same time. It's also fair to say there's still a lot of technologies like little time and safety, which are not yet measurable with Kubernetes. Maybe that is something for future research. People are questioning the beginning do I need Kubernetes to any cloud native, but then you can ask them if it's not Kubernetes and you want to manage from cloud to edge what else is it. And do you think it exists in five years. The cloud native you can also ask them to do the math. What is the aspiration. You start of course small, but where do you want to go and how many use cases you need to be really have to see a good return of invest. And then you realize that it is a system which must be scalable. Problems exist with small, small and medium businesses. They have no IT department and challenges with IT and therefore also with Kubernetes. At the same time, that can be solved by support from organizations like in the diffusion foundation. And also the pure amount of Kubernetes tutorials examples courses, and so on is creating a lot of trust. Finally, the line between operational knowledge is in the factory and the IT part is anyway blurring more and more because the new ups me new college graduates have touched Kubernetes and containers also at the university and at the college. And therefore, are already familiar with that and not afraid of it. The conclusion. I've shown that semantic web standards and industrial help to make people color rate and specific domains but also across domains helps to assess or pre assess safety issues, validate data, operate on data and link data from different domains together. The institution foundation digital process twin is using shackle to derive constraints and operation rules. Cloud native helps to have the right scalability and high availability in operations. Kubernetes operators are used where possible and feasible progress with salando Cassandra with k8 thunder. Apache Kafka stream see Apache link comes with some built-in Kubernetes capabilities key cloak and mean I will also come with operators and then another operator had to be developed to manage the translation and semantic descriptions to a real time pipeline on link and Kafka future work improve tooling semantic web is not yet everywhere. This has to be become more native. You have to look, not only we I guess many people look at that how those static or whether they are static Kubernetes set up some more suitable for real time and safety. And then another hot topic is look at semantic web standards to create order to speed up certificate safety certifications so there are certifiers in the institution project we're looking at such topics. So please check it out. Take a look, give us feedback, contribute. And with that, thank you very much for your attention.