Recruit training command in Great Lakes, Illinois, is where the transformation from civilian to sailor takes place. To help them through this process, the crew of USS Nimitz have been flown to the Midwest to sponsor Division 231. Yeah, Command-Mash Chief had known that I was an RDC before I came to Nimitz, and he'd wanted to sponsor Division. And I told him I'd be interested in helping out with that, and so that's what we did. Here we go, Division 221. My name is C. H. Nail. How are you guys doing? Good. Hey listen, 18 months ago I was right here with your Air Chief and your Bay Officer. I was up here at RTC. Our sponsors are great mentors, and we get to wear the t-shirts I gave us around and show everybody else that, you know, we're not just commissioned. We're sponsored by an actual aircraft carrier. The sponsorship program was put into place to motivate recruits as they go through the trials of boot camp. With the Nimitz at RTC, these young men and women will also get first-hand knowledge of the fleet. There aren't too many sponsored divisions on board RTC, so these recruits, knowing they're a sponsored division, especially from the USS Nimitz, you know, the first Nimitz class carrier the Navy has, they feel like they have a more sense of purpose than most other recruits in RTC. One recruit is tasked with leading her peers. I've given a few leadership positions before, but this has probably been the far most challenging position I've ever had to be in. This is just because everything relies on a step or a caller, a look that you make, and they could make a drastic change to everyone to the division. So it's definitely the most vigorous leadership role I've ever had. The commissioning ceremony makes the sponsorship official. After the ceremony, the first test of physical strength and endurance. Right now we're on one three-day of training. So today we have, for the schedule, they have their BFA baseline. That's where we get to see where they are currently, their physical fitness. And pretty much after we see this, we can kind of give them more advice on diets, their diet plan, and what they need to do to pass, pretty much. Most of them, for the most part, have not been pushed the way that the PT program there is going to push them. And me running beside them and motivating them and telling them that they can do it. Some people need that. Some people are self-motivators, others need people to be motivated. So I am there to motivate them. I hope I did a pretty good job at it. I don't know. I think I did. They were definitely good to have. They're very good motivators. For some of us we just, this is our first time actually being physically in there and having to work as hard as we did. They were definitely good motivators out there. We need people like that. Just that extra push sometimes. It gets you where you need to go. Having Nimitz as our sponsor has totally shot our motivation through the roof. We're excited and proud and I think we all walk a little bit taller. Everybody needs motivation and support. I think with the motivation and support of the U.S.S. Nimitz, I think our division will do great things. The adjustment to boot camp life is rough on some, making it harder to motivate the division in the beginning training phases.  So even if you blew out the test, remember the test that you took at P-Days? You know the one thing that I learned when I was on RDC there, everybody thinks that on RDC is this big screamer and yeller and as always in people's faces. There's time for that, but that's not everything. That doesn't work effectively on everybody. I could see from a distance that he needed to know that this is all new to him. You weren't on RDC.  You weren't told when to drink. You weren't told when to eat. So are there going to be mistakes? Yeah. Are you going to learn from them? You should. Just don't make the same mistakes. And that's what I was just trying to get him to understand, that one, he's in a new surrounding. There are going to be miscues. And two, that he's okay. He can recover from them. And it's not the end of the world. And I think that's what he was thinking. No, I'm not smart. Why would you think that? Because I screwed up today. Does that make you not a smart person? Ultimately, the recruit has to make his own determination where he wants to be. He's got to look himself in the mirror. And he's got to say, I want to be here. I'm going to fix this. And I'm going to do my best. There's a drill. This is a drill. Man over board. Man over board. Fourth side. Man in the ready-life boat. All hands to muster. The routes to muster. On the ship, the crew is back to a training environment to prepare to go back to sea. General Quarters Drills are the biggest form of shipboard integrated teamwork. Everyone must work together to keep the ship afloat. And casualties big and small around the ship. And steering the ship as he is doing here. We could take a torpedo hit of some sort or a missile hit and take out our steering control. And in that case, he would then do steering casualty, sound his alarm, do his proper procedures to send control of the ship. The steering control of the ship. Weeks later at Great Lakes, the teamwork that's been drilled into Division 231 will be crucial as they learn firefighting skills. I think with anyone when you get a bunch of people together and they are of all different races, cultures, you get the mentality of I know what's right and you know what's right. When they all come to boot camp, they have to realize that they're all starting out the same. They're new to the military. Everything in the military is completely different than anything they've done in their civilian lives. So getting them to work together as a team, it was the biggest hurdle that we thought we were going to face in the beginning. But now that we're in this phase of training, it's like they're brothers and sisters. They just, they know how to work well together. Having the sponsors there at the end is even better. Getting, letting them see what we do and what we go through. Firefighting, training overall, getting action used to gear, being put in those pressure situations. We don't get the activity done and we don't do it to the level of expectations that they expect. They're going to have to report a negative review to the units and I know as a division we didn't want any negative reviews coming to our sponsors. So having that as a motivator was big for us. The recruits have marched everywhere together for just over a month. Today, a drill inspection will put them in the spotlight. My division, I am the recruit leading petty officer. I pretty much assist that our part can get into the division straight. The precision required for the marching had to be a hundred percent. That could be number six. We're synchronized. Even our inspector from the drill, she says she's never seen anything like that before. So it just shows us that we're really motivated and ready to join the fleet. And a pop chart. That was the deal. Five-oh for a pop chart, petty officer. Dave, was that midway? While the recruits are out, the Nimitz sailors walk the living area, remembering the days they stayed in these halls. They're about half the size of this compartment, with a lot more racks, should I say, a little less room. We also had stand-up lockers. We didn't have these coffin racks as these shipmates have now. I mean, it's a great improvement. We want to be realistic as we can and show shipmates what the Navy is going to be like and what they can expect. It's funny, because I came in and I got in there and I was getting my uniforms. And the first thing I said, it said, state penitentiary. And I looked at it and I said, it was that's right. They're going to the penitentiary. The only thing different, you guys got names, they got numbers. They said, get your stuff together. You just throw it, get out of the line. I opened it. That was in 1986. It's June 17, 1986. And yeah, so I haven't been back here since 25 years. Today is the division's last day to pass the fitness exam. Senior Chief Peebles has recovered from his injury from Mount St. Helens and is ready to run with and motivate the division. My body's restored again, feel a little bit better. I see hot down the first couple of days and I couldn't really walk, to be honest with you. It was like if I was going squatting for a month, that's what it felt like. So that's done and over with, I feel great.  So it was the greatest joy of my life, the greatest experience.  So for me, I'm still motivated. I'll do it again. The recruits are pumped and ready to show their sponsors how much they've improved. This is their final PFA today, so today we're just here to motivate them to get them fired up. One represent the Nimitz and they're representing the Nimitz because they're carrying the Nimitz name on them, which is the most incredible thing I've ever seen. I see a lot of ships' flags and everything, but they have the Nimitz flag and they had the homemade Nimitz flag they made. And with that, to me, this is my only carrier and it means a lot to me to run alongside of them and they got a chant, they're making it for the Nimitz. I mean, this is incredible. So I'm super motivated, so I want to motivate them and let them know that the chief's care, the Nimitz cares, we're all crew members and they're part of our crew too, so I really want to be able to give that back to them and motivate them and help them pass because there's a small percentage, about 32, that are having some difficulty. One such recruit is Seaman Recruit Padgett, who is recovering from a leg injury. I had a stress fracture and I kept having to miss things here and there because of all the doctor's appointments and I nearly got set back twice, but luckily my progression of healing has been just in time. I literally got fit for full the day before our final PFA, which if I had missed final PFA, I'd been set back. I was able to run and I hadn't run at all in nearly a month, but Senior Chief, actually he ran with me for my last lap. Had I not run with him, I would have barely missed my PFA time, so I had made it just in time thanks to him. After the final PFA, the division must overcome one last obstacle before graduation, battle stations. It was like a day or two before we went to war on this bike that I got on crutches, so I was so sad. So this is like almost as exciting as graduation. The hands-on, the real ship environment and whatnot, so very exciting. As the recruits come closer to the end of boot camp, MM1 Hinton comes closer to his retirement. He has chosen to retire on a museum ship from World War II. I am Senior Chief Rex. Welcome to the official retirement ceremony, honoring first-class machines mate Jonathan J. Hinton. As departmental career counselor, he mentored over 370 sailors, resulting in over $2.8 million. One of his guests and friends, petty officer Jackson, has flown all the way back from Japan to see him off. Well, the reason why is because about six months ago, I promised my old LPO, J, that I would come back rather for his chief pinning. If he got pinned, if not, then I would be part of his retirement ceremony. And when I made that promise months before I went to Japan, I was like, I have to do it. I have to do it for him because he meant that much to me, so that's the reason why I'm back. I have the love of my family that has stood by my side through so many trying times. I have made friendships that last for the rest of my life. One such friend flew all the way from Japan just to be here to see me. I don't know what I've done to earn such respect. We worked together in training department on board USS Nimitz. He was the LPO when I first came in and I was bad. I was new in the Navy and I had a bad attitude and everything. He took care of me a lot. He fought for me when other people were trying to do me wrong. He meant so much to me. He took me home to meet his family and they fed me. I became like their dark step child in a way. And I fell in love with the whole family. Retired, departing. After MM1 retires, Jackson will return to Japan where the Navy has been helping them recover after the tsunami disaster. They're doing a lot better in Japan.  Life is still going on. Things are still happening. Changes are being made. And it's still peaceful there. Even though what had happened, they're still going on. One way Jackson has helped is through community relations projects, much like the ones she participated in during her time aboard Nimitz. I do a lot of volunteering as I did when I was on board the Nimitz. I still do volunteer help out the homeless. I help out the orphanage kids. That's one of my biggest things I love to do out there. And I try to attribute as much as I can of myself to Japan. As sailors leave the Navy and the command, new sailors come to take their place. Airman Padgett from Division 231 has just received orders to the Nimitz. After I graduated boot camp, I went to TSC Great Lakes right across the train tracks from boot camp. I went there for IC school. And I was there for a few months when I found out that I could go undesignated. From there I got to choose whether I wanted to go undesignated air or undesignated seaman. So I chose air and I got orders to the USS Nimitz. I was a little disappointed that I barely missed dry dock. I got here just after the ship went to wet dock and getting ready to get back out, get back out there. I've actually throughout my schools and since I've gotten out of boot camp I've been following the dry dock process on YouTube. It's been really exciting to get here and it actually almost feels like home before I got here because I'd already been so familiar with it. Now I'm working with the Wastecats. They run the catapults on the waste side of the ship. Right here. This is where you start off. Check it off from here. My work center involves the combination of maintenance inside the ship as on the catapults as well as on the flight deck. Launching the planes and making sure that the catapults work well. I actually requested the Wastecats because I saw ABAN Dunn up on the board. She was one of my good friends from boot camp. She was pretty cool. Two more of my division shipmates will get to come with us because they're in the squadron. One is Undez Air like me and the other is a CS3 Cookham attached to the squadron. So she'll be attached to the ship when we deploy. Looking forward to going on to sea. The long awaited day has finally arrived. The crew mans the rails for the first time in more than a year. This is the end of dry dock and the end of Captain Monger's time as commanding officer. I joined the ship just in time to go on deployment. I did the turnover for the first three weeks or so of deployment and it took over when we were in port in Yokosuka, Japan. It was an interesting way of doing it because it was sort of a no training wheels.  It actually worked out quite well because we were right into going over to the Gulf to actually operate and do what we were supposed to do. Our six month deployment turned into eight so I got plenty of time deployed and underway which was fantastic. But that was a really good part. Being at sea, operating, being deployed, being out doing what we were supposed to be doing. And that's what everybody really likes to do and that's what the crew now is anxious to get out and do again. It feels good to leave Bermerton. I've never known anything besides being in dry dock or on dry land and finally back away from the pier like that and feel the roll of the ship underneath my feet. It's pretty intense. I've never had that before. I think it's just going to help the crew have a lot more options to do different things, to experience Washington a lot better. Instead of being here in pretty much an industrial town in Bermerton, you can get over every side and be able to go out and do a lot more things out in town and up in Whitby Island, maybe down to Mount Rainier to experience a lot more Washington atmosphere. A little rain this morning, the weather cleared up and it could not be a more perfect day to actually get out and be getting back on the way.  I mean you cannot pick a better day to be getting on the way right now. The crew is ready. After a year their ship is finally seaworthy. It's been about 14 months now here in Bermerton at Puget Sound Naval Shipyard and it has been a tremendous experience from, I think, the whole picture of how the ship has transformed and changed and what we've been able to do with the crew. I think the really couple of things that kind of stand out in your mind are being able to go underneath a 90,000 ton ship and stand underneath it with nothing but wooden blocks holding it up. It's pretty cool. Our 36th birthday ceremony, we had a big sign on the side of the ship down there about the commissioning and then we allowed all the crew and the shipyard workers to come in and sign their name on the side of the ship. And I thought that was kind of a neat deal for folks to be a part of history. The other thing I thought was pretty neat was watching them take the propellers off. The level of technology that goes into doing that kind of work is pretty significant. So those and the rudders, I think it's pretty amazing. We've gone through, I think, a complete transformation on the ship that has been spearheaded by our Puget Sound Naval Shipyard team here. But the ship also did a tremendous amount of work. Overall, there was over 700,000 mandays in this entire availability and the ship was responsible for over 150,000 of those, which is a tremendous amount of effort. And I think about what they did in addition to the normal duties that our sailors have. So it wasn't just that they were working here to renovate, to rehab, to paint, to update the ship. It was also that they were studying for exams, they were studying for their work for specialties. We had people out deploying elsewhere with other ships to gain proficiency and qualifications. So they were doing all those things in addition to the work that they had to do here. The overall mission here was to make the ship more capable, more lethal than it was when we got here. Because the ship, at almost 37 years old now, obviously was not built with the technology that the rest of the world has today. It's changed dramatically and we need to keep up with that. Our new home port will be Ever Washington. It's not very far from here. Nimitz has been tasked to go and take the spot of Lincoln there and be the home ported carrier never at Washington. So we're in the process of moving people over there. We give our folks opportunities here and there as we can. It has been difficult to say the least because we moved up here from San Diego and now we're moving over there. So changing home ports like that and having everybody move multiple times in the course of 14 months is a dramatic stressor. So it'll be a little bit different for the crew, but I think it's going to be a good move. Everybody that's moved over there seems to like it and enjoy being over there. And I think once we get the rest of the crew over there, I think they'll like it as well.


