Google Kubernetes Engine (GKE) – The Leader in Hosted Container Orchestration

Google Kubernetes Engine (GKE) – The Leader in Hosted Container Orchestration

One of Google Cloud’s killer products is Google Kubernetes Engine, or GKE. Since Google was the original creator of the Kubernetes container scheduler, it’s fitting that they are considered to be at the forefront of Kubernetes management and development. In spite of the fact that Kubernetes is now managed by the Cloud Native Computing Foundation, Google is still a major contributor to the open-source Kubernetes project on Github. Let’s take a look at Google’s hosted version of Kubernetes and why so many cloud users prefer it to the competition.

GKE Overview

Google Kubernetes Engine is a hosted environment that can run your containerized applications. Unlike Google Compute Engine, which lets you run virtual machines with the operating system of your choice, Google Kubernetes Engine takes your application or code that is packaged into a Docker container and manages it according to your specifications. Ideally, the same containers that have gone through your testing and QA process can now be run at-scale in production, with the backing of Google’s security, availability, and management.

GKE was made publically available in 2015, after being used behind-the-scenes for many Google services (like Gmail and YouTube) for over 10 years. After open-sourcing the Kubernetes software, Google set up a hosted version so users didn’t have to worry about running the master node themselves. This hosted master node has built-in high availability, health checks, and an easy-to-use developer dashboard.

GKE manages Virtual Machines that containers are running on by using their own container-optimized OS. These VMs can scale up or down based on container load and application requirements, and can even utilize preemptible VMs for batch or low-priority jobs. The pricing of GKE is based solely on the number of seconds that those compute resources exist, as there’s no additional costs for the Kubernetes masters that you run for the clusters.

GKE vs. The Competition (AKS, EKS, and ECS)

Google Kubernetes Engine is often seen as the leader in hosted Kubernetes environments, both because Google wrote the original software, and because a decade of experience running it on some of the largest scale websites in the world is hard to discount. Google also had a two-year head start on Microsoft’s AKS service and a three-year head start on Amazon’s AKS platform, which helped work out the kinks and build brand awareness. More: cloud container services comparison.

There are also some technical reasons why GKE is a superior choice. Google deploys the latest version of Kubernetes faster than other providers, so you’re always on the bleeding edge of development. Clusters typically spin up faster, more nodes are allowed per cluster, and new workers start quicker. SOC and ISO compliance can be a factor for large organizations. The user experience of the Kubernetes dashboard is also noticeably better than some alternatives.

You Down With GKE? (Yeah, You Know Me)

At the end of the day, the biggest question we get asked about services like Google Kubernetes Engine is, “Should I use Google Kubernetes Engine for my containers?” As always, the answer is nuanced. If you aren’t embedded in a particular cloud provider (or if you have a multi-cloud strategy), then GKE is certainly a step above other hosted Kubernetes services. Throw in the fact that you don’t pay for master nodes, and it makes financial sense as well. However, if you’re fully committed to a different cloud provider, then the native container management tools are good enough to get the job done.

Cloud Storage Cost Comparison: AWS vs. Azure vs. Google

Cloud Storage Cost Comparison: AWS vs. Azure vs. Google

Today, we’ll take a brief look at cloud storage cost comparison from the three major cloud service providers. When it comes to finding a solution for your cloud computing needs, it is fair to say that for every business the solutions are based on a case-by-case scenarios – and given the breadth of cloud storage options available, it is certainly true in this case. A few things we’ll briefly touch points on are pricing models, discounts and steps you can take to avoid wasted cloud spend.

The leading cloud service providers have certain fortes and weaknesses that ultimately differentiate each one of them to be the potential solution to support your development infrastructure, operations and applications. Cloud service providers offer many different cloud pricing points depending on your compute, storage, database, analytics, application and deployment requirements. Additionally, you’d want to consider available services and networks provided to see the full scope of their resource capabilities and governance.

Prices can be subject to the type of hosting option you choose. One example is Relational Database Services (RDS). RDS pricing changes according to which database management system you use, and there are many more services like this to choose from.

