# 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)

# 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 code
    • CircleCI Zip files
    • CircleCI w/AWS aws lambda update-function-code
    • Slack NotifyUser
  • jobHunterPipeline (AWS ECS Fargate)
    • User commit code
    • CircleCI build dependency (composer install && npm i)
    • CircleCI CI : Run Unit Tests
    • CircleCI w/DockerHub Build Docker Image and Pushed to DockerHub
    • CIrcleCI create TaskDefinition with new Docker image Tags
    • CIrcleCI w/AWS aws ecs update-service with new TaskDefinition
    • Slack NotifyUser

# Alternative (AWS Lightsail)

  • jobHunterPipeline
    • User commit code
    • CircleCI build dependency (composer install && npm i)
    • CircleCI CI : Run Unit Tests
    • CircleCI w/DockerHub Build Docker Image and Pushed to DockerHub
    • VM docker stop && docker rm ${IMAGE}
    • VM docker pull ${IMAGE_WITH_NEW_TAG}
    • VM docker run -d ${IMAGE_WITH_NEW_TAG}
    • Slack NotifyUser

# Slides

image image image image image image image image image image image image image image image

# ScreenShots

image image