Welcome to our presentation Thanks for showing up to see what we've been up to with Minecraft and open shift and children What what could you start today when you were? So when I when I was young about 12 a friend of mine bought the computer an MSX computer like this one okay, and my first so that it booted up and it was basically Basic environment, so you you could type your own program in there and the first program I did was just a little print my name Right away, I was I was really caught by this I got a book in the library and started programming I got hooked That sounds very familiar that sounds very familiar. I had a almost identical experience on this environment here that some of you might remember What you're doing this environment here for those of you who remember very very similar right and those days It was different. There was no There's no I can here to double click on to get onto YouTube exactly no apps to tap it was really simple and That's a bit of a problem right now with kids if you want to learn how learn them to program and you say okay This little program can print your name on the screen. They're not really caught by that anymore That's a little boring right print hello world is not getting them anymore, right? I wonder if you have any idea what we could do about that Well, I will I my son went to this devox for kids once okay, and they had Minecraft there Oh, that's a cool game because playing that as well Yeah, because that's really cats that gets them because they they know this game and they played with it and and in devox for kids They show them how to extend this game So what he could do is build a little plug-in that could he could change arrows into cats All right to throw cats through the air. Exactly. That's cool. That's really cool But then we came back and I said okay, let's do this more because it was really cool I thought hey that that's cool. I would like to see how that how it's done And then he said yeah, I don't know how to because you have to install these things. I had this Eclipse workspace and all that stuff because my craft has a java API Right to set up everything you have to set up java. You have to set up an editor server The server the plug-in the workspace. I need to compile these things and copy these jar files And that's all a bit much I guess a little bit much for kids right compared to our print Our super environment here. It was just turn it on and go I wonder if we could somehow get back to have an experience like that What would we need for that you think we need something like a server running somewhere Yeah, that would be an easy way to set it up. That would be in one of the elements right some way to run This is in this case the game server, right to just sort of fire it up and get on it Luckily I've been working on Developer the developer experience and we have this project called the launch And it's basically you know show the website. It's basically A website where you can get going on Open shift real simple and easy, right? I like I like where this is going open shift like this runtime environment We can get free accounts to alter applications and run them on And perhaps we could just run our server there right let our kids connect to that The way we made it is that we have like supported runtimes here like swarm vertex and Node and spring boot. This all looks very serious. This is for work This is for work But it's made in a way that you can also extend it and add your own add your own examples to it Oh So while monday to friday at work, we can create new projects with wildfly Vertex and spring boot and in the weekend we could make micro servers for our kids That sounds cool. Can you show us show us so we have this server set up on our local open shift So we have a local local open shift running on this on this laptop. That's just because we didn't trust the wi-fi here Right, right. So next we have an open shift running locally So we can think about mini shift if you can use that right so here We can say just want to build and deploy and run on on this local machine local open machine cluster And then you can you can choose what you want to check this out Node jbos, snow vertex, but minecraft, sponge There's like a different kind of the apis where you can build stuff on a minecraft servers and sponge is one of them The best one, okay, that's why we have it here And you can choose here A simple plugin example, okay, that will show you how to do how to do How to do some extend minecraft extend minecraft and then do some basic things Okay, and then you you choose your a github account So it will create a github repo for you with this example code Okay, right And it sounds really handy to get started right and then when you press here set up application it will Create a github account add some webhooks So that when your code changes the server gets restarted and and and loaded with your new changes And it will Set this all up an open shift Wow, so you can sort of with one click set up application You can get started with an example have it running in the cloud let your friends connect to it Yeah, um, and this is pretty fast or Yeah, so, uh, we could it's just a couple of minutes, but we don't mean it's but like a good chef We here's one. I prepared earlier We're gonna save three minutes here of our 30 that we have with you Yeah, so Let's see. Oh, this is the this is the the github repo that it created And it has webhooks. So if I would go here, yeah, wait, hang on. Hang on. I lost you lost me here So what are we looking at here? This is this is the demo plugin set up. Okay. So here is an example of a Example code minecraft extension. So this is what a kid would Could be shown how to extend minecraft. Yeah, so and you could you could you could go and play now this Oh, I'd love to I'd love to go and play in this time for some fun. It's time for some. All right. All right. Let's try this So This is the server that's also booted up and run set up for you. So this one's on this laptop inside our OpenShift is already Local single node cluster that we have here in a in a container and Those of you who know minecraft. It's a standard minecraft world Walk around here And look at that. Well, what's happening here? That's the extension That's the plugin That's changed the change the behavior of minecraft and whenever you collide. So whenever you Jump it will print this boing in the boing in the chat. Yeah, great Okay, so and that's you're saying this is coming from here It's just coming here. Look at this. It's an event listener and it has a collide event handler and then When it finds the player and says boing, okay So what we do is again, so we have on github an example project how to extend minecraft, right? Which the open shift launcher created for us, right? And this is running because how did this actually get sort of So There's an s2i source to image kind of a thing All right, so it's just this thing. They have an open shift from source to containers Right. So it builds your builds this code and boots up a server running this running this plugin adding So all I have to do is change this. So if I'm Wanted to change this I could just go here go to edit And change boing into something else like right on github right on get up check it in and it will fire the web webhook and reboot my server with build the plugin and Start it up again. It'll do the Java compilation to build the plugin It will create a new container image with this s2i stuff It will stop the previous container to a Deployment that replaces the previous server and gets the new one on it. So can I just keep playing or how? You will be disconnected because server restarts. All right. The entire process is wiped killed um, I mean this is interesting and and sort of um to learn about open shift It's it's okay, but I have a 10 year old daughter and she's like way you gone back to youtube meanwhile Yeah, I'm afraid. I'm afraid you're right. It's not gonna fly. If only we had some way to hot reload code That would be nice so that we could actually change it live or something Yeah, then we could change it and then build something and then hot replace it. So there's a couple of things at least two Sites to this right you would need a way to change the code somewhere more direct because this whole Github committing a rebuilding so one to address that we could we could we have something like Eclipse chain Okay, which is that which is an IDE that runs in your browser So instead of installing Eclipse on your local machine We could run this also on our on our open shift instance and now Instead of having just a little bit of a fancy text editor Here I have now the same project see the same project the same code Oh, yeah, this is the same thing that was just up on github. Yeah, yeah, so instead of and instead of in github It's just in text editor. It's just next area. Yeah with some syntax highlighting. Okay, but here I have like co-completions Oh, this is a real editor So so that will help kids to find the right api to call and write things to do Hey, this Eclipse chain thing is pretty cool. And this runs on open shift And this runs on the same instance on our same Locally That's pretty cool So that's one of those problems and the other problem we have to solve is hot replacing this code If only someone built something on top of osgi Right because a minecraft being java based. And so if you want to hot code replace things in java There's a couple of options there that these java Jvm agents that you can use to replace code Yeah, the java debugger can do it. Yeah, that was nice. It has limitations. There's limitations. Yeah This osgi thing isn't used that much in the industry for for sort of production isn't applications You might not want to replace your running code in production. You know But in this case we totally want to do that in this case, this is what would be quite handy. Yeah. So so let's check so minecraft osgi Oh, you you did that actually did that last year. Yeah, I got this All right, what are your incidents? So you're saying hang on. So you're saying that from che In here you could make a change Yeah, I could make a chance. So let's let's do that. Let's say.  So, yeah, and then save it. Okay. So now we've changed the source code inside the che container in the development side I mean you just don't get it. So somehow we have to get it there. So there's a little maven plugin in this project already installed That will make a diff of your code. Okay, send that over over a web socket to the running Minecraft server, right? Wow got it. Wow. Okay. It will apply the diff. No, yeah Then it will compile the code Into an osgi bundle and hot replace this code. You don't say this actually works. This will work I'll show you It's a demo gods allow it, right? So I just run this maybe Maven build inside open shift on our development Inside a separate container, right? So we can just get our kids to extend and add some things in here just by going on this website Yes, nothing needs to be installed locally, right? So here's the plugin running now. Okay, and it will send the diff so the things I changed, okay, right and then it will fire off and build and Do osgi magic. Okay to get this code running. So right now. It takes takes a right now. It's still boing So without restarting of this minecraft server, we can keep playing here. We can sort of be in the world live Yeah And keep on keep on jumping and you think this message will change it will If not You can't Boing boing boing This is oh So now we have the node node gs experience right in java Without all of this over way restarting person. Yeah, we just reload. This is handy. This is handy. This is this case is going, right? Right, right, right. So I think this works really well if we go back over here This works really well if this makes some sense to you or you can sit together with your What would you say? I would say like he has to be like 12 12 13 14. Yeah, maybe even a little bit older depending on what they've done before Right because you have to know the apis. You have to know all these java constructs There's a little bit of still right all of these different apis classes here And then you have to know how to put the semicolon and braces and whatnot in the right places and all of the All the syntax stuff follows becomes red like this and Yeah, that's I mean, it's cool, right? It's cool. It's really cool, but I'm just wondering if we could do better for the batch before Sort of eight nine 10 12 year olds. Maybe we could do better. This is the home of MIT. You're right. We're in Boston Right, so they have this scratch developed here. Anybody here does not know scratch Raise your hand if you don't know scratch everybody knows scratch, right? Everybody knows scratch Okay, scratch is a visual development environment for children up on scratch at MIT.edu very well known. It's been around for 12 13 something like this years Oh, right. Yeah, it's available on the raspberry pi. It's very widely very widely used And the cool thing with this is it's visual development. So instead of writing this code that we have over here And the point here isn't really the java code. I mean, if this was fighting code, it would be the same thing The point is that for younger children to just be able to assemble blocks. It's a really much easier experience. I can do that at an age of two Do something with blocks, but here yeah with eight they could they could get this I think a minimum may be reading recognizing the blocks and you can get them started Yeah, right So hang on what we're saying here is that would be interesting to be able to mod minecraft With scratch with scratch instead of job So how would that work because we are in a we're in a container over here in open shift And okay, we have to do with GI stuff. Yeah, but we would we would have to have some sort of uh, so we can extend it with javascript So the scratch can be extended with javascript. It's it's built in flash But you can extend it with javascript. That's the current version. It's built in flash, right There's a new version coming up scratch free which is completely written in javascript Pure javascript. Yeah, because then and then you can also do it on your ipad or in mobile. Okay, and and uh flash is So that would let us get some additional blocks in here, right? That will get some additional blocks. So if we would have something that would be javascript and java That would be really cool. So yeah, because the problem we still have is that we're running Even if we had custom blocks like if you had a custom block to maybe I don't know show something in here or something like that We still need to bridge from what we're running in the browser to back in the back end where the micro servers are So something that allows us maybe a sort of a distributed message plus or something go from the Plowser back into the something reactive something like vertex vertex. Why are you good about that? Vertex is this um other red hat thing. We're just talking about lots of these red hats things here We get we eat our own dark food. Yeah So that's a reactive um java framework that has um An event pass that you can also use from javascript, right because it's uh, yeah, it's a distributed so um Let's see We could actually we actually have something that was running right right. Let's show let's go there So, um, this is on another server. So I just need to quickly go out here It's also running locally on our own open shift instance actually should we we have the time maybe to jump into open shift Yeah, let's show show how how we set that up. We're good on time. Yeah So what we could maybe just show here is how on this local open shift instance here, which just timed me out Really secured set up right developer develop We have here like we have the the the launcher as showed earlier in a separate project Okay, so this is the container that runs this thing. Yeah, right Then mini j if the j instance we have shown that's a container actually several containers that runs this Online environment because every every like build you do here is in separate container. Okay. Yeah, and then we've got um Test 38, which is our microsoft server, right? That's the launcher created this project and set it up to do The osgi stuff. So let's have a look into this one just sort of drill in here a little bit So what it's showing us here is that we have an application minecraft server, right? um And that application is running for click on this Has a deployment it's the first deployment because we just set it up And we can check out the logs here, right? Okay, there's a logs of the running the running minecraft server if they come out It's demo where are you logs? Yeah It's loading logs. So this is the yeah, here we go. Oh, here we go So this is actually the the logs of the minecraft server inside the container that we can consult from the mine from the open shift console here you see the the The maybe this is when you made the change for my point. This is the maven build right right right when the hello The point blank became the hello dev comp. Yeah, okay, and um, what's over here? What is this too? So here it builds and they they create they create the image that runs Okay, so the point of going from here initially. Yeah going from our um, our source code here initially to Uh container It's done by the build that happens that happened here. Yeah over here. We have like a build Yeah, there's also you can show maybe also there's an image This is gone. Yeah, this is gone into the images the images. There's an image here that's To it. See is this like um docker hub? It's like Basically, it's like registry registry the image container image registry that's built into it. Okay. Okay, cool. Yeah Well With that we could look at our other project The story is one here very similar very similar project I'm going to use this opportunity as a plug to show where we actually have this running In case anybody wants to continue checking this out at home. We actually have what we're showing you here Um running on a public server on a public open shift instance So if you want to go to www.learn.study, you can actually see what we're about to show now the scratch integration um, and if you want to Run it at home or god forbid help us make it better You can go check out the sources here where everything we've done is linked Make it better or add some youtube videos. Yeah, every contribution is welcome And there are different ways to contribute to open source, right? It's not just code No, you don't have to code maybe improve the documentation or make the site better Get make a video that shows what you've done with this. Yeah, get your children to do it or get some issues like What else do you want? Right? Right? What we maybe forgot or yeah, or what doesn't work. Let's jump into this So how does this work? I have to um connect To oasis.learn.study. Yeah, that's the public one, but we also have it running locally. We're running locally as well Yeah, we don't want to trust the conference So we're going to use this instance here the mini shift one. Yeah, but you get the same thing when you connect to the public one here, right? Ah, it became dark while we were talking here dark alone. Yeah So these minecraft worlds have a weather cycle and a daytime cycle. Hey, who is this? That's uh, benny Oh, right. Benny our favorite favorite donkey Okay, so this is a standard minecraft server. Where's the boing boing? Let's go. Hey, it's not on this one. This one is a different one. This is the one where we have the scratch integration, right? Okay, so um, let's go back to this www.line.study. What are we saying here? Yes Start by typing slash make type slash make in the micro chat and you get a link to the scratch So you can do slash make Then you get a link click here to open scratch and make actions Do this do this And you see we can go in here So basically we're doing the same thing that What like what we did before okay, we're creating a plug-in or we're extending minecraft But not by code, but by uh by adding scratch blocks using this vertex event bus from client to to server So here we have like a normal, uh, uh, scratch GUI you can do stuff like Uh Have events and have control blocks So everything other than the more blocks is the standard scratch environment some children already familiar with right and we have the minecraft blocks Extra minecraft blocks on the more blocks. So what what do we have here? Maybe we can make this a little bigger? Is anyway to control plus We'll put this up a little bit. Yeah So the blocks that we have here there's one that says a title Does that work? So if we get this one here Put it in here and um, let's use a scratch uh Launch thing So when space keys press so this is the space key in scratch not in minecraft. Yeah, just stand the scratch. So if I press space here It's be fast. I get a welcome over there. You get my basically you get my first Because this is something that kids can get excited about right right and this is really easy You don't need to set up servers and what you just connect to this minecraft server type slash make and then use these blocks Right And then you're extending minecraft and you're extending minecraft. Do you think we can do more here? Yes, sure Yeah, go ahead. What what do we I think you should do something of our favorite donkey here I think that's a good idea. Let's let's um Try to do something creative more like storytelling not like slaying zombies and counting points. That's stupid, right?  Let's do something a bit nice with um For example, we have a what am I holding here? You're holding a carrot carrot Tell you what we'll make a custom command instead of pressing space in scratch. We'll build a custom command slash demo And we have this entity speak block here Why don't I try to make benny Say something. Yeah Say it's a free over here No, we can't do that. That's a demo too So if you look at benny and we do slash demo two How did that come? And and because we have um all of scratch available here, we could do more we go crazy Add some logic to this. Okay. Let's do some if else. What do we have in here? Oh, maybe do it even better do if else if then or if if then else if then else. Let's go crazy if else, okay This is a huge logic So um So we could make a story.  Very fun. So why don't we say if The item that's held Yeah Is equal to the visual of this I don't know this is equal to An apple No, do a carrot donkeys love carrots. Donkeys eat carrots. Okay, so we'll do carrot And let's change the how they've come to say Is it is the donkey polite don't donkeys are always Please feed me a carrot No, this is this is when you have a carrot I I'm sure kids would have gotten this right when I'm totally confused here If it's a carrot if then else we say please feed me a carrot if we are holding a carrot so you say, yeah Thanks for that Like yummy So benny will say we can have different characters also So we can have a dialogue here like we could have benny and his friend and they could exchange Comments or something others We could hear thanks Thanks for the carrot Thanks for the carrots because he's he's A lot like that right So with this if we're here when we say slash demo two Please feed me a carrot that's because we're not holding the carrot and if we Use this minecraft thing here to take the carrot into our hand. Yeah And if we do demo two now You'll say, yeah, thanks for the carrot. Nice Cool, all right So now we could build Our kids could build a whole adventure in adventure inside minecraft With a goal in the end and it's just the beginning it gives you some puzzles to solve puzzles riddles real stories or something Yeah, to like find something if you hold that you can use the variables and scratch scratch is this data blocks This is basically variables where you could say if you've done this before you could set something to true Yeah, I'll just do that first complete the quest complete the quest or something right so the sky's the limit Yeah, yeah, we probably can't figure all the things that kids can yeah The kids can think of right so With that we're sort of almost up on time And half basically covered what we want to show you guys If you have any questions, we're happy to answer them and most importantly try this out You can join our server here www.learn.study and you wanted to show the Other and we have some more links. We even have this chat server here. Our kids told us that the gamers are all on discord We didn't know much about it, but If you want to be cool, you have to be on discord Discord channels over here that you can like join us and say hi And again the sources are linked down here Um, we also have got a link down here for more cool sites This has nothing much to do with minecraft But we're just using the opportunity of having you all here to showing you that the last link on www.learn.study is a link to this little site for educational youtube channels and Cardware things for robots and micro bits and all these things that some of you i'm guessing are familiar with And we have over over the last two years or so. I think we've collected some recommended links here that are Great for children. Yeah, and if you can think of think of some things that we forgot about on this page And you can make a couple requests for this one. So because of course this page is just uh Read me on markdown on github. It's linked down here. You can just click here and edit it send us pull requests for how you Other things that you might be aware of That are very useful. Yeah Yeah, that's it. That's pretty much it. Yeah, are there any questions? Thanks for your interest Just just pick out and we'll repeat it That's a great question That's a great question. So the question is Are these commands for everybody on the server? right And that's actually very much what we were working on like half an hour ago before the presentation. We look at it Currently, um, this project is in the browser and you can save it locally. So this save basically opens a File chooser and he puts a zip file on your local thing And we've just started chatting together how we're actually going to save the project that you have here Which is a jason file in in scratch and we're going to push it to the server So save the scripts together with the worlds because that's where they belong This goes very much together with what you've created in Minecraft, right?  So I'm going to save these projects on the server We're not quite there having finished that yet, but we pretty much have a good so help us if you like for Right now it's for every user as long as you have this open So if you were to join the server right now, this would work for you But it's running in the browser So if we close this tab, it won't be active for you anymore Yeah, yeah And so something we wanted to do as a follow-up to when we have this push to the server when we have this Saved in on the server basically another actually So in scratch 3 the whole logic has kind of changed and then this is like a separate thing where you can parse the the scratch File and and save it also as a jason file. So it went when we can run it on the server so this whole parsing and Logic on the server and then we can save it easily. So the cunning plan is to move this to scratch 3 Which has the javascript based very modular architecture where they have a what do they call it the scratch? It's based on blocky. It's from block please for the front end. Blockly for google That's for for how it looks but that number plays this part Yeah, that will replace this book part and it's how it looks like the scratch vm That's basically the whole parsing running the running the scratch the scratch vm is the non-gooey The non-gooey part that we will then also run in node on the server right and then There's a gooey a separate gooey part that will do this and we'll change it a bit because here There's this preview window or there. There's this preview window there. That doesn't make that much sense We need that so we could change that that that does that goes and we have more space to Push the project to the server and then in scratch 3 use the scratch vm project and run it in some node container or something And have it constantly Thank you. Thank you so much Cool. Cool. Just go for it. Try it out and Thanks for interesting Yeah So this one here and this is easy to find just Yeah, that's right here. It is here A couple of things it's easy to find don't don't write down the url of this just go to um the Minecraft page learn.study and then down here you get to this from here Maybe a point users on our big page All right, any other questions otherwise I know we're between you and the break We're around you can talk to us afterwards as well. We'd love to see many of you on our discord server chat with you All right, thanks


