GithubHelp home page GithubHelp logo

devops-project-3-tier-application-deployment-azure's Introduction

DevOps-Project-3-tier-Application-Deployment-Azure

image

For your reference the Source Code for this project is present in the GitHub Repository https://github.com/singhritesh85/TWSThreeTierAppChallenge.git inside the directory Application-Code. However for the current project I have used Azure Repos into which the source code is present. as shown in the screenshot below. image

  1. This is a three tier application (of Things-to-Do App) in which frontend or presentation layer is React Js code which is present in the directory Application-Code/frontend in the GitHub Repo https://github.com/singhritesh85/TWSThreeTierAppChallenge.git. To deploy React Js code I have created a Pipeline using Azure DevOps.
  2. The Backend or Application layer is Node Js code which present in the directory Application-Code/backend in the GitHub Repo https://github.com/singhritesh85/TWSThreeTierAppChallenge.git. To deploy Node Js code I have created a Pipeline using Azure DevOps.
  3. For Database or Data layer MongoDB has been used. To deploy MongoDB I have created a Pipeline using Azure DevOps.
  4. To Deploy the three Pipelines I have used Helm and helm chart. These helm charts are present in the GitHub Repo https://github.com/singhritesh85/helm-repo-for-ArgoCD-three-tier-app-backend.git, https://github.com/singhritesh85/helm-repo-for-ArgoCD-three-tier-app-frontend.git and https://github.com/singhritesh85/helm-repo-for-ArgoCD-three-tier-app-database.git. In the current project I have clonned the helm chart from above mentioned repositories inside the home directory of user which is /home/demo.

    As discussed above there are three Pipelines using which ReactJs code, NodeJs code and MongoDB have been deployed. which is also shown in the Architechture diagram above. The azure-pipelines.yaml for ReactJs Code, NodeJs Code and MongoDB is present inside the directory azure-pipelines in this Repository. Before Running Jenkins Job for MongoDB create the password, pv (persistent volume) and pvc (persistent volume claim). To do so run the command kubectl apply -f pv.yaml, kubectl apply -f pvc.yaml and kubectl apply -f secrets.yaml. The password for MongoDB is encrypted with base64.

Encryption with Base64
==================================
echo "admin"|base64 -----------> Encrypt the username
ehco "password123"|base64  --------------> Encrypt the password


Decryption with Base64
==================================
echo "YWRtaW4="|base64 --decode
echo "cGFzc3dvcmQxMjM="|base64 --decode

The screenshot for SonarQube Analysis is shown below. image

To keep the Docker Images for frontend and backend I have created two container registries with the name of akscontainer24registry1 and akscontainer24registry2 respectively in Azure Container Registries (ACR) as shown in the screenshot below. image After Successfully Running the three Pipelines (successfully deployment of the three-tier Application) create the URL for the application using the file ingress-rule.yaml present inside the directory ingress-rule-pv-pvc-mongodbsecret with the command kubectl apply -f ingress-rule.yaml. Create a record set for the URL inside the hosted zone as shown in the screenshot below. image

Using the created URL backend.singhritesh85.com access the application as shown in the screenshot below. image image

After Successful deployment we can see the Applications using command line as shown in the screenshot below. image



The Service Connection is created as shown in the screenshot below. image

The three pipelines in Azure DevOps is as shown in the screenshot below. image

The frontend-auth and backend-auth secrets for kubernetes can be created using the command below

kubectl create secret docker-registry frontend-auth --docker-server=https://akscontainer24registry2.azurecr.io --docker-username=akscontainer24registry2 --docker-password=XXXXXXXXXXXXXXXXXXXXXXXXXXXOJ7eXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFyh6 -n three-tier


kubectl create secret docker-registry backend-auth --docker-server=https://akscontainer24registry1.azurecr.io --docker-username=akscontainer24registry1 --docker-password=XXXXXXXXXXXXXXXXXXXXXXXXXXXX4rHeWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1skn -n three-tier













source Code:-  https://github.com/singhritesh85/TWSThreeTierAppChallenge.git













Reference:-   https://github.com/LondheShubham153/TWSThreeTierAppChallenge.git

devops-project-3-tier-application-deployment-azure's People

Contributors

singhritesh85 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.