Germany to send modern fighting vehicles to Ukraine. Germany will send Ukraine the first batch of modern infantry fighting vehicles, ramping up military support for Kiev in the face of Russian aggression. The federal government announced its decision on Thursday following a phone call between U.S. President Joe Biden and German Chancellor Olaf Scholz. The two leaders reiterated their unwavering solidarity with Ukraine and the Ukrainian people in the face of unleashed aggression by the Russian Federation, the government stated. Modern fighting vehicles will be delivered to Ukraine in the first quarter of 2023. Germany will also supply a Patriot air defense battery to Ukraine. For its part, the United States will provide Ukraine with a Bradley-top infantry fighting vehicle.


This study found that there was no significant difference in the incidence of postoperative pulmonary complications, PPCs, between patients who received sugemaidex or neostigmine as reversal agents during video-assisted thoracoscopic surgery, that's lobectomy. Additionally, neither agent had any effect on the length of hospital stay or intensive care unit, ICU, admission. This article was authored by Taeyun Lee, Songyup Jong, Junho Jong, and others.


Okay, keep going I want you to punch as fast as you can for 10 seconds 10 9 8 7 6 5 4 3 2 1 good good take a break shake your arms relax shake your feet flex your wrists Shake it off


I vs Blackpink, which release was better? Well I'm here to tell you which one I, you hear that? I think is better. And it'll be done in these categories. Catches, lyrics, and flow, vocals in the hands. Now the reason why I chose these categories is because they are what I care about when it comes to listening to music. In each category there'll be a scoring of 10 points. And then after I'm finished I'll be turning all of those scores into a percentage of 100. And that'll be the final rating that I give the songs. Now I love both groups. Blackpink is my favorite girl group. I've been loving their music since their debut. But that's also the same with Ive. I have been loving their music since they debuted, but they don't have as many songs as Blackpink. So I have more enjoyment with Blackpink and I love them so much, but Ive is like slowly getting up there. So if you think I hate any of the groups in this, then one, you are wrong because I absolutely love them. I'm planning on going to Blackpink's concert in Auckland for their world tour. I want to do that. So let's start with the catches. Pink Venom, after like. Which catchiness is better? Well, after likes. Eyes after like is 100% catchy for me. And that's because it's catchy from the start to the end. Blackpink is legit only catchy during the chorus and for the cult challenge at the start. The rest of Pink Venom is not that catchy. But it's suspense. The suspense of Pink Venom is real. But this is about catchiness. And when that soft drop happens and catches you off guard, you're like, yeah, okay, I see. This, that Pink Venom, this, that Pink Venom. But then for the rest of the song, there is no catchiness for me. I want a catchiness that gets you involved with the song more often. And I believe after like is a great example of it. The moment after like starts, you are in a catchy trance because of instantly wanting to be involved with the godsend of a disco beat they have. Oh, the nanananana parts. You hear throughout the song is just another factor of wanting to be involved. But that's an ad lib and we'll get to that for the ad lib part. But whenever I hear the nanananana, I see myself lip syncing or singing to it. The chorus for after like pulls you in and you just want to sing the chorus after your first listen. My first time reaction to both of these songs is available for you on Patreon right now for just one New Zealand dollar. If you want to watch my reaction and support me to become full-time to achieve my dream, then I would really appreciate it. And there's quite a few videos up on Patreon for you, so you'll have a fun time. But yeah, for catchiness, Pink Venom gets a 4 out of 10 and after like gets an 8 out of 10. But this is the weird thing. When I'm not listening to the song, I can only remember Blackpink's catchy chorus. I legitimately can't remember Ives at all. It's just when I'm listening to the song, it is so catchy and captivating. But since I can remember Blackpink's chorus that is real catchy, then I'm gonna actually bump it up to a 6 out of 10. And that's because the catchiness has a memorable factor. Lyrics. Well, for one of the songs, I had no idea what the lyrics were and then for the other, I was able to understand the lyrics. Which is weird. It caught me off guard. I'm not used to having K-pop songs have lyrics that make sense. Usually it's sentences pulled out of a hat and they just throw it into the song. I'm not joking. That's what it's like a high majority of the time. See? I know, they just try to sound cool. They just try to sound cool. But yes, after like has lyrics that I could easily understand, which is about what comes after liking someone. Love. And they're being confident in telling the person that they love, that they love them and want to move away from liking each other to being in love with each other, which is just so sweet. I love love songs.  So like, yeah. Just listen to this. Twice, twice, don't ask me again. You know what my strength is? It's that I'm honest. Don't try to doubt what I just said. It's beyond like, once after like. You and I. But then Pink Venom is kind of a flake song. There's no story at all. Just flexing. Well, they are expressing their confidence and dual identity as both sweet and deadly. But like, I don't know what else to talk about. It's just kind of bland. But hype. Just listen to this. Just fly in private, side by side, with the pilot up in the sky. And I'm wild and styled in on them and there's no chance because we got bodies on bodies like this is a slow dance. It's cool as fuck, but I want stories. Just a flake's drop. I have been going through character development recently. I've been loving songs. Since I got into Japanese music, I have been loving songs that have stories in it and it is so good. That's why I'm loving the Japanese music scene because like you get stories within their songs not just lyrics put together. After like nine out of 10, Pink Venom three out of 10. I just need that story, bro. Overall flow.  It feels like there could be three songs made out of this one song and it does not work well for me. Why? After the first chorus, we get into a disoriented blend of rap and I was just like, whoa, there's just so much happening in the song. It's just super jagged. Don't get me wrong, the rapping was still awesome. It's just so confusing how they just keep changing it up in the song.  But as it is blended together, then nah, too much. But everything in After Like blends together like when you were making your favorite smoothie. The bridge to the chorus, the rapping that randomly appears but feels natural. Just everything flows so naturally about the song and you get that delicious smoothie, man. No speed bumps, just a nice consistent drive. After like eight out of 10, Pink Venom three out of 10.  I swear vocals. Vocals help portray your emotions and that's what we got for both songs. Yeah, there was some noticeable auto tune in After Like but that suits it. We got to remember what type of song it is, a retro disco song. Plus the members of IVE managed to show the emotions and curiosity when they sing what's after like. But then we hear their certainty and their voices saying what they want after liking each other, which is love. We're in Pink Venom. We get them all vocals, baby. There could be a little auto tune, but I don't notice it. But since the song is hip-hop where we get them hard-hitting beats, we get them hard-hitting vocals. Each member exudes their confidence from their voices and we feel it, which is fantastic. The amazing rapping, amazing singing, amazing strength from their voices. Black Pink will never disappoint me with their singing. I can hear their voices 24-7. Pink Venom, 9 out of 10. After Like, 8 out of 10. Adlibs. Now, why do I have adlibs? Wow, they're integral to me.  There's no member having any impact with their verses. It just feels like this is your part, it's yours, so just do it. It weirdly doesn't feel like they are grouped by not mixing in a lot. The lack of adlibs just makes the song a little bit dull, which is weird because it is a hard-hitting song, but it's just missing the adlibs. I feel like adlibs for this song would be fire. It would give that extra hype and extra life to the song and it could even make it flow even better, but it just sucks that there's almost zero adlibs in Pink Venom. Whereas in After Like, we get the flow from the adlibs, we get the extra life put into the song, we get the mixing of the members, it just makes the song that much better. But don't get me wrong, there's not a boatload of adlibs in After Like, but the ones we do get just give the song more life and it makes the members mix well together.  Pink Venom, one out of 10. After Like, seven out of 10. Okay, so now let's make the total scores. 22 out of 50 for Pink Venom and 40 out of 50 for After Like. Oh, this hurts my soul. Okay, okay, what's the percentage out of 100? Total scores times two, hashtag quick math. 44% for Pink Venom and 80% for After Like. After Like by Ive has won this fight of five rounds. Now I would love to hear your thoughts on these songs. What is your score? It's always amazing seeing other people's opinions on music and I would just love to hear it. This is also a new type of video that I have made, so it is pretty big and I'm sorry about the lack of editing that there will be for this video, so I am sorry. But let me know if you want more of this, like what groups do you want me to compare next for future releases and also I'm gonna be doing a big K-pop video for the end of summer in Korea, so stay tuned for that. And yeah, other than that, hopefully you all have a great day.  And yeah, other than that, peace.