More detail, beyond just storage, available in our full cloud pricing comparison.

AWS and Google Stand Out

Although not always the case, AWS is presumed to be the least expensive option available and remains the leader in the cloud computing market. But, Microsoft Azure and Google (GCP) are not far behind, and in recent years they have commanded innovation and market pricing reductions, thus closing gaps to bring them closer to AWS. That been said, being the first in the market gives AWS a great advantage over the competition as they command a large scale of businesses and are able to offer lower prices than the competition. They are well known for attracting more businesses, and in turn, they invest their money back into the cloud by adding more servers to their data centers. Google is closing the gap on AWS as they were the first to cut prices in their pricing model to match AWS’.

Storage Services Overview

Let’s take a look at some of the more popular storage options offered by each of the major three providers.

Amazon S3

Amazon Simple Storage Service (S3) is the most durable, highly performant and secure cloud storage service. It manages accounts at every level, scales on-demand and offers insights with built-in analytics.  

Amazon EBS

Amazon Elastic Block Store (EBS) provides block level storage volumes for use with EC2 instances. EBS delivers low-latency and consistent performance scaled to the needs of your application.

Amazon Glacier

Amazon Glacier provides data archiving and long-term back up at a low-cost. It allows you to query data in place and retrieve only the subset of data you need from within an archive.

More about AWS options: https://aws.amazon.com/products/storage/

Google Cloud Storage

Google Cloud Storage offers a single API for all storage classes, simplifying development integration and reducing code complexity. Its highly scalable and performant with unlimited object storage.

Cloud Filestore

Google Filestore is a high-performance file storage for applications that require a filesystem interface and a shared filesystem for data.

Persistent Disk

Google Persistent Disk is a reliable high-performance block storage for virtual machine instances.

Explore Google storage options: https://cloud.google.com/products/storage/

Archive Storage

Azure Archive Storage offers a low-cost, durable, and highly available secure cloud storage for rarely accessed data with flexible latency requirements.

Blob Storage

Azure Blob Storage is a massively scalable object storage for unstructured data.

Azure Files

Azure Files is a simple, secure and fully managed cloud file sharing storage.

Check this out as well on Azure options: https://docs.microsoft.com/en-us/azure/architecture/aws-professional/services

Sample Pricing Comparison

cloud storage cost comparison chart

Eliminate Cloud Overspend and Save Money

Comparing cloud storage costs and getting the right solution for your storage use case is important, but don’t forget once you deploy you need to ensure you optimize your solution and cost. It’s important that your organization fully understands how much can be wasted on cloud spend. Over-provisioned, underutilized and idle cloud resources run your cloud bill up and create waste. Always ensure that you are optimizing costs and governing usage by eliminating wasted cloud spend  – get started today.

New: SmartParking for Google Database and AWS RDS Cost Optimization

New: SmartParking for Google Database and AWS RDS Cost Optimization

Today, we’re happy to share the latest cost control functionality in ParkMyCloud: SmartParking for Google database and AWS RDS cost optimization – as well as several other improvements and updates to help you find and eliminate cloud waste.

Automatically Detect Idle Google & AWS RDS Databases

“SmartParking” is what we call automatic on/off schedule recommendations based on utilization history. ParkMyCloud analyzes your resource utilization history and creates recommended schedules for each resource to turn them off when they are typically idle. This minimizes idle time to maximize savings on cloud resources.

Like an investment portfolio, users can choose to receive SmartParking schedules that are “conservative”, “balanced”, or “aggressive” — where conservative schedules protect all historic “on” times, while aggressive schedules prioritize maximum savings.

With this release, Google Cloud SQL Databases and AWS RDS instances have been added to the list of resources that can be optimized with SmartParking – a list that also includes AWS EC2 instances, Azure virtual machines, and Google Cloud virtual machine instances.

Why not Azure? At this time, Azure databases can’t be “turned off” in the same way that AWS and Google Cloud databases can. If Azure releases this capability in the future, we will follow with parking and SmartParking capability shortly thereafter.

What Else is New?

