PoultryHealthNet-Avian-Disease-Classification
PoultryHealthNet-Avian-Disease-Classification using MLOPS
Tool stack used:
- Python
- DVC
- Github actions
- Docker
- AWS cloud (I AM,ECR,EC2)
WOrkflow steps I have followed in this project
- created config.yaml
- created secrets.yaml [Optional] (for if we are using databse and in case we need to keep credentials secreat )
- created params.yaml
- created the entity
- created the configuration manager in src config
- created the components
- created the pipeline file
- created the main.py file
- created the dvc.yaml file (MLOPS tool)
How to run?
STEPS:
Clone the repository
https://github.com/shivpalSW/PoultryHealthNet-Disease-Classification
STEP 01- Create a conda environment after opening the repository
conda create -n cnncls python=3.8 -y
conda activate cnncls
STEP 02- install the requirements
pip install -r requirements.txt
# Finally run the following command
python app.py
Now,
open up you local host and port
DVC cmd
- dvc init
- dvc repro
- dvc dag
AWS-CICD-Deployment-with-Github-Actions
1. Logged in to AWS console.
2. Created IAM user for deployment
#with specific access
1. EC2 access : It is virtual machine
2. ECR: Elastic Container registry to save your docker image in aws
#Description: About the deployment
1. Build docker image of the source code
2. Push your docker image to ECR
3. Launch Your EC2
4. Pull Your image from ECR in EC2
5. Lauch your docker image in EC2
#Add Policy:
1. AmazonEC2ContainerRegistryFullAccess
2. AmazonEC2FullAccess
3. Created ECR repo to store/save docker image
- Save the URI: 815723463103.dkr.ecr.ap-south-1.amazonaws.com/poultryhealthnet
4. Created EC2 machine (Ubuntu)
5. Opened EC2 and Installed docker in EC2 Machine:
#optinal
sudo apt-get update -y
sudo apt-get upgrade
#required
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ubuntu
newgrp docker
6. Configured EC2 as self-hosted runner:
setting>actions>runner>new self hosted runner> choose os> then run command one by one
7. Setup github secrets:
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION = us-east-1
AWS_ECR_LOGIN_URI = demo>> 566373416292.dkr.ecr.ap-south-1.amazonaws.com
ECR_REPOSITORY_NAME = simple-app