DevOps Project - How to Learn DevOps Through a Practical Project

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
one of the most important things when getting into a new field is getting practical experience but how can we get practical experience for a job when the job itself requires you already have that experience this is why when you're first starting out in devops it's important to learn the tools on your own through personal projects and this is what this video is all about in this video i'm gonna go over how you can get started with building your own personal devops project this is very similar to how i got started in devops when i was transitioning over from a network administrator and needed experience with tools i haven't used before this devops project is going to go over these eight key concepts creating a development and lab environment using a tool like vagrant configuration management with tools like ansible basic application development containerizing your application using docker docker compose and kubernetes adding full stack features to your containerized application like nginx load balancing and databases provisioning your application to the cloud using services like aws gcp azure or vulture source control using get github or get lab and finally integrating ci cd into your application for continuous integration and continuous delivery so the first and most important step is setting up your lab and development environments this is so important when you're starting out in it even if you've been in the industry for a while it's really important to have a lab environment so you can continue learning this is a highly competitive field and unless you're continuously learning you're not going to stay ahead of the pack so the tool that i recommend most when creating a lab environment is virtualbox you can use virtualbox to create virtual machines and you can have highly complex lab environments with multiple virtual machines using virtualbox now another tool that i recommend using with virtualbox is vagrant and what vagrant will do is it's going to allow you to make what we call infrastructure as code and provision multiple virtual machines using a configuration file so instead of having to go into virtualbox and manually use the gui we use vagrant to provision our virtual machines and this is actually a really good introduction into what devops is in general in devops we don't like manually going into a gui and making manual configuration changes we like to put everything into code and configuration and then deploy it that way so vagrant is a very good tool for doing this it's super easy to use and learn and it's free to use so all you need to get started is install your hypervisor in our case it's going to be virtualbox and then after that we install vagrant after you have vagrant installed if you just want a simple virtual machine it's just one command to download an image and provision the machine if you're looking to run multiple virtual machines you can create a vagrant file to define the specs of the machine and then it's just a single command to turn them up i highly recommend learning vagrant to help you get started i have a short playlist that will teach you all the basics check the link above or description below for that after you have your machines provisioned with a tool like vagrant the next thing you should do is configure them and that's where a tool like ansible comes into play you should use ansible to manage all your machines and make sure that they have a consistent state use ansible to update and patch your machines as well as install the software that your machines need after you have your environment set up and you're able to manage it with ansible it's time to start building an application that you can manage and this is where most people get stuck they're not really sure what they should build and they usually end up abandoning their project so my advice is to start with something very simple and just build it up over time my recommendation is to start off with a simple micro framework like flask and just have it return hello world you can build this up over time into your own blog or your own web application but just sort of having an idea of how to deploy a simple application is good enough for now if you're looking for ideas on how to take your application a step further maybe you could have your website scrape data from the web perhaps reddit or twitter and then store that data locally on a database and then present it on your website this is probably the best idea to start with and just keep building it up and adding complexity as you get better now devops engineers don't need to be application or web developers by any means but realistically unless you're making and building something that you're passionate about you're probably going to abandon this project early and that's going to prevent yourself from continuing learning and developing your skills plus if you make something cool you could possibly even make some side income off of it this is the way i got started so i recommend it to you guys as well so once you got a simple application from there you should learn how you can containerize it so going back to the website example you could containerize a web server a database and a load balancer like nginx traffic would hit your load balancer send it to the web server and the web server could grab it from the database this is pretty typical of something that you would see in the real world so it's going to be great experience for you when you're building this application and dockerizing it i suggest that you define your application in docker compose docker compose is a tool for defining and running multi-container docker applications and it's really powerful at that i've developed a lot of complex applications with microservices and using a tool like docker compose makes it pretty simple as well as portable after you have your application containerized you could take it a step further by converting your servers to kubernetes pods and deploying it there but before you get too involved in containers and kubernetes my suggestion is to push it out to a cloud service like aws azure or google if you're looking for a more low-cost cloud solution then i suggest looking into providers like vulture or lenode no matter which cloud provider you pick it's going to give you good experience on deploying a production application now when it comes to cloud deployment you can have a look at tools like terraform to provision your cloud servers but going through the gui is usually fine once you have your cloud environment provisioned this is when you're going to see the benefits of infrastructure as code configuration management and dockerized applications you should be able to take the applications and configurations that you built in your lab environment and easily be able to push them out to your production cloud servers oh and one thing that i should mention is that the entire time that you're learning these skills and tinkering around with these tools you should be utilizing get and github for me github is basically my knowledge base of everything that i'm learning and i've learned i don't use tools like onenote anymore all my configurations and notes about tools are well documented in github and easy for me to reference when i need them once you have your simple application deployed on the cloud you can look at implementing some cicd try starting off simple by having a github action linked all of the code that you commit get github and ci cd principles are really important for devops so make sure that you're implementing these tools and practices in your own project if you want to learn more about github actions and how you can implement it into your own project have a look at my github actions tutorial so that's it for your first devops project if i was starting off in devops now this is the route that i would take to get started and get myself the most practical experience possible i've done guides and tutorials for all the tools that i mentioned in this video so if you're looking for help on a specific tool that i mentioned just go ahead and look for the video that i created on it before and it should give you all the guidance that you need to get started anyways in the future i'm going to do a full length practical tutorial on all the tools that i mentioned in this video so if you're interested in that please leave a comment below hit the like button and subscribe to the channel if you're not already thanks so much for watching and i hope to see you all in the next video
Info
Channel: DevOps Journey
Views: 24,128
Rating: undefined out of 5
Keywords: devops, devops journey, devops project, devops project examples, devops projects, devops projects 20 real time devops projects, devops projects for practice, devops projects for resume, devops real time projects
Id: oif22pmFMuI
Channel Id: undefined
Length: 7min 45sec (465 seconds)
Published: Mon May 17 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.