GithubHelp home page GithubHelp logo

isabella232 / quickquickstarts Goto Github PK

View Code? Open in Web Editor NEW

This project forked from doitintl/quickquickstarts

0.0 0.0 0.0 59 KB

The simplest quickstart scripts for running multiple web backend infrastructures in AWS and GCP.

License: MIT License

Shell 79.61% Python 14.75% Dockerfile 5.65%

quickquickstarts's Introduction

Quick Quickstarts for multiple Web Backend infrastructures

Google Cloud Platform and Amazon Web Services have many different infrastructures for running a webapp. When I try a new one, I spin up a minimal instance from the command line. I just want to reach that comfortable milestone where I can say "it works!"

Then, I incrementally add the functionalities that I want to explore.

Design principles

Automated

The GUI is good for an initial poke-around, but scripts are better for the "Hello, World!" stage, so you can repeatedly deploy the same service while you tweak and add features.

Minimal

"Hello, World!" scripts are minimal: The least code needed for getting the HTTP response.

Complete

The scripts deploy everything needed including IAM roles, clusters, etc. The only prerequisites are command-line tools and authentication to a cloud account. With that in place, the goal is to launch everything that is needed. Then, if something goes wrong, you can start from scratch without figuring how to get each component into a stable state.

Preferably, the scripts are re-runnable, allowing you to deploy new code on top of a previous deployment. Some of the scripts here are, but some aren't, where adding that capability would add too much code. For these, the old instance before re-deploying; or launch each new version with a new name. (But watch out for costs! Delete the old instances as soon as possible.)

Prerequisites

The README for each directory describes the prerequisites. These include

  • gcloud, authenticated (with gcloud init)
  • The AWS CLI tool with credentials.
  • A plugin to the AWS CLI tool for Lightsail
  • The Elastic Beanstalk eb tool.
  • The ecs-cli tool for ECS, but the script installs that for you.
  • For processing command output, some require:
    • envsubst (install it with the gettext package)
    • jq

The supported infrastructures

Here are the scripts that I created for

  1. AWS Elastic Beanstalk
  2. AWS Lambda
  3. Amazon Elastic Container Service
  4. Amazon Lightsail
  5. Google App Engine Standard Environment
  6. Google App Engine Flexible Environment
  7. GCP Cloud Functions
  8. GCP Cloud Run
  9. Google Kubernetes Engine

Scripts

The git repository has deploy.sh scripts for each infrastructure technology, in the subdirectories.

If you are feeling adventurous, you can run them all from run_all.sh in the root directory.

If you find this useful and want to see more, please submit a pull request with your script, or an issue asking for your favorite.

Elastic Kubernetes Service would be a good next step, and then EC2 and Google Compute Engine and other cloud providers' offerings.

Simplicity

In App Engine Standard Environment and Cloud Functions, the script is just a single deploy command followed by access to a known URL.

Some infrastructures add more complexity. For example, Cloud Run and ECS require building and pushing a container; and Lambda needs an IAM role as well.

More Reading

For an explanation of the steps to "Hello, World!" see the Quickstart and Getting Started article linked in each README. These often have their own "Hello, World!" script, but sometimes a bit more complex than what is on offer here.

quickquickstarts's People

Contributors

joshuafox avatar

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.