A když Žáško ceknout, se poštíte mňa, si jen dělá. No, tak jste na tím. Vás se stavíš? Té na tím. A jsem dál ještě tady meni o to, že jste na mňa, že nebo máš pravout. Voděte. Je to tě, co stá tady? A co je tě? No, to je, to je. Mám to, tě, tě, že bude, pro co leží, jaká koliké hodiny, kterého, a když se chcela, možná, že to, můžete, můžete, a když jen dělá, tak se můžete, tak jen, můžete, a můžete, můžete, můžete, můžete, a můžete, můžete, můžete, a můžete, můžete, můžete, a můžete, můžete, můžete, a můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, můžete, HI, so welcome to getting started with OpenShift. I am Grant jifley. I work on the OpenShift team. I mainly manage the developer OpenShift comments community. V общině je zběžené software engineer. Je to slovenský software engineer než být před 10 lat. Máme týme jiné případé kvůl bec. Moji dnes taková dnes zběžené trzy před... Moje dnes dnes zběžené docer. Máme to. Jak si o roketi zběžené? No, no, Rocket. Docker's dead. Rocket's the new hot man. Like Space X, so which one? Rocket is CoroS is...  And so they created their own container system called RocketRKT that actually aligns more with what Red Hat's trying to do. And so they released version 1.0 a couple days ago. So it's just a competing container format. It probably won't ever take off, but it's kind of cool if you like playing around with stuff. So I'm just going to give a few slides at the beginning. And then most of this morning is actually going to be hands-on stuff. I have a lab that will work through. If you have your own laptop, it's good to run through it. I created user accounts for everyone on an OpenShift 3 instance. If I talk too fast, let me know. But give you some background on what we're trying to do with OpenShift 3. You guys have probably all seen this, but the world has been changing, especially in the last 15 years. We've gone through one of the most disruptive times in the human race, believe it or not. More technology is changing everything about our lives. More so than any other thing in the past, except maybe fire and perhaps the will. Anything else you guys can think of that has changed population so much? All right, so just to illustrate this, this is a picture from 2005. It's a group of people. And you can see this is ten years ago, just over ten years ago. What's interesting about this picture is this guy down here has a flip phone. You guys remember these? I don't know what we did on flip phones. I guess we called people. Imagine that, talking to people on the phone. I used to, when I had a flip phone, somebody would text me. You know, you'd have to hit the two button three times to get to see or whatever. You guys remember this, right?  Don't text me. Just call me if you want to talk to me. And now, if someone calls me, I reject the call and say, why don't you just text me? I don't want to talk to you. And so things are changing. Right here's another one. I have no idea what they're doing on these things because it looks like they're taking a picture maybe. I don't know. She's got her hand on the middle. And I don't know. So let's fast forward eight years to 2013. This is what the scene looks like. So everyone is using these connected devices now and living their life through their screen. My kids play soccer. And they're on teams with soccer. And I go and I watch their soccer games on the sidelines. And I just turn around and I look at all the parents.  And it drives me crazy, right? Just put your phone down and watch the game. But that's kind of the world we live in now. This guy, look at this guy. He's even got a tablet out. He's pretty cool, right? And so things are changing. We're going through a digital disruption in the entire world now. And today you guys have probably seen this, but maybe not so much in check. I don't know if you guys have this or not, but the world's largest taxi provider doesn't actually own any taxis. Who's that? Uber. Uber, that's right. The world's largest media company today doesn't actually create or own content. What does that mean? Facebook. That's exactly right. But I have prizes. Mom and I have given out prizes. I should give some prizes. These things are pretty cool. I said I don't know what they are. They're little, so they've got to be cool. What is it? Jewelty? It's a USB drive. Is it not going to explode? It's probably got... Are you running Windows? It's loaded with viruses for you. There you go. Thank you very much. All right, so it is Facebook. Yeah. Doesn't know that. I don't think you are supposed to use or flash this because they are for the workshop. They contain the images, but you have scars there to... Is that what it is?  Did we have anything on the images? I'll give you something. Scarf is on the window. Ah, you get a scarf. There we go. Cheers. Well, thank you. I probably would have screwed up someone's workshop later today. The world's most valuable retailer doesn't actually own the products they sell. Who's that? Amazon. Who? Amazon actually owns and have warehouses of all of their stuff. eBay. Nope. Alibaba from China. Is it bigger than eBay? It is bigger than eBay and Amazon. Really? Yep. The world's largest accommodation provider doesn't actually own any real estate. Anyone know this one? Airbnb. That's right. Was that you, Linchen? Yay. Yep, Airbnb. And so we are going through this digital disruption to where all of these traditional industries are getting disrupted by software companies. Are you guys familiar with what a taxi medallion is?  And the price of those since Uber has came on the scene has been reduced. I think they used to be a million dollars just to drive a taxi, right? Really? And then you pay it off over time. So you don't have to pay the money up front. But those have reduced in price dramatically. So software companies are able to compete in any industry just with a few guys who have this great idea and can develop software faster than traditional enterprises. How many people work at Red Hat? Do you feel like sometimes it takes us forever to get something out to production after it's coded? We struggle with this as well. When I used to manage IT at Red Hat, if we wanted to update the website, it would literally take us from code finished about two and a half to three months to actually get it out live. Just because of all the process and all the stuff that large companies do. And so a lot of large companies are being disrupted because they can't compete with the speed at which smaller companies can release things to production. And so what these large companies are saying now or believing, which is not true, is that containers are going to solve all of their problems. All we have to do is start using docker containers and everything is magically going to be better. Well, it's not, right? Docker and containers are just a tool. And they will help you deploy software faster, but the problem comes in with the orchestration of these containers, right? And so what we see and what I see a lot is a group of developers learn docker and they understand the power of it, but then they start to realize they need to actually deploy these containers into production. They begin to develop their own container orchestration system. The result of that is their container does get deployed out to production, right? But their data center end up kind of looking like this. They have containers thrown around everywhere. They're hard to manage. They don't have visibility into them. They don't know how long the container's been running or what it's used for. Where is that picture from? This one? No, no, this one. I have no idea. I stole it from the Internet. This picture is from the Internet.  There's no need for us as an industry Když se to závoní, co máme, můžeme si vlastně všechno dnes díky, když někde budou vešer cezvání. Můžeme byt když vyskávat pojď, které je nekontyfie, které jsou všechno dělávali sávodní chvády, kdež se než všechno dělávali sávodní chvády, které se počítení, které se dělávali sávodní chvády, které se když všechno dělávali antlám, které se když všechno dělávali sávodní chvády, a to je partner with Google on the Kubernetes project, which is their orchestration project that they created. On OpenShift, we actually contribute heavily to the Kubernetes project, because our goal is to deliver your containers in the same manner to your data center, so that it ends up looking like this instead. You have visibility into where your containers are, what they're actually running, so you can manage them, get some statistics on them. And that's, you know, two pieces of the puzzle, right? When you think about development workflows in the container world, you have the actual container system itself, which in our case is Docker, then you have the orchestration engine, which is Kubernetes, but that's only two pieces of the puzzle. What we actually wanted to do was create a new platform that adds on top of those to make Docker and Kubernetes easy to use from a developer's perspective. And so when we started doing this, we had to change our development model. We've actually been working on OpenShift 3 for about really two years, a year and a half, two years, but most of that time has been spent working on the Docker upstream project, the Kubernetes upstream project. And so we did actually change our development model to work all in the upstream projects, which is why it's taken us quite a while to get the first version out, because we don't want developers to be using containers and deploy things out there, but then just leaving them laying around and not actually using them on a daily basis, because that's of no benefit. What we actually want developers to do is to be able to create great things with containers. And this is my favorite one, because it's a bar made out of a container. So that's what we're going to learn today is the platform we've created. It is all open source. It's called OpenShift Origin. And the real goal, honestly, is kind of summed up with this picture. All right, everyone familiar with these two guys? This represents development and operations. Who's who? That's a very good question. What do you guys think? Who's Darth Vader? Development? Development, you're wrong. No, you're wrong. The operations. No, operations is absolutely Darth Vader. Development is Luke Skywalker, because we're the nice guys. I'm just kidding, obviously, but it is this tool that will allow these two groups to get along better, meaning that operations maintains the platform. They have full control over it. They get to decide your quotas, what languages you can use. But then after they set these rules in place, developers are free to self-service within those rules. So if they want to spin up ten containers all running Node.js, they can do so without having to call the operations team. Because what I realized when I managed the operations team in IT at Red Hat is that just admins have more important things to worry about than spinning up development environments. And that's why it always takes them so long to do it is because they're actually working on real things. And so development environments kind of get pushed down their priority list. And so with a project like OpenShift, they're able to set it up initially and then let the developers do it themselves without having to call us in the middle of the night. So that's enough of me talking. So now what we're going to do is start the workshop. And so everyone does need to be on Wi-Fi for this. And I want everyone to go to... Let's let me open a console in here. Wrong screen. Go to this URL. And I'll pull it back up in just a second.  There we go. And it should look like this. RunCloud Run. RunCloudRun.com Training.RunCloudRun.com Slash Devtop. Yeah, because in the console that's just RunCloud. Hmm. Sorry. RunCloudRun.com Thank you, sir. It is also 3.19 am for me. So you got to cut me some slack right now. OK, so a little bit about this environment is... Let me switch here. Maybe my internet done. This is running OpenShift <IP_ADDRESS>.<IP_ADDRESS> or whatever the latest version is. We installed this cluster a couple of days ago. It is running in Amazon EC2 Ireland, I believe, was the closest one. It has one master, which is the Kubernetes master. One, what we call infrastructure node, that contains things like the Docker registry, any other packages that we need to install. And then we have five OpenShift nodes, which you can also think of as Kubernetes minions. OK, and don't worry if you don't understand what these terms are, we're going to get into it a little bit. So, has everyone been able to get to the site? OK, so the first thing we want to do is install the OC client tool. This is Lab 1, you can read through it. And so the way I like to normally do things is just have you guys work through it and then when you have questions, just yell at me. But I'll walk through each lab and then give everyone five or ten minutes to do it. OK, so you're actually learning how to do things. The OC command line tool, I linked out to GitHub so you can get the latest version here. The only requirement for the OC tool set is a 64-bit operating system. If you're running a 32-bit operating system, let me know, are you? The Linux package is missing. The Linux package is missing. Oh, let me know, sis, too. That's because we changed our repo servers. So let me get the new... I'm ready to get this card. Let me get the new... If you go to blog.openshift.com, the first post you see, I wrote whatever yesterday or the day before two days ago, click on that link and I linked to the GitHub version down here in the middle, right here, the same link will go to GitHub, OK? And so this... You can download the latest version here. Does that make sense? Blog.openshift.com So go here, click on the first link using OpenShift 3 on your local environment. Scroll down till you see the Microsoft Windows, Linux and OS X and download the correct one. OK, so this binary is written in the Go programming language. The previous version of OpenShift, everything was written in Ruby, which we called OpenShift 2. We basically threw all of that code away and rewrote it entirely in Go. So we didn't save a single line of code, actually. One of the benefits of that is that to install the client tools on the previous version of OpenShift, it required like Ruby and all these other dependencies. So we got rid of that by using Go. So now it requires Go and all other dependencies? It doesn't require anything. It's a self-contained binary for your operating system. So there's actually nothing to install. In this lab we're just going to download that binary and add it to your path, OK? For Linux and OS X, it's very easy. You just change the path. If I go back here to the Rocha document. You just add it to your path. On Windows, changing your path is considered an advanced topic, OK, according to Microsoft. Well, of course it is. And so I gave instructions on how to do it for Windows 10, but for other versions of Windows, it's different. So I just link out to blog post on how to do that. OK, so to verify that you have this lab completed, what you can do is come to your command line and type oc-version. And if you get this, it doesn't have to be the same versions. Yours will be slightly newer than mine. You know that you have the oc tools ready to go. OK, so I'm going to give everyone five minutes to do this when you have problems. Just raise your hand and me or Graham or Jorge will come around and help you, OK? Is anyone else having problems downloading it? It doesn't matter. Oh, because it says ocv111. Yeah, that's the latest. I'm using an older version. That's 3.1, that's obviously an older one. Yeah, I'm using 3.1. Je to skala, že je prostě tak mon, mon, mon, mon, mon, mon, je ten nejlepší. Už předtím, když to věděl. A to go je komplevaný nezvy. A vlastě kompleváste 4 chodí, že taky, který už máš nejdepratovaný. Je to super. Je to to nejná čísto, pro kdo je to přijde. Jsme ti nic nejde. Musím pojď. Ne, no tak to není takoko ka soustějení. Ale si ti být kde jsem to pokladávalo to si velkou. A to sdráku to hóch 같아서. Je to sáhalo. Já mám vz'emlíci těžké klienttice. Já si tam zvíď, že mám vz'emlost svolíček. To je třeba. Máte to. To je to, co můžete vidět? Dysklamer. Někdy jsem testovat tohle největné vývětní vývětní. To jsou vývětní vývětní vývětní vývětní vývětní vývětní vývětní vývětní vývětní vývětní. A to bude možno vždyť, že to tělo, protože to je skvělá cíle. Někdy jsou vývětní vývětní vývětní origináři a největné vývětní sebsy. Někdy jsou vývětní sebsy. Přesně jen jak se to vyštěl? Děkáte, se můžu dělat. Děkáte, se se svojící. Děkáte, se se svojící. Smokedesting the environment. Ok, this is where we're actually going to log in to OpenShift for the first time. Ok, this is the URL. Is there a whiteboard in here? There is. Is there whiteboard markers? No. Pretty short URL, right? Sorry, I didn't make it. Ok, so in this lab we're actually going to log in for the first time. But in order to do that, you're going to need usernames and passwords. Ok. I created one for everybody and this is going to take us five minutes to get through. So what I'm going to do is just point and tell you your username, ok? I tried to print some stuff up but it didn't work, ok? So is anyone not going to be doing the labs? Ok, so if you're not doing them when I get to you, just tell me and I'll skip past you, ok? So you, user, all lowercase and then a number. So you will be user 01. Ok. User 02. User 03. User 04. User05. User06. User07. User08. User09. User10. User11. User12. User13. User14. User15. User16. User17. User18. User19. User20. User21. User21. User22. User23. User24. User25. User26. Jo, tam by třeba napset hodnout do bus, so. User27. User28. User29. User30. User31. User31. User31. User31. User31. User31. User31. User31. User31. User31. User31. User31. User31. User31. User31. User31. Co se cítíte? Čo je to, co se vypěhám o složství? OCLogin-server Equals HTTPS OpenShift-master.devcom OpenShift3RoadShow.com Už se s námi z?] Už se s nám leader každou, co už se zavodu dneří. A to můžeš mít na měho pasvory a jsem si říká, že je devcom. A můžete se vzítiť jedný projekt, úžasný, a to je úžasný náš náš smok. To je závodný smok test, to je to, co máme. Jsme 10 min, závodný, nezávodný, nezávodný, ale můžete se vzítiť jedný náš smok. Vzítíte jen důležit. Jsme jen závodný, 1-0-0-0-0-6-0-0-0-0-0-0. A to je to, co máme vzítiť vzítiť, že můžete se vzítiť, že jen náš smok, a závodný heating is třeba se tam právodný, abychom nás nesilakvá, který říká, Když jsem vždyčil na uvězčí, to se zvukává několik zvukování. První je zvukování na zvukování. Vzluškaní zvukování na zvukování na měj kod. Takže, když jsem vzlušal na zvukování na internet, se zvukování na zvukování na měj pod. Co je pod? Máme dvě závodky. A pod je závodek kubernities. To vždyč jen návodský kontainer. Závodský kontainer odměrí závodský kontainer a vám vám závodský kontainer. A závodský kontainer je závodský, jaká závodské kontainer je závodský. Představící se, že máte než jedný docker kontainer v tom hodinu, takže když jsi chtěl, když jsi chtěl, když jsi chtěl, když jsi chtěl, když jsi chtěl, když jsi chtěl, když jsi chtěl, když jsi chtěl, když jsi chtěl. The reason we say that's bad practice is because one of the benefits of running a container platform like OpenShift is the ability to scale pieces independently. And you scale based on the pod level. So if I had my web server and my database in the same pod and I only wanted to scale my web server, I would have to scale them both. Does that make sense? So if you separate your database into a pod and your web server in a pod, you can scale independently, maybe you have heavy computations in the database, and you want to scale that up and have more replicas, then you can do it that way. This route, this entry point into the load balancer gets created for you by OpenShift when you create something, we'll get into that. Let's see. It uses this Docker image, user zero zero smoke. So we'll get into this as well. Every time you create something in OpenShift, we build Docker images on the fly for you and push them to the registry. These are just standard Docker images. We have builds and the ports, OK? So that's all I'm going to talk about right now. We're going to get into all of this stuff in more detail in just a few minutes. So we'll give everybody another five minutes here. Is anyone having problems logging in?  There's nothing I can do. I have a hard line, you can come up and use the hard line.  Yeah, just plug into this one.  I'm actually using my phone. I gave up on the conference Wi-Fi. Isn't cloud awesome? It's all dependent on the network connection. I love it. Especially on a trade. I will say this though. Even though using stuff like this, you are dependent on the internet and sucks, I kicked off a build of a Java EE application the other night. As soon as the build started, I just shut my screen, because I didn't need to watch it. So that's pretty cool. Here's the chair. Now that you're on the hard line, you have to set up a Wi-Fi connection for everyone based off of your laptop. So the applications? No, you didn't finish up what you were using. What was I saying? About starting the build of Java EE. No, so I started the build, and then I just shut my laptop, which just connected the internet, and my build was still going, because it didn't have to be connected while it was happening. OK, does anyone need more time on this? OK. Oh, this is going to be... I have to go like this. OK, so let's go to the next lab here. All right, so the next lab is deploying your first Docker image. OK? How many people have never deployed a Docker container before? In this lab you will be Red Hat, Certified, Docker, Deployment, Engineer, Cloud Specialist, level 7. OK? And I can print it. Level 7, and I'll print you up a certificate. Do you want to do the password? Did you really set up a... Yeah, it's a hotspot. Oh, he did really set up a hotspot, so you can connect to his if you want. Does anyone want to see something? I'm just sorry. The university really asked us not to do this so please don't... I really don't just apply for the certificates. OK. Moving on. We haven't heard that. You might have doubted. Do you... This guy, I can't give away USB sticks. We can't set up hotspots. What? OK, turn it off. OK, so in this lab, one of the cool things about OpenShift is you can deploy any Docker container or Docker image. If you're not familiar with this thing called Docker Hub, it's basically kind of like GitHub but for Docker images. So anything you would want in the world is probably already being created out there. And so we do support the ability to run images straight from Docker Hub with some restrictions. OK? So the environment that I created, I set a setting that does not allow Docker containers to be run from external repositories if they run as the root user. OK? So unfortunately, that's quite a few Docker images today run as privileged users. If you do want to allow that, you just turn it off. There's just a little setting. The reason we don't allow it by default is because a study was done by a company research that found that just over 40% of the official Docker images so official meaning MongoDB from MongoDB the company itself, or Fedora from Red Hat over 40% of the official images had known security vulnerabilities in them and they run as the root user. So we just decided by default not to allow that and then to let the users decide whether they want to allow that or not. So that being said, we are going to run a Docker container straight from Docker Hub down here towards the bottom and we're going to deploy the famous Kubernetes guestbook application. So we're going to say OC new-project, remember to use your username here call it guestbook and then all we're going to do is deploy the new app Kubernetes guestbook and what this is going to do is it specifies the namespace you can think of that we're going to pull this Docker image from and the name of the Docker image. Kubernetes is the Docker Hub user ID of the Kubernetes project and so we're going to know that we don't have this image in our registry so we're going to go out to the public Docker Hub registry, look for this user and at the once you get this RAM I believe I have this Docker image cached so we're not going to actually hit the public internet to pull this down otherwise it'd be too slow you can see that down towards the bottom let's see what I'm doing here that we're going to have this guestbook application running, okay however it's not going to be accessible yet because we're not going to create a default route it's going to be running but it's not going to be accessible on the public internet until the next lab so I'll give everyone 5 minutes to do this lab and I'll try to do it here as well so I'm going to say OC new project I'm user 00 and I'm going to say guestbook so now I have this user 00 which I should be using now I can just say OC new app pass in kubernetes-guestbook this is going to pull that image down and run it okay so now I have this thing running OC status and I have a deployment running if I go to the web console here and go into my guestbook project I can see that I have a deployment I guess it's also possible to make it using the web console it is it is you just go to add the project put that button actually in this version that I have deployed you cannot deploy a docker image from dockerhub on the web console in this version you can in the most recent one does anyone need more time on this one it's fairly quick okay let's move on so now we have this guestbook application running but we see right here that there's no public URL it just lists the service and so what we need to do is expose this service as a route so to do that what you can do on the command line is do oc get services or sbc for short and this will list all the services you can think of a service as the load balancer it's the entry point to your application and we want to expose this as a route so to do that all you have to do is this is the name of the service as expose this service so you say oc expose service or you can use sbc for short and say guestbook and this will create a route for us and if I go back to the web console you'll see that it automatically updates with a publicly accessible url so if I click that we can see the guestbook application now it's not going to actually work right now because the guestbook application uses a redis database which we don't have yet so I'll let everyone get that working just to make sure that you're finished with this lab you should see this page in the browser I know it's a beginner question but you already mentioned openshift origin which is the source code for the openshift platform and the openshift enterprise I mean like is there any the openshift enterprise is it just the cloud so the questions already deployed to what's the difference between openshift origin and enterprise and maybe are there any other openshifts so there's three actually three versions of openshift there's openshift origin which is the upstream openshift project and openshift enterprise those two are exactly the same except for this this says openshift enterprise and the open source version says openshift origin other than that they are exactly the same the only difference is openshift enterprise when you purchase it comes with support but I still have to download it and I'll have to deploy to amazon or my local computer you still have to run it yourself we also have what's called online now that makes sense if you go to openshift.com this is openshift online this is where we provide the hardware as well this is version 2 right now still version 2 version 2 we have openshift online if you're not familiar with it the reason it's still version 2 is we have what's our latest number 2 million applications running on it 1.8 to 2 million applications running on it we process over a billion requests per day just to the public red hat cloud through openshift and to migrate all of those users over it's it's not an easy task so what we are going to do is just stand up a separate environment called openshift online 3 and we're going to what can I say about this it's going to be coming very soon in a developer preview but we're not going to self migrate people over we're going to let them do it on their own time and then we'll eventually turn off the current openshift online in like a year or two from now once everyone is migrated but it still will be free to use when we push it out there and then openshift dedicated is if you're a company that doesn't want to run your own hardware red hats sysadman manages your openshift environment for you so there's actually four different but it's all the same code except openshift online will not have an authentication mechanism it will require developers authenticate with github or twitter this recent news that you will somehow work with google on their cloud platform how's that going to work out so the question was we just had an announcement with google that we're partnering to run openshift on google computer engine their gce cloud so that'll mean that openshift online the version 3 will be running on google's cloud and not amazon's today it's on amazon and then if you want to use openshift dedicated you'll have your choice of aws google compute engine or microsoft Azure will run in all three of those and currently does that mean that if i use the openshift online the free version you're actually paying for me the amazon so if i use the free version of openshift online which anyone can use you get up to three gears or gig and a half of memory do we actually have to pay amazon for that yes we do plus about seven dollars a month per user thank you very much man yes you can pay me afterwards i'll get reimbursed so a lot of people ask why we do it because we have a million 1.8 it probably is 2 million now applications running out there why do we do it there's a lot of money for us i know we're not one of the top amazon e-c2 users netflix probably kills us on that but it's a significant amount of money that red hat just pays for free hosting for people i think we do it because it encourages developers to work on open source software and be able to publish their stuff quickly in reality though a lot of it's bitcoin mining and stuff like that that people install on it that we have to turn off but what we really hope is that developers will start to use it and then want to use it inside of their company as well i have 57 software updates that i need to do so let's move on so we have this route now the next thing we're going to talk about is scaling and you can scale in one of two ways i show in the lab manual how to do it via the console and i am going oh and i also shared how to do it in the web UI very easy to scale up in OpenShift to my guestbook application and let's scale it up to 4 and we'll see here in a second that it's starting to scale and now we have four containers running all load balanced so pretty quick to scale these things up my only ask is that because this is a shared environment don't scale up to like 200 or anything because it will bring the environment to a crawl because there's only five servers but play around with it scale it up, scale it down i believe in the workshop i provided a command to randomly kill maybe i didn't i have a shell script that randomly kills like two or three pods and you can see them come back so here just delete one manually and you'll watch it comes back instantaneous because under the covers we use etcd have you heard of etcd? etcd is a key value database key value store and so we keep the state of what the number of pods should be in etcd and then each we check and if it's ever out of sync or out of true it's not true anymore we immediately fix it it takes about a second to realize that something bad has happened and to recover from it so play around with that delete a few pods, watch them pop back up can you say it louder? what's it all about? oh it's whatever you mean for the placement? it's not random it's the default kubernetes scheduler if it automatically goes if you scale up to two containers it automatically first goes to a different physical host and it does that and then it does a least used algorithm as well even if the next host even if the next place is another physical machine if the current host is less utilized it puts it there but it's a default kubernetes scheduler I've got an error saying that deployment config guestbook can be updated the object has been modified to be used it seems like that is anyone using user 1? what? yeah that's the one because someone I just hit the button and someone scaled it up automatically to 4 thanks for playing you can use user 0,0 for user 50 works now mine just too maybe I'm using are you using user 0,0? no that can happen sometimes to depress it really quickly oh is that what it is? so it's halfway through oh I see okay what grammar saying makes sense if I do this it's going to 6 but then I do this and sometimes the state is changing does that make sense? it's like a race condition I did the button only once but okay that's why you should always use the command line oh can you? so I always get asked can you scale down to 0 you can, absolutely you can scale it to 0 so now I have 0 pods right so I'm going to give everyone just a couple more minutes to play around with this to kill some pods and then we're going to move on to the next question about scaling in origin with the latest merge we incorporated the first code that will allow you to auto scale so right now it's manual scaling you have to click the button or you have to use the command line so we do have the first auto scaling stuff in the open source repo now that will automatically scale on is it CPU utilization okay CPU utilization so you can set some rules and if your pod is using too much CPU it will actually scale out and start sharing it that way now the goal for that is to have it be a pluggable scaling architecture to where you can write your own scaling algorithm based on HTTP requests or disk.io or whatever the case may be so it will automatically scale up and down who in here loves Java alright so we are going to be using Java for this next part but you don't actually have to touch the code okay alright so what I've done is I have created a geospatial application for mapping coordinates on a map and I'm going to show you the application that we're going to be building so let me go to my web console and let me go back to my projects and go to MLB parks this is a Java EE application and a MongoDB database MongoDB supports 2D spatial queries box queries via JSON so that's why we're using that so if I click on this application all it is is a map of the world and it defaults to the United States because what this application does is maps all of the baseball major league baseball stadiums in the United States okay this is a very pluggable application you can put in any coordinates you want map soccer stadiums or whatever the case maybe or train stops or whatever okay when I zoom in or out it makes a rest call based on the longitude and latitude from the bounds of the browser so it takes the coordinates from here here, here and here and does a geospatial query based on those coordinates to find what's within it and so you can zoom down all the way it's just like google maps except open source okay so this uses a tool called open street map which is a map of the world that you can use it also this web UI is leaflet leaflet js and then the back end is all written in java so if I scroll all the way down to Seattle we can should eventually see the baseball stadium here there it is it's called safeco field if you look on the little pin it will tell you the team name their payroll and what leak they're in so every time I do this it's making a rest call that we're going to be creating I should have centered it on Bernou let's go over here we've got loads of baseball stadiums here there's nothing over here is this it? am I in the right state? where's Bernou? move to the right here we go down down a bit too much oh there's Bernou here's Bernou we're somewhere here so you can do it all over the world so you can use this code to map whatever you want so this is what we're going to be building let's go back to the lab the first thing we're going to use what's called source to image so source to image is another open source project that we created on the OpenShift team because we feel that developers like to write code is this a fair assumption? and they don't like to do docker builds all day long and so what we created was a source to image project that will take a get repository or source code and a image name maybe like Jboss or Rails or Sinatra or Node.js or some language in runtime we then take the source code provided which is a get URL a base image we build the source code build a new docker image on the fly that has your source code in it and push that image to the registry so developers can actually create and deploy docker images or anything about it and that's what we're going to use in this lab is the source to image stuff we're going to be using the Jboss EAP64 or something base image and then layering on top of our source code it's going to run a maven build which is the Java build system it's going to take the artifact of that and inject it into the new container or new image and then we're going to run a container based off of that image when I'm developing when I'm changing the code I have to rebuild everything what language do you use? JavaScript for interpreted languages like PHP Node.js we actually have an R-Sync tool built into the platform so I like to develop in PHP and so what I do inside of my IDE is when I click the save button in my editor I have it run OCRC and that syncs my changed files over and so it's instantaneous for Java that's not the case because in order to do something like that with a compiled language like Java you're typically wanting to use something like Jrebel so you'd have to use something like that if you're not using that you will indeed have to run a new build every time and can you use Jrebel with OpenShift? as long as there's a Docker container that they support, yes we allow you to run any Docker container ok, so oh, there's one thing before we get on this lab because we are getting into these types of questions like what do you do when you go home today? so if you still want to mess around with this go to openshift.org slash vm so Jorge in the back of the room has created this all in one virtual machine that runs on Windows, Linux, Mac that has the latest and greatest open source code that is completely open you know how I said there was some security restrictions around running this route that's disabled by default in this so you can run any Docker container on it on your local machine just with vagrant with one command so that's when you would want to try out like the this is how I actually develop locally now, I just use this all in one image and use it as my development time so how often is that box we update it with every release yeah, with every release and so if you want more detailed instructions on how to do that you remember that first blog post that we went to? that's what this blog post details so you can actually run this thing and so you'd want to come here and use that so I can just download that image and put it into the virtual box yes, yeah up and running it provides open chip and the rail based images actually I believe but I still need to provide some other host for all no, the way the host works is we use this technology not technology, this service called ZIP xip.io and so if we're in the console here, you can see I have a public URL we create one of those using xip.io so you don't have to mess with your host file or anything and you'll be able to access your applications it'll be available to any computer on your subnet I believe, is it subnet or entire network entire network but it won't be available to users outside of your network so let's actually get to building this application we are going to use the source to image here's the repo I want everyone to use and in this lab you have a decision to make I would prefer that you fork this repo the reason I want you to fork it and use your version of it is because in a later lab one of the great things about source to image is once you commit a change to your repo OpenShift automatically can kick off a build and know that something has changed and automatically rebuild it if you want to see that functionality fork the repo and use your own version because I'm not going to accept 50 pull requests to see this today and then you can change your repo and see an automated build get kicked off so fork the repo and provide that as the let me go back here let me show you one thing here and I know people are going to do this but when you create your app where is it make sure to use your repo and not mine and also make sure that you replace this your user with your actual github user ID if you fork it this is not your OpenShift user ID and it's not your user it's your actual github.com user ID or you can just use mine if you don't want to fork the repo does that make sense? Is everyone familiar with github? I normally teach this to corporate developers who work at a bank 9-5 and don't understand github so hopefully you guys do but if you don't let me know is it all the working with gitlab? oh yeah it works with any git repository it can be a private, it can be gitlab, bitbucket, whatever and if you don't one of the undocumented features of OpenShift, if you just have code locally, you can actually do oc this is pretty cool and let's say I was working on PHP that can pass until the dot and it will take whatever source code to my current directory and use that does it support secure shell authentication already? well, not secure shell what we have is this oc rsh which does a remote shell but it's basically the same as meant for the git checkout oh yeah, of course what's your logged in? yes just click that button and now it's this and so this is your repo very good yes i have a very basic question so where does OpenShift deploy the application? so the question is where is this stuff actually getting deployed what does the hardware look like for this today, this workshop the hardware is 5 EC2 nodes that have 8 gig of memory and 4 CPUs and so we support up to 40 pods per host so you're getting one of those hosts and your pods are getting spread across so look at OpenShift do you use any hardware you want? oh yeah, you can run OpenShift in a virtual machine OpenShift actually also runs as a docker container so if you have boot to docker and you want to run OpenShift you can just do OpenShift, is that the docker thing? and then you can run it inside of a docker container so this guy up here is already done because he's on the hard internet ok, so the one thing with this lab if you're not familiar with Java why do people hate Java so much? i absolutely have no idea because it takes forever to do builds ok, so this build is actually going to take about 5 minutes because i'm using the Maven system and it basically downloads the entire internet as a dependency because i have all of these dependencies that depend on other things and so it does take a while to build so you can look at the logs in two ways i don't believe i show the logs in this lab from the console but i really like the new logs in the console once you get it deployed you can click on your pod here and you can click on logs and this will open up the log and you can follow it so you can just click on follow and it's basically doing a tail on the logs in the console i prefer that way so it's up to you and you'll know the build is finished when it says pushing to registry i thought it would be faster and before tomorrow i would be i mean i would share it if the place is the same how does this end there what time is the the server how long did it last oh let me check 12 minutes 12 minutes that's it this is a 10 minute break ok, i'll wrap up in 10 minutes sorry we're just getting to the fun stuff yes so the goal of this lab for this workshop is to put you guys through a bunch of pain right here and then to have everyone hate me at the end because we can basically do all of these in one command and i'll show you that in just a few minutes ok so we can just finish off the lab so that we can see it these labs will be up and running you can work on them all weekend i mean like can you finish it off before our in front of us so we can see what's actually the goal of it ok, so i'll just walk through this real quick what we're doing right now is we're deploying the java application but it doesn't actually have a database yet so in the next lab we're creating a Mongo database Docker container and the most important thing to get out of this lab is that for authentication when you're using Docker containers it uses environment variables by default that's kind of the standard with Docker containers and so when you create an application we have this thing called a deployment config the deployment config is the truth of your application and when you build up and down in the web browser what it's actually doing is modifying this deployment config all of your running pods has to match this deployment config and so once we create the database i just set some environment variables on the deployment config and that ensures that every pod i spin up after that has those environment variables in it so if i scale up to 5 EAP servers each instance of that has these environment variables to make that database connection does that make sense so we link them together here we then look at the actual deployment config and this is what the environment variables look like nothing special and then i say OpenShift Magic here and that's because once we change this deployment config OpenShift realizes your current running pod that we're building right now no longer matches this deployment config but it doesn't have those environment variables in it so what it does is it kills that and spins up a new one that's correct and then your application suddenly starts working and it loads the data in and all this stuff and it's really cool how it works but it is a pain to get all set up and i link into the source code that shows you how that works i show you how you can SS or not SSH but get a shell on your container and then run the Mongo binary client tool and lastly once you have this application all up and running which looks like this as a developer you've now done the effort to get your project running but you want your teammate to be able to work on the same project with you but you don't want him to go through all this pain that you're a team of like five developers and you all work on two or three projects and you hire a new developer normally it takes that new developer a couple of days, sometimes a week to get their environment set up and so what we provide is this thing called a template that you can create based off of the application once you have it running and so this template is really the real power of OpenShift and so instead of creating all of this Java EE servers cloning forking the repositories what we can actually do is create a new project and I'll show you this go to my terminal here I can say OC new project user 00 template and I can paste this command in which is OC create project from a file and a file can also be a URL and I'm passing in this JSON file that is a template that defines my application it's going to say here's the get repo that has the source code it needs MongoDB randomized the username and passwords and then modify the deployment config so it injects this password into every new pod and I'm going to hit enter here and now I have this template created ok so if I go back to the web console if I go to my project overview I'll see this template project if I click on add to project we see that my MLB parks app shows up in this list and it just got reordered so where did it go you might see it here I saw it when I first loaded it here it is I just searched for it so it actually adds it in the web a UI as well and so then it can be used but only in my namespace there's this concept in namespaces the global namespace for everyone is called OpenShift and so if you really wanted this to be available to anyone on the platform you would have to add it OpenShift namespace by passing in dash in for namespace and say OpenShift this is going to give me an error because I don't have permission to do that I'm just a developer I can't add things globally to the system so you need to get your sys admin to add this globally but because it's available to me in my project to create all of this over the next couple of labs I can just say OC New App MLB Parks and it searches and sees that there's a template that I've loaded into the system and it's going to create all of this stuff and then in a couple of minutes my entire project will be created and you can see that it randomize the passwords and all that stuff and so that's really how we envision teams using this if someone putting forth the effort to build out the project from source code then create in a template that others can use so we're going to end there and I'll be here all day for questions and then I think the next lab is Graham Graham is on my team he is also the author of ModWizgy the python server and he's going to be talking about the python development in OpenShift which python is not really good ModWizgy he also calls it MaltWizgy so there you go alright thanks for coming everybody I appreciate your freedom oh so you're out oh it's kind of cool what? it's like 900 people already have this thing yeah so there is some kind of follow-up on this workshop follow-up with content development this is just the one so so oh yeah we're building all day except the next the rest of the guys are going to be building on top of this stuff so so so so so so so so I had a great time so oh do you know Armin? yeah so so so he's already telling the owner a mělo jen dnit... No, no, no, no, no, no. A, jo, chvěl jsem si dnes... No, no, jo, jsem ty můj káben. Ah, chcete, že jsem jen dnes? No, no, no. A kdo? A kdo? Mám, to byla velmi velmi velmi velmi velmi velmi. Ale vám všichni všichni. A kdo? Tak, všichni všichni všichni, Bylo to výstřední. Výstřední online máme, že jste výstřední, ale jsme vždyžíte výstřední. Výstřední je výstřední, který má měl výstřední server. Já byl výstřední, že jsem měl výstřední, nebo výstřední. Ale to je výstředné, že mám výstřední, které se výstřední. Já bychom na to dát ve měr díl. Věstřední měl výstřední. Let třetí. Věstřední výstřední. Zvízol, že na to tam mám. Teď prostě se měl hlouký výstřední. ... Jem výstřední. Už se početnit. Máte to začnout. Já nevím. Já nevím. Já mám můj personal nejlepštým, když můžete připravit. Já mám můj starový, když můžete připravit. Máte to začnout. Máte to začnout. Máte usb, ale můžete říct, že máme nějaké zvuky, když mám nějaké zvuky, když můžete připravit. Vysvupact sneho former a hに celuimu jsou na další hra voila a nevτέle ruled, bylU疾í. Ev van se ne, už jtom nebo ekstremolivou. Je tam když můžete připravit. My vyrodaped. Přijbyc zatitl pod celý jebi s raclou s Burg Wonderful. Znam se na přidě depressingí.  Ale než se nejlepší, že jste si nejlepší, že jsme vlastně se dělali, že máte tomu informací a potom se vytvořil a dáme velice, když vysvědět, když bych jste bohával. Když se to vyvědět? Já bychom se dělal. Já myslím, že se to všechno, když nejlepší. Bychom se potřeba? Mám v tomto ráděně, v tomto ráděně byl vlastný s deského výděnce. O, tak, máme nějaké. Takže, když je to, když se měli někdy přijet, nás kterého nám povedou, když jste v předném sdězením výděnce, kde máte vytvořit nájebět, když měli si na sned, když ty jsi měli. Mám teda vytvořit někdy, když nám je nejlepší výděnce, takže máme vytvořit někdy pověděnce, ale můžete tak vždyť až kastit to dál vláček, které je město věděl, až se jim vzlávíš, když ti to chtěl. A když si všichni vůstří, když se jim vyští, když se jim vzlávíš, když si jim vzlávíš... Byli to všichni jichni vzlávíš, když jsou všechny ráda a můžete se týstře? Tak, tak. Až se jim vzlávíš, když jsou všechny ráda a můžete se vzlávíš? Já si viděte, že to... Máme všechno, že vlastném věděte, že se to nezapravilo.