In this release, other updates to the ParkMyCloud platform include:

  • Configurable notifications  users now have the option for configurable shutdown warning notification times, from 0.25 hours to 24 hours in advance. Notifications can be received through email, Slack, Microsoft Teams, Google Hangouts, or custom webhook.  
  • Usability updates to Single Sign-On configuration, Google Cloud Credentials add/edit screen, and filtering actions.

See details in the release notes here.

Beyond this most recent release, we’ve made plenty of updates to make ParkMyCloud work for you. These include:

How to Get Started  

It’s easy to get started with Google database and RDS cost optimization! If you haven’t tried out ParkMyCloud yet, get started with a 14-day free trial. During the trial, you’ll have access to the Enterprise tier, which lets you try out all the features listed above. After your trial is over, you can choose to subscribe to the tier that works for you – or keep using our free tier for as long as you like. See pricing details for more information.

If you already use ParkMyCloud, just log in and head over to the Recommendations tab. Depending on the time-window configured for your SmartParking settings, it may take several days or weeks to accumulate enough metrics data to make good recommendations. To configure the time window for recommendations, navigate to Recommendations and select the gear icon in the upper-right, and choose SmartParking Recommendation Settings. Then, sit back while we collect and analyze your data, and your databases will be SmartParking before you know it.

Cheers!

3 Things to Look Forward to at Google Cloud Next 2019

3 Things to Look Forward to at Google Cloud Next 2019

Google Cloud Next 2019 will be our first Google event – and we’re looking forward to it! Google hopes to attract 30,000 attendees this year – up from 23,000 last year – to the San Francisco conference. This is the largest gathering of Google Cloud users, and features three days of networking, learning, and problem solving. Here are 3 things to look forward to at the event this year.

1. Announcements

As with any event of this scale, Google Cloud has been saving up announcements to make at their flagship event. At the event last year, Google Cloud made over 100 announcements. While some listed seem to stretch the idea of an announcement – customer case studies, for example – others were more interesting, ranging from Google Cloud Functions (serverless) to Istio for microservices management to resource-based pricing. They’re sure to have some exciting developments to share for 2019.

2. Speakers & Sessions

This year, the event has more than 30 featured speakers, and attendees will get to hear from executives from throughout the Google Cloud organization as well as their top customers and partners.

There will be hundreds of breakout sessions on 18 tracks. While the sessions you choose to attend will likely focus on the track most relevant to your job role and areas where you’re looking to grow, be sure to scan the full list for other cool sessions. A few that caught my eye…

You can also get certified while at the conference. If possible, we recommend doing this on Monday so you don’t miss out on sessions, but see what your schedule looks like.

3. Fun

Don’t forget to have fun while you’re there. Start with a visit to the expo when you have a break during conference hours – sponsors from Salesforce to DataDog to CloudHealth will have booths where you can learn about their offerings, cool demos, and of course, get the latest in innovative swag and giveaways. Don’t forget to come see ParkMyCloud! We’ll be at the group of booths right when you walk in the main entrance at the expo hall, #S1151.

After hours, various vendors & sponsors are having happy hours, so check out the websites, blogs, and emails from your favorite products to see if there are any you’d like to join. Plus, enjoy the city of San Francisco!

See You At Google Cloud Next 2019

If you’ll be at the event, be sure to stop by and say hi to ParkMyCloud at booth S1151 – schedule a time to stop by and we’ll give you an extra scratch-off card for a chance to win an Amazon.com gift card. We’d love to chat and hear what you think of the event.

Psst — if you haven’t yet registered, shoot me an email and I might be able to hook you up with a discount code.

Cloud Container Services Comparison

Cloud Container Services Comparison

There’s no doubt that cloud container services adoption is on the rise. A recent survey found that more than 80% of IT professionals and teams reported deploying container technologies — up from 58% in 2017.

With this rise in adoption comes a rise of options in the market, so it quickly becomes difficult to keep track of each service and what they’re best used for. We took a look at 14 container services and container-like services associated with the top cloud providers, and broke down the main use case for each. Scroll to the bottom for a comparison chart.

