# jobHunter
# Concept
- Extend a
Laravel Singleton
app to AWS infra - What's added:
- AWS CDK for AWS Infra
- MySQL -> AWS DynamoDB
- AWS CloudSearch for Searching
- Dockerize
- Containerized service from
AWS ECS Fargate
- LineChatbot Integration
- NodeJS Lambda Function
- CircleCI Intergration
# Info
# jobHuntr.work (opens new window)
- Twitch Demo Replay (opens new window)
- mouWorks/jobHunter (opens new window)
- fork from
fishingboy/jobFinder
- fork from
# TeamMember
- Mou.Wang (Infra/DevOps/LineChatbot) @mouWorks
- David.Lou (Backend) @rurikaxx
- Patty (Design/Frontend) @smooncake
# Technical
# 3 layers of AWS CDK Stack
jobHunterInfraStack
- DynamoDB + Lambda Function + ApiGateway
VpcDBSTack
- Build Vpc and Desired DynamoDB
FargateStack
- AWS ECS Fargate
[NOTE] : AWS Vpc rebuild takes long times, so we separate to one single stack to save some times.
# 2 Development Pipelines
- LambdaPipeline
User
commit codeCircleCI
Zip filesCircleCI w/AWS
aws lambda update-function-code
Slack
NotifyUser
- jobHunterPipeline (AWS ECS Fargate)
User
commit codeCircleCI
build dependency (composer install && npm i)CircleCI
CI : Run Unit TestsCircleCI w/DockerHub
Build Docker Image and Pushed to DockerHubCIrcleCI
create TaskDefinition with new Docker image TagsCIrcleCI w/AWS
aws ecs update-service
with new TaskDefinitionSlack
NotifyUser
# Alternative (AWS Lightsail)
- jobHunterPipeline
User
commit codeCircleCI
build dependency (composer install && npm i)CircleCI
CI : Run Unit TestsCircleCI w/DockerHub
Build Docker Image and Pushed to DockerHubVM
docker stop && docker rm${IMAGE}
VM
docker pull${IMAGE_WITH_NEW_TAG}
VM
docker run -d${IMAGE_WITH_NEW_TAG}
Slack
NotifyUser
# Slides
# ScreenShots