Hi everyone, we're going to take a look at an example of a very typical washer method problem for finding the volume of a solid of revolution. Here we are asked to find the volume of the solid formed by revolving the region bounded by y equals x squared and y equals square root of x about the x-axis. So if you want to go ahead and graph those on your calculator, I've already done so and I did adjust my window a little bit. I think I did, each of those hash marks is one, I do believe. I know this point of intersection because we will be needing that. That is one comma one. You can always find that on your calculator if needed. So if you read the problem again, we want to find that wedge-shaped region. We're going to take that region and revolve it about the x-axis. So when you do that, imagine that it kind of comes down and this is not going to be a really perfect picture, okay? Apologize now. Alright, but imagine taking the yellow region that you see and rotating that yellow region about the x-axis. So everyone turn your head to the right. Sort of looks like tulip leaves. At least that's what it looks like to me. So in order to find the volume of the solid that's generated, this is a great example of a classic washer problem. If we think about our representative rectangle, which could be drawn anywhere in this yellow region, I'm going to put it up here. Notice that the rectangle, when we draw the rectangle, we want it to be hitting both curves. So because of that, we know the rectangle has to go vertically. Therefore, making it a DX problem, what makes it a washer method problem are two major characteristics. That representative rectangle is perpendicular to your axis of revolution, which in this case we were told was the x-axis itself, and it also is not touching it. That is in contrast to the disc method in which the representative rectangle was touching the axis of revolution. The fact that your representative rectangle is not touching the axis of revolution, that's where your hole comes from. So if you think about your basic setup for the formula, that's going to become the definite integral, our integrand for our definite integral.  Big R is always the distance from your axis of revolution to the far side of your rectangle. It's basically that outer circle of the washer. So in this case, big R is going to be this distance right here. Alright, notice from the axis of revolution to that far side of the rectangle. So let's go ahead and get an expression for that. So we'll use the top minus bottom idea, so on the top, notice we're hitting the blue curve. Now that's the curve for square root of x, and on the bottom we're simply hitting the x-axis. So big R is going to be square root of x. Now for little r. Little r is essentially the radius of the hole itself. So little r is this part right in here. Once again though, we can think top minus bottom. So on the top it's hitting the red curve, which is our quadratic x squared, and on the bottom it's hitting the axis of revolution, the x-axis. So we simply have x squared for that. So these are the pieces that are going to become the integrand for our definite integral. Our limits of integration, since it's a dx problem, do need to be x values. So in this case we're going from the origin at zero up to x equals one. So let's go back to the previous page and we'll get that set up. So our volume then is going to be the integral from zero to one of pi. Now remember we need big R, which was the square root of x. We need to square that, so that's big R squared. Of course that becomes simply x once you simplify it.  You are most welcome to simplify it if you'd like. This one might not be a bad idea simply because it'll be easier to type it into your calculator, but you don't necessarily have to. And you are welcome to just evaluate that in your calculator if you just do the integrand part without the pi. You would get as your answer 0.3 pi. If you multiply the pi in to get a decimal answer, a pure decimal answer, you would get approximately 0.942. If you did need to attach units of measure, of course that would be cubic units since this is a volume problem.


