DEV Community

loading...
Cover image for Free resources for building multi-cloud infrastructure.

Free resources for building multi-cloud infrastructure.

spara_50 profile image Sophia Parafina ・7 min read

Successful modern cloud application deployments are influenced by factors outside of technology choices. Cost, location, and even cloud provider architecture can determine the success of a deployment. Whether it's duplicating workloads across cloud service providers or running workloads suited to a particular provider, organizations look to multi-cloud deployments to stay agile and prevent vendor lock-in.

Finding the right cloud solution requires experimentation to understand each cloud ecosystem and the best practices. The good news is that cloud providers have free service tiers for many cloud resources. These resources are often always free under a certain usage threshold or free to use for a limited time, commonly 12 months after creating an account.

Having free access to resources frees you to experiment, try out new ideas, and implement different application deployment architectures. However, given the number of cloud providers and the range of services they provide, getting started can be intimidating. This article is a guide to popular cloud resources and how to use them.

Infrastructure as Software

Infrastructure as Code (IaC) is a broad term used to describe everything from shell scripts to templating languages based on JSON or YAML to build infrastructure declaratively. In contrast, Infrastructure as Software uses general programming languages to build cloud infrastructure. Programming languages have a number of advantages over JSON or YAML templates, such as the use of a software development tool chain that includes IDE's, code completion, error checking, and having
documentation available just by hovering. In addition, you can use test driven development and write unit and integration tests before your cloud resources are deployed in production. In this article we'll use Pulumi examples to show how to work with cloud resources across the major cloud providers.

AWS

Amazon offers a free tier composed of always free, 12 months free available to new customers, and short term trials. The following is a selection of always free resources with accompanying tutorials, examples, and blog posts to get you started.

Amazon DynamoDB: Amazon’s NoSQL key-value and document database with 25 GB of storage and 25 units of read and write each month.

AWS Lambda: Amazon’s function-as-a-service can run code for any application or backend service. Upload your code, and Lambda runs and scales your code with high availability with zero administration. Your code can trigger other AWS services or call the function a web or mobile app.

Amazon RDS: Amazon’s managed-database service — MySQL, MariaDB, PostgreSQL, Oracle Database (you must supply your own license), or SQL Server Express — can be run nonstop monthly as long as you use a Single-AZ db.t2.micro instance, along with 20 GB of SSD-backed database storage and 20 GB of backups.

AWS Step Functions: AWS Step Functions orchestrates AWS Lambda functions and multiple AWS services by sequencing them into applications. The output of a step function is an input to the next, executing each step in order according to your business logic. Step Functions control sequencing, perform error handling and retry logic, and maintain state. Four thousand state transitions are free each month.

Azure

Similar to Amazon, Azure offers both an always free tier and 12 months free to new users. Azure also includes a $200 credit for 30 days after signing up. A list of free services and their terms are available. Let's take a look at how we can use some of these resources to build infrastructure.

Azure Active Directory: Azure AD identity service provides single sign-on and multi-factor authentication to protect your users. Up to 50,000 authentications per month are available free.

Azure App Service: Build, deploy, and scale web apps and APIs. Whether your application is .NET, .NET Core, Node.js, Java, Python, or PHP, in containers or running on Windows or Linux, you can deploy it on a fully managed platform that handles over 40 billion requests per day. Up to 10 web, mobile, or API apps can be created at no charge.

Azure Cosmos DB: Cosmos DB is a managed NoSQL database service backed by open-source APIs for MongoDB and Cassandra. Up to 500 GB of storage and 400 request units per second are available for free each month.

Azure Functions: Functions are an event-driven serverless compute platform for solving complex orchestration problems. You can build and debug locally without additional setup, deploy and operate at scale in the cloud, and integrate services using triggers and bindings. Up to 1 million requests per month are free.

Azure Kubernetes Service (AKS): Azure AKS deploys containerized applications with a fully managed Kubernetes service. AKS includes serverless Kubernetes and an integrated continuous integration and continuous delivery (CI/CD) experience.

Google Cloud

Google Cloud has a free tier with over 20 free services with monthly limits and provides a $300 credit with a new account. Services offered by Google Cloud run on the same infrastructure as their public services. The complete listing of services available on the free tier is available.

Google Compute Engine: Compute Engine provides predefined virtual machine configurations ranging from small general purpose instances to large memory-optimized or fast compute-optimized instances with up to 60 vCPUs. You can create a virtual machine that best fits your workloads.

Google Cloud Functions: Cloud Functions connect and extend third-party services with code and go to production with end-to-end solutions and complex workflows. Cloud Functions automatically manages and scales underlying infrastructure with the size of workload without server management. The free tier provides two million invocations, both background and HTTP, are free each month. Five GB of outbound network data, 400,000 GB-seconds, and 200,000 GHz-seconds of compute time are included.

Google Cloud Run: Cloud Run lets you deploy containerized applications on a fully managed serverless platform. Use any container images, and your application automatically scales up or down based on traffic. You can set up triggers to receive events from 60+ Google Cloud sources, and each service gets an out-of-the-box stable HTTPS endpoint, with TLS termination.

Google Cloud Google Kubernetes Engine: Secured and managed Kubernetes service with four-way auto scaling and multi-cluster support. GKE provides horizontal pod autoscaling based on CPU utilization or metrics. It automatically scales the node pool and clusters across multiple node pools based on changing workload requirements.

Summary

As you can see, there are many opportunities to get you started on your multi-cloud journey. There are more examples available on GitHub.

Discussion (0)

pic
Editor guide