Master Three-Tier Application | A Complete DevSecOps Guide on AWS with Kubernetes, GitOps & ArgoCD

Sdílet
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

Komentáře • 89

  • @akanohammed9496
    @akanohammed9496 Před 7 dny +2

    Brilliant content.... Keep posting more of it.
    Much appreciated

  • @narasimha._sai
    @narasimha._sai Před 2 měsíci +8

    I didn't saw anyone who implemented whole frontend backend and database in CZcams u r great keep it up🎉

  • @joeb.1163
    @joeb.1163 Před 9 dny +1

    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.

  • @evansdanso2374
    @evansdanso2374 Před 2 měsíci +1

    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!

  • @GodwinEffiong-tn5xg
    @GodwinEffiong-tn5xg Před 2 měsíci +1

    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.

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Thank you so much for the feedback. I will definitely create more

  • @vishaldesai4102
    @vishaldesai4102 Před měsícem +1

    Great work!!! Create more projects like this

  • @user-ki3ip1bq5o
    @user-ki3ip1bq5o Před 12 dny

    Thanks for a wonderful Project Bro.

  • @Vamsibl
    @Vamsibl Před 2 měsíci +1

    Great work!

  • @DailyKhabhar
    @DailyKhabhar Před dnem +1

    wonderful

  • @ayencoscolfield3312
    @ayencoscolfield3312 Před 3 měsíci +1

    This is cool what an awesome efforts by you i just subscribed , cheers and lets keep the flag flying, Nice jobs sis👍

  • @Manojkumar-bh8os
    @Manojkumar-bh8os Před 2 měsíci +2

    Good explanation

  • @myyololand
    @myyololand Před 2 měsíci +1

    Bravo!!!

  • @jun4idm0min
    @jun4idm0min Před 3 měsíci +1

    Keep it up 🎉

  • @RaviPrakash-ix9dd
    @RaviPrakash-ix9dd Před měsícem +1

    amazing good job 👏👏👏 can you post more projects 😊

  • @suhaswagh9184
    @suhaswagh9184 Před měsícem +1

    Great work!! Please create DevSecOps project using AWS CICD.

  • @sofi6463
    @sofi6463 Před 2 měsíci +1

    I will do it tomorrow and poste on LinkedIn I just saw the video today 4/13/2024

  • @arnaudfrancktaptuekuate5367
    @arnaudfrancktaptuekuate5367 Před měsícem +2

    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.😇

    • @CloudcoreHub
      @CloudcoreHub  Před měsícem

      Thanks for the feedback www.linkedin.com/in/ogoozotta

  • @user-oq5hg8eb2l
    @user-oq5hg8eb2l Před 2 měsíci +1

    Just a question why did we at the beginning do a ssh exchange between our GitHub and local computer?

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci +1

      SSH key exchange between your local computer and GitHub is a secure method of authentication, facilitating a safe, encrypted connection for your Git operations

  • @Yanis-gx5gf
    @Yanis-gx5gf Před 2 měsíci +1

    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?

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci +1

      You are right.

    • @Yanis-gx5gf
      @Yanis-gx5gf Před 2 měsíci +1

      @@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.

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci +1

      Yes, that’s true.

    • @Yanis-gx5gf
      @Yanis-gx5gf Před 2 měsíci +1

      @@CloudcoreHub Thanks you for your reply. Keep sharing great projects with us and improve the sound quality

  • @mohammaduzzaman9467
    @mohammaduzzaman9467 Před 25 dny +1

    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?

    • @CloudcoreHub
      @CloudcoreHub  Před 25 dny

      I would need to see your GitHub actions file . Join here for the troubleshooting t.me/+g3BKQI8mimY3N2U5

  • @Vikranth4A5
    @Vikranth4A5 Před 2 měsíci +1

    Hi could you please update the got repo by uploading in all folders we are missing .env related files

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci +1

      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.

    • @Vikranth4A5
      @Vikranth4A5 Před 2 měsíci

      If you provide us it will be good thanks again

  • @atatekeli9295
    @atatekeli9295 Před 2 měsíci +1

    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?

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Yes you can use same application for other implementations

    • @atatekeli9295
      @atatekeli9295 Před 2 měsíci +1

      @@CloudcoreHub I have two pipelines, one repo, one for app file and one for terraform are the files

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      That’s cool

  • @arnaudfrancktaptuekuate5367
    @arnaudfrancktaptuekuate5367 Před měsícem +1

    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!

    • @CloudcoreHub
      @CloudcoreHub  Před měsícem

      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

  • @amanshrivastava1343
    @amanshrivastava1343 Před 25 dny +1

    How is the populateDB.js file getting executed in the backend container to load the data in mongodb?

    • @CloudcoreHub
      @CloudcoreHub  Před 25 dny

      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.

    • @amanshrivastava1343
      @amanshrivastava1343 Před 24 dny

      DO we have to maunally execute the file everytime. what happens when we want to scale the containers?
      @@CloudcoreHub

  • @dennisraborar4040
    @dennisraborar4040 Před měsícem +1

    Why you didn't use the terraform to create or automate the EKS?

    • @CloudcoreHub
      @CloudcoreHub  Před měsícem +1

      I have a separate video I used terraform to create EKS. You can try it out too

    • @dennisraborar4040
      @dennisraborar4040 Před měsícem +1

      @@CloudcoreHub Thank you for your response :), I mean in this video :)

  • @VISHALJAIN-qp9fp
    @VISHALJAIN-qp9fp Před 10 dny

    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 ?

    • @CloudcoreHub
      @CloudcoreHub  Před 10 dny

      Check the db connection string in the code. it should point to the mongo svc and not to the localhost db

    • @VISHALJAIN-qp9fp
      @VISHALJAIN-qp9fp Před 10 dny

      @@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.

  • @MrGenbu
    @MrGenbu Před 3 měsíci +1

    wow nice diagram can you tell how you created it

    • @CloudcoreHub
      @CloudcoreHub  Před 3 měsíci +1

      Draw.io and ppt

    • @MrGenbu
      @MrGenbu Před 3 měsíci +1

      @@CloudcoreHub very clever to compine both, thank you

  • @andrewmwendo6745
    @andrewmwendo6745 Před 2 měsíci

    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'.

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Run ‘git push origin HEAD:master’

    • @andrewmwendo6745
      @andrewmwendo6745 Před 2 měsíci

      @@CloudcoreHub I did but here is not workflow in GitHub and there jumphost is not getting created

    • @andrewmwendo6745
      @andrewmwendo6745 Před 2 měsíci

      @@CloudcoreHub it managed to run but in the workflow it failed on initializing terraform what could I have done wrong

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Be sure your terraform is running in the right directory.

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Alternatively, send me direct email, we can book a time to troubleshoot cloudcorehub@gmail.com

  • @thierrymemel
    @thierrymemel Před 2 měsíci +1

    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.

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Thank you.

    • @thierrymemel
      @thierrymemel Před 2 měsíci +1

      Why you didn't you create the EKS using the current terraform script?

    • @thierrymemel
      @thierrymemel Před 2 měsíci +1

      for next videos try to improve the sound of your mic, am struggling to hear you 😇

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Sure. Thanks for the feedback

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Yes. I could. You can try it out.

  • @Vikranth4A5
    @Vikranth4A5 Před 3 měsíci +1

    how to configure mongodb settings can you explain ?

    • @CloudcoreHub
      @CloudcoreHub  Před 3 měsíci +2

      You can signup on mongo atlas page. Thanks for bringing it up. I will update this step in readme.md

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci +1

      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

    • @Vikranth4A5
      @Vikranth4A5 Před 2 měsíci +1

      Thanks for responding me. This would help me

    • @Vikranth4A5
      @Vikranth4A5 Před 2 měsíci +1

      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 😊

  • @lorezyra
    @lorezyra Před 2 měsíci +1

    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...

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci

      Thanks for the feedback. We will improve the audio quality and volume

  • @user-bs5gx1hj1y
    @user-bs5gx1hj1y Před 2 měsíci +1

    neither IAC explanation neither github action code explanation , I am not happy

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci +1

      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

    • @CloudcoreHub
      @CloudcoreHub  Před 2 měsíci +1

      This one will explain the IAC How to Create EKS Cluster Using Terraform | Deploy EKS using IaC Terraform
      czcams.com/video/y3Hji6WZ9Z4/video.html