Welcome to JSA TV and JSA Podcast, the newsroom for tech, telecom, and data center professionals. I'm Buffy Harakitas coming to you from fabulous Las Vegas for Channel Partners 2022, and joining me today is Bradley Craig, Director of Channel Sales for Infinite. Bradley, welcome to JSA TV. Welcome. Thanks for having me. So Infinite recently announced the restructure of its go-to-market strategy to a Channel First approach. Can you give us more details there? Yeah, I mean, if you're looking to really expand your business at an exponential rate, what we're trying to do is we're trying to expand ourselves for us, right? And so going to other partners that already have relationships is key for our success to be able to go from just kind of a small regional player to a very large national player. So we know we're not going to make it unless we go Channel. Yeah, Channel all the way, that's for sure. And recently, Infinite announced two new products, Infinite Passport and Infinite Edge. Can you give us some more details there? Yes. So if you look at the market and how things are kind of going, everything is going to the edge, right? So for us, how do we take a customer that's trying to go from on-prem to the cloud and be able to get their data back faster? And so we look at Infinite Passport as our way to be able to transact data across multiple carriers to the public cloud, to a private cloud, to a third-party data center like very, very easily. Now with our Infinite Edge product, it's how do we be able to recover that if a disaster happens, something happens to their on-premise infrastructure or they just need data local, how do we be able to support that business need? Sounds like two product lines that are surely going to enable enterprises across the globe for sure. Not only enterprises, but small, medium businesses as well. We want to be able to be that glue that holds those businesses together because it's not just the enterprise that needs it, it's those medium to small businesses as well. Yeah, that's great. And let's talk a little bit more about you. So you recently joined Infinite earlier in this year, January, but you have an extensive history in the channel. Why don't you give us a little bit more details there about your history and what you bring to Infinite and to its channel program? Yeah, for the previous five years I was with Veeam Software. I worked with managed service providers. My job was actually working with service providers to actually get new product lines with Veeam, be able to do more with us and expand their business portfolio. And previous to that, I worked at Insight for nine years. Also working with managed service providers and cloud service providers, which included IBM and a lot of other larger cloud service providers. So I've been doing this for about 13 years, so pretty extensive background there. Yeah, so we should definitely expect to hear more about Infinite's channel program and expect some growth there for sure, having you at the helm for sure. Hopefully. We'll see. Yeah. So thanks for joining us, Bradley. Where can viewers go to learn a little bit more? Then go to infinite.com or you can just send me an email. I'll be more than happy to talk to you at becraig at infinite.com. Becraig at infinite.com. Thank you so much, Bradley, for joining us today. And thank you, viewers, for tuning in to another episode of JSA TV here at Channel Partners 2022. Happy channel networking.


