Aviators expand Google Cloud
Even though Google has spent a lot of money on engineering productivity over the past 20 years, until a few years ago, most of the industry did not priorities this area of study. However, as companies seek to improve the productivity of their engineering teams, this data-driven discipline has gained prominence due to the rise of remote work and the quickly changing AI landscape.
Google have intimate knowledge of the difficulties (and possibilities) involved in increasing engineering efficiency because they were once employees of Google. For this reason, Cloud set out to create Aviator, an engineering productivity platform that enhances performance at every stage of the development lifecycle and assists teams in removing tedious but vital chores from their workdays.
Utilizing Google Cloud to Create a Scalable Services
Scalable Services
Building Aviator from the ground up on Google Cloud was an obvious choice, since they goal is to provide every developer with productivity engineering on par with Google. Additionally, They applied to and were accepted into the Google for Startups programme, which provides extensive credits for cloud products, business help, and technical training. This allowed our team to investigate a number of cloud possibilities without having to worry too much about price.
Google Cloud guiding principles were the main metrics that the DORA (DevOps Research and Assessment) team produced. With Google Cloud, They created a platform that provides:
Quicker and more adaptable code reviews: Automated code review guidelines, real-time reviewer input, and predetermined response time targets enhance code review cycles. With the help of these tools, developers may release code more quickly, increase the velocity of their development teams, and shorten the time it takes for code to enter production.
Stack pull requests (PRs), which are modest code changes that can be independently reviewed in a predetermined order and then synchronised to remove development bottlenecks and prevent merge conflicts, are a useful tool for accelerating review cycles.
Simplified, adaptable merging: Take command of crowded repositories with a high-throughput merge queue designed to handle thousands of pull requests while lowering out-of-date pull requests, merge conflicts, inconsistent modifications, and malfunctioning builds. Because isolated code changes are verified before being merged back into the main line of development, this increases the frequency of deployments and decreases the rate of change failures.
Shrewd release notes tailored to a service: With a single dashboard that assists teams in automatically creating release notes and managing deployments, rollbacks, and releases across all environments, you can do away with disorganized release notes and clumsy verification procedures. Development teams may provide more dependable products and systems and shorten the time it takes to recover from production failures by using the releases framework, which also increases deployment frequency and rollbacks.
Their scalable service was implemented using multiple Google Cloud products. For instance, Aviator’s architecture mainly depends on background activities to carry out automated actions. In order to scale Aviator to thousands of active users and millions of code changes, Google decided to adopt Google Kubernetes Engine (GKE). This allowed us to expand Aviators Kubernetes pods horizontally as use increased.
Furthermore, They were able to handle deployments with Google Cloud without requiring us to keep credentials on the CD platform. Additionally, They made use of the cutting-edge IAM architecture of Google Cloud to offer more flexibility in permission management.
Aviator
With these extra features, Aviator may further simplify management and collaboration for engineers by utilising Google Cloud:
Monitoring the health of the system
An open-source monitoring tool called Prometheus gathers time series data from configured targets, like applications and infrastructure, using a pull paradigm. Google were able to build up complete monitoring and alerting for Aviator without worrying about scalability or dependability thanks to Managed Service for Prometheus. In addition to our Prometheus data, Cloud Monitoring offers us access to over 6,500 free metrics that provide us a comprehensive overview of the functionality, availability, and overall health of our service in one location.
Management of logs
Aviator uses API calls as a main method of communication with external services like GitHub, PagerDuty, and Slack. Due to these services’ unreliability or network problems, these API calls frequently fail. In order to ensure that Google could quickly troubleshoot and fix any issues that are reported, They employed Google Cloud’s powerful log management features to handle this issue. This also made it simple to develop structured queries, filter the logs for various services, and even set up alarms depending on predetermined criteria.
Detection of slow queries
They picked Cloud SQL, a fully managed PostgreSQL database service from Google Cloud, for our primary database since it offers high availability and performance right out of the box. In order to identify sluggish queries on Aviator, They have been investigating query labelling with Sqlcommenter more recently.
Google can easily identify the cause of each sluggish query by using this open-source tool, which samples and tags every query. Additionally, They make use of the Python module Sqlcommenter, which works nicely with the backend of our application.
Management of rate limits
Since our team uses so many third-party services, controlling rate restrictions was essential to ensuring that our users had a continuous experience while adhering to the third-party services’ permitted limits. Furthermore, there are many APIs in Aviator itself that require rate limitations. To make monitoring and enforcing rate restrictions for both inbound and outbound API calls easier, Google Cloud used Memory store for Radis.
Cloud-based, self-hosted, and single-tenant
Because Aviator can accommodate engineering teams of any size from 20 engineers to over 2,000 installations might differ substantially. They felt that Aviator had to be able to accommodate a wide range of demands and specifications.
Currently, when configuring Aviator, a developer has the choice of choosing cloud, self-hosted, or single tenant installation. Let’s examine each in more detail:
Installation of Clouds
This version is the easiest for users to set up and is fully controlled by Aviator through a Kubernetes cluster in Google Cloud. They also perform a regular daily deployment to update it.
Independent
A self-hosted version of Aviator that they can install on their own private cloud is preferred by certain users. In this configuration, They upload new versions of the Aviator programme as Docker images to Google Cloud’s Artefact registry and publish Helm charts to a private repository.
They generate a new IAM service account with an authentication key and read-only access to the private repository where Google Cloud host our Docker images for each self-hosted customer. This account is then shared with our users. This facilitates our users’ installation of a self-hosted version of Aviator in a straightforward and safe manner.
Tenant alone
The self-hosted version and the single-tenant installation are nearly identical, with the exception that Aviator oversees the installation through our personal Google Cloud account. Users now have more flexibility over their Aviator setting and improved security as a result.
AI Research
Even more intriguing options for expanding engineering productivity have been shown by recent advances with LLMs. At Aviator, They’ve already begun investigating a number of AI-powered solutions that can help at different phases of the development lifecycle, such as:
Test generation: By using AI to create test cases on its own, developers may save a tonne of time and identify possible flaws early in the development process.
Code auto-completion: AI-powered solutions like GitHub Copilot propose code snippets in real time, helping engineers write code faster and more accurately.
Predictive test selection: AI can speed up development by lowering the number of tests run each cycle and identifying code changes that will fail tests.
Google is a leader in AI innovation with over ten years of expertise. This lets Google Cloud offer cutting-edge AI solutions like Vertex AI and Gemini. Aviator’s AI base from Google Cloud streamlines development and lets us launch next-generation AI features quickly.
In summary
More than just a performance indicator, engineering productivity is a key factor in the success of businesses. Through improved developer collaboration and efficiency, businesses may shorten time-to-market and respond faster to shifting consumer expectations. In this journey, Google Cloud has shown to be an excellent collaborator.
It is specially suited to enable quick iterations while abstracting away complexity thanks to its unique combination of dependability, speed, and performance as well as its state-of-the-art AI capabilities. At Aviator, Google Cloud are eager to keep using these technologies to increase engineering productivity to new heights.