Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build your prototype with confidence

Shyamala
November 10, 2023

Build your prototype with confidence

Every app even a prototype deserves to be developed with CI/CD so it can grow in to a final product. Here I have used Github, CircleCI and AWS App runner to develop my prototype, which uses good practices such as use of IaC with Cloudformation and complete automation of the workflow.

Shyamala

November 10, 2023
Tweet

More Decks by Shyamala

Other Decks in Programming

Transcript

  1. hello! I am Syamala Engineering Manager @ Zalando SE 1

    @shyamala_u @shyamz22 https://dev.to/shyamala_u
  2. 3

  3. 7

  4. 9

  5. 11

  6. 12

  7. Let’s compare Deployment Managed Scalability Infrastructure visibility Pricing Elastic Beanstalk

    Moderate Partially Managed Automatic High Pay as you go App Runner Very Easy Fully Managed Automatic Low Pay as you go Lightsail Easy Partially Managed Manual Medium Fixed 13
  8. 1. CircleCI Config .circleci/config.yml 17 ✘ Uses CircleCI with pipeline

    features. ✘ Defines a workflow to test, and deploy a Go application to AWS App Runner. ✘ Integrates with AWS services using the AWS CLI orb.
  9. 2. Allow CircleCI to deploy to APP Runner app-runner-ci-cfn.yml 18

    ✘ Setting up an OpenID Connect identity provider and an IAM role for our CI/CD workflow with CircleCI. ✘ This OIDC provider establishes trust between AWS and CircleCI. ✘ An IAM role is configured for CircleCI to assume via the obtained id_token, granting it permissions to manage and deploy AWS App Runner services.
  10. 3. Set App Runner Service options apprunner.yml 19 ✘ Allows

    specification of build and runtime options within the application’s source repository, enabling version tracking of configuration alongside source code. ✘ Values in this file instruct App Runner how to build and start your service, and provide runtime context such as network settings and environment variables. ✘ Does not handle service operational settings like CPU and memory allocation; these are managed separately.
  11. 4. Deploy App to App Runner app-runner-cfn.yml 20 ✘ Configures

    an AWS App Runner service to deploy a web application from a GitHub repository ✘ Creates a DynamoDB table , including policies to ensure data retention. ✘ Defines an IAM role with fine-grained permissions allowing the App Runner service to interact with the DynamoDB table, ensuring secure and restricted database operations.
  12. Resources ✘ Sample App ✘ Choosing an AWS Container Service

    ✘ Autoscaling Web application using AWS app runner 22
  13. Credits Special thanks to all the people who made and

    released these awesome resources for free: ✘ Presentation template by SlidesCarnival ✘ Photographs by Unsplash 23