toplogo
Sign In

Developers' Awareness and Actions to Manage Cloud Infrastructure Costs in Infrastructure as Code Artifacts


Core Concepts
Developers are not only concerned with the cost of their cloud-based application deployments, but also take actions to reduce these costs beyond just selecting cheaper cloud services.
Abstract
The study explores the extent to which software developers are aware of the cost of deploying and operating cloud-based software, and what kind of concerns and action initiatives they have about it. The researchers conducted a systematic examination of 152,735 GitHub repositories and analyzed 538 relevant commits and 208 relevant issues using inductive and deductive coding. The findings indicate that developers are not only concerned with the cost of their application deployments but also take actions to reduce these costs beyond selecting cheaper cloud services. The key highlights and insights from the analysis are: The most prevalent cost-related actions mentioned in commit messages are related to "saving" costs, such as removing unnecessary monitoring or using cheaper instance types. This suggests developers' awareness of the cost implications of their decisions. Issues provide more insights into the decision-making process around cost management, with discussions around the current configuration, alternative options, and rationale for changes. Developers consider various properties of the cloud deployment when managing costs, such as instances, storage, networking, and billing mode. They take actions like changing, testing, or upgrading these properties to reduce costs. Developers also express concerns about cost increases due to changes in the deployment, and the need for cost-related alerts and policies to prevent excessive charges. The analysis reveals a knowledge graph that organizes the key concepts around cost awareness, including the effects on cost, the actions taken, and the properties of the deployment considered. The findings provide empirical grounding on how developers seek to reduce costs through service selection, resource allocation, deployment optimization, and other techniques. This can inform future research and development efforts to better support cost management in cloud-based application development.
Stats
Terraform is a popular cloud orchestration tool that provides an abstraction layer over cloud service providers' APIs. The study focused on Terraform artifacts in open-source GitHub repositories. The dataset includes: 538 relevant commits from 434 distinct repositories 208 relevant issues from 89 distinct repositories
Quotes
"Removed the default use of detailed monitoring. (#17) * Reduces CloudWatch costs for metrics by 80%" "nat gateway is verry [sic] expensive" "Pods for some core services have migrated over to high-memory nodes, which have a much higher cost that the general nodes."

Deeper Inquiries

How can the insights from this study be leveraged to develop tools and techniques that better support developers in managing cloud infrastructure costs?

The insights from this study can be used to develop tools and techniques that provide developers with more visibility and control over the costs associated with managing cloud infrastructure. For example, by analyzing the patterns of cost-aware practices identified in the study, developers can be provided with automated alerts or recommendations when their actions may lead to increased costs. Additionally, tools can be developed to optimize resource allocation based on historical cost data, helping developers make more informed decisions about their cloud infrastructure usage. By leveraging the knowledge graph created in the study, developers can have a structured framework to guide their cost management strategies and actions.

What are the potential challenges and barriers that prevent wider adoption of cost-aware practices in cloud-based application development?

One potential challenge is the lack of awareness among developers about the impact of their actions on cloud infrastructure costs. Without proper education and training on cost management practices, developers may not prioritize cost optimization in their development process. Additionally, the complexity of cloud pricing models and the dynamic nature of cloud services can make it challenging for developers to accurately estimate and control costs. Limited visibility into cost data and lack of tools that provide real-time cost monitoring can also hinder the adoption of cost-aware practices. Furthermore, organizational culture and priorities may not always align with a focus on cost optimization, leading to a lack of incentives for developers to prioritize cost management.

How do the cost management practices and concerns identified in this study compare to those in other software development domains, such as on-premises or mobile app development?

The cost management practices and concerns identified in this study for cloud-based application development are unique in several ways compared to other software development domains. In on-premises development, the focus is more on upfront capital expenses for hardware and infrastructure, whereas in cloud-based development, the emphasis is on operational expenses and pay-as-you-go pricing models. Cloud-based development also involves a higher level of abstraction and automation in managing infrastructure, leading to different cost optimization strategies. In mobile app development, cost concerns may revolve around data usage, server costs for backend services, and app performance optimization for cost-efficient operation. However, the scalability and elasticity of cloud services present in cloud-based development introduce additional considerations such as auto-scaling, resource allocation, and service selection to optimize costs. Overall, the dynamic and on-demand nature of cloud services necessitates a more proactive and continuous approach to cost management compared to traditional on-premises or mobile app development.
0