Transcript for:
DevOps Project with AWS CodePipeline

hi everyone welcome to today's live I am so excited to be doing another devops project with all of you and today we are going to be talking about code pipeline I am super super excited it's so cool to see that we already have 15 people doing this project together um please comment in the chat your name where you're based um whether you've already done a devil's project before or whether you're starting fresh um this is all super exciting to me and I can't wait to get started so I'm G to share my screen as usual and let us dive straight into it alrighty so as always on the left hand side of my screen you are seeing my AWS Management console I've already logged in so you haven't logged in already let's log in right now on the right hand side of my stream screen here is the nexer community so if you are not part of the NEX Community yet come join us the link is in the description if you already have are part of the mix Community welcome it is very good to have you um and how you can find access to this project is by clicking on all AWS projects you know on the left hand side on the left hand bar and you can find the project by scrolling down just a little bit more and you can find Cloud develops cicd with code pipeline posted one minute ago so this is straight hot off the press this project today isn't it um let's start this project by clicking right over here start your project here and you will see a beautiful project app ready for you um now this project cicd with code pipeline is part seven of our devop series of projects and it is planned to be the very final piece of this cicd pipeline puzzle um but we'll see if in the future we get to add a few more features into this series for now know that if you've made it to this project code pipeline you are pretty much at like the grand finale of this project so I can't wait to be doing this with you if you've already done the first six projects and you made it here today I'm so proud of you I'm so proud of you um if you're like somewhere in between in this series and you're wanting to just check out this project before you get started that's a smart idea too so in this seven project Series so far we have been really working so hard on creating something called a cicd pipeline to build and deploy a simple web app so this is the final one you're going to learn how to use AWS code Pipeline and as a quick recap so far in this series you have used code commit and code artifact to save copies of your web apps code and its dependencies in some very secure repositories in the cloud you've used code build to compile and package your app source code into a handy War file you've also Ed code deploy to deploy that war file on servers so that users can see your web app everyone around the world that's pretty cool now AWS code pipeline is here to automate the Integrations between code commit code build code deploy so do you see how code pipeline although it might not be adding something huge to that entire like deployment process because really once you've reach code deploy users can see your web app it's kind of it's kind of reached the final point of that Journey so what is code pipeline here to do it's here to automate the Integrations and that's why it's here to automate the Integrations between these three services and it's why in this architecture diagram where you will see you know every single service that we've used so far in this cicd pipeline you'll see that code pipeline where where we're at for this project is over here you know it's it doesn't have its own kind of space in this like huge process that we've been going on from you know you to Cloud9 creating your source code to Cod commit code build code deploy um it's in the web server now you know once it reaches your easy to web at so Cod pipeline actually sits in the middle here it's here to integrate all these three um and I think now is a good time to just have a quick recap have a quick chat about what is the cicd pipeline one more time because we first talked about it back in Project one of the series but I appreciate that it's been a bit of time since project one of that series um so it's now it's a good time to just remind ourselves what does the cicd pipeline even mean supria chaty in the chat says thanks for all the awesome AWS tutorials wish to see more videos in future on AWS terraform and get very very cool ideas yeah terraform is very high in demand I have to say um and thank you so much the suggestion now in terms of what is cicd pipeline um cicd first what does CI mean what does CD mean so cicd means continuous integration continuous deployment notice how continuous is like that repeated word here and that is I think honestly that beauty of the cicd pipeline because continuous just means it is always happening always happening always happening um and you want your code to always be integrating always be deploying when you're working as a big team when you're constantly pushing out changes to your users when you are managing a lot of applications at the same time and the just the act of integrating your code and deploying your code takes a long time so you want it to be happening all the time so it doesn't like clog up your processes too much um B shop in the chat says will it cost us um will it cost us working on this project no this project is free Happy Farms Nigeria what a cute name says hello I'm saying hello back so while we're talking about continuous integration continuous deployment in continuous integration is basically what we were doing when we use code commit continuous deployment is basically what we were doing across code build and code deploy now continuous integration basically means when you're working as a team because in the real world you are absolutely working with other Engineers on the same application on the same code base um you want to make sure that the changes someone makes doesn't conflict with the changes that you're making what this looks like is imagine you're writing a story with a friend and for some reason both of you are working on the same paragraph at the same time and both of you make the same changes to the same sentence like I'm writing Once Upon a Time someone said and then all sudden um as I'm changing Once Upon a Time to Once Upon A tomorrow someone changes another word in that sentence and they say like oh it should be once upon a yesterday okay this is such a random example but let's just say it's two people make the same changes to the same sentence and they don't realize that all of they're making the the same mistake like making these changes on the same sentence across like a huge piece of code and no one knows until one day they decide to like merge their ch changes in the code conflicts something breaks maybe um maybe it creates like a lot of errors with flow on effects to other parts of the codebase or other parts of their systems so when that happens it's like oh like we should have really noticed far in advance that we were actually working on the same lines that the lines that I'm working on could conflict with the lines that you're working on that what we're doing really interacts with each other um and the way to really make sure you're communicating and those changes are con constantly being updated for each other um continuous integration exists so it's kind of like how when you're working when you're working on a shared document with someone on Google Docs when someone types those changes you will see their changes on your document like live in real time code doesn't really happen like that at the moment at the end of the day code when you make your changes my friend that's seeing the same document won't see those changes until I commit my code that's why it's so important for continuous integration to be happening for me to constantly be committing my code and integrating my changes to what my friend is going to see um and same for my friend I want to make sure that whatever changes my friend makes to the code I am constantly seeing so that if I ever make any other changes I know that what I'm doing doesn't conflict with what they're writing as well that we're not creating like some huge errors in the code base um and that's why continuous integration exists and that's why code commit is so great right like having a g repository having that Google drive folder in the cloud um that that is um pretty much our single source of Truth like that one piece of code that everyone will know like oh yeah that is the latest version of the code one single latest version of our code like that is so important for people to always be pushing their changes to that Google um drive folder so that anyone else that's also working on a local piece of their code will always be pulling those changes into their local workspace um so that we're on always integrating our changes with each other um and then continuous deployment is the is basically that practice of making sure that whenever you're making some great changes the users get to benefit from those changes as soon as possible um continuous deployment continue to always deploy and make your um make your changes available to the world to the users so they never have to wait too long until they get to um until they get to basically reap the benefits of all of the hard work that you've been putting to your code and to your work and to your applications um and that is the reason why something like code pipeline exists because we want to make sure that people are always integrating their code and they're always deploying their code we have code commit to help us with committing our code but how do we make sure that it's continuous how do we make sure it's continuous we have code build and code deploy to make to help us with deploying our code but how do we make sure it's continuous um I always think about code pipeline as kind of like the answer to the continuous part of the cicd pipeline to really make sure that all those Integrations are happening and things are happening automatically so that you that so that manual intervention is never the reason why something gets delayed because a lot of these processes are now being automated um and code pipeline is going to help us realize that okay so that was a very very long intro but I hope that gives you a bit more context into why are we even caring about the cicd pipeline and how does c pipeline contribute to that um yeah Al righty so in today's project let's get ready to learn how to create a pipeline with our service today it's called AWS code pipeline um and then we're going to execute the pipeline which means we're going to see that automated flow between code commit code build and code deploy and once we see that automated flow we're going to learn a concept called a rollback and we're going to trigger a roll back as well I'm so excited to be doing this with you I had so many like like mind blown moments when I was doing this project so I hope you get that too I really do um it's a lot of fun in the meantime yab auu says hello from Morocco Ah that's so cool hello you abishek says hello Natasha I'm saying hi be ab ab I have been a massive fan of your work in the community so thank you so much for being here akinola akinola is here as well akinola makinda says Hi everyone hi hi akinola I know that you are a little bit new to the community as well you've joined recently so to see that you're in this live now means a lot so welcome akinola okay so there are always two modes for you to do this project there's low touch and there's High touch High touch gives you the step-by-step instructions where to click what to type in low touch just tells you here's the vague idea on what to do have fun discovering the AWS console have fun trying to solve these problems um we're going to always go with the high Touch version so that we can do some step-by-step guidance together and as you might know if you've been doing these projects before um you're we you're always going to be reminded to delete all your resources um kind of like what the question that we had earlier is this project going to be free and I think that is such an important question to resolve right away yes this project is free we have tested it with free accounts to make sure that it is free but you just need to make sure that you delete all your resources okay even if you don't finish the entire project even if you say I'm going to continue it tomorrow tomorrow next week next month delete those Resources by the time you close your laptop um and if you're ever stuck ask the next Community students like you are already asking questions about this project so it is the best place to ask if you ever get stuck irin in the chat says make sure you look for free tier eligible Urban is a g that is completely it make sure you look for free tier eligible ible resources if you're ever wanting to do your own projects with AWS um because that page free tier eligible resources is going to tell you whether or not something a service is free or not um to use cool so I have clicked open this link that will take you to a documentation template so once you click on this this automatically opens up and you my friend can now write some documentation for your project so you're going to find out that you can't edit this copy you're going to need to to make a copy of What's um of this template file so you're going to have to click on file in the top right and you're going to have to find that button that says make a copy and that's what we're going to be doing okay so I'm just going to make sure I clean this tab off of my browser so I don't accidentally use it um and there we go I have made a copy and this copy is something that I can use so to make this ours let's first in file change that copy up because we don't really need that and add your name to it so I'm going to call this Nets project documentation and you can absolutely add your own name to the your name piece here double click here and type in your name voila this is now yours no one else can stake their claim on it now your name is literally on it um roit says Hi everyone I'm saying hi back R here so cool to have you here um now we are ready to document our documentation template is ready it's sitting there it's warm but in the meantime we're going to be setting up our web app and this is where we are going to be recapping basically projects one to six of this series to set up our web app to set up our web app from scratch Iman says hi Natasha it's me Ian hello San says hello Gerald's message is retracted now but I hope you were saying hello it's so hi Gerald Henry says hi Natasha I'm already loving your intro can't wait to complete this project thank you so much I can't wait to complete this project with you too um yeah RIT says Hi everyone Urban says make sure you look for free toer eligible absolutely guys um if you don't have an IM user setup I will absolutely recommend that you check out project one of this series to learn how to set up an i IM user and how to log into it in the meantime you'll see that I've already logged into my I am user and that's so that we can really get to the juicy parts of this project ASAP um because next after this we're going to deploy a cloud formation template what I know if you have been doing projects like one to six of this series you're going to be like oh my gosh we didn't have to deploy a cloud formation template for the first few parts now we're deploying one um in the setup stage for the for the project yes we are so project the the last project in the series about cloud formation is when you had to create your own template um you had to create your own template for this project um and that template included a lot of great resources to save you time on setting up the project so that template would have included things like a code commit repository a code build project a code artifact domain a lot of IM policies and roles and we're going to deploy that exact template template that you set up in that previous project so that you're going to save yourself a lot of time with the setup stuff um for this project so you can pat yourself on the back if you created that cloud formation template in the previous project because you're saving yourself a lot of time in this one for sure um yeah it's really also really fun to put into use something that you've created in the last project I feel um so that you know even after you've deleted a lot the resources from the previous project that one file that you saved that cloud information template you're still going to get to use um and yeah really reap the benefits of as well now if you still haven't done the cloud formation project and you're like oh no doesn't mean I can't do this one that's not the case you can still do this project start to finish without the cloud formation template from the previous project it's just that the template helps helps you with skipping a few steps saves you a lot of time and that's why we're going to be using it in this demo today um and it's especially important because there are a few steps with using a cloud formation template that I would love to be able to demo for everyone um but if you don't have a cloud formation template and you're going to be using the steps that's um and you're going to be doing all of these steps start to finish you can absolutely refer to the videos for parts one to six of this project The Links of them are all in the bio um all in the description for this video um and you can get the slower kind of walkthrough you know for every single one of those steps that we might be skipping later on by visiting those videos I hope that makes sense and let us do our first thing in the console now let us visit cloud formation in the console I'm going to type in Cloud information here let's click on it yeah very nice Mel Lewis says hi Natasha hi Mel welcome AOG in the chat says hi hi be all right so look here when when we get to Cloud information the first thing we're going to do is we're going to create a stack so we're going to click create stack and we're going to select with new resources standard under the specified template p panel we're going to select upload a template file over here and then we're going to select choose file and we're going to upload the template you created in the last project so if I were to click choose file here I should be able to find the template that I created in my previous project and if you if you don't know where to find your pre your template you can always type in do yaml um on your screen in the search bar and it will automatically pop up all of the yamamo files which are basically the file format for cloud formation templates um to quickly find yours so I know which one is the one that I'm looking for for today it is this one that I'll be using but you might be thinking oh my gosh I'm so sorry Natasha but I don't have a copy of my template from the last project anymore where do I find it where did it go um if that's you that's okay I am going to do the demo now on how you can find your Cloud information template if you've lost it if you can't find it totally okay um how you can do this is in a new tab so keep this tab because we're going to come back to it but in a new tab you're going to click on right click on Stacks um so that you can open this in a new tab and this is an interesting part from the filters you can see that I have a lot of different Stacks going that have all just like rolled back they're they're complete now um if you go into deleted you will now see all of the stacks that I've deleted in the past so these are Stacks that have successfully run and I don't need anymore so I've deleted them and that is what we did at the end of our um cloud formation project last time in the last time we deleted our stack you know at the end of the project so that's why you can't find that stack anymore if you were to still stay inactive that default filter so make sure you switch that filter status to delete it over here and you can probably now see the stack that you deleted at the end of the last project it's going to be called nextwork devops project 2 that was the name so click on that and what you're going to do is you're going to find that template tab okay once you find that you're going to find that the exact template that you used in the last project voila it is still alive and it is over here so you can just copy this template code and that is exactly the template that gave you the successful result from the previous project how good is that isn't it how good is that uh Mel Lewis in the chat says I'm glad I finally made it to a live aminu says sending that Vibe back to you now Louis also ask are you going to be adding more projects for us to do yes yes we will be uh we will absolutely be continuing on with a free AWS project every single week um all right do you have any topics that you want to see more of by the way for these projects add them to the chat um so we can add them to our projects to-do list um cool now that you have a template code from your previous project how do we incorporate that into this project how you do that is is first right click on this link to download and open a blank yo file so again remember a yo is basically the um file format for our cloud formation template kind of like how PDF is like a file format do yo yo is its own file format um and we've created a blank one for you to use so right click on that and click save link as to download it um and you can just put that in your downloads folder okay and when you're ready open it okay open that empty file and you're going to see that it is just a blank slate it's completely blank okay there's nothing in here these two lines are commons so they're not going to affect the actual execution or the functions of the code um so what that means is with that blank slate you now have the perf canvas for copying and pasting your template code from the last project so once you've copied that in it looks beautiful doesn't it oh looks so good um you can save that file and use this exact file to upload into your next template um into your next um cloud formation stack so we're back now into this tab where I was trying to upload a template file for a new cloud formation stack and I'm going to click on choose file now finally and you're going to see that the uh that the file that you just filled in with your copied code it's going to show up as an option for um the file that you can upload so I'm going to pick that I'm going to upload that now don't forget just make sure that once you've uploaded your code in here you're pressing save in your file I have once tried to upload a file that I didn't save trust me it didn't look pretty um so make sure you're saving your files uh okay very very nice now I'm ready to specify my stack details and I'm just going to give it a name nextwork devops project sounds really good to me and oh it already exists so should I change that to nextwork devops project three maybe I don't think three exists yet so once you've given it a name select next okay select next again we're happy to just keep the default settings over here and at the bottom of the panel there's going to be a call out that says hey um by the way cloud formation is going to create a few I am resources it's going to create a few roles as a part of your cloud formation template that you're about to deploy are you okay with that um because rols is a bit of a sensitive subject because it gives things permissions um and AWS treat security very very seriously so if it sees that as a part of your template you're going to start giving different Services permissions to things it's going to be like hold on a second do do you know what you're doing do you know that some services are now getting permission to do things um and by acknowledging it we're like yes Cloud information I know and we want to do that um so we're going to press submit and there we go now our Cloud information template is now being deployed um which means that the services defined in our Cloud information template are now getting created simultan simultaneously simultaneously at the same time for us um irn in the chat says vs code highly recommended all around text editor I agree I agree as well so um what Iran was mentioning is um this text editor that I was using is a great one for editing code managing code um yeah it works really really well it's called Visual Studio code you can absolutely use that if you don't want to download software for editing your code of course you can just use um um your local text editor instead which is text edit if you're using a Macbook notepad if you're on a Windows um but let's check in on our cloud formation stack because it ideally would have deployed a few resources now shall we take a look together um oh ah I'm so happy look at this it says create complete everyone I feel like it's the good energy of everyone in the chat today that has carried us through into such a quick crate complete I swear it didn't used to be this fast but it is super fast the entire thing created literally in a few seconds okay maybe one minute wait what let's actually have a look how long did it take for all of these resources to get created okay it was at 30 34 past 900 p.m. and now what literally in the same minute from okay that was literally 5 milliseconds it took to no to deploy everything okay no no no it was it was a one full second it went from 34 minutes past 900 p.m. and all the way until 35 minutes past 1 p.m. okay so it took one minute to deploy all of those resources just now that's crazy fast everyone um if you just look at those resources it deployed 10 resources for me in one second hello that's crazy um so what did it deploy so this is the time where we can start recapping um the resources that were in the resources that are in our Cloud information template so we included a code artifact domain we included a code artifact repository um and there were two Cloud co co oh sorry did I say the wrong word I say I said code artifact domain code artifact repository there were actually two of them because we had our local repository and we also had an upstream repository we have a code build project in here a code commit repository and also a few am resources to make sure that all of those um resources above have all of the necessary permissions they need to function properly so you know we have a I am policy for code artifact for code build um for code build again you know there was an IM rooll for code build an S3 bucket as well um called NEX workk build artifacts and this S3 bucket is going to store that war file that our code build pack uh code build uh process creates um if you're feeling like that was a bit unfamiliar that was a bit fast please check out part six of this devop series to get an in-depth discussion on everything that goes on in this Cloud information template in the meantime we're going to fly into the next step of our project um because we're going to verify that the deployment was truly successful and everything was truly created by visiting the resources that were created so I'm going to first visit the S3 bucket there we go the S3 build artifacts bucket that was deployed from our cloud formation template great success it looks really good um it has been created properly tick it looks good next shall we have a look at our IM am manag policy we created a policy um and we stored that in our Cloud information template did it work correctly let's have a look ah did our policy worked beautifully look at that we have a policy name here looks great it also has four permission policies attached to it that looks amazing everything is function as it should so I am loving this Irwin oh Abdul ramman hi Abdul ramman says hi Natasha good to be here again I'm so happy that you're here too Abdul ramman wow shout out to Abdul Raman you're awesome Iran says Oregon region must be less busic honestly you must be right the fact that it deployed it all in one second that was freakishly cool Mel leis says thanks Natasha for all your help and encouragement well Mel thank you so much for all of your support as well and your encouragement this is literally yeah these this encouragement and this energy and this support it's what keeps us going all the time for the entire team okay now you might remember that our Cloud information template and as helpful as it is for deploying all of those resources in literally a second for me um it doesn't deploy everything and it doesn't set up everything so there's still going to be a bit of setup time that we're going to need to spend to get our web app up to speed for code pipeline um to use later on as well so the first thing that our Cloud information template does not include is a Cloud9 environment and that's why we still need to set what I'm from scratch uh I just find it so ironic that out of everything a cloud night environment is the one thing that it really couldn't that we really couldn't put into our template because the cloud n environment is also the thing that we've been doing since project one of this series literally it's like the OG part of this entire series until the end we are still needing to do this one from scratch so this is probably a seventh time creating a Cloud9 IDE and I feel like by the end of this project you're absolutely a Cloud9 ID e Creator Pro um so as you might remember we're going to use a new easy2 instance to host our environment and that new ec2 instance should be using t2. micro which is the free tier eligible version um and the platform though instead of Amazon Linux 2 do you remember what it should be I mean instead of Amazon Linux 2023 it should be Amazon Linux to um so once that's all set up we can just leave everything else as a default and create our environment straight away um this is really fun oh I love it I love that it is already created for me I just need to click create uh open and I just need to wait a few seconds from we CL environment to be ready and this is where I do like a little dance every time because I feel like it will keep you excited um as you do this project and it's always great to be moving a little bit as well bring some movement into to the way that you do these projects it's fun you know we even have on cloud net euphoric is what John says in the chat thank you so much John that's so sweet um and actually while we're waiting for our Cloud9 IDE to be ready for us let us have a peek at the next few steps that we're going to do we're going to install Maven and Java and as you might remember Maven is our package manager and Java is the programming language that we're using to write our web app from scratch um and that's why these are the two tools that we absolutely need to install from the moment we have our Cloud9 IDE ready to install them you just need to run commands in the terminal for your IDE um so as you might remember our IDE has three parts to it here is the text editor here is the file Navigator and here is the terminal at the bottom and we need to copy this code over here that is basically asking our terminal hey can you um install Maven for me please and install it into this environment um and when I say this environment or this local environment I am referring to the ec2 instance um that is hosting our Cloud9 IDE and if you're ever thinking that it's a bit hard to wrap your head around that whole concept of an IDE an easy to instance hosting like a Cloud9 IDE like what does that actually mean you can honestly think about it like your local computer that's sitting right in front of you right now you probably have your computer that's running and also a browser that's running right now like Chrome uh Microsoft Edge Firefox Opera lots of lots of different browsers now you're going to realize that your browser is like a software and your computer is like that power that's running that software um and that analogy is very much what's U is very much what's happening in this scenario as well we have an ec2 instance which is like your computer okay that's running your software and you can think of your Cloud9 IDE as the software that's running on the computer um and that is the reason why even though we are launching an environment with Cloud9 there needs to be a computer that's running that software um and that computer is our ec2 inst um so that is why cloud computing is so powerful because instead of having to buy use Hardware or like buy a new computer to run your AWS Cloud9 environment you could just use that ec2 instance it's also in the cloud you know we're you we're literally doing cloud computing um and it's just so cool um all right so during that whole yarn I have installed Maven now so I'm going to now install Java or specifically a ketto 8 run that in your terminal as well and let it let it run let it run let it install um and it has been so much fun honestly doing these steps on repeat because every single time you do it you're G to pick up on something new you're going to pick up on something you every single time um so it is worthwhile doing these steps again and again and again um all seven times of it um I think I don't think you're ever going to run out of those learnings so we're going to verify again that our install installation processes have been done correctly by first verifying that Java has the correct version of it we have the correct version installed if you see 1.8.0 that means that you have the correct version installed um so that's perfect and next thing is let's have a check for Maven do we have the correct version of Maven installed do we what do you see if you see aachi made 3.5.2 over here you have the right version of Maven installed so that's perfect very nice um so let's create our application by running this code block here let's just copy that literally and paste that into the terminal watch it run like Madness um and if you don't remember what this piece of code was basically saying is hi Maven I just installed you and I also just installed Java my programming language so Maven my dear package manager can you go and create the the skeleton the structure of a Java web app for me I want you to use archetype which is basically a template that you have for creating Java web apps use that to generate a web app for me and Maven basically goes and says okay cool let me go and do that um and once Maven is done you can literally see your work from the sidebar so voila you can see that a new folder has popped up in your file Navigator and all of these new um folders have popped up and this is basically Maven creating the skeleton or like the structure of a new web app a new Java web app for you um so that was awesome thank you very much and we're going to start by modifying index.jsp in our project so double click on index.js p in the file navigator for yourself and let us paste this code into index.jsp to start making this project to start making this entire web app our own okay so where it says your name let's replace that with your actual name so instead of hello your name put in hello Natasha or hello Irwin or hello Mel H and don't forget to save your changes so press command s or controls on your keyboard um and now we're ready to do the the the next project in this series basically so you know whenever we're doing the setup parts for this web app we're basically cycling through all of the previous projects in the series we basically just done project one of the series and we're now onto project two of the series which is to create that g a code commit repository now lovely news everyone skip this step if you've deployed your cloud formation template they are going be steps that you can completely skip now because your cloud formation template the thing that we ran earlier has just deployed automatically for you so it's smooth sailing from here we can skip that step but if you haven't used a cloud formation template you can absolutely follow these steps to quickly create a C- commit repository yourself um Henry in the chat says hi Natasha for a beginner do I need to memorize these codes win replies you only need to understand what it does in my opinion I completely agree with what Ann's mentioned here um I think that code isn't always meant for like memorizing because at the end of the day in the real world you're always going to have a reference point um and what Urban means is like you just need to know what a piece of code does so that when you're running it you're kind of running it with confidence like you know what to expect once you run this um and I do think that that is the main part of like being an engineer and creating all of these like cool things um you know in the cloud is that you have confidence in knowing what you're doing when you're creating these things and if you don't know the answer to something you are just familiar with figuring out how to find that answer um and you're going to notice that memorizing code isn't always the way to problem solve it is a great way for answering exam questions um but it's not the way to go when you're actually in the real world working as a cloud engineer or doing these projects um I don't think that we ask we ever asked you to memorize something when you're doing a project we ask you to practice your skills and just continue doing continue doing continue doing um yeah memorizing doesn't go very very far um really when you're doing Hands-On work if there's ever a case for memorizing I will absolutely come back to you on that Henry I will let you know but nothing comes to mind off the top of my head maybe there will be some like basic commands that get that could be quite handy to know off by heart but it's not something that you're going to want to memorize with flash cards it's probably just something that you just know off by Heart by doing a lot of um cool we're going to go and do our first commit very nice and you're gonna notice I never even had to switch tabs and go away I could just go straight into the next step um I don't have to go find a co- commit repository or anything like that um because that template has already deployed this resource for me so already time has been saved I didn't have to go off platform at all um and I'm going to set up my get identity so I'm going to go get config D- Global user.name and in your what is this called Speech marks you can type in your name I looked really serious for a second there I was very very seriously trying to remember what what this is called um and right after you set up your username set up your email next and that is using a very very similar command except you're using user. email and you're going to put in your email in between the speech marks now oh I think I did something wrong here so I'm just going to quickly check see the reason why I thought something was wrong is because something says with get use default value when missing entry and I feel like this is not this doesn't really look like a successful uh response from our terminal I feel like a terminal is trying to tell me something so I'm going to scroll up and see what I did here oh okay so I've done something wrong where my command said get config d-g global. when it should have been getc config d-g Global and then it's user. email um so my terminal is basically saying hey girl um I don't really know what you what you were typing in here global. email is not something I'm familiar with so this is where I say oh sorry let me just type in the correct command and hopefully I'm going to type it and write this time so that we don't get the same error twice perfect okay I just typed in the command per uh correctly this time so no more error message and we can keep going the next command I'm going to type in is basically telling our terminal can you please navigate to this folder called nextwork Web project and it does the moment you see that blue text go from just environment to environment slnk web project it means your terminal has now entered this folder and nexor web project is basically the folder that you can find over here as well just know that whenever nexk web project is mentioned we are talking about our project app right now it is basically anything inside this folder is the code that represents our web app our web app code is all in this folder so by telling the terminal to navigate into this folder it's basically saying I'm about to do some commands that's going to relate to the setup or the creation of a few things like in for my project at um so what is the first thing I'm going to do I'm going to set up a local repository so I'm going to do get in it B Main and I've initialized an empty git repository and that means I'm ready for my local workspace to connect with my code commit workspace in the cloud so super exciting now let's select our C commit repository and clone its URL we didn't have to visit the Cod C commit repository to create our repository so that was a good time saer it also means it is now time for us to manually find Cod commit in our AWS console and once you find it you should see that the repository has already been created for us all we need to do is clone the URL and select clone https and this will copy the repositories URL to your clipboard and let us set the remote origin in our terminal um with that https URL that we just copied so I'm going to use the command get remote add origin and paste the code in and it reacts immediately so by running that line just now what I did was basically connect my local repository and by local repository I mean this local entire uh folder of code oh this doesn't look very like what I want whoopsy daisies there we go apologies for that team just click on this this folder icon if you ever lose your um your file like hierarchy or file Navigator but your my local repository is basically this entire folder of um files that represent my webat and I want to connect this local repository my local files with my Google Drive folder my code commit folder of um project files you're going to see that even though I've connected them now what's happening is my Google Drive uh version of this folder has nothing in it hey why is there nothing I literally have folders and files inside this folder why is it if you know the answer type it into the chat i' love to see whether or not we've got to learn a few Concepts from the first view project um but the answer you're also going to find right away oh okay so I'm here now um um and ran says you need to push your code to the repository Bingo we still need to save our code from save our code which is like committing it and then pushing that Upstream so pushing the changes that we've made up into that Google Drive repository that Cod commit repository um so how you do that is you can just copy these uh three lines of code paste it in your terminal and these three lines of code are basically saying hey you add all of my changes ready for ready for saving and then make all of the changes that I've made ready for saving and then save those changes leave a message with that save and call it my initial commit I basically updated index.jsp as a part of this big change that I've made and push all of those changes I've made to that um Google drive folder that get code commit repository so I've already run those three lines and and it was successful so if I were to refresh my page what do I see now so I've refreshed my page and you can see that my c-com repository successfully has um the folder and the files that are in my local repository too so that was a huge success and it means that we are ready to move on to project three of this series um which is to create that code artifa domain and repository I can absolutely skip this step because I have already deployed that code artifact domain and that code artifact repository uh with my cloud formation template all I need to do now is to connect my code artifa repository with my local workspace so since the repository is already set up now with my cloud information template um I can connect it with my web app how I do that is by looking for the connection instructions within my code artifact repository so how you do that is you find code artifact in your P navigation bar so if you're wondering how it got here um I basically click this three lines here and you can see code artifact is over here um so click on that and you're going to see repositories over here we're going to click on that and we're going to find that your local packages um local repository code artifact repository is over here it's called nextwork packages click on that and you're going to view the connection instructions all right so let's view our connection instructions let's make sure Mac and Linux is chosen do you remember why Mac and Linux is chosen because our ec2 instance that's hosting our Cloud9 IDE is a Linux computer it's using Amazon Linux 2 as its platform if you remember choosing Amazon Linux 2 just now um and our package manager client is Maven we are pulling from our repository today so we're going to keep that default setting and I'm going to copy the code from step three of our connection instructions and paste that into my terminal and you're going to see that it doesn't there aren't like huge messages coming from the terminal but absolutely if you don't see anything major happening in there um that is that still means you're ready to keep going to proceed with the next step which is to fill in your settings.xml file whoops with a few lines of code as well now the line that I just put through oh the line that I'm I'm about to put through which is this code here is to create a settings XML file because look at this does that file exist yet we need to populate a file C settings. XML to keep going but that file doesn't exist yet so copy the code that's inside in here and paste that in your terminal press enter and it's done you'll see all of a sudden Now settings of XML exists oh my gosh that was so quick um double click on it as usual and you're going to see it open up just over here in your code editor so it's now ready for you to paste in some code and you're G to find that code back in your code artifact console and by basically copying everything in steps four five and six over here over to your settings. XML file so I'm going to copy that and I'm going to paste that in here same with the next one copy that paste that in here um One More Time copy that paste that in there and we're done press command s or controls on your keyboard to make sure that you've saved your changes um and switch to the next step uh which is after connecting your web app to code artifact we're going to compile the application we're going to compile the application by running this command which is Maven DS settings. XML compile and we're going to put that through in the terminal okay while that's compiling um let me give you a heads up that if you found that the last few steps were a bit too fast if you're wondering oh but what did the code in steps four five and six mean why am I even creating a settings. XML file those are some very valid questions um and we actually discussed them in depth in the video for project three of this series so if you're want that in depth explanation i' highly recommend checking out project 3 um the link to that is in the description as well uh irin says I think it's a good idea to do a get status to see what files will be pushed oo should we do that for the next one yeah let's do that so um basically what Irwin is mentioning in the chat here is if before you enter um get commit you can use get status or right after get commit you can use git status to see what kind of files um you've edited you know in your latest commit and your latest changes um and you can just review like are these the files that I want to be changing before I push them into my Google Drive folder um because sometimes you might have made a few changes but you're like oh wait that's not ready to be pushed up to the Google drive folder I want to keep working on this edit before I make that push um because the moment it's pushed and someone else like pulled your change they're going to get a copy of all the changes you've made like into their version um of the app into the code into their um local repository so sometimes you might not actually want to push your changes so quickly you want to keep working on it for a little bit before you push the final version um and that's where get get status can be quite helpful it gives you that review like oh like is this stuff that I want to be pushing up into my Google Drive folder um into my cocit repository or do I actually want to just just push you know one or two other files anyway that com compile was a great success you will see build success over here which means that we're ready for the next step so if I were to just verify what is in my code artifact repository now what do you think it's going to be in there I'm G to refresh this ah and it looks so good I'm so happy everyone um you will see that there are three pages of packages ready for me um and that happened so so quickly I'm just so impressed so what's happened is by compiling our application code artifact has now saved backup copies of all of the dependencies all of the packages that our web application needs in order to function properly and this is really really helpful having this backup copy again if you're a bit unfamiliar with code artifact and you want that in-depth explanation on why it exists and how it's useful I'd highly recommend checking out project three in the series um but you know quick oneliner explanation is that dependencies or packages are basically external tools and resources that our web app needs in order to function correctly it is basically like if I were to have a web app that requires that is using a tool that another developer has used for example I need like a mapping function or a mapping tool um and I basically pull this resources like oh like easily integrate like my map into your web website to save yourself the time of having having to create like an interactive wh wh map from scratch I'm like great let me just use that resource I pull that in and it's now like basically a resource that I depend on because I need that tool to be working properly for my map to be working properly on my website so in order to basically secure or just basically cover your bases in terms of the risks that your web app might have imagine if that map tool suddenly one day gets shut down by the the um developer that created it I'll be like oh shoot I need this map in order for my website to exist to be working correctly so thankfully I have a backup version or a backup copy of that um of that package in my code artifact repository so I can always be using my code artifact backup instead of having to go out into the public and use that public version um of the tool that I need so such a great great great um service to be knowing about like code artifact and if anything it's just knowing what artifacts are knowing that it's important to be keeping backup copies of them like those are some key learnings to be had um about cicd pipelines or like being a cloud engineer okay that I know that was a big Spiel but um I'm very very excited to share that we can skip the next step which is to set up the IM am policy for using Code artifact this is basically the policy that allows other services in our cicd pipeline to get access to our code artifact repository to get access to all of these packages because they're going to need access to these packages um for example later on code build will need access to these packages because code build needs to compress and compile all of the the entire web applications um code all of these files into one package and in order to do that compiling in order to do that compressing it's going to need access to the resources that it's going to be um compressing together if it doesn't have access then well the web appc uh the war file that it creates is not going to be complete it's it's not going to have everything that um a web server needs to host to run your code or to host your website um and that's why we need this IM policy to exist so that other services that code build can have access to these resources um but since it's already been created by a cloud formation template we don't need to do that from scratch anymore and same goes for our S3 bucket this S3 bucket is the build artifact um bucket and what that means is when code build is done creating that um War file for your web app it's going to store that in your S3 bucket and that's why we need this S3 bucket to exist it absolutely needs to be around um so that later on that war file has somewhere to live in if you'd like to verify that it exists absolutely just visit your Amazon S3 console click on buckets on the left hand side and you're going to see do we see it the next build artifacts Natasha bucket is alive and kicking it is ready for me to start storing some build artifacts so why don't I go straight to the next step um our codu build project again is something that was already created by cloud formation template so we just we can skip this too um and let's go straight into reviewing our codebook project setup and then building our project for the first time so you can find your code build project by heading back to your code artifact console and in the sidebar choose code build and choose build projects and you're going to see that there's already a build project in here but we still need to do a bit of editing it's not ready for building just yet instead of clicking that beautiful start build button I know it's orange I know it's tempting click on the edit button instead okay so like edit at the top of the page because what we're going to do next is notice that the source panel has a few Fields missing wow the source panel says okay I know your code is storing in code commit but which repository is it again it is the next web project repository so we're going to fill that in for them and it's also asking ah which branch are you using there's only one branch girl it's the main branch so we're going to select that for them as well so once those two are selected you can just click update project and you've updated your code build project now you might be wondering why are those fields missing and again it just comes down to the limitations of using your Cloud information template and you might recall that when we were doing our Cloud information project um using the ISC generator we had to add our code build project into the template manually it wasn't something that the I generator could um create for us automatically and this is a big reason why you know even if you've added it to your cloud formation template the the resource that it creates not complete absolutely we still have to edit we still have to add our resources um before it is ready to start building so now that it is complete um luckily we can now create a buildpc y yml file yo file um to define the commands for building the project so we're going to go back to Cloud9 okay and this time we're going to create a file called buildpc doyo now if you're wondering where in this project are we now we're in Project five of the series um so let us oh I think we're in Project four of the series and let us create a new file in the root of our code repository the root is here the next web project folder right click on that and select new file and this is where you can create a new file called buildspec yml all right once that's created let's double click on it and let us fill in this file that's ready for us okay it's looking beautiful copy that paste that into your editor section okay paste that in here and you're going to notice that we still need to do a bit of customizing you know make sure that the domain it references is called nextwork and I can tell you that the domain for my code artifact domain is Conex work so it looks pretty safe um but you can always verify it by finding domains in your left hand ation bar and you're going to see yes next work perfect um and the domain owner this should be your account ID number is your account ID number correct find out by clicking on your name on the top right hand corner uh in your Management console and copy your account ID number which is revealed over here I love it when I can just easily copy it with this little button here it's so convenient so I clicked on that button and I can just past it and that is my account ID pasted in there now cool again save your changes okay don't forget press contrl s press command s if you're using a Windows uh and once you've saved those changes commit your commit your changes but I also want to use what Irwin has mentioned in the chat maybe we can use get status as well um and once we're we've committed these changes we are ready to build our project so I'm going to very excitedly um run these commands and hopefully make this wh make this a little bit bigger as well so you can see okay so I have run this oh oh Mama it's looking a bit too big now doesn't it let me just make this a bit smaller back hello oopsy a that I made it a bit too big just now so I'm going to make a smaller one more time all righty um and once I've here you go and I'm just going to Wrangle with my terminal for a little bit because I just want to make sure that I can actually make this slightly bigger so you can see what's happening in the terminal I know this is looking a bit small right now okay I hope this is better okay so in my terminal I'm also going to be using get ad again which is a great command to just basically say prepare all of my changes for saving um and should I use get status now this is Irwin's suggestion this is cool Irwin wow so I've just run get status and look at that it says the changes that you can commit you've created a new file called buildspec the yml very true I also created a new file called settings. yml yes it is basically just is given me a recap of files that is that are ready to be saved and when you're like okay yeah this looks good these are exactly the two files that I want to be saving um you can just commit that over so get commit adding buildspec yml file technically adding buildpc yml and settings. yml file um and you can push those changes Upstream using this line too actually the after the first time you you put get push dasu origin main the next time you actually need to run the the whole line This is a small tip uh you can just write get push and ideally it's already going to remember where is um your repository so I think I just pushed that very successfully and I'm ready for the next step wow that good status was awesome thank you so much um again a step for us to skip if you've already deployed your cloud formation template but uh the next step we were going to be creating an I am role to make sure that code build has all of the necessary permission it needs um to use that those code artifact um resources remember how just done code artifact I was saying look like even code build doesn't have all of like access to your code artifact repository and that's why we need to give it code build permission through an I am role since that role has already been created for us we can skip the step and go straight into building our project for the first time to test the build so I'm going to test the build by finding code build over here and build my project for the first time so let us start the build and watch it run now I have to say building takes a bit of time a bit of time being one minute or two minutes so we're going to wait here knowing that cloud formation deployed all of those resources for me in one second makes me a very very demanding person cuz even one minute feels like a long time sometimes um and I have to say maybe I'm just super spoiled because of how fast cloud computing and all of these Services work to make me feel impatient by one minute I'd say a is doing a very good job of having all of their resources fast enough for one minute to few long um but I think now is a great time for us to take a quick water break or quick te bre while we wait for the status for code build to go from in progress to success um actually while that's happening uh we can have a peek at what we need to do next shall we because once that build is done we have pretty much finished with part four of the project series and we'd be entering uh project five territory and project five territory was using Code deploy and code deploy is the service the AWS service that helps making our web app available to the world right because we have used code commit to save our source code into a very very secure code repository that Google drive folder in the cloud we have just used code build to compile our web app it was a huge success by the way so thank you um to compile our code and compiling basically means turn all of my web apps code into machine language and compress all of that machine language into a handy file that handy file is the Golden Nugget for the next part of this project which is code deploy so sorry about that sound team I'm going to visit my code artifact bucket uh not my code artifact bucket sorry my build artifact my build artifacts bucket refresh it and you're gonna see this is what I want to see um my boot artifact is now in my build artifacts bucket this is the very first war file that my code build project has produced for me today so thank you very much code build thank your code build if your code build has created that file for you as well thank you for your service because we're now ready for project five of this series which is about code deploy um and the first thing that we're going to do is understand what code deploy is doing just now we just mentioned code build's entire purpose basically is to compile our web apps code into that um into that handy uh compile our web apps code and then compress it transform it into a handy file called a war file which is basically this ZIP file and once that's done we want to now deploy that war file this file that's been created deploy it on another server and that server is basically going to make your web app available to the world available to the world basically means if you were to type in my URL on your browser you can see my web app too so that's pretty cool um how we're going to make that happen is by first creating the easy2 instance that will be eventually hosting our web app okay right now there's no server out there that's going to be hosting our web app so we need to create that server and we're going to be doing that by using cloud formation one more time so in your cloud formation console okay uh when you're in cloud formation create a stack again so visit Stacks in your left hand navigation bar and create a new stack again using new resources you're probably familiar with this by now and select upload a template file once you get to the specified template panel so which file are we going to be creating using today it is this one the the one that's already provided for us uh right click on this and or you can actually just click on it directly yeah there we go that's perfect that's it's worked um and we're going to upload that template file straight into our stack so I'm going to upload it now and I'm going to click next and I'm going to name my stack okay um and then on the parameters I'm going to make sure that I enter my IP address so I'm going to click on check IP here to find my IP address okay this looks very nice this is my IP address everyone hello and make sure to enter sl32 at the end here for extra security um once you've added the 32 click next and we're going to go to the bottom click next again at the bottom here we're gonna again say I am it is okay that you're going to be creating a new role um Cloud information it's okay for you to be creating a new I role for me um I'm okay with that uh and want to acknowledge it you can press submit and again cloud formation is going to be doing its work thank you Cloud information and creating our easy2 instance for us it's also going to be creating a VPC um bpc is basically a virtual private Cloud it is the service in AWS that basically makes sure that anyone visiting the internet and typing in your web apps um servers name or for your url can actually get taken to um your web app so vbcs are extremely important the the topic as a whole is called networking and we're absolutely going to be diving a bit deeper into what networking actually means and uh what virtual private clouds really do in another project for now just know that it plays a very very important role to make sure that anyone using the internet to visit your web app can actually get there um let's refresh our events page and yes our easy2 instance has been created very very successfully and you can confirm that it's worked by visiting the E2 um console so you can type in E2 in the search bar and over here you can find your E2 instance and your instances running there should be one instance that's running oh this there should be two actually I'm G to make sure that this has been created it's telling me that it's been created well oh does it need another refresh I think it does ah our web server is still in progress sorry it hasn't been created yet I was a bit too excited um but once our web server has actually successfully created as well then we can absolutely see it in the ec2 console for now though this existing ec2 instance can you remember what it could be can you tell me what it could be if you can wow that's super impressive I'll be very very happy um this easy to instance that's existing in the ec2 console right now is the E2 instance that's hosting our Cloud9 IDE it's the it's the computer that's running this Cloud9 IDE right now so cool I'm so excited to be seeing it right now someone is spamming hearts in the chat so shout out to that person thank you so much um all right I'm going to refresh the events page one more time ah very nice our web server has created successfully as well so if I were to refresh this can I see it please say yes ah I can so this web server is our ec2 instance that's going to be hosting our web app and making it available to the world you're going to see this in action in just a second so and before we spend too much time here let's move on to the next step and let us create a few bash Scripts hey Isaac Isaac in the chat says well done Natasha it's isaaco so exciting that you're here man thank you so much all right so we're going to in our again the root repository the root of our code repository create a new folder and this one is going to be called scripts so let me just type in scripts in here and let me enter three new files create three new files under scripts so my first file is going to be called Do You Remember the Name by any chance it's going to be called install dependencies Dosh nice and let me just paste that code in here o very cool very very cool uh I'm G to past that code in here o i if only my mouse would cooperate with me though ah there we go it's kind of of cooperating now is it is it really not really oh okay there we go it's cooperating with me now so if I were to just double click on the install dependencies Dosh file um I can paste my code in here and voila the code has successfully gone from here all the way into here very nice save your changes press command s press controls Pro save yourself from future issues by Saving as you go um create another new file under scripts and this one is going to be called start server Dosh one more time and let us again copy the code that was in here paste that on the start server. sh all right um very very cool press command s press control s let's save those changes and let's create one last file on the scripts and this one is going to be called stop server. sh o o interesting let me rename this into stop server. sh and let us copy this code over paste that in here save your changes don't forget to save and stop does your folder scripts folder have all three files install dependencies start server and stop server if it has congrats I think you're ready to move on to the next step so let us get ready for the next step wow cidi says hi Natasha it's cidy loving the live session City Welcome wow welcome welcome welcome I'm so excited that you're here and thank you so much for all the love really thank you so much a big shout out to you um in our next step we're going to be again at the root of our code repository create a new file this one is going to be called aspec doyo so over here here let us create a new file let the name be abeco okay over here and we're going to add the following lines to our aspect. yo file over here by the way if you're wondering can I have more in-depth explanations to what each of these files are doing and why they exist um the explanations to those are available in Project five of our Series so I'd highly recommend checking out the video for that the link to that is in the description um and save the changes that you've made by pressing command s or control s Iran in the chat says no need to make the sh files executable oh you're going to see how we're going to execute those files in a second um actually I think you're seeing it right now actually with the aspect. yo file here um and the way that we basically says before you install um before you install anything use the install dependencies file you know when you start your application run these scripts Run start server. sh and so on and so forth does that answer your question let me know if not we can actually chat more about this um and you know once I have filled out my buildspec doyo file I am ready to oh aspect. yo file so sorry I was meaning once you have copied your code into appec doyo let us edit buildspec doyo file okay so in buildspec doyo this is the part where you're going to be adding two new lines to it mystery two new lines um you're going to copy these two new lines copy and you're going to paste them underneath the files section so over here you're going to enter in here these two new files so you might be wondering why am I doing this these two need to be recognized in order for your build spec to basically include all of the files that your War file needs to include now that was a pretty technical line that was a pretty technical sentence that I said just now so let's break it down do you remember what buildspec doyo is for buildspec doyo is basically the file that you're code build project is going to be referring to in order to run that build process um and during the build process it needs to realize what are the artifacts that I'm creating what are the outputs that I need to be producing um and one of those outputs we've mentioned is to save a war file that basically that zip file for the webat project code but there's also two more files that we need to make sure that it saves now one is abspack doyo which is the file that we created just now know this file here and the other file is the scripts folder with these three scripts inside we want to make sure that the final zip package that our build code build um process creates incorporates these two new files in it as well we just created it so code build doesn't know that they exist yet but in this file we're going to say hey by the way I created these two new files remember to include them when you build um the project and you create that zip file um because I absolutely need you to bring these two files over to the web server that's about to be hosting my web app so save again your changes to your files and let's again commit all of those changes to code commit I am loving Irwin's tip by the way of using git status so we're going to doing that one more time um all right in your terminal cool in your terminal let us run the first line uh first two lines which is to make sure that we are preparing all of the files um and all the changes we've made ready for saving and let use let's use gets tus the new tip I've learned today to have a look at all of the file that I've changed just in between like the two commits that I've just made and the commit I'm about to make now what are the changes that I've made recently I've created a new file I've created four new files correct I've also changed build spec. yo wow what a great recap so so helpful um so I'm saying okay yeah I'm ready to be saving these changes these are the changes I'm wanting to save then I'm ready to run get commit to say yep let's save those changes and I'm going to leave that message adding code deploy files as the message for saving my changes and I'm going to do get push to push those changes Upstream into where where are those changes getting pushed to my code commit repository that would be the right answer so now that all of those changes are pushed through to my code commit repository we're now ready to build our project one more time using Code build so I'm going to go here in code build and click on build projects and let us build the project One More Time start the build one more time um and as you might remember building takes a bit of time so we're going to drink some water and just do a quick recap of what's happened so far Emanuel in the chat says hello Natasha hi Emanuel thank you for being here all right so what is happening so far is we've created a web app from scratch using Cloud9 we've created a git repository using Code commit to basically have that Google drive folder on the cloud and that git commit repository is the source code that code build is using to build uh to compile our code and turn it into a war file okay this is a pretty important part uh this is a pretty important thing to be remembering when I start my build do you remember how I just press Start build just now when I press that button what code is code build actually compiling is it the code that's in my Cloud9 local repository no it's not okay code build is not going into my Cloud9 uh is not going in here it's not going into my Cloud9 console and compiling the code in that I that I'm editing like in my local repository so what code is it compiling the code that it's compiling is a code that's living inside my code commit repository okay the Google drive folder that um this like Cloud version of my source code you know if I click into my code commit repository you're going to see that a copy of all of the changes that I've made is in here because I've committed those changes and I push it Upstream you know I I ran this line and randis line as well which basically saved all of my changes up into code commit and code build is actually visiting code commit to grab all of these files here and go and compile them into a war file okay and that war file is the entire reason why we will Press Start build in code build you know the reason why we go into this code build project over here and we will Press Start build it's basically saying hey code build can you go into code commit grab all of the code that you see there go to code artifact okay please go to code artifact the repository that I have my local repository has all of the packages and dependencies for my work go and grab all of these dependencies grab my Cod commit repositories code compile it all compile it all into one file and store that one file into my S3 Bucket over here okay so if I refresh what's GNA happen oh it's not it's not done yet um but what's GNA happen is when my build is succeeded okay it's succeeded um can I oh can I find my file let's see can I find the file I should be able to um if I can't we will figure out why very interesting okay so what has happened is code build has successfully gone into code commit it's successfully go into code artifact it's brought all of the files together it's created a war file and that war file should be stored in an S3 bucket and from that S3 bucket it needs to be thrown all the way into code deploy so that code deploy can go and deploy that project make it available to the world um and the reason why we just redid we just went into here created a few files and it went to code build to build again is because we wanted to make sure that this has all of the files that code deploy is going to need and run and then since we've made some changes we want to make sure that we create a new um War file to deploy um we need to run code build one more time because we've made some changes in Cloud9 and we want to run and make a new version make a new war file that has all of these changes Incorporated inside because the first war file that we created is outdated now it doesn't have all of these new files that um included in it we want to make a new war file that has incorporated all of these new changes and that's why we just ran the start build one more time after committing our changes um and if you looks like the build was successful so that's amazing looking really good um and you can even go into reports if you want if there are anything that we want to see everything looks successful in here so that's awesome um and it means we're ready for the next step so the next step is to create an I am role for code deploy so let us visit IAM and code deploy over here and let us create a new role so I'm going to open the code uh the IM am console but actually if you want roll is already here as a as a little um shortcut so I can just click on Roll right away from here and create a new role so when I click create role over here uh the AWS service I'm creating this role for is code deploy over here and code deploy click next it already has a permission policy that AWS has created for me it's like a template policy that is the only policy we need so click next again and give our role a name it should have a name called Next work code deploy role done click create rooll to finish and you're off you're ready okay so that role has been created now BAS basically means code deploy has the permission to access all of the resources that it needs to successfully host my web app um and what I need oh not to successfully host my web app sorry but to successfully do the entire deployment process for me um and you're going to see that in action very very soon so we're going to head to the code deploy um console and we are going to create an application inside code deploy so over here I'm going to click on create application and I'm going to name my application nextwork web deploy going to put that here and my compute platform is going to be ec2 going to create the application and I'm going to create a deployment group inside which is going to be called nexor Web deploy over here and the service role is going to be the code deploy role that I just created in I came in handy super quick um and let's create the let us create the deployment type it is in place environment configuration should be Amazon easy2 instances with um a tag that is called oh that is called rle uh the value of that should be web server and let us make sure that over here this says now and schedule updates okay um every 14 days this should be kept as default all at once and I'm going to uncheck the enable load balancing feature to create my deployment group I know I zoom pass that very very quickly it's because we went through all of those details um in Project five of this series so definitely check out that video um the link to that is in the description as well so once I have created my deployment group I can create create my deployment now so in my newly created deployment group um I can just click on create deployment over here um and for the revision location we will need to find the S3 URI for our ZIP file so let's go over here let's copy the S3 URI for our ZIP file over here and let us paste it under revision location by the way as it heads up you might be wondering uh n like why is it only just one zip file in here we ran the build process twice why is it that we only have one zip file the reason for that is because um when code build created another build artifact that build artifact that got created replaced the existing one you can see that last modified over here was 10 minutes ago yeah it was about it was less than 10 minutes ago it was eight minutes ago um which means that it is already updated to the latest version of the latest build because the latest build would have finished only just eight minutes ago um and that means that the build artifact that got created from the latest build completely replaced the original file that was in this bucket um so if you're wondering why there was only only one object that's the reason why um there's only there's only ever going to be one object in this bucket and it's just going to be con constantly updated um to the latest version instead of having all of the existing versions in the exact same bucket I hope that was clear but if it wasn't please like let me know in the chat we can talk about this a bit more as well so um over here we're going to also make sure that zip is kept as the revision file type and leave the other settings as default because we're going to go straight into creating our deployment so cool so once the deployment is created let's come check uh let's let's go check the status of this GNA wait for it to be successful let's wait for our deployment to be successful and I hope it's okay please work so what's happening right now in this deployment process is our that build artifact this ZIP file is being deployed onto the ec2 instance that we created for hosting our web ad so you know this file over here this E2 instance this easy2 instance was created for the sole purpose of Hosting our web app and how it's hosting it right now is that this build artifact the zip file of the entire project app code um as as well as um all of those uh artifacts in code artifact they've all like compressed together into this cool zip file and it's now being basically hosted into our ec2 instance over here um and code deploy is basically the manager of that process it's doing that project uh process for us um so how's code deploy doing it says it's still installing the application on our instances and it's in progress so we'll wait for it to work if it fails that's okay we'll figure out why it failed um but the deployment process usually shouldn't take this long actually it should usually be about like 30 seconds or 45 seconds so the fact that it's taken me this long and still in 0% tells me that we might run into a fail fail very soon which is okay I think fails happen all the time it's just a matter of reading the error message and fixing what we've done um if it comes to that um okay we'll see what happens very very suspicious we'll see what happens um but if it was successful okay if it was successful all we'll have to do is click on our ec2 instance and visit the public address for our instance um and what that means is this public address means that any device that's allowed access to your ec2 instance can view what's hosted on that ec2 instance if they just view visit this address on their browser so I could literally click open address over here open address over here oh if not if that's didn't work you can just copy this over here and in the new page type in HTTP colon slash paste in the I the public IP V4 address to visit what's hosted on your web app but as you can see my web app U that's been hosted on your web server as you can see my web app hasn't been deployed yet which is why my web server is like I have nothing to show you um which is why it's still loading that's okay um has our code deploy come back with a message for us not yet so let me just refresh this because I'm a little bit impatient now oh code deploy is still doing its thing if you have picked up that I've made an error somewhere so far in this project let me know maybe we can actually resolve this be before code deploy drops us any error messages it's taking an interestingly long time that's for sure H I hope it's okay okay but um yeah so if that deployment was successful you can actually visit this ipv4 address over here and you can see the web app that's been created for you um H I hope that works should I stop my deployment and try to do it again is that before install error says dkx Could It Be by the way hi dkx it's good to see you again could be let us see what's going on I'm actually very curious why is the deployment happening H happening so quick why is this taking so long um so let me visit this and see if there's anything happening here I think usually when there's an error by the way with my code the first thing I like to do is just make sure that I've saved the changes that I've made to everything in here um so I'm just going to leave through all of the files that are open right now just to oops just to make sure all of the changes I've made are saved somewhere okay oh it looks like buildspec yml wasn't actually saved what hello oh look there's a c ccle here for buildspec yml which suggests me that it wasn't actually saved should I save this and try it again that be worth it I think it could be I think this could be it so I'm going to press command s here um which basically saves buildspec yml save the changes that I've made um and let me visit all of the other tabs just to make sure I've saved all the other changes I've made um wow suspicious did you see that Circle pop up for buildspec yml it really suggests that the latest changes weren't saved um so that's pretty suspicious and I'm just going to you run my git commands to make sure any changes that Were Somehow just saved are U now pushed up to my code commit repository okay so I'm going to do get add dot you know the real you know the drill let us check get status oh it says my branch is up to date so there's actually no new changes H that's suspicious it seems like that I had changes that I needed to save with build spec so I am still going to just check this anyway um interesting I'm still going to just go get commit just so that I can we can run through this entire process together so get commit I'm going to say my commit message is updated buildspec yml that is come on that I would run if I had made changes enter that okay it says nothing to commit the working tree is clean so there aren't any new changes what's happening with my deployment ah okay okay cool cool cool we have something now this is interesting our deployment uh code deploy says overall deployment failed because too many individual instances failed deployment okay too few healthy instances are available for deployment or some instances in your deployment group are experiencing problems that's okay I think a failure was basically something that we were all looking a little bit expecting of and we were expecting this pretty much ah the code deployer was not able to receive the life cycle event check the code deploy agent logs on your host and make sure the agent is running and can connect to the code deploy server did I do something wrong when I was trying to set up my deployment group let us figure this out deploy Cod deploy agent was not able to receive the life cycle event interesting I wonder why shall we have a check I think we shall so let us click into this unknown error within build install H again it says check the code deploy agent um I'm going to oh Irwin says maybe check your before install line yeah maybe I should do that actually um I see what you mean now so I'm going to go here H and see what I can find inside aspect. yml and see what is inside before install so my have a my before install has a few lines in it can we see what could be wrong with it I'm going to compare it with what is expected of my aspect. yml file and see if there's anything that should be a little different to what's here H what do we think team I think something looks a bit off is something off of the indentation does anyone else seeing the indentation looks a bit off okay M I'm going to my my money is betting on the indentation I could be completely wrong but let me just check um I'm going to cross check this by checking um the same the same instructions for this project but using the project nine of the series and the the code that was shared in Project nine has did my before install line look different it did oh my goodness what look at this this is not indented but in my in my code deploy project this absolutely was so let me just put in the indented version could it be because of this did an indentation cause my deployment to fail Goodness Me goodness me let me save the changes that I've made to my um buildspec yml file oh my goodness did that really was that really the reason and let me commit those changes now um get add dot get status because I'm addicted to that line now yep it confirms with me that I've changed a few things with aspect. yml and let me commit those changes get commit dhm for message uh what did I change I updated at spec. yml and I am going to push my changes Upstream get push done okay so I've pushed my changes um and what that means is again you're going to make sure that inside your C commit repository that whatever is in your cmit rep Tre should be correctly reflecting um what was in your local working space as well so if I were to go into build oh if I were to go into buildpc I think sorry I think I meant abpc there um oh my goodness that was so funny if I would to go into abpc um yes my before install Line is now properly indented as well in my code commit repository in my Google drive folder um so what that means is my code build my build if I were to build it now I think my changes should be successfully um represented there so let me build my project one more time um because I need to be building my code build should be compressing compiling the latest version of my project F code um and I absolutely need to be compressing the latest version of aspect. yml if I were to use the existing code artifact file um sorry not code artifact file my build artifact then I would be again just passing the exact same incorrect version of aspect. yml over to code deploy that would have caused an error that would have caused the same error so let's not do that um and let's make sure that we're building again um so that we are using the latest version of aspect. yml when we deploy our web app um oh my goodness that has honestly caught me off guard thank you so much Irwin thank you so much DK AMX thank you so much suprio a yaml validator would have absolutely helped Anan has called that out um dkx says refer to the example from a AWS that's so true would you happen to have a link to that that you like to share that would be pretty cool and I think um a lot of the community would have would learn from that too oh my goodness that was wild um so the building is happening one more time so we're going to let that just run its course um and in the meantime let us just have a chat about this entire process that needs to take place whenever I made a change just now I made a change to my Cloud9 um the local repository in Cloud9 over here here I updated my aspect. yml so I have to commit my change so that the changes are reflected in co- commit I have to go into to C build and build those changes I buil my um web at one more time and now I have to go to code deploy one more time to um try deploy my application again so my goodness do you think it that's a bit of a process if you think it does uh sorry if you think it is like a bit of a chore that's absolutely Fair um let's just discard those changes um I'm going to go back to the deployment that has happened before this one that failed and I'm going to retry it retry this deployment okay let's see if it works now cool let's see if this one works now will it work H let's see well the most recent event again is before install do you think it's using the wrong version mayhaps all righty in fact it is succeeded oh the deployment was succeeded that's a relief isn't it ah thank you thank you so much thank you to everyone in the chat that helps me with resolving that error oh that was a little bit intense but we have solved it that is a good feeling um honestly no not many feelings can beat that being able to resolve an error uh so thank thank you so much to everyone in the in the chat that's helped um with resolving that and let's move on to the next step so now that we have successfully deployed our application I think what that means is we can now visit um over here our E2 our ec2 instance's um public ipv4 address remember how I typed it in HTTP and I put in the public IP V4 address over here you know I went over here I copied the public IP V4 address I paste it in here I put an HTTP in the front and let me just visit that one more time and see if I can if I can visit my web app now can I does it work I hope it does that'll be cool alrighty um okay so that was a success getting the deployment to be working now and let's see if we can actually see it in our ec2 in um ec2 instances ipv4 address I hope it works does it work H it's taking its sweet time which tells me it's a bit slow okay so if you're seeing an error over here you can absolutely update the security group of your ec2 instance um so how I do it is over here under security I'm just going to visit my security groups inbound rules over here and the source tells me it is basically allowing all visits from this IP address so I'm going to check my IP address aha my IP address has changed it used to be 104.2 a.2 9.66 but I just refreshed my IP address Checker and my IP address has changed from 66 to 65 do you know what that means that means my E2 instance is allowing all visits from this IP address but I am not that IP address anymore I need to update my security group so that it allows my new IP address through my goodness that was a bit tricky wasn't it um but it's okay we've just just resolved it all I need to do is visit my security group and inside inbound rules I'm going to edit the inbound Rule and make it than my new IP address over here okay once I've edited that oh once I've edited that over here I'm good to go to save this new rule okay and then refresh this address over here and hopefully it lets me see my web app now okay so that was a great success that was very cool so Cod deploy project six of the series is all done now very well very very good um and if you're wondering why is it that my IP address could change why did I need to update it in the security group we're going to go over that at the end of this project because this this situation might happen one more time at the end of this project so we're going to talk about this at the end all together at once um but what you need to know is if you if you ran into the same complication as me just now what you have to do is you have to update the inbound rules for your Security Group to make sure that your latest IP address because it because it might update itself just make sure that the latest IP address is accepted um cool be so now that that's done let us finally go on ahead into code pipeline so with our working web application we are going to be using Code pipeline to automate all of those Integrations between some of those key steps we had code build code deploy um we had code commit as well at the very start and remember how we had to basically commit our changes in Cloud9 and push them to the G repository we had to build our application we had to deploy it so that all of any change that I make to my code um can finally be seen over here um for the users looking at my webat it's a bit of a manual process did you see how many clicks I had to click on uh how many buttons I had to click on in order to make that process work with code pipeline let's automate these steps so as soon as you push your changes to the main branch code pipeline will automatically take care of building and deploying the application this makes the process so much faster and reduces the chances of error which is so good yay um and that's why we use code pipeline code pipeline is a service you know to automate those steps and when we use code pipeline to create that automated um cicv pipeline all of the steps that I did just now you know that jumping between code commit to code build to code deploy um to release my latest changes I don't need to make those clicks anymore it gets done for me super super useful so to set up my pipeline I'm going to visit code pipeline over here in the sidebar select pipelines over here nice and I'm going to click on create pipeline now on the create pipeline I'm going to select enter nextwork web pipeline as my pipeline name um over here and I'm going to make sure that my execution mode is superceded and I use superseded um because my we our web app is so so so simple it doesn't need any complicated pipeline type um execution mode so execution mode what we're choosing over here it is basically deciding how code pipeline will run a multiple executions of your pipeline this kind of scenario is going to pop up if you have a whole team of developers constantly pushing their own changes to the code and that means your pipeline is going to get executed each time and execution is basically a run of that pipeline process um and whenever someone commits their code your pipeline's going to execute once it's going to run once so knowing that in a big team we want to be continuously integrating we want to be continuously committing our code that means executions are happening all the time sometimes probably at the same time um and that's why there are multiple of these modes available it's like hey if you have lots of executions happening probably at the same same time how do you want me to run it um and we're basically saying use superseded so only run the latest um commit like only run the version of the code that exists at the latest commit um you don't need to run every single commit that happens um so that's super super helpful and super super simple um but cued and parallel are definitely some great options if you have a more complex sit situation going on with more team members um we have a new service that's now created for us and we want to make sure that role called our code pipeline service role um is going to have all of the it's going to give code pipeline all of the necessary permission it needs to run successfully later um so we're going to come back to this in a second and once you leave all the other settings as default we're going to click on next and we're now at the source stage so what we've created just now over here is just some generic pipeline settings on how we want to run executions of our pipeline but once all of these settings are done we're just going to be actually setting up the different stages of our pipeline so we know how our pipeline is going to be run now but what are the actual components of that pipeline let us kind of like add in those building blocks the first thing is our source and our source provider should be AWS code commit because source is basically saying oh yeah where is the source code getting stored and we're saying oh yeah it's stored in code commit and in the repository called NEX web project and please just use the version of the code that's inside the main branch of that repository um and in terms of our detection options we're going to be using Amazon cloudwatch events in terms of the out output artifact format we're going to be using Code pipeline default great um and I'm going to click on next over here but before we click on next actually let's quickly talk about what our detection options and art effect format anyway you know detection option setting is basically how code pipeline will figure out when something has changed in your source code because don't forget code pipeline is supposed to run automatically so how does it know when it should be running that is basically what the detection option uh mean the change detection option um so it needs to react automatically to any change that happens in your source code but how is it going to know that a change has happened in your source code it's GNA know because we have cloudwatch events monitoring everything and basically when cloudwatch events and cloudwatch is another AWS service that's basically all about monitoring everything that happens in your account when cloudwatch picks up oh there been a changed um to your code um in your repository a commit has happened um code commit has updated itself oh like these are some key events let me trigger like nudge Cod code pip line and tell Cod pipeline hey you should be running right now um because I just sensed like a change if we were to pick another option which is the AWS code pipeline this is basically a simpler version that basically just triggers a check look for a check every so often periodically but cloudwatch events basically responds instantly to any event whereas the code pipeline might wait a few more minutes a few more hours before it finally runs and the output artifact format is we're just going to be using the code pipeline default which basically packages up artifacts in the most efficient way possible in zip files between the stages you know for example the source code from Cod commit is going to be packaged up into a zip file for um code build the build artifacts that code build produces also in a zip file um before it gets taken to code deploy and that's why we use our code pipeline default because it make sure that everything is packaged in a zip file exactly how we want it to be so let's press next and let us now configure our build stage if you remember what the source stage provider was code commit you probably should know what the build stage provider is yep it's code build um so we just need to make sure we're using the same region so that we can uh use the next uh choose the correct code build project and yep the build type should be a single build so let us choose next after that and our deploy provider have a guess who do you think is our deploy provider who do you think is currently managing the deployment U for our webat I'm hoping that you said COD deploy because that was absolutely the service that we were using to create our application create our deployment group create the deployment um the application name was what next to web deploy and the deployment group is going to be again next week web deploy so once that is set up we basically just told our pipeline hey by the way here are the different basic basically the different um parts of my pipeline that I visit whenever I want to um deploy a change so now that code pipeline knows that this is the flow of things um we're going to try watch it run for the first time um so here is basically code pipeline saying uh can you just review all of these settings that you've just set up just tell me everything looks correct and then you can create your pipeline so satisfying isn't it um I'm just going to skip through the steps that we've just gone through together um wow perfect and there we go the whole pipeline is now running for the first time oh my goodness this is our first time in the code pipeline um console together I'm so excited you can see that it's running now um and what does it actually mean to be running you know when the pipeline is running it means your cicd pipeline is an action you're watching your code being automatically built automatically tested automatically deployed to AWS environment step by step um so this is basically the whole reason why cod Pelin exists to set up this integration between code commit code build over here and code deploy so that they can basically run together automatically in one go without me having to click between them so what that means now because I've already set up this integration is now when I make a change to my source code in Cloud9 and I commit those changes I no longer need to go to build to a code build to click on start build I no longer need to go to code deploy to click on create deployment because basically those clicks are done for me now um by code pipeline very very cool now what we're going to do is we're going to take a screenshot of our code pipeline console showing this pipeline to start writing a document uh documentation so let me take a screenshot over here right now done and let us add that to our documentation so over here let us paste that over here into this box and I'm going to double click on this to move my file closer um to the left hand Edge so you can see the whole thing you can see my pipeline in that little screenshot looks pretty good yeah looks pretty good and I'm going to type in my documentation notes so a cicd pipeline is a practice of continuous integration continuous deployment this makes sure that changes made to source code is constantly being integrated is constantly being integrated updated in a shared git repository in a shared git repository so that other developers working from the same code base are always using the latest version of of the code H very cool um brackets this is what continuous integration means it also makes sure that n users are always seeing the latest version or updates to an application and in Brackets that is basically what continuous deployment is all about okay very cool just like that nice to set up a cicd pipeline um code pipeline I configure three stages you know the source stage which means the source code for my web app this is currently stored in code commit the build stage which means the service that is managing that is automating or managing the build process for my webat this is code build and then we have the deploy stage and the deploy stage means the service that is managing the deployment process for my web app I.E making my web app available to the world this is codoy fantastic I think we've done a good job over here oh we've done a good job over here looks pretty good I think I'm going to add a bit more detail to what the build stage actually does um because I think it deserves a little bit more detail so I'm going to add that over here in Brackets I'm going to add in Brackets here I'm going to add oops IE compiling and packaging my web app code into a handy War file very nice I'm very very happy with my documentation I think we're ready for the next step so in my next step let me swap these around one more time uh in my next step I'm now going to release a change so how we're going to release A Change Is we're going to edit basically what our web app looks like we're going to see our code pipeline pipeline automate saving those uh once we save those changes we're going to see our code pipeline um automate those Integrations between code commit code build code deploy so we're going to pretty much automatically see a change in our web server what our web web server is um hosting serving to us right after we commit some changes so this is going to be really cool how I'm going to do this is I'm going to rightclick and download some HTML files over here so I'm going to save the link as an HTML file okay save this and I'm going to update index.jsp which is basically the file in my um local repository in my project app um index of JSP is basically what outlines uh what goes into my web app the web app that people see you know that's why it's so simple right now because it's not much going on yet so I'm going to populate the code that I've just downloaded how I'm going to do that is I'm going to open it in my IDE so you can see the code um the HTML code over here wow perfect it's right here it's available for me and I am going to be downloading that um copying that basically and then pasting that whole thing the entire thing that I just um copied into index.jsp so it's going to look like a massive file now a lot bigger um but I'm just going to press save and next I'm going to be um saving some contents some image assets now you might be wondering hold on a second we were just copying HTML a content from an HTML file over to ajsp file yes yep you can do that and that's because with ajsp file um you can contain both standard HTML code as well as your Java code but we are now ready to upload all of the content from this ZIP file into our local repository as well so let me just save link as one more time and save all of this these files that's in this folder okay make sure that you're expanding the zip file so you're opening the contents in that zip file and this folder that gets created I'm just going to zoom in so you can actually see this so first of all there was this ZIP file but once I clicked on it and um open the zip file there's this folder that's waiting for me this is the folder that I want to be uploading into my Cloud9 repo so let us oh this is my that was my ID but inside Cloud9 let us go into web app so find web app let's right click on it and let's click new folder oh actually I think what we'll do instead of that yeah I think the better way to do this is I'm going to just delete mine sorry um so once here inside the web app folder what you want to do is you want to click on file at the top and you want to go upload local files you're basically saying Hey I want to upload some files that have downloaded locally into my computer and then select some files that you want to upload locally select the entire folder that you've downloaded and just click upload and that's it now the entire folder is going to be uploaded so just allow this action click on upload from this popup Banner if you have if you see that yourself um and you're going to see that work perfect that was super fast just like that all of the files have already been uploaded wow look at it go it's still going wow so nice so just like that a whole Suite of HTML files oh not HTML files sorry but image assets or other files relevant for my website have just been uploaded into my local repository in Cloud9 so that's perfect that's exactly what I want um and I'm gonna again commit my changes oh my gosh this is GNA be exciting so let me commit my changes and see what happens to my pipeline all right I've committed the changes I've pushed it upst stream so what that means is code commit now has the latest version of all of the changes I've just made to index.jsp um Co commit also now has all of the files that I just uploaded and watch the pipeline run again look at that build just said it's in progress what that was so fast so what happened just now was after I said commit my changes and I push it Upstream um over here in code pipeline it has successfully first saved all of my changes to my code commit um repository but more importantly it automatically just started code build for me what I love this moment so much it basically just means it has clicked start build for me automatically um now that camit has been um now that cookit has the latest version of my source code code boot has automatically started and once code boot has automatically finished code deploy will automatically work as well automatically start working so the pipeline is absolutely restarting in that sense this pipeline reacts to a Cod commit repository being updated so when you make a commit in your local developer environment which is basically what's happening in Cloud9 and that pushes changes up to a code commit repository then your code pipeline pipeline gets triggered it runs automatically um so this is super handy to know and it also means that once it's successful you know code deploy is going to tell you that it's successful oh our code build is still doing its job oh it's built okay it's built it's built and then we're going to see um code deploy basically deploy the latest changes that we've made to our web app onto a new onto the web server and I can't wait to see it happen this is cool but yeah once code deploy is successful we're going to go back to the tab that's hosting our web app and we're going to refresh it and see what we see now what do we see now after updating our um after updating our index.jsp and after uploading some files what do we see okay code deploy has said is a success so let us re refresh the tab wow okay we have our HTML file kind of working but as you can see not all of the files are opening for me so what I want to do is I want to make sure that my files over here are uploaded okay they're good but oh my goodness the folder name of my files is wrong it says you should be in a job you love files too oh my goodness it should not be called to it should just be called everyone you should be in a job you love files just like that um I think it accidentally appended name two into my um into my folder name because I've already have a copy of this folder when I downloaded it um but what that means is if you uploaded this folder and it also says two at the end please update it for yourself as as well um because you're going to end up seeing the same error as me um which is quite funny so that's okay let us go back okay to our terminal and make sure that we are saving and committing this latest change as well yeah now that I have updated the name sorry my cursor is looking a bit strange right now doesn't it um now that I have updated the name of my folder I absolutely need to commit the changes that I've made um and again Watch build happen again and watch deploy happen again but can you see how frustrating this entire experience could be if I had to manually build and manually deploy each time I make those mistakes and I have to update my web server after I fix those mistakes um it can get a little tiring runting these lines over and over again like imagine if you're an engineer and you're constantly releasing changes and you're constantly probably like fixing errors having to do deploy again having to do um build one more time it can take a bit of time it can be a little taxing so that's okay um we're going to save our we're gonna add our changes commit those changes one more time my commit message I think is going to be updated folder name for weet files and I'm again going to push my changes Upstream with get push I think it's going to work now please work that will be amazing if we worked um but yes now that I've pushed my changes Upstream one more time what do we think is going to happen I think this is going to restart itself one more time so our pipeline is already executing again now because it it sens that there's been a commit to the code um and it is basically some changes are being pushed Upstream we want to make sure that our pipeline reacts to that immediately and look our pipeline is that is so good um I'm very very glad to see that it's working as it should now again we know that this build process takes a bit of time so I think I'm going to do something sneaky um and make sure that we can fill in um we can have a look at this actually because this is probably the place where okay let's say code deploy has successfully deployed your application you're ready to check out your um web server one more time but you see this error this is the the error that I saw just now where when I tried to visit the public ipv4 address um for my web server it wasn't responding nothing was coming out um and the reason for that okay Okay the reason for this is your IP address changed remember when I checked my IP address and I was say oh shoot it went from 66 or 65 at the end my IP address just changed um and why why did that happen um so your IP address can actually change without you knowing because your internet service provider just gave you a new one this happens whenever you restart your router you make changes to your network it's also super super super common most devices use Dynamic IP addresses and that means your IP address can change as frequently as 24 hours or even less you know every few hours it could be changing um and that's just something that you absolutely need to be aware of and adapt to um when you are passing your IP address through to the security group for an ec2 instance because remember when we first set up our ec2 instance we we enter an IP address you know when we when we deployed that cloud formation template so what what that is saying is um our ec2 instance is only going to allow traffic coming through from the IP address you typed in when you first deployed that cloud formation template um and if your Cloud if your IP address has changed since then if your IP address has gone from 66 to 65 what happened to me it means you're um easy to instance is going to say I'm going to allow all traffic from the IP address that ends from 66 hey your IP ends your IP address ends in 65 I can't let you through I'm only going to let through traffic coming from the IP address ending in 66 and you're and you're GNA say no that device is me it's just that my IP address has changed but well easy to and the security group is not going to listen it is very rightfully very strict um on the IP addresses that it allows through and that is why just now we had to go into our security group we had to click on edit inbound rules um we had to do this thing where we put in our new IP address and add that sl32 at the end to finally see um our web app working correctly um our web app correctly sorry I just realized I said working correctly but working correctly probably isn't the right sentence there um we had to basically enter the new ipv4 address uh enter the ipv4 address for our we server and we have to put HTTP HTTP in front run it again to see our web app actually working so let me visit my web app one more time is it g to work this time nice this is cool very cool my web app is working correctly now so this is great um what that means for me is we've just successfully released a change to our web app and the building and the deployment was automatic it was done beautifully because of the help of code pipeline automating that the Integrations between them oh doesn't that look beautiful it looks beautiful I'm in love with it I'm in I'm so in love with it so let us take a screenshot and put that screenshot through okay over here let's put that screenshot through here um and let's write out some documentation very nice so now that I've have taken a screenshot um I am going to make a few mentions my cicd pipeline gets triggered by a commit to a commit in my local repository local working environment which I'm going to say in Brackets Cloud9 which updates my code commit repository I tested this by making two updates to my web app source code these changes were what changes did you make in your Cloud9 IDE these changes were an edit to index do JSP and uploading a folder of image assets um and uploading a folder of image Assets in the web app folder of my project files and I'm just going to make sure that these are bolded like this um once my pipeline was ex once my pipeline executed successfully I checked which tab did you check I checked the ipv4 address of once my pipeline executed successfully I check the ipv4 address of my web server that's hosting my web app that was very very successful I'm so happy to see it um I think we can move on to the next step now very very cool so let's visit our next step okay which is a trigger a roll back I love this step because you really see the power of code Pipeline with this step it is massive okay um scroll down to the deploy panel in code pipeline okay once you're here click the start rback button okay and when you are starting a rollback you can click on here updated apps. yo and let us click Start roll back one more time okay is the robot going to happen let us wait for it to roll out okay so do you see roll back happen what does roll back mean what does roll back mean you shall find out in a second let I'm gonna let it sync in that you're now seeing a rollback in your deploy panel um and okay let's talk about what roll back means a rollback means going back to an earlier working version of your application so this is a very Su very I was gonna say a very super useful tool yikes it is a super useful tool if the latest changes cause some problems so let's say we deployed some changes continuous deployment we're automatically just deploying things all the time and the latest automatic deployment was like a bit of a failure something went wrong there and it is causing our users to not be able to see our web app or use some functionalities in the web app and we say screw it screw it let's roll back the latest deployment that we've made so that our users are not stuck by this error anymore so your source code over here your source code is going to stay the same look it still has our latest commit message in it updated folder name for web app files that's the the very last commit we've made and the build stage is still going to be building it's going to be creating a war file for um for the latest changes that we've made but in terms of deployment this has rolled back it has gone back to the version of our code when we only just updated aspect. yml we haven't done anything fancy to our web app yet so if I were to refresh this what what are we going to see so let me refresh this what do you see our web app has reverted back to its old look um and that just means that the rollback was successful um very very cool what I'll do is let's take a screenshot of your deploy panel showing the successful rollback so let us take a screenshot of this akinola says well done net thank you so much akinola and thank you for staying here for the entire live that is crazy or if you took a break and you just came back thanks so much for coming back it means a lot so let's take a a screenshot of the successful deploy panel actually let's take a bigger screenshot so you can see the whole thing and paste that into the first frame on the next slide so oh I just realized you can't see me but just now I was on this slide release a change in my documentation template but I'm going to go down here I just quickly click on the bottom preview image for this slide and I'm going to paste the image over here there we go so now you have a copy of that successful rollback panel and what is the next step after this refresh the tab with your web app open y we've refreshed it you have seen that our web app has updated itself to that old version that looks a little bit simple but hey if let's just say our latest deployment had a few errors I'd rather be seeing the older simpler version of my web app than um a web app that doesn't actually work and is crashing um so this is a bit this is absolutely a success so let us take a screenshot of our web's latest look I love how we call it the the latest look but actually it's the it's the old version um so let's just take a screenshot of this and let us paste that into our documentation template put that into the second slide looks good everyn says I have to try this over the weekend yes would you like to give it a try I would love to see how you find this project I bet you're gonna crush it you're gonna absolutely crush it it's gonna be so cool to see how you find this project um and yeah now that we have pasted our screenshot in the second frame um before we write anything let us actually do a bit of understanding um we're gonna go back to our code pipelines pipeline page and notice that it's only a rollback of the deploy stage so can we have a few bit of evidence that our source stage is actually in the latest version of our code yes we can um notice how the source is referencing the the last commit message that I've put in through to Cloud9 you know when I committed those changes after I saved um after I updated index.jsp um after I updated the folder name from everyone should be in a job they love files 2 into everyone should just be in a job that they love whenever you name that folder I wrote this commit message and this commit message is basically the version of Co commit um uh this is basically the version of Co Cod commit that our source stage is on so if you want to see evidence of that that just click on that little hyperlink text over here just click on that and you're going to see a commit page and this commit page is basically a recap of all of the changes that you've made in a single commit so I really like this page because it's a great place to just review like what are the changes I made when I when I push through G commit um and in my case remember how the the very last commit that I made was basically changing the name of a folder so was basically saying that hey like you've added these files because um these files now have a new name it went from you should be in a Joba files to and just you should be in a Joba files and that to the commit page it's like oh you've added something new here um so this is really cool so this basically is giving me evidence that to our source stage we're absolutely still in the version of um our code that is after I've updated my web app to look like that fancy flashy um landing page just now um and you know what you can even click on commits over here to see a list of all of the commits that you've made to your um local repository in Cloud9 look at that you know if you just even click on this commit that was back when we added the that build spec. yml file you're going to see that oh this is your commit page remembering that oh yeah when you push through that commit the changes that you made is you know you created a new F called build spec. yml and you populated it with this code oh yeah you also created settings. XML you populated it with this code isn't that so handy for having a recap of exactly what you did at every commit um the power of git repositories super super powerful so with that learning let us switch back to our code pipeline um code pipeline pipeline it's just so so funny trying to say that the code pipeline pipeline um and let us oh yes so we have just talked about all of this um and let's click on release change what does release change mean all right releasing a change will detect the most re recent change in each location configured in your Source actions and run that change through the pipeline do you want to continue there's even a little panel that says your Source revision will override oh okay we don't really want to touch that actually I just realized this is something a bit more complex that we won't go into but um what release change was saying is it is going to find the latest commit um that you've made and it's going to roll that latest commit that you've made update code commit to make sure that it has um it has the version of the latest version of your code and it's going to make sure that you're building now the latest version of your code and it's going to be deploying the latest version of your code so that is absolutely the best way to just automatically release changes release something new that you've made um throughout your entire pipeline super super helpful whoa someone in the chat says let's go and it's giving me a tear face I'm go with feeling sad right now why are we feeling sad I hope you're okay there's also fire emojis going off right now in the chat thank you so much to hex TV for the love and for the support that is very very kind of you um so building always takes a little bit of time but it's okay it just needs that love that's fine um once building is done and deployment is done we're going to refresh this tab once more um so that uh we're going to refresh this tab once more so that we can see the latest version of our web app once we refresh it so we're going to refresh this tab once more but we're gonna have to wait we're gonna have to wait for building and the deployment to be done Lawrence in the chat says let's go net I have to say Lawrence every time you say let's go I just get that boost of energy that I didn't know I needed but I'm definitely so happy that I that I have it now so thank you so much Lawrence it truly means the world um okay so ideally what's going to happen is once we've released those changes U and deployment says that it's done we can see that our web app has again come back to the latest version um that has been sitting in our Cloud9 um what is it called our Cloud n working environment okay very very cool all right we're we getting so so so close Okay deployment succeeded shall we see shall we see our latest changes I'm so excited okay wait time's over I'm going to assume that our server is now reflecting the latest version of our code and it is oh my goodness this is so cool there we go it's come back to the latest version of our code now did you see that just now it looked like such a simple weat we released the changes we've made sure our deploy deploy stage is now reflecting the latest version of our code and there it is it sure is now I am just so satisfied right now that is so so good to see um so congratulations you now have a working cicd pipeline all set up amazing work I'm so proud of you and I hope you're are proud of yourself um and let us get straight into wrapping up our documentation but actually before we do that I would rather that we talk about triggering a roll back um I just realized I didn't get to fill in all of my documentation steps for this so let's do that you know what let's do that a roll back in a pipeline means oh my gosh irn dropped some fire fire emojis in the chat thank you so much thank you win that's super cool of you a roll back in the pipeline means um I feel like saying rolling back is cheating so a roll back in a pipeline means reverting the version of our code that a stage of our pipeline is referring to to um I initiated a robc on the deploy stage oh typos on the deploy stage that's where I rol initiated my rollback I checked the source stage and learned that the source stage was unaffected by the rollback and stayed it really did it really state in the in state using the latest version of my source code once the rack was complete my web app what did it look like my web app appearance reverted back to the simple index.jsp P file revert it back to reflect the simple index.jsp file the simple JSP file um I would say actually to reflect the simple version of my index.jsp file I.E before I ever changed uh before I ever updated my index.jsp file and uploaded New Image assets to update my deploy stage back to the latest version of my source code I what did you do to get your web app back to displaying the next homepage I re I released a change in my code pipeline pipeline releasing a change means the latest version of my source code um gets pushed um gets used gets referenced across the source deploy source build and deploy stages of my pipeline that was so satisfying I loved it Al righty I think now we are finally ready to wrap up our documentation so to wrap up your documentation today all you need to do is fill in the prompts for this page called my cicd Pipeline and then once you're done you'll be ready to write in your key learnings over here I love this page by the way my key learnings is absolutely just such a good page to condense all of your key learnings about this project and it's also one of the most unique Pages across all of the documentation that we see um while the first view Pages usually people get to share similar thoughts because the prompts are quite um Direct it is quite like asking you to note something down specific from the process but my key learnings is where people like just say what they want to say say what they've learned and we love to see it we absolutely do especially this part one thing I didn't expect was just such a great section um to be writing we love to read this part um and once you're done writing your M your key learnings you can summarize again your experience um give a brief introduction to AWS code pipeline how you used it in today's project and how long this project took you in total as you can tell this project has taken me two hours and 45 minutes um and documentation probably has taken about 15 minutes of that for myself so far probably 30 minutes total um once I tidy up you know the other parts of my um documentation and when you're done with that I think you're ready to kind of do some visual touchups you know first add a screenshot to here so you know the screenshot I would add would probably just be this homepage here so I would take a screenshot I think now is the perfect time to do it right away U I'll take a screenshot like this and I'll probably put that as one of my cover photos you know this looks pretty good um and then the other visual touchup that you could do uh is to fill in these with your name and your profile picture so you can absolutely use any profile picture that you're comfortable with um that you feel like represents you very well I don't know if you can find a profile picture of me easily over here um oh you I guess it really can't um which I mean which means I can demonstrate something you can you can click on you know from the uploads section in canva you can click on upload files and over here you can you know find the image of yourself that you want to use and upload that so shall I do this one I think this one kind of works um so this is a photo that I've taken that I'll use as my profile pick and I'm going to click on this okay once you click on that uh photo it's going to look huge that's okay okay we're gonna just edit this photo to make it um we're just going to edit this photo so that it's a bit smaller and actually if you want to you can just simply drag this photo straight into the circle and look at that your circle will populate itself automatically I love just how flexible it is that you can double click into the photo to resize reposition and I'm going to absolutely resize it so that it looks a bit like a profile pick like this and then I will click away so I can save my changes yeah it looks pretty nice actually I'm quite happy with this um and yeah with this photo now that you have a copy of it and you have a copy of your name name you can always select them both press command C on your keyboard or control C if you're using Windows um and then paste it over here like this and then you can use that to resize it here okay over here resize it like this so that your image is replacing the one below um and then for Natasha on actually I'm going to take back what I've said I'm going to use another technique I'm going to delete this first and I'm going to press command F I'm going to find the words your name like this and I'm going to replace them all with my name Natasha on so gonna type in Natasha on here gonna click on replace all boom now every single page should have my should have my name on it already which is going to be really handy so if you click on the next step yeah you can see that my name's already there um and instead of linkedin.com your link dot dot dot make sure you update that to actually reflect your LinkedIn URL so let's say my LinkedIn URL is linkedin.com Natasha on I can just do that like this replace all boom done it looks so good I think it looks great so shout out to our amazing team for putting this template um together for us to use today um and you can always just paste that existing image and then copy it again like this command C and then paste it in the next one what I usually find is sometimes now that you copy it again from that sticky spot you can just paste it again and again and again and you don't need to reposition your image at all so this is pretty helpful so I'm just like leafing through all the pages in my documentation template and just sticking that same photo in and let's say I get to the end and I'm like oh actually I want this image to be in here and you see you can't drag it that's so annoying how you can resolve this is you can zoom in here here click detach image the very last option in this popup banner and then the image is now detached and you can attach it to something new straight away so that was super helpful it's pretty nice too um and if you see that the image doesn't really attach very very well what you can do is you can try crop it down like this and then drag up the entire photo like this um and that looks much much better than when half of my face is hidden um so that's perfect Okay cool so let's say that you have finished up tidying up your documentation it looks great Lawrence in the chat says those deployments were really was really really helpful in the awcp exam keep in mind though let's go let's go indeed Lawrence nice tip um so now that you've wrapped up your documentation it looks really good share your work if you're here right now you're a champion that spent almost three hours in this project that is huge that needs to be celebrated I want to stand up giving give you a standing ovation for doing this project so please share your PDF with the next Community tell us that you've done this project so we can all celebrate with you I can't wait I think it I think it's going to be amazing um the very first time we see someone post a documentation for the crown jewel of this entire Cloud devil project um such a celebration to be had I would love to see it um and then next you can share it on LinkedIn so you can click here to open a prei post ready for you to use um and once you open it yeah you're going to see that this post already has some copy ready for you to use that's all about your code pipeline um project journey and this is something that you can absolutely close Away by the way because you shall press the X here and click the plus here to actually open up more options and then add add a document now adding a document is exactly how you can upload a PDF file and create that Carousel that like swiping I would say those kinds of images that can you can continue swiping and seeing a new image of um those are called carousels and you can absolutely create your own by uploading a PDF so what kind of PDF do you think we should be uploading I hope the answer that you're saying right now is um your documentation because that's absolutely the PDF that we want to be sharing um so let me upload a documentation that I've seen recently and it would be the I Am project that Abdul Raman has created so shout out to Abdul Raman if you're seeing this I'm uploading your I Am project documentation as my example today but your document title should absolutely say cicd pipeline with code pipeline because that's exactly the project that you've just done um and once you're done with that you can click on done at the bottom of your panel and you're done and then you can click post and then it's ready for the whole world to see so that's amazing um all right once you've clicked post don't forget to tag next workk change this to an actual tag um find this in your copy okay highlight the words next work and ideally a drop down is going to show up for you to select next week from the table of options but if it doesn't show up you can backspace and type in the at one more time and that's absolutely gonna show you next work as an option that's how you can click us and then click post and then click post so don't be trigger happy like me make sure you update this into an actual Nextbook tag please um and then click post and then you're all done um so that is super exciting and super easy um and once you're done uploading your file into LinkedIn we can start wrapping up today's project by deleting all of the resources we've used today so before you read the steps uh before you read the steps on deleting your resources do you think you can challenge yourself to delete everything in this project without any guidance even if it's just one or two that you can remember deleting that is so much better than relying on the guide to figure out what resources you want to be deleting because um keeping track of the resources in your account and deleting them at the end number one skill I really think that you need to be delet like building that skill yourself because when you're creating personal projects no one is going to be writing a guide for you um on what resources you should be deleting off of your account so build this habit as soon as you can um and this is absolutely one of the best places to be building that habit because once you're like okay I think I've deleted everything there is a checklist for you over here for you to make sure that okay you really have done this tick tick tick tick tick um there are quite a few resources for us to delete today so let us go through those right now um the first thing that I always would do is to delete e um cloud formation templates because that clears off a lot of resources for me so the first thing I'm going to delete is the ec2 VPC stack um Cloud information stack um so just once you select a stack in cloud formation there is a delete button beautifully just sitting there waiting for you to click on it um so click on delete and delete it right away same thing with the next thing um your devops project stack that needs to be deleted so click on that select it and then click delete over here and delete it off done that's not just two resources that's many resources that were deleted just by deleting those Stacks um so we have deleted two cloud formation Stacks what else can you think of um I really like to just go through all of my tabs you can see all of these tabs open just go through those tabs one by one and think oh is there a resource here that I've created manually that I should be deleting right now um so in this case I'm going to be deleting my build artifact as well so let me build artifact bucket so let me delete delete the bucket you know this is in the Amazon S3 console you want to be finding your build artifact bucket and delete it off but do we actually need to delete our build artifact bucket I wonder Let me refresh my page and see what comes up okay so my build artifact bucket should be getting deleted by my cloud formation stack because don't forget that build artifact bucket was a part of that cloud formation stick um when we first um deployed it so that means cloud formation should be deleting it for me hm there was actually a delete failed so what happened here ah the boot artifact bucket refused to delete okay so I guess that means we can delete it for um we can delete it for ourselves after all huh so let's click on that let's and let's try deleting it um I wonder why we could not um our cloud formation stack could not delete by itself do you think it's because there are actually objects in the bucket now I think that might be it I think that might be the reason why um so let's empty the bucket for ourselves and then delete the build artifacts bucket okay let find the build artifacts bucket here actually let me go back to the buckets page and then delete it from the buckets page so find your build artifacts bucket one more time select it over here and press delete I think we can successfully delete it now because we could empty the bucket how good is this how good is this thank you so much code pipeline also creates um buckets for you so make sure we're deleting those too so let us delete that uh again empty your bucket before you can delete it properly um so I'm G to make sure I type permanently delete or copy and paste permanently delete um and then let's delete the entire bucket as well so let me select the bucket let me click on delete let me copy in the name here and delete the bucket did it delete okay perfect it deleted um we have our S3 bucket deleted what were the resources that we created for code deploy because code deploy was the one resource that um we didn't was the one like stage that wasn't included in our cloud formation template at all so let's make sure that our code deploy role is being deleted is what I can think of okay um let's delete that and let's type in the role name in here to delete it successfully hm I also just want to make sure were there any other resources that fail to delete from my cloud information template if there is I'm going to make sure that uh I'm deleting those manually so what I'm going to do is I'm going to just check the events for my cloud formation template and see if any other resources fail to delete okay no other resources failed to delete that's wonderful thank you so much um cool well I guess that means we can move on to our policies um were there any policies that need to be deleted let's have a look nope nothing that needs to be deleted over here um I guess we can move on to let's see Cloud9 our Cloud9 IDE can be deleted so let us go to Cloud9 and let's visit oh that is code commit that's okay let us find Cloud9 on the search bar and let us try to delete that as well if there's a resource that you think I'm missing at to the chat I would love to see if he get to catch anything that I've missed because I think that's totally possible by the way so let me just type in delete to confirm my deletion done um pla said this in the chat says nice I'll make a post thank you so much that's really cool I can't wait to see your post um I think it's going to be so awesome when we start to see people posting about this exact project because it truly is the hardest project yet truly is um so it absolutely deserves like a big congratulation um if you get to this point now you're going to notice if you were to just leave through what we have across code commit to code build nothing's in here already why is that we had a code commit repository we had a code artifact domain we had a code artifact repository you know we have two code artifact repositories what why are they all gone and the code build the build Pro is gone what it's gone now uh so the reason for that is because these were all resources that were part of our cloud formation template so when we deleted our cloud formation stack all of these resources were delet deleted with the stack so good so good such a timesaver now inside code deploy a lot of things that we created in code deploy of course we have to delete manually because they weren't a part of our cloud formation stack so let us click into the application and delete it off so let's type delete over here so good and again pipeline our crown drbal for this project code pipeline unfortunately let's delete that pipeline that needs to be deleted too so let's type delete in this field um the following resources were used to detect Source changes and will be removed yeah perfect I think this is exactly what we want to be remove removing as well so this is cool let's delete it and there we go code pipeline has successfully deleted itself as well um do you think we can check I think it's time to check and and see if we've ticked off everything okay we have definitely deleted our Cloud9 IDE uh we were deleting it just just then it's deleted now it's gone cool in our cloud formation console we deleted the two stacks it was the first thing we deleted so we definitely did that en code pipeline deleted the pipeline in code deploy we deleted the application and S3 did we delete the other buckets created by code pipeline yes we did um and if you're wondering why did we create S3 buckets um it's because code pipeline creates S3 buckets to store those intermediary artifacts for each state of your pipeline you know the source code that it needs to turn into a zip file and pass to code build and then the build artifacts that code build creates that it needs to pass the code deploy um those artifacts get stored in S3 so absolutely that that automatically generated bucket needs to exist um but since we've finished the project now it can absolutely go as well and that's why we deleted it too in the I am console there was a role that we forgot to delete it was the code pipeline service role so that's definitely something I need to I need to make sure we're deleting goodness me so let's visit the I am console and let us delete code pipeline aha there was one a customer managed policy called code pipeline oh you can barely see that I'm so sorry let me just zoom in so you can see now so there is a policy called AWS code pipeline service role so let's make sure we delete that um and we absolutely will be okay after we remove it too so no worries delete it now and same with the same with the role so let us delete code oh I don't think I have my roll anymore maybe it was deleted um let's also make sure that the code build rooll and the next work code deploy Ro are also deleted so let us click delete here um let us type delete in the field we don't need it anymore delete delete the role with the name next with code deploy role cannot be found okay I guess it's already been deleted so it couldn't be found which is not a bad thing at all it's already been it's already gone um and is there anything else is there anything else I think we have deleted the policy just now when we were in the policies Tab and yeah if I were to type in code pipeline can I still see it the one that I created nope you don't see any other customer manage policies here it was already deleted very cool and we still have more in the cloudwatch console we still need to delete some of the log groups so let's visit cloudwatch over here and let us visit our log groups over here to delete all of the laog groups that were stored about our web app yeah we should definitely be deleting this my goodness sad in the chat says are access to these Labs free absolutely it is free the link to um getting access to these Labs is in the description box um and I can't wait to hear how you find it if you get stuck please feel free to email me um it is Natasha next.org I'm just going to type that in the chat in case you get stuck at any time just know that I can be contacted from this email as well very cool um and I am just going to delete this log group because we do not need this at all next we build logs as well oh oh my screen is stuck that is okay let me click on next build logs and let me delete that all together delete log groups okay um and press delete oh I think my screen is stuck one more time that's okay I'm just going to give it a second oh dearly okay can it work now okay it's working now let me click delete pH I think that is it oh my goodness wow that is a W for today was that project 7 of the dev devop series all done was that the entire devop series all done in one go woohoo congratulations that is a wrap for this devop series of eight of this projects well done you made it to the very end of the devop series you should be so proud of yourself for making it this far because look at what you've created um over this series and technically in just one sitting if you're doing this entire project in one sitting as well in just three hours um we have used Cloud9 to create a suite of files for a Java webat we have used used Cloud9 a Cloud9 IDE to be hosting our Cloud9 an ec2 instance to be hosting our Cloud9 IDE there's code artifact which is what we're using to save um backup copies of our web apps our web apps packages and dependencies Co commit is our Google Drive in the cloud I love using that analogy so much it is the one place where we're storing our code in the cloud and code build is using the code that's stored in code commit taking it and it's compiling it it's packaging it into a Java um War file which is that single zip file that contains everything a web server will need to host your web at and it is storing that Java War file into this S3 build artifacts bucket and from this build artifacts bucket code deploy we'll go and grab that artifact file that's sitting in our bucket grabs it and it goes and Chucks that file and starts to host it in our web server very very cool and the web server what is it displaying what does it show if we try to visit our web server's ipv4 address it shows us this beautiful website over here so that is our cicd pipeline working with the power of code pipeline which is what we use today to connect all of these three stages together making it continuous making a continuous integration and continuous deployment so today specifically for code pipeline you've learned how to set up a pipeline you've learned how to execute a pipeline you know make that pipeline work run do its thing with integrating all three steps between code commit code build Codey deoy You released a change that was really cool um and you triggered a roll back so that was awesome too um I am just so happy that we have created such an amazing thing using AWS services today all of this is made possible with this Suite of tools um this code family of tools and of course with a lot of your patience a lot of your dedication to learning you've made it to this point as well um so a big congratulations to you it is so wild that all of these learnings can be packed into one project so great work and can't wait to see you in the next project my goodness what project topic would you like to see next we'll absolutely do that um the whole reason why the devop series exists by the way is because we actually weren't planning on creating a devop series until the people joining the community said by the way I'm interested in devops by the way I'm interested in terraform by the way I'm interested in cicd so we thought okay I guess we should make projects about this and that's why this entire devop series is existing today God of War fan says thanks for the efforts Bedrock please oo Bedrock is cool um it's in it's within AI machine learning I remember so let us look into that one we absolutely want to revisit Ai and machine learning as well so that'll be perfect faren Perry says this channel is so dope thank you so much that's so cool what a compliment I'm I am I'm very very touched thank you so much Baron all right to commemorate this very special occasion you have this special badge from us to you that you are devops engineer in the making you should be so proud of yourself all right that is a wrap for today's project it has been a blast thank you for doing this project with me um and let's stay in touch in the community all right I am signing off for now but I I will chat with you in the community wow I just repeated myself but that was absolutely worth it all right bye everyone thanks for today see ya