AWS Cloud Container Services

Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a container orchestration service, used to manage and deploy containers distributed across many AWS virtual machines. Combined with AWS Fargate, it allows you to run containers without selecting servers. Pricing depends on the launch model: for the Fargate model, you pay for vCPU and memory that your containerized application requests. For the EC2 model, you simply pay for the EC2 instances and other resources – such as EBS volumes – you create to store and run your application.

Amazon Elastic Container Registry

Amazon Elastic Container Registry (Amazon ECR) is AWS’s managed solution to store, manage, and deploy Docker container images. It is highly available, scalable, and integrated with Amazon ECS. Payment is based on the amount of data stored in repositories and data transferred to the Internet.

Amazon Elastic Container Service for Kubernetes

Amazon Elastic Container Service for Kubernetes (Amazon EKS) is AWS’s service to manage and deploy containers via Kubernetes container orchestration service. Pricing is $0.20 per hour for each EKS cluster, as well as the cost of AWS resources such as EC2 instances that you create to run your Kubernetes worker nodes.

AWS Fargate

AWS Fargate is a solution for Amazon ECS that allows you to run containers without managing servers or infrastructure, making it easier to focus on applications rather than the infrastructure that runs them. Pricing is based on the vCPU and memory resources used.

AWS Batch

AWS Batch is a way for AWS users to run large quantities of batch computing jobs — which is done by executing them as Docker containers. You pay only for the AWS resources you use to create to store and run your application, with no additional fees.

Azure Cloud Container Services

Azure Kubernetes Service

Azure Kubernetes Service (AKS) is Azure’s fully managed solution to manage & deploy containers via Kubernetes container orchestration service. You pay only for the VMs, storage, and networking resources used for the Kubernetes cluster, with no additional charge.

Azure Container Registry

Azure Container Registry is a way to store and manage container images for container deployment across DC/OS, Docker Swarm, Kubernetes, and Azure services including App Service, Batch, and Service Fabric. Pricing is per day, with several tiers depending on the amount of storage and web hooks needed.

Azure Container Instances

Azure Container Instances (ACI) is a service that allows you to run containers on Azure without managing servers or infrastructure, making it simpler to build applications without focusing on infrastructure. Billing is by “container groups” which are assignments of vCPU and memory resources for your running containers, and is on a per-second basis.

Azure Batch

Azure Batch is a service for running a large number of competitive compute jobs, which users can choose to can run directly on virtual machines or on Docker-compatible containers. You pay only for the compute and other resources used to run the batch jobs, with no additional fees for using Batch.

Azure App Service

Azure App Service is a way to create cloud-based web apps and APIs, which similarly to Azure Batch, has options for running on virtual machines or in containers. Billing is per hour, with several tiers depending on your needs for disk space, number of instances, auto scaling, and network isolation.

Azure Service Fabric

Azure Services Fabric is a way to lift, shift, and modernize .NET applications to microservices using Windows Server containers. Service Fabric is an open source project that powers core Azure infrastructure and other Microsoft services include Skype for Business, Azure SQL Databases, Cortana and more. You pay for compute, volumes, and collections used, though the complicated pricing model makes it hard to estimate.

Google Cloud Container Services

Google Kubernetes Engine

Google Kubernetes Engine (GKE) is Google Cloud’s fully managed solution to manage and deploy containers via Kubernetes container orchestration service. You pay for the Google Compute Engine instances used, with no additional charges.

Google Container Registry

Google Container Registry allows users to store and manage Docker container images for container deployment. You pay for the storage and network used by your Docker resources.

Google App Engine Flexible Environment

Google App Engine Flexible Environment is a platform for deploying web apps and APIs, which you can do on VM instances or on Docker containers. Pricing is based on the compute, storage, and other resources used for the apps

Cloud Container Services Comparison Chart

For quick and easy reference, we’ve condensed this comparison into a chart:

It’s a great time to become familiar with the various cloud container services and try them out — this infrastructure model will only become more prominent!

Should You Use the Cloud-Native Instance Scheduler Tools?

Should You Use the Cloud-Native Instance Scheduler Tools?

When adopting or optimizing your public cloud use, it’s important to eliminate wasted spend from idle resources – which is why you need to include an instance scheduler in your plan. An instance scheduler ensures that non-production resources – those used for development, staging, testing, and QA – are stopped when they’re not being used, so you aren’t charged for compute time you’re not actually using.

AWS, Azure, and Google Cloud each offer an instance scheduler option. Will these fit your needs – or will you need something more robust? Let’s take a look at the offerings and see the benefits and drawbacks of each.

AWS Instance Scheduler

AWS has a solution called the AWS Instance Scheduler. AWS provides a CloudFormation template that deploys all the infrastructure needed to schedule EC2 and RDS instances. This infrastructure includes DynamoDB tables, Lambda functions, and CloudWatch alarms and metrics, and relies on tagging of instances to shut down and turn on the resources.

The AWS Instance scheduler is fairly robust in that it allows you to have multiple schedules, override those schedules, connect to other AWS accounts, temporarily resize instances, and manage both EC2 instances and RDS databases.  However, that management is done exclusively through editing DynamoDB table entries, which is not the most user-friendly experience. All of those settings in DynamoDB are applied via instance tags, which is good if your organization is tag-savvy, but can be a problem if not all users have access to change tags.

If you will have multiple users adding and updating schedules, the Instance Scheduler does not provide good auditing or multi-user capabilities. You’ll want to strongly consider an alternative.

Microsoft Azure Automation

Microsoft has a feature called Azure Automation, which includes multiple solutions for VM management. One of those solutions is “Start/Stop VMs during off-hours”, which deploys runbooks, schedules, and log analytics in your Azure subscription for managing instances. Configuration is done in the runbook parameters and variables, and email notifications can be sent for each schedule.

This solution steps you through the setup for timing of start and stop, along with email configuration and the target VMs. However, multiple schedules require multiple deployments of the solution, and connecting to additional Azure subscriptions requires even more deployments. They do include the ability to order or sequence your start/stop, which can be very helpful for multi-component applications, but there’s no option for temporary overrides and no UI for self-service management. One really nice feature is the ability to recognize when instances are idle, and automatically stop them after a set time period, which the other tools don’t provide.

Google Cloud Scheduler

Google also has packaged some of their Cloud components together into a Google Cloud Scheduler. This includes usage of Google Cloud Functions for running the scripts, Google Cloud Pub/Sub messages for driving the actions, and Google Cloud Scheduler Jobs to actually kick-off the start and stop for the VMs. Unlike AWS and Azure, this requires individual setup (instead of being packaged into a deployment), but the documentation takes you step-by-step through the process.

Google Cloud Scheduler relies on instance names instead of tags by default, though the functions are all made available for you to modify as you need. The settings are all built into those functions, which makes updating or modifying much more complicated than the other services. There’s also no real UI available, and the out-of-the-box experience is fairly limited in scope.

Cloud Native or Third Party?

Each of the instance scheduler tools provided by the cloud providers has a few limitations. One possible dealbreaker is that none of these tools are multi-cloud capable, so if your organization uses multiple public clouds then you may need to go for a third-party tool. They also don’t provide a self-service UI, built-in RBAC capabilities, Single Sign-On, or reporting capabilities. When it comes to cost, all of these tools are “free”, but you end up paying for the deployed infrastructure and services that are used, so the cost can be very hard to pin down.

We built ParkMyCloud to solve the instance scheduler problem (now with rightsizing too). Here’s how the functionality stacks up against the cloud-native options:

 

AWS Instance SchedulerMicrosoft Azure AutomationGoogle Cloud SchedulerParkMyCloud
Virtual Machine scheduling
Database scheduling
Scale Set scheduling
Tag-based scheduling
Usage-based recommendations
Simple UI
Resize instances
Override Schedules
Reporting
Start/Stop notifications
Multi-Account
Multi-Cloud

Overall, the cloud-native instance scheduler tools can help you get started on your cost-saving journey, but may not fulfill your longer-term requirements due to their limitations.

Try ParkMyCloud with a free trial — we think you’ll find that it meets your needs in the long run.