This application has 3 components. It analyses uploaded concrete photos to find cracks. This is implemented and deployed locally first, then to GCLoud. We will do all of this in a hands on manner.
In this repository we will use an application that has 3 components to demonstrate detecting cracks in concrete
.
-
The first component is a web application that does
image upload
. It is written in react js. -
A Python application component that finds the crack in the uploaded image.
-
The third application component is a node Js web app. It displays raw concrete images and their corresponding analyzed images with cracks in gallery format.
The objective is,
-
Ensure that app is running locally.
-
Deploy the app locally.
-
Containerize it.
-
Then move to GCP on the cloud.
The purpose is NOT,
-
Learning Kubernetes or Docker in depth.
-
Learning a specific method or concept.
-
Advanced Learning.
Before starting a running app, let's first make sure we understand the background.
Let's see the entire infrastructure(gcloud components) in a single diagram.
Note : Some information ommited for simplicity.
Let's run each application component one at a time.
This is created through Terraform.
This is created through Terraform.
Step-1 As a result, we have also created a clusterPd
, NFS server
, and pvPvc
.
Step-2 Let us run 3 components of application
that are ready to launch.
Let see 3 components of application in below diagram.
Step-3 There are 3 components that are all connected to the same PVC
.
Step-4 Three components have the following 5 folders.
-
app :- Inside this folder we will get the set of instructions for building a specific component, along with a
dockerfile
. -
gKE :- Inside this folder we will get
shell script
to run specific components. -
logs :- Inside this folder we will get
logs
of the app when it creates adocker image
and pushing it on dockerhub. -
resourceManifests :- Inside this folder we will get
YAML
files for deployment and services of gcloud.
Running it is as simple as 1 ... 2 ... 3