Hi, and welcome to the talk Container Lab, a modern way to deploy network entomologies for labs, CI, and testing. My name is Roman. I'm a systems engineer with NoCab, where I primarily work on network automation with model-driven angle. I do love open source communities and try to contribute to them as much as possible. If you want to talk to me, you can look me up on LinkedIn or ping me on Twitter. My Twitter handle is NTDVPS. So let's talk about labs. They are not anymore a nice to have feature. They are really a necessity each networking team should have. It might be that the labs are the only way to tell that things work as they should or they don't as they shouldn't. So being able to run those labs with virtual networking topologies is really important. Let's recap. What options do we currently have to run those labs? What advantages do they have and maybe identify some disadvantages as well? Of course, it makes sense to start with the elephant in the room, the network emulation software that has been specifically built to answer the need to run networking labs. Projects like EvenG and GNS3 are the prime examples here. They are proven. We've been running them in the labs for years. We know how they work. They are free and available to download for everybody. Although some premium features of EvenG might require some extra bucks. They have a nice UI, so you can really create a topology by drag and dropping nodes on the pane and interconnecting links with your mouse. So that is really nice to have. On the flip side though, these projects, they are really VM centered. That means they have weak container support. And I will talk later about why I think container support is really important for the network emulation of today and tomorrow. They are also quite heavy and not fully open. So if we need to install EvenG or GNS3, we need to allocate a server or a bare metal machine and we need to keep it allocated for as long as we need to run the labs. So we can not really deploy and destroy the labs on demand with the resources dynamically allocated. The nice UI that these tools have can also be seen as a disadvantage even. For example, if you want to generate your topology, then you would need to have a text file that defines the topology. Or if you want to push your topology to the Git repository, then as well the UI might stand in your way. What else do we have? We have a cluster of projects which are basically VM orchestrators, projects like OpenStack for example. They are very common in medium and large enterprises. They use to run VMs, right? And it is quite tempting to reuse those orchestrators to run networking labs. But there are the problems coming. To use those projects as the network emulation software, it requires quite a lot of integration effort. You need to know how to work with the primitives that these projects expose. They of course are still VM-centric because they are VM orchestrators, right? Sometimes it might be even challenging to have a clean data path. For example, if your network topology uses Linux bridges in the data path, it is really probably even impossible to have LACP frames flowing or even have some simple things like LLDP. These projects, they do not have a specific UI nor specific CLI that can deploy labs or networking primitives for you. They do have UI and CLI for the generic purposes, like work with the snapshots with images, deploy instances, et cetera. But those UI and CLIs, they are not specifically built to run network topologies. And of course, we can have some custom automation solutions. Those bespoke scripts of thousands of lines of bash that can trigger or deploy Libvert VMs or create containers, they can really answer the needs that you have. They can be a silver bullet. The only problem is that they only tailor it for you. So being able to reuse those scripts in the customer's environment or in the partner's environment or even in the different department's environment might be really challenging. As you see, I mentioned weak containers support as a downside for both network emulation software and VM orchestrators. Let me explain why moving from VMs to containers can bring some substantial benefits to the networking labs. First of all, by making containers the first class citizens of our networking labs, we welcome all the containerized network operating systems, such as Nokia, Azure Linux, AristaCOS, Juniper, CRPD, and others. Next to that, by using containers, we are inherently going light and fast. Containers are typically lighter than VMs. So we can have a pure topology which will consume less resources and will be very fast to deploy. Also, by using containers, we are bridging the gap between IT workloads and networking topologies because we can leverage the same familiar features of containers such as bin mounts, port exposure, environment variables, and so on. When your lab is defined in a declarative fashion in a text file, it makes it really Git-friendly. You can push it to a Git repository and use all the familiar Git features such as collaboration, PR reviews, versioning, and so on. Using the Git for storing your networking lab topologies, again, bridging the gap between the normal IT workloads and the networking labs. One of my most loved features of using containers for network topologies is the new way we work with network operating images. So before we used to work with QCOW images and deploy VMs out of it and we needed to upload these images to Dropbox or OneDrive or FTP to share it with somebody. Now when using containers, we're inherently using container images and container images are pushed to container registers. So now you can version your images and push it to container registry and everybody else can pull it if they have the certain rights and authorization. And by running networking labs as the containers, you make it really easy to integrate those topologies in your CI CD pipelines. Really, it is just a bunch of containers and links between them. So you deploy them pretty much as any IT workload that you have in your CI CD pipelines. It is fast to deploy, it is lightweight, and thus it is really easy to integrate network topologies to CI CD pipelines that you might have. And that is where our container lab comes into picture. It tries to bring all the benefits that we just briefly discussed and provide a CLI for setting networking labs with container-based nodes. It can be used to deploy complex topologies like you see on the left-hand side or it can also be used to create some small topologies that you need for your ad hoc testing or dev integrations or similar. Now, we have a container lab documentation site that you see below on this slide that probably will answer all the questions that you might have around this project. It's quite a comprehensive documentation portal, so please do check this out. And although we invested a lot in the documentation, I really believe that learning by doing is the best way forward. So I'd like to bring you on a journey where we will first install container lab, then we will get to know what is the topology definition syntax that container lab uses to deploy and define the labs. We then, of course, will deploy the lab and manage it. Then we will see how to access and configure the nodes that will be part of our lab. We will talk about the configuration persistency because it's quite important to understand how to work with configuration, how to save it, how to retrieve it and how to make your nodes start with a predefined configuration. And the last step would be to package our lab and push it to a Git repository. The lab that I chose for this demo is a three-node lab topology that demonstrates a router reflection use case. We have three BGP speakers here. The GoBGP Linux container will inject a route <IP_ADDRESS> towards the containerized network operating system, Arista-COS. Arista will act as a router reflector and will reflect this route towards another containerized network operating system, Nokia Astrolenex. Astrolenex will successfully receive this route in its routing table and we would like to verify that. You can see the addressing information and the timeline of this lab on the left-hand side. Installing container lab is super easy. All you need to do is type this one command highlighted in blue and container lab binary will get installed on your operating system. We do support three major operating systems such as Linux, Windows with VSL2 support and Mac OS. For other installation options you can check the documentation side where we outline all the other options available. The only thing you need to have on your system is the Docker installed. The rest is packaged into the binary of container lab itself. So let's install container lab on our system. First we go to the container lab documentation side where we navigate to the installation section to get the installation command. We choose the auto installation script and we go to our system, we paste it here, we type enter and in three seconds we have our container lab already installed. It is really as easy as that. With installation step out of the way we can see how container lab really works. It all starts with writing a topology definition file. The topology file contains your links, nodes and some parameters that your lab needs to have. Container lab then takes this file and deploys the real nodes and wires the links between them. Let's starting this topology definition file. We will create a file named rr.clab.yaml where rr stands for out reflection and this file is written with YAML syntax. So we will follow the basic YAML rules. First we need to give our lab a name and that would be rr. Then we will have to define the topology container which will have a nodes subcontainer and the nodes subcontainer will host all the nodes that we will need to deploy in our lab. Now, if you remember we'll have three nodes and I will start just with the first one with Nokia Astrolinux node. So each node must have a name and that is basically an arbitrary string that you give to your node to distinct it from other nodes. The mandatory parameter for every node is its kind. Kind basically tells container lab what node this is. Is it an Astrolinux container? Is it CUS container? Is it a basic Linux container? You provide this information with kind. And of course, since we are working with containers we need to specify the container image that this node will use to start. The image is really the same string parameter that you would use in Docker run command or in the Kubernetes bot specification. Now that we know how to define a single node let's take a step further and define all the three nodes that our lab must have. As you see on the left hand side, we defined three nodes, the Astrolinux that one we defined on the step before then we added CUS node which is the Arista CUS container and we also added our GoBGP node. Notice how CUS, GoBGP and Astrolinux nodes all have different kinds because these are three distinctive containers with three different rules to start them hence the different kinds they all use. Of course, they use different images and that is also reflected here. Now our logical view at this moment represents three nodes deployed but there are no links whatsoever. To interconnect the nodes of your lab you need to work with links. We need to specify a links section in the topology file which consists of list of endpoints. The endpoints element in its turn defines the beginning of the link and the end of the link. So putting things into the context if we need to connect Astrolinux interface E11 to CUS interface ETH2 we will need to create the endpoint that says my first end is Astrolinux E11 and my remote end is CUS ETH1. Same goes for another link in our topology between CUS interface ETH2 and GoBGP interface ETH1. The cool part about ContainerLab is that those 17 lines that we defined here is everything we need to start the lab. So to deploy a lab there is a command ContainerLabDeploy where you supply the topology file that you created and then ContainerLab will immediately get to the deployment process and it will show you the summary table once it's finished. But instead of looking at the slides let's really go and look at this live. So I have created the once 2021 directory where I have my topology file rr.clab.yaml. So if we'll look at that file we will see that it basically the same I just copy pasted it from the slide, right? It's exactly the same content. We have three nodes, we have two links and that's all we need. One important thing here that I would like to articulate specifically is that those images they need to be available to ContainerLab in order to deploy the labs. So how do you get those images, right? For Nokia Astrolenex it's really easy. You can pull the image directly from the public GitHub Container Registry without any registration or licensing agreements. With Aristoseus it's a bit different because you still need to have an account with Aristocyte but you can pull the archive from this site freely. Then you can load this archive as a Docker image and you are done. GoBGP Container is really just a basic Linux container with GoBGP installed, hence the kind Linux here. I wanted to show you that I have the images already pre-pulled. So I have Nokia Astrolenex container pulled from the public GitHub Container Registry. I have downloaded CUS Tower Archive and loaded it as a container image but I do not have GoBGP container, for example. The reason is that I wanted to show you that ContainerLab can pull the images on the fly when you start to deploy the lab. So let's try and deploy this lab. I will use ContainerLab deploy dash t and will specify the bottom of my topology file and I hit enter. So see right now ContainerLab actually pulling the network multi-tool container image and since it's in the GitHub Container Registry it can do that because my Linux machine has access to internet. A few seconds later once all the images are pulled or present in the local image store ContainerLab proceeds with creating the containers and creating the wires between them. Now the last step is to actually wait until AristosUS node render online and ContainerLab will configure the management address for this particular image. Okay, 40 seconds later since the deployment started ContainerLab shows us the summary table. In the summary table we see that we have three containers or lab nodes created. The name consists of three elements, the prefix CLAB, the lab name RR and the node name. All these parts except for the prefix are coming from the topology. We named our lab RR and we named CUS node SCOS. We have the container ID, we have the images that we used to spin up these containers. We see the kinds but most importantly we have the IP addresses that were assigned to the management interfaces of those containers and this brings me to my next section which is how do we actually get access to those nodes? There are two ways to get access to the nodes. First you can execute the process inside the container. Typically you would do this with Docker exec command. For example, to execute the SR CLI process which is a CLI application inside the SR Linux container you can do Docker exec dash IT, the name of the container and then the name of the process but we also can connect to the SSH server that runs inside the containers because these containers are really a networking operating systems. They do run SSH servers inside them. So we can use the SSH client and connect to those nodes immediately. We can use the container name such as CLAP or RR COS or we can use the address that comes from the summary table that container lab shows us at the end of the deployment process. Let's now connect to the SSH inside the SR Linux container. I will use SSH admin which is the default username for SR Linux container and I will copy paste the node name here. As it says that, I get access to SR Linux CLI. So I can now configure the node and save its configuration for feature use. To connect to the RR COS, I can use the other trick. I can use the exact process. So if I use Docker exact dash IT, I will copy paste the name of the container and I will call the CLI application which is the CLI process inside RISD-CUS. And just like that, I get access to the CS CLI. Let's talk about how we can configure nodes once the lab is deployed. We already saw that we can get access to the CLI of the nodes and that is probably the most obvious and simple way to configure something on the networking operating systems. But apart from the CLI, we also try to enable all the programmatic interfaces on the nodes that container lab support such as GNMI, NetCon, et cetera. So you will be able to use those interfaces if you deploy them with container lab. We can also use something that is coming from the Dockerland configuration mount. We can mount the files from the host to container and if the operating system expects to see the configuration file by a certain path, we can use those bind mounts and that will make network operating system to read these configurations. We also can work, of course, with third-party configuration management tools such as Scraply, Ansible, NardNear, et cetera. Because your nodes are really accessible to the host, you can use those tools without any issues. And soon we'll have an embedded configuration engine inside container lab. So you will be able to generate configuration for many nodes that container lab support using the variables that you will define as part of your topology. All right, now when we have our lab deployed, we can go and jump right away into the configuration of the BGP and router reflection. But before we do that, it's really handy to refresh ourselves which nodes do we actually have in our lab. And to do that, you can use the container lab inspect command. When it is provided with all flag, it will list all the labs that are currently deployed. So we have just one lab which consists of these three nodes. I will start with configuring CUS first. I will copy paste its name. I will SSH into it. And I will just paste the config that I have. So these configurations basically are configuring the link IP addresses and configures the BGP. Now I save this configuration and I will proceed with Azure Linux config. Same way I SSH into it. And I will copy paste the prepared config for Azure Linux. I will save this configuration. And what I would like to do now, I would like to test if my BGP peering between Azure Linux and CUS is up and running. So for that, I will install a watch on the show command, network instance, default protocols, PGP. There is a single neighbor that I have that is the link IP of the CUS. I want to see if I get any IPv4 routes. So right now you see that the Azure Linux reports that it has no routes received from the CUS neighbor. All of the neighbors up and running would just happen to not have any routes. Okay, so now it's time to configure the code BGP. That's our injector of the route in the route reflection topology. So to connect to the code BGP, I can also use the container name, but now the BGP container doesn't have any SSH server running. So what I will do is that I will leverage the execution of the process inside the container. I will paste the name here and I will just execute the bash shell. Now when we are in the bash shell, we can start working with code BGP and actually inject the route. Again, I will copy paste the code BGP configuration here in just a second. So as you see, code BGP configuration is a bit more involved because you need to create the code BGP YAML file that code BGP will use to actually configure itself. And then we will create the announcement by adding the address with certain attributes that I chose to use here. So if we save this command and we execute it now, we will see that in five seconds, code BGP will start to announce a route. Now, if I switch back to Azure Linux, you do see that the watch reported that we now have a single route received from the CUS. So just like that, we deployed a lab of three nodes really fast. It doesn't really consume much resources at all compared to the VMs. And we configured the use case for route reflection demo. But it is a bit too involved. We adapt quite a lot of commands on the CLI. Can we do this in a more like declarative form where we would have to specify the resulting configurations and the nodes would pick it up? And yes, we can do that. ContainerLab actually has a state directory where it keeps all the state information for the nodes of a certain lab. This state directory is called lab directory and it is named C lab dash lab name. So for the case of the route reflection lab, ContainerLab creates a lab called C lab dash rr. So in this lab, we will have the state that is kept for the nodes of this lab. And we can use this lab directory to get the resulting conflicts out. But before we can do that, we can also actually save the running configuration to the startup configuration. For that, we created ContainerLab save command which executes an appropriate command for every supported operating system which will save the running configuration to the startup file. And we can get the startup file from the lab directory. Let me show you how it works. So if we go to our container host, I need to switch to the directory, ContainerLab save dash t, and then our topology. Now ContainerLab will perform the save configuration both for the CUS and SR Linux because it knows how to do that. And now, if I go to the lab directory, which is C lab dot rr, I will have two subdirectories for CUS and SR Linux. So if I drill to the CUS directory, there is a flash directory created by CUS and then there is a startup config file. So if you see that actually the startup configuration or the oristic configuration of this node, and it also already has all the configuration that we provided through the CLI such as BGP and link addresses for the interface addresses. So now what we can do, we can actually take those files and save them to our directory. With one purpose, we want to use these files as a startup configuration next time we deploy a lab. So once we know how to save the configuration and it's extracted from the lab directory, what we can actually do is that we can modify our topology file and specify that we would like our nodes to start with some certain startup configuration. So using the startup config parameter for the node, we can specify the file that is present on our container host that will be used by container lab to deploy a node with a certain startup configuration. For the go BGP node, which is a Linux kind, we can not use that, but we can use the binds instruction and we can say that the shell script that we have on our container host, we would like to be mounted to the container namespace and then container will be able to use that script. Now, what does it give us? It actually creates a topology file that has all the things already embedded in it. And that's one of the very nice benefits of using startup configuration within container lab topology. Now anyone who will pull this lab will have those files as part of the repository will be able to deploy the lab with all the configuration already done and they will be able to demonstrate this use case or test it in CI without really doing any configuration over the CLI. And that is exactly what I did here. I created a repository on GitHub, which is named once 2021. So this repository, as you see, it contains all the files that we've previously extracted from the running nodes and it explains how to deploy the lab, how to execute the use case and how to verify the operations. Now you can pull this repository and with just two commands you can perform the full use case. That is really valuable and answers the infrastructure's code claim. So far we have been working with containerized network operating systems in our previous lab. But container lab supports not only containerized systems but also the traditional VM based network OSS. Currently we count nine different vendors and 15 different network operating systems that container lab supports. And the split between containerized and VM based network operating systems is currently at 60-40 ratio. This slide shows which vendors and their corresponding kinds are supported by Contain Lab. As you see here, we make a distinction between the containerized network operating system and the traditional VM based ones. To help you get started with your favorite network operating system, you can go to container lab documentation site and choose the lab examples section. In this section, you will find the lab examples for each operating system that we support. So now if we put together the traditional software projects for lab emulation and container lab head to head, we can see what are the differences between them. So container lab focuses on the, using your labs as a code and working with them as you would work with the code. It allows you to create your labs and push them to Git repositories and then unlock all the features of collaboration that Git offers. It also can enable repeatable labs because you now work with containerized images and your lab is actually an artifact that you can store somewhere. It has a very small footprint and light and fast to deploy, which also play quite an important role in your CI CD pipelines. At the same time, it has fewer support for some network operating systems. We do support the major ones, but we are not trying to get every other network operating system to container lab, although we are open to external contributions. And probably one of the most important distinctive features is that container lab is UI less. We do not have any UI because we think the way you should work with container lab labs is by using the textual files and basically work with it as you would work with the code. Okay, so if container lab sounds interesting and you feel like you can use it in your environment, I think the first step for you would be to explore container lab.acilinux.dev documentation site because it has a lot to offer. There are much more things in container lab that I didn't cover here. So you can try to create a lab with a network operating system of your choice and see how it plays out. If there is any missing feature or you have a nice idea, please do go to GitHub issues or discussions and we can talk to you there. If you want to have a more real-time communication, we have a Discord server for container lab specifically, so do go and join it. And if container lab will prove to be useful to you, you can always thank us by starring the repository on GitHub. With that, I thank you for listening and see you next time.