Giter VIP home page Giter VIP logo

piotr-rzepa / cloud-resume-challenge Goto Github PK

View Code? Open in Web Editor NEW
35.0 35.0 13.0 797 KB

Repository containing all the source code, personal notes, diagrams related to the Cloud Resume Challenge. More information about the challenge available at https://cloudresumechallenge.dev/

Home Page: https://d17jc86972lqmr.cloudfront.net

License: MIT License

HTML 12.71% JavaScript 3.84% CSS 2.56% Python 4.45% HCL 76.44%
aws aws-apigateway aws-lambda aws-s3 css github-actions html javascript python terraform terragrunt

cloud-resume-challenge's People

Contributors

piotr-rzepa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cloud-resume-challenge's Issues

IaC: Deploy resources in CI/CD (GitHub Actions) using Terraform

Automate deployment of AWS resources from building & deploying SAM Template to Initializing, Planning and Applying Terraform configuration file.

The environment for automatic deployment is GitHub Actions workflow pipeline in .github/workflows/pipeline.yaml

Update sections in cloud resume HTML template

Update following sections:

  1. Personal projects - Mention kubernetes-flask personal project
  2. Technical skills - Mention skills such as K8s, Terraform, Terragrunt, Rancher, ArgoCD, Datadog
  3. Work experience - Add new/Edit existing section to introduce recently gained skills
  4. Certificates - Remove CPA for SAA-C03 or SOA-C02) (if passed)

Create S3 Bucket to store Terraform state file in CI/CD

Use AWS CLI to verify, if bucket desired for storing the Terraform state file exists (by default, it should exist).

If the bucket is nowhere to be found, create a bucket with name (przepk-cloud-resume-challenge-terraform-state)
If the bucket already exists, continue with the pipeline.

Possible command to verify the bucket exists: aws s3api head-bucket --bucket <bucket_name>
Possible command to create the bucket: aws s3api create-bucket --bucket <bucket_name> --region <aws_region>

Fix empty plan output in GitHub Actions comments

For some reason, the plan generated using Terragrunt is not correctly displayed in the comment(s) added by github-actions.
The same issue occurs for validation output, as can be seen below:

image

Add CloudWatch Monitoring

Create CloudWatch alarm(s) for monitoring and alerting when various metrics exceed their thresholds.
Metrics to consider:

  • Response time (latency) of Api Gateway degrades
  • Number of Lambda invocations in given timespan is unsually large
  • Lambda function exists with an error

Additionally, a SNS topic can be created to send an account owner email informing about the issues.

IaC: Migrate from SAM Template to Terraform

Migrate the Infrastructure as Code setup from SAM Template to Terraform.
Points to consider:

  • How is the automatic packaging/archiving of Lambda source (Python code, requirements.txt) handled in Terraform?
  • What would be good output values from Terraform resources?
    • CloudFront URL
    • CloudFront Distribution ID (for invalidating the cache)
    • API Gateway URL
    • others?
  • Summarize differences between CloudFormation/SAM Template and Terraform - Which is easier to use / easier to migrate to?

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.