Greetings my fellow women of St. Lucia, I am delighted for this opportunity to address you on the occasion of International Women's Day. I would like to wish a happy International Women's Day to all and trust that it will be a day not only of celebration but one of critical reflection as we together look at where we have come from and where we still have to go. For more than a hundred years this day has been observed all over the world but it was not until 1977 that the United Nations recognized it and started celebrating it as we now do. International Women's Day is dedicated to honoring the social, economic, cultural and political achievements of women to spread awareness among the people regarding women's rights and the gender equality. It is also to encourage women everywhere that no hurdles can stop them from accomplishing their dreams. This year International Women's Day finds us as indeed the rest of the world still battling the coronavirus pandemic that continues to wreak havoc everywhere 15 months after its first made its appearance. It is therefore most relevant and timely that the theme for this year's observance is women in leadership achieving an equal future in a COVID-19 world. We are once again given the opportunity to celebrate a tremendous efforts by women around the world and especially right here in St. Lucia. In shaping the fight and ultimate recovery from the COVID-19 pandemic it's a tremendous sacrifice that women are making putting their own lives on the line and we as a country need to show appreciation. By now everyone knows that from day one women all over the world have been in the heat of this battle working relentlessly and over very long hours to keep populations safe. They are frontline and health sector workers, scientists, doctors, emergency personnel and caregivers. Yet as is shown they get paid 11% less globally than their male counterparts. An analysis of COVID-19 task teams from 87 countries found only 3.5 percent of women had gender parity. Women's full and effective participation and leadership in all areas of life drive progress for everyone. Yet they are still underrepresented in public life and decision making. In fact a recent report of the United Nations Secretary General stated that women are heads of state or government in only 22 of the nearly 200 countries in the world and only 25% of national parliamentarians are women. At this current rate of progress gender equality among heads of government will take another 130 years. The fact is when women lead we see positive results. Some of the most efficient and exemplary responses to the COVID-19 pandemic were led by women and women especially young women are at the forefront of diverse and inclusive moments for social justice, climate change and equality in all parts of the world. This is why this year's International Women's Day is a rallying cry for generation equality to act for an equal future for all. The world is moving towards achieving gender balance towards equality for both men and women. The change is something that is needed and essential. For ages men have been more privileges in every sphere of society. The need that needs to change because we are all human beings and we should all get equal rights and opportunities. But change is coming and we in St. Lucia have been witnesses to it not only in our own country but in some of the biggest bastions of gender inequality in our hemisphere. Only weeks ago we saw history made in the United States with the inauguration of the first woman vice president Camilla Harris. It was a long time coming but now it is done. So what of St. Lucia? How are women fairing in this hellen of the West? I think we have to be fair to ourselves to admit that somewhere along the way we have dropped the ball. There was a time long ago when we had in St. Lucia a vibrant women's association. Although it lacked the clout and verb of present-day women's organization in terms of advocacy operating as it did in a different environment to what we have today. It nevertheless stayed around for decades. Later we had a business and professional women's club but that too faded away. Today we have various women's groups operating in our country in political organizations in churches in the agriculture sector and elsewhere. There was a time when International Women's Day was nationally celebrated with great fanfare with rallies, award ceremonies and social functions but no more. More and more women are rising to positions of leadership in both the public and private sectors breaking down barriers and achieving high levels of excellence. There are now more women in our parliament than ever before although still not enough. On the downside there are growing problems that have to be addressed.  We are reminded ever so often that incidents of domestic violence targeted at women are still widespread. Government departments charge you the responsibility of looking after women's affairs are unable to adequately cope with the workload because they are understaffed and underfinanced. A little over a year ago before the pandemic St. Lucia hosted an international forum. The aim of the organizations was to ensure that domestic laws and policies to combat violence against women have impact in the home, at work and in the community and are within the grasp of every woman no matter her race, ethnic origin, economic status or educational background. It is my understanding that there are initiatives being planned that involve the enactment of new legislation to remedy those ills and we wait for its enactment. I am acutely aware that at this time our women are being severely impacted by the negative consequences of the pandemic not only as a result of illness and maybe death of loved ones but equally by the loss of opportunity being experienced especially by those who are self-employed whose businesses are floundering or have closed. Others have been casualties of layoffs and there are the single mothers who are required to work and still supervise their children who are receiving virtual schooling. These are tough times but our women are facing but all this speaks to the need in our country for a vibrant women's organization or movement to continue to advocate to keep issues involving and impacting women on the front burner. It is also imperative that women remain focused and vigilant less the gains that we have fought hard for over so many years for justice, respect and equality begin to be eroded. Women everywhere want and should have a future free from stigma, stereotypes and violence. A future that's sustainable, peaceful with equal rights and opportunities for all. To achieve that agenda women need to be present wherever decisions are being made. We cannot be passive or show disinterest. In recent years women all over the world have been recording decisive victories against inequality and injustice. Four years ago the Me Too movement was started in the United States against experiences of harassment and sexual assault. It has now grown into a global phenomenon which continues to highlight unacceptable and inappropriate behavior and has led to many high-profile convictions. It shows that results can be had if we persevere relentlessly. So on this International Women's Day I challenge all the women of St. Lucia to take on the roles of leadership and begin to pull all resources and mobilize. Let this International Women's Day be a rallying cry to influence, encourage and inspire the positive and much needed changes that we want to see in our country. A happy International Women's Day to all.