Master Three-Tier Application | A Complete DevSecOps Guide on AWS with Kubernetes, GitOps & ArgoCD
Vložit
- čas přidán 14. 06. 2024
- 🚀 Launch Your Own Cloud-Native Applications with DevSecOps on AWS! 🚀
Join us on a thrilling journey as we dive deep into the world of cloud-native applications powered by AWS, DevSecOps practices, and Kubernetes. This comprehensive tutorial video covers every step of setting up, deploying, and managing a robust Three-Tier application on Amazon EKS. Whether you're a developer, a DevOps enthusiast, or an IT professional, this guide is packed with valuable insights and actionable steps.
What You Will Learn:
IAM User Setup: Kickstart your project by creating an IAM user with the right permissions.
Infrastructure as Code (IaC): Master Terraform and AWS CLI to deploy a Jumphost server.
EKS Cluster Deployment: Seamlessly create an Amazon EKS cluster with eksctl.
Load Balancer Configuration: Optimize your application's accessibility with AWS ALB.
Dockerhub Repositories: Automate the creation of Docker image repositories.
DevSecOps Integrations: Elevate your pipeline with Sonarqube, Snyk, and Trivy.
Continuous Delivery with ArgoCD: Implement GitOps for streamlined deployments.
Monitoring Mastery: Set up Prometheus and Grafana for in-depth cluster monitoring.
Experience the Power of Kubernetes and DevSecOps:
Dive into the core of modern application deployment as we guide you through configuring Github Actions, setting up continuous integration and delivery pipelines, and ensuring your application is secure and scalable. From code quality analysis to vulnerability scanning, learn how to integrate cutting-edge tools into your workflow.
Full tutorial documentation on Medium / kubernetes-devsecops-c...
Here are the links to the repos
Application code: github.com/cloudcore-hub/reac...
IaC code: github.com/cloudcore-hub/iac_...
Bring Your Application to the World:
We don't just stop at deployment. Learn how to configure DNS settings for custom subdomains and ensure your data persists with Kubernetes storage solutions. Witness your application come to life, accessible to users worldwide, and monitor its performance in real-time with advanced Grafana dashboards.
Follow-up on how to setup Mongodb: • Connect Mongodb databa...
Whether you're looking to enhance your skills or deploy your next big project, this video is your gateway to mastering cloud-native applications on AWS. Subscribe for more in-depth tutorials, and let's transform the way you build and deploy applications in the cloud!"
Timestamps and chapters:
• 00:00:00 - Introduction to GitOps
• 00:02:26 - Tool Stack
• 00:02:46 - Architecture Diagram
• 00:05:41 - SSH Exchange between local computer and Github; Github Secrets
• 00:15:41 - Create IAM user on AWS, Access key, and Secret
• 00:20:47 - Create S3 Bucket for Terraform State File
• 00:23:23 - Review IaC Terraform and Github Actions Pipeline
• 00:37:10 - SSHing into the Jumphost Server
• 00:39:27 - Provision Kubernetes Cluster on AWS EKS
• 00:40:32 - Review Application code and Github Action Test and Build pipeline
• 00:45:43 - Setup Sonar Cloud for Code Quality Analysis Action
• 00:49:45 - Create Github Personal Access Token (PAT)
• 00:52:12 - Set Snyk for Vulnerability Scan on code and filesystem
• 00:53:30 - Setup Dockerhub for Image Push
• 01:04:36 - Set up Load Balancer in EC2 Jumphost server for EKS
• 01:05:51 - Install Helm Kubernetes Package Manager
• 01:08:24 - Install ArgoCD
• 01:10:15 - Set up ArgoCD Dashboard
• 01:10:59 - Install and Setup Prometheus and Grafana
• 01:17:17 - Deploy Application using ArgoCD
• 01:20:04 - Create A-Record for the custom DNS on Route53
• 01:23:27 - Test out the Application on the browser
• 01:25:00 - Create more Grafana Dashboards
• 01:32:06 - Test the Backend API
• 01:34:26 - Clean up all the resources
🔗 Don't forget to Like, Share, and Subscribe for more tutorials like this. 🔔
#DevSecOps #AWSTutorial #Kubernetes #EKS #Terraform #ArgoCD #Sonarqube #Snyk #Trivy #Docker #Monitoring #CloudNative #ApplicationDeployment - Věda a technologie
Brilliant content.... Keep posting more of it.
Much appreciated
Thanks for the feedback
I didn't saw anyone who implemented whole frontend backend and database in CZcams u r great keep it up🎉
Thank you
Brilliant content!!!! I can't wait to get more stuff.. One small feedback for the benefit of new starters, Please try to always test your application in your local before moving to EKS.
Thanks for the feedback.
Wow!!! I just fall in love with this project! Am going to practice step by step!!
And one thing I love soo much is the background sound, is so relaxing and calms every nerves down! Make absorption super!!! I love it!!! Thank you!
Thanks so much! 😊
If excellence is a person, then you are excellence personified. This is just outstanding! Thank you for creating one of the best devops video i have seen on CZcams. I wish i can like it more than once😀. I see this channel exploding soon.
Thank you so much for the feedback. I will definitely create more
Great work!!! Create more projects like this
Sure. Thanks for the feedback
Thanks for a wonderful Project Bro.
Glad you like it
Great work!
Thank you
wonderful
Thanks for the feedback
This is cool what an awesome efforts by you i just subscribed , cheers and lets keep the flag flying, Nice jobs sis👍
Thank you
Good explanation
Thank you
Bravo!!!
Thank you
Keep it up 🎉
Thank you
amazing good job 👏👏👏 can you post more projects 😊
Yeah, sure. Thanks for the feedback
Great work!! Please create DevSecOps project using AWS CICD.
Sure. Thanks for the feedback
I will do it tomorrow and poste on LinkedIn I just saw the video today 4/13/2024
Cool. Thank you
Thank you so much for this video everything was perfect i will try to follow step by step and post it on linkedin
what is your linkedin name, i will give you credit on this project.
again, Thank you for sharing.😇
Thanks for the feedback www.linkedin.com/in/ogoozotta
Just a question why did we at the beginning do a ssh exchange between our GitHub and local computer?
SSH key exchange between your local computer and GitHub is a secure method of authentication, facilitating a safe, encrypted connection for your Git operations
Thanks a lot for this valuable project.
Question: Why didn't you tag the images with the Build-Id in order to see the powerful of ArgoCD when it automatically update and deploy the new version after each code modification ? Because, using the "latest as tag", ArgoCD can't detect any change, don't you think?
You are right.
@@CloudcoreHub In your repository, i see that you have another similar project developped in python and in this case, you used the principale of updating tag and manifest files. I think we can take inspiration from this script to make the deployment dynamic.
Yes, that’s true.
@@CloudcoreHub Thanks you for your reply. Keep sharing great projects with us and improve the sound quality
Hello there, I have issues with Terraform Plan and Terraform apply, in action mode both are not run, both are 0s and then continue with Post Checkout source code, I tried with manually in terminal using terraform command it worked but not in Action mode. Could you please help me?
I would need to see your GitHub actions file . Join here for the troubleshooting t.me/+g3BKQI8mimY3N2U5
Hi could you please update the got repo by uploading in all folders we are missing .env related files
You can create .env file as shown in the video. The file is used locally for best practices. Let me know if you need more details in creating it locally.
If you provide us it will be good thanks again
Can we have same applications in other repos like I've forked a repo and created terraform in the forked repo, written by myself and having a pipeline to make things easier and doing a different implementation?
Yes you can use same application for other implementations
@@CloudcoreHub I have two pipelines, one repo, one for app file and one for terraform are the files
That’s cool
Hey hope you are doing well.
i was working on the same project, and i got stuck some where. my pipeline was crashing because of snyk API TOKEN. how can to help me to solve that?
Thank you!
Be you copied the right API token for snyk. It might be that you copied org API instead . You can connect on here for troubleshooting t.me/+g3BKQI8mimY3N2U5
How is the populateDB.js file getting executed in the backend container to load the data in mongodb?
To execute the file, run this command
‘node populateDB.js’
Be sure to cd into the folder that contains the file in your terminal before executing the script.
DO we have to maunally execute the file everytime. what happens when we want to scale the containers?
@@CloudcoreHub
Why you didn't use the terraform to create or automate the EKS?
I have a separate video I used terraform to create EKS. You can try it out too
@@CloudcoreHub Thank you for your response :), I mean in this video :)
Hi there great project.....one question when i am running the project locally it's able to load questions from mongoDB successfully but on aws it doesn't load questions. Any reason for that ?
Check the db connection string in the code. it should point to the mongo svc and not to the localhost db
@@CloudcoreHub @CloudcoreHub Thanks for the response. I have raised an issue on your repo for better reach with all info there including git and website link. I connection string from mongo atlas, encoded with base64 and used in secret. In pod logs also it says connection successful.
Will be very helpful.
wow nice diagram can you tell how you created it
Draw.io and ppt
@@CloudcoreHub very clever to compine both, thank you
Hi i am facing this error after running git push
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push origin HEAD:master
To push to the branch of the same name on the remote, use
git push origin HEAD
To choose either option permanently, see push.default in 'git help config'.
To avoid automatically configuring an upstream branch when its name
won't match the local branch, see option 'simple' of branch.autoSetupMerge
in 'git help config'.
Run ‘git push origin HEAD:master’
@@CloudcoreHub I did but here is not workflow in GitHub and there jumphost is not getting created
@@CloudcoreHub it managed to run but in the workflow it failed on initializing terraform what could I have done wrong
Be sure your terraform is running in the right directory.
Alternatively, send me direct email, we can book a time to troubleshoot cloudcorehub@gmail.com
I fall in love with the lady, please what is your name?
Great course, I just subscribed to your channel!
I love you!, please what your name?
Brillant course! Great explain.
I think this is the best pipeline I have seen from now.
Thank you.
Why you didn't you create the EKS using the current terraform script?
for next videos try to improve the sound of your mic, am struggling to hear you 😇
Sure. Thanks for the feedback
Yes. I could. You can try it out.
how to configure mongodb settings can you explain ?
You can signup on mongo atlas page. Thanks for bringing it up. I will update this step in readme.md
Here is the video Connect Mongodb database using Node JS with express and mongoose for ReactJS App | Hands-on
czcams.com/video/6BU90yDVzm4/video.html
Thanks for responding me. This would help me
Please do more real time projects on AWS and Azure Platforms
I would be using your project and will post in LinkedIn by tagging you…. Thanks again 😊
Audio volume is too low... 👎🏻 when CZcams plays a commercial, it blasts my headphones because I'm forced to increase the sound volume to hear your voice...
Thanks for the feedback. We will improve the audio quality and volume
neither IAC explanation neither github action code explanation , I am not happy
We totally understand this. View this video for GitHub actions explanation GitHub Actions for DevOps: From Basics to Advanced Workflows | Github Actions Marketplace | Hands-on
czcams.com/video/ovl7rU9uUHI/video.html
This one will explain the IAC How to Create EKS Cluster Using Terraform | Deploy EKS using IaC Terraform
czcams.com/video/y3Hji6WZ9Z4/video.html