Back to blog

How to Optimize Bottlerocket OS Containerized Workloads

Omer Mesika

Director of Solution Engineering, Intel Granulate

Amazon Web Services (AWS) offers reliable, scalable, and secure computing services to support dynamic and flexible workloads. With the growth in container-based application delivery, AWS introduced the Bottlerocket as a minimal OS to handle containerized workloads running on various AWS services. 

In this article, we explore how the Granulate platform complements Bottlerocket container workloads by helping to better manage the cloud costs and resource usage of AWS services via real-time continuous optimization.

What is Bottlerocket OS?

Although containers are designed to offer operating system virtualization, they fundamentally function on only a few kernel features of the host OS. As a result, containers that rely on standard OS distributions can be limited in terms of realizing the full features and service sets offered by the OS, while also incurring management and security overhead.

To solve this, Amazon Web Services offers a Linux-based Bottlerocket OS to run containerized workloads at scale. Bottlerocket is a minimal, container-centric OS that strips away everything except what’s necessary for running containers. The OS integrates seamlessly with the AWS ecosystem, features robust security and enhanced memory management, and is available as a free Amazon Machine Image (AMI) for EC2 instances.

How Bottlerocket Works

When an instance uses Bottlerocket as the AMI, it runs a stripped-down implementation of Linux that includes the kernel and an atomic update mechanism. The automated update mechanism uses an image-based model for upgrades and rollbacks, which speeds up the deployment and integration process. Bottlerocket enforces isolation between containers and operating systems using Security-Enhanced Linux (SELinux), along with discouraging administrative permissions for production servers. 

AWS Bottlerocket setup
 Figure 1: Setting up Bottlerocket (Source: Amazon)

Benefits of Using AWS Bottlerocket

There are several advantages to using the Bottlerocket OS: 

  • Increased container uptime: Thanks to the image-based update model, Bottlerocket applies configuration changes, updates, and rollbacks for containerized applications instantly, thereby reducing the effort needed to apply updates and downtime in the case of a failed upgrade. 
  • Open-source model for custom builds: Bottlerocket was launched as an open-source project and is publicly available on GitHub. This allows organizations to custom-build the platform to support specific orchestration platforms and use cases. 
  • Out-of-the-box container support: The Bottlerocket OS comes preinstalled with container runtimes and cloud integrations. Once EC2 instances are provisioned, this feature allows administrators to instantly initiate containers without requiring host setups.
  • Automated updates: Bottlerocket instances are configured to download and apply periodic updates autonomously from pre-configured AWS repositories. 
  • 3 years of free support: Apart from being a freely available AMI that is covered by AWS support plans, all instances running builds of Bottlerocket receive free updates and support from AWS for the first three years. 
  • Optimized performance: AWS offers Bottlerocket builds that are innately optimized to include support for the latest capabilities of EC2 instances, enabling maximum performance for containerized workloads. The platform is also designed to support AWS integrations for performance optimization, security, and container orchestration.
  • Enhanced security: The platform uses SELinux to enforce container isolation with the host OS for enhanced security. Since it only includes the necessary features and services to run containers, Bottlerocket considerably reduces the attack surface for containerized applications. 
  • Reduced overhead costs: Through image-based updates, Bottlerocket automates the processes of cluster upgrades and rollbacks, reducing the human effort/cost required for cluster management.

Using Granulate to Optimize AWS Workloads

Granulate is a workload performance optimization solution that helps developer teams reduce cloud costs while boosting the efficiency of their underlying AWS infrastructure. 

Once installed, Granulate learns pipeline-specific data processing stages and patterns, then helps optimize resource OS management based on these usage patterns. Granulate’s SaaS solution works in real-time at the kernel and runtime level to increase throughput and reduce latency, cutting cloud costs by up to 60%. 

The platform offers native support for Amazon Linux 2 and the Bottlerocket OS, making it ideal for containerized workloads running on AWS.

How Granulate Helps Improve Infrastructure Performance

Granulate uses a lightweight agent that can be installed into the deployment environment with a single command. Each agent is self-contained and autonomously performs resource optimizations to identify performance bottlenecks and resolve inefficiencies. The platform analyzes the workload’s usage patterns and data flows to infer how to optimally configure infrastructure and adapt it to the workload. 

For teams using Bottlerocket, Granulate can be deployed as an image within a container, a DaemonSet, Docker file, or other provisioning method supported by popular orchestrators.

Granulate’s gAgent integrates seamlessly into a CI/CD pipeline, which assesses usage patterns and data flows to help implement performance optimizations for pods and containers. Once installed, the agent continuously compares trends in microservice performance with changes in infrastructure and code repositories. This allows cloud teams to reduce the manual overhead involved in identifying performance impacts every time a change is applied.

Benefits of Using Granulate for Containerized Workloads

With Granulate, organizations can realize a number of benefits:

  • Backward-compatible cost savings: Granulate offers cost savings on instances whether they are reserved, spot, or discount-purchased. Additionally, Granulate can help optimize the performance and cost of your AWS services regardless of any past configurations or optimization solutions and supports all cloud models including public, private, and hybrid. 
  • Simple installation and integration: Installing Granulate entails a single command that can even be performed by inexperienced developers. The Granulate operator starts working soon after installation and allows teams to realize performance improvements and cost savings within days.
  • Customized OS decisions: The solution learns the data processing states and patterns of your specific use case to offer optimization opportunities for customized application-usage management. This allows developers to enable OS resource management optimizations and save on infrastructure costs without changing a single line of code.

Granulate is Built for Companies on AWS

Successful adopters of the Granulate solution include many enterprise-level companies that rely on AWS. 

Perion’s AdTech workloads run on AWS EKS, and the organization sought to improve application performance and operational efficiency to reduce cloud costs for one of their most expensive EKS services. After using Granulate, Perion recorded a 60% reduction in CPU utilization, a 10% reduction in pod response times, and a 52% reduction in cluster size after scaling out. 

Singular, a leading marketing intelligence platform, similarly sought a solution to reduce their AWS bill and improve the overall latency of their solution. The company also needed to scale up its cloud infrastructure hosted on spot-based ECS instances without impacting user experience or breaching SLAs. With Granulate’s optimization agent, Singular’s workloads posted a 34% reduction in CPU utilization, a 55% improvement in response time, and a 43% improvement in job completion times for their data pipeline service.

Finally, Bigabid is an excellent example of optimization for cloud infrastructure, as it needed a low-level server optimization solution for its AI-driven media buying engine. After a successful passive installation and proof of concept on two machines, Bigabid decided to deploy Granulate’s optimization services throughout its network. Granulate helped Bigabid slash latency by 70%, eliminating up to 90% of bid timeouts and cutting infrastructure costs by 60%.

Bottlerocket OS and Granulate Are the Future

While the Bottlerocket OS was developed by AWS to help run containers in multiple deployment environments, Granulate was purpose-built to support AWS container services. The Granulate platform leverages AI/ML to optimize AWS infrastructure simply by analyzing a service’s data pipeline stages and data flows and transforming resource management to better support these application patterns. 

Organizations can use Granulate to optimize resource usage and cloud costs for workloads running on native ECS, EKS, Fargate, and any other containerized environment – and get results no matter the optimization solutions they’re already using.

Interested in learning more about how Granulate can help you optimize your Bottlerocket containerized workloads? Book a 1:1 demo with the team or reach out via the AWS website.

Back to blog