Cloud or Server?

Es ist mir egal, ob es Cloud oder Server ist.

It was and it is still my attitude towards the trend of cloud, personally, I still prefer to use barebone VPS as I can and need to care more than just application development - it is about skill building.

As an application developer, what I essentially need is a place or an infrastructure to deploy and run my applications. For this, classical servers / VPS can do and the cloud can also just do.

To be fair, cloud can provide a bit more than VPS as more RESTful APIs are now cloud-privatized as cloud functions which in my oppionion is a clever and successful strategy to promote the adoption of cloud. However, using cloud functions also means a dependency on the cloud which makes it hard to migrate away from the cloud.

So to say: More freedom and more work on VPS. Less work (Easier) and less freedom (more dependency or being controled) on Cloud.

I cannot go against the trend of tech world. I need to embrace the trend. So I also look into clouds - AWS, Azure, Google Cloud Platform and so on. Of course, for the aspects I care.

Why really Cloud? In my opinion, it is because many organizations no longer want to manage / deal with own servers - therefore prefering easier infrastructures although losing much of the controls.

{"source": "Screenshot of online meetup hosted by cloudmesh"}
(In fact, the birth of this article is also triggered by the online meetup. I thought it is the time for me to note down something.)

Cloud

{"source": "https://blog.devgenius.io/understanding-the-parallel-offerings-of-aws-azure-and-gcp-cloud-comparisons-c6a1068c267b", "date": "Apr 5, 2024"}

History (Timeline)

(source: https://www.pluralsight.com/resources/blog/cloud/serverless-showdown-aws-lambda-vs-azure-functions-vs-google-cloud-functions)
a brief summary of the FaaS services offered by AWS, Azure, and GCP

Service GA Since    Regional Availability
AWS Lambda  November 2014   Global
Azure Functions March 2016  Global
Google Cloud Functions  February 2016   Global

Price

(source: https://www.pluralsight.com/resources/blog/cloud/serverless-showdown-aws-lambda-vs-azure-functions-vs-google-cloud-functions)
The table below compares what each provider offers in terms of free tier quota, and how much additional usage costs.

Provider    Free Monthly Duration (GB-seconds)  Free Monthly Requests   Cost of Each Additional 1 Million  Requests Cost of Each Additional 1 GB-second Duration is Rounded to the Nearest
AWS 400,000 1 Million   $0.20   $0.000016   1ms
Azure   400,000 1 Million   $0.20   $0.000016   1ms
GCP 400,000 2 Million   $0.40   $0.0000125  100ms

Free Tiers

https://github.com/cloudcommunity/Cloud-Free-Tier-Comparison
(4 months ago as of 20240424)

  • AWS (https://aws.amazon.com/free/)

    Always Free
    Amazon DynamoDB (NoSQL): 25 GB of storage
    AWS Lambda (FaaS): 1 Million free requests per month
    Amazon SNS: 1 Million publishes

  • Azure (https://azure.microsoft.com/en-us/free/)

    Free for Limited-time
    US$200 credit for 30 days
    Popular services free for 12 months

    Always Free
    54+ other services free always

  • Google Cloud (https://cloud.google.com/free/docs/gcp-free-tier)

    Always Free
    Compute VM: 0.25 vCPU, 1 GB RAM (only on us-west1, us-central1 and us-east1)
    30 GB of standard persistent disk
    1 GB of network egress (except China and Australia) - in premium tier
    200 GB of network egress to any region in standard tier. (Comes with increased latency of around 20%.)
    BigQuery (SQL): 1 TB of querying per month and 10 GB of storage each month
    Cloud Storage: 5 GB-months of regional storage (US regions only) per month

Programming language support

{"source": "https://cdn.ttgtmedia.com/rms/onlineimages/compare_supported_programming_languages-f.png"}

So what are the most supported (runtime)?

  • Java
  • Node.js (JavaScript)
  • .NET (C#)
  • Python

(source: https://www.pluralsight.com/resources/blog/cloud/serverless-showdown-aws-lambda-vs-azure-functions-vs-google-cloud-functions)
The table below shows the currently supported FaaS runtimes for AWS, Azure, and GCP:

Service Supported Languages
AWS Lambda  C#, Go, Java, Node.js, PowerShell, Python, Ruby
Azure Functions C#, F#, Java, Node.js, PowerShell, Python, TypeScript
GCP Cloud Functions C#, F#, Go, Java, Node.js, Python, Ruby, Visual Basic

(source: https://www.pluralsight.com/resources/blog/cloud/serverless-showdown-aws-lambda-vs-azure-functions-vs-google-cloud-functions)
Or Custom Runtimes

Provider    Support for Custom Runtimes
AWS Lambda  Yes, using custom deployment packages or AWS Lambda Layers
Azure Functions Yes, using Azure Functions custom handlers
GCP Cloud Functions Yes, using custom Docker images

Not really cloud

But Kubernetes and Docker

{"source": "https://eadn-wc03-4064062.nxedge.io/cdn/wp-content/uploads/2021/03/Docker-Kubernetes-together-1536x864.png"}

https://kubernetes.io/docs/concepts/overview/

  • Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation.
  • Google open-sourced the Kubernetes project in 2014.
  • Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.

https://azure.microsoft.com/en-us/resources/cloud-computing-dictionary/what-is-kubernetes/#watch-how-kubernetes-works

  • Kubernetes is open-source orchestration software for deploying, managing, and scaling containers.
  • Modern applications are increasingly built using containers, which are microservices packaged with their dependencies and configurations.
  • Kubernetes (pronounced “koo-ber-net-ees”) is open-source software for deploying and managing those containers at scale—and it’s also the Greek word for helmsmen of a ship or pilot. Build, deliver, and scale containerized apps faster with Kubernetes, sometimes referred to as “k8s” or “k-eights.”
  • Why use Kubernetes?
    • Keeping containerized apps up and running can be complex because they often involve many containers deployed across different machines.
    • Kubernetes provides a way to schedule and deploy those containers—plus scale them to your desired state and manage their lifecycles.
    • Use Kubernetes to implement your container-based applications in a portable, scalable, and extensible way.

More References

  • https://cloud.google.com/docs/get-started/aws-azure-gcp-service-comparison
    • Compare AWS and Azure services to Google Cloud

* cached version, generated at 2024-04-24 11:24:18 UTC.

Subscribe by RSS