<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Utpal Nadiger</title>
    <description>The latest articles on DEV Community by Utpal Nadiger (@utpalnadiger).</description>
    <link>https://dev.to/utpalnadiger</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1088044%2F6aaafd4f-6e2f-46d6-9c9a-cd4a523858b4.png</url>
      <title>DEV Community: Utpal Nadiger</title>
      <link>https://dev.to/utpalnadiger</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/utpalnadiger"/>
    <language>en</language>
    <item>
      <title>Streamlining Infrastructure as Code: A Guide to Terraform Automation, Collaboration, and Governance in Large Organizations</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Thu, 15 Feb 2024 17:51:03 +0000</pubDate>
      <link>https://dev.to/digger/streamlining-infrastructure-as-code-a-guide-to-terraform-automation-collaboration-and-governance-in-large-organizations-lb1</link>
      <guid>https://dev.to/digger/streamlining-infrastructure-as-code-a-guide-to-terraform-automation-collaboration-and-governance-in-large-organizations-lb1</guid>
      <description>&lt;p&gt;Terraform/OpenTofu is the most widely adopted infrastructure as code tool that allows teams to define and provision infrastructure using a high-level configuration language. &lt;/p&gt;

&lt;p&gt;In large organizations, where the complexity and scale of infrastructure can be significant, in addition to using the tool itself, the organisations layer automation, collaboration, and governance features on top using relevant tools/product, as they are crucial for maintaining efficiency and compliance. Let's dissect the phases involved when Infrastructure as code is used in large teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development Phase
&lt;/h2&gt;

&lt;p&gt;The process begins in the development phase, where changes to the infrastructure is proposed. &lt;/p&gt;

&lt;p&gt;Here, developers use static analysis tools to ensure code quality and security standards are met before submitting changes for review. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6amoy8r5u1be8dfivod.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6amoy8r5u1be8dfivod.png" alt="Checkov"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Checkov is a popular Static Analysis tool used in a lot of enterprise set ups&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This phase may involve an orchestrator, which is responsible for managing the workflow of tasks, and a plan generator that creates an execution plan for the proposed changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plan Stage
&lt;/h2&gt;

&lt;p&gt;Once the initial code review is passed, the plan stage involves generating a detailed plan of the proposed infrastructure changes. &lt;/p&gt;

&lt;p&gt;This includes detecting drift from the current state, scaling considerations, cost estimations, and compliance checks. &lt;/p&gt;

&lt;p&gt;The plan preview is essential for understanding the impact of the changes before they are applied.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5rghiekd8hsmruzx4k8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5rghiekd8hsmruzx4k8.png" alt="Digger"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tools such as digger can help in plan previews in PR comments&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  State Management
&lt;/h2&gt;

&lt;p&gt;State management is a critical aspect of Terraform's operation in large organizations. &lt;/p&gt;

&lt;p&gt;It involves tracking the state of the infrastructure in a state file. &lt;br&gt;
This allows Terraform to map real-world resources to the configuration, keep track of metadata, and improve performance for large infrastructures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk Assessments
&lt;/h2&gt;

&lt;p&gt;At the center of the workflow is the risk assessment process. This is likely a tool or set of metrics that evaluates the potential risk associated with the changes. This is where the engineering-security team typically steps in.&lt;/p&gt;

&lt;p&gt;Factors may include benchmarks and baselines for performance, cost, and security. &lt;/p&gt;

&lt;p&gt;The risk assessment is crucial for governance, ensuring that changes adhere to organizational policies and do not introduce unacceptable levels of risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Governance and Approvals
&lt;/h2&gt;

&lt;p&gt;Governance in Terraform is enforced through policies that dictate what can be deployed and under what conditions. &lt;/p&gt;

&lt;p&gt;Approvals are a part of this governance framework, requiring oversight by senior engineers or automated checks to ensure all standards are met before proceeding. &lt;/p&gt;

&lt;p&gt;Version labeling and manifest generation add additional layers of tracking and accountability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployment and Testing
&lt;/h2&gt;

&lt;p&gt;Once the proposed changes have passed through all the previous checks and assessments, they are ready for deployment. The deployment process involves applying the changes to the infrastructure. &lt;/p&gt;

&lt;p&gt;This is followed by a series of tests to ensure that the deployment was successful and the infrastructure is operating as expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metrics and Versioning
&lt;/h2&gt;

&lt;p&gt;The final part of the Terraform workflow in large organizations includes metrics collection and versioning. &lt;/p&gt;

&lt;p&gt;Metrics and detectors are used to monitor the infrastructure's performance and risk post-deployment, ensuring any anomalies are detected quickly. &lt;/p&gt;

&lt;p&gt;Version control is important for tracking changes over time, allowing for audits and rollbacks if necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Thank you for reading until the end. Before you go, just wanted to share the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We're building an Open Source Tool that helps you orchestrate Terraform within CI/CD systems such as GitHub Actions while providing RBAC via OPA, Drift Detection and Concurrency with a self hostable orchestrator backend. Our goal is to essentially provide the set up mentioned above for your team. Would love your feedback!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Star us on GitHub&lt;/a&gt; | &lt;a href="https://docs.digger.dev" rel="noopener noreferrer"&gt;Check out Docs&lt;/a&gt; | &lt;a href="https://blog.digger.dev" rel="noopener noreferrer"&gt;Blog&lt;/a&gt; | &lt;a href="https://bit.ly/diggercommunity" rel="noopener noreferrer"&gt;Slack&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>go</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Terraform drift detection and remediation - a primer</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Thu, 08 Feb 2024 17:54:36 +0000</pubDate>
      <link>https://dev.to/digger/terraform-drift-detection-and-remediation-a-primer-d1</link>
      <guid>https://dev.to/digger/terraform-drift-detection-and-remediation-a-primer-d1</guid>
      <description>&lt;p&gt;We know Terraform/OpenTofu is the most widely used IaC tool for automating and managing cloud infrastructure. &lt;/p&gt;

&lt;p&gt;However, with the power of managing infrastructure as code, comes the challenge of managing 'drift' - the divergence between the intended state of infrastructure as defined in Terraform configurations and its actual state in the cloud. &lt;/p&gt;

&lt;p&gt;Drift can manifest for various reasons, from manual interventions to overlapping tool functionalities, and poses significant risks including security vulnerabilities, compliance issues, and financial overheads. This article delves deep into Terraform drift detection and remediation, exploring the underlying causes, the potential impacts, and the strategies to detect and rectify this aspect of cloud infrastructure management. &lt;/p&gt;

&lt;h2&gt;
  
  
  Common Causes of Drift
&lt;/h2&gt;

&lt;p&gt;The occurrence of drift in Terraform-managed infrastructure can be attributed to several factors. A primary cause is manual changes made directly in the infrastructure through interfaces like the AWS Console, which are not recorded in the Terraform state file. This discrepancy leads to a state of drift. Another significant factor contributing to drift is the use of multiple automation tools with overlapping capabilities. &lt;/p&gt;

&lt;p&gt;For example, using Terraform alongside Ansible, which also possesses infrastructure provisioning capabilities, might result in inconsistencies and drift if not managed properly. &lt;/p&gt;

&lt;p&gt;Additionally, user-defined scripts, such as bash or shell scripts in cloud platforms, can also lead to drift by modifying network configurations or other resources. &lt;/p&gt;

&lt;p&gt;Emergency changes or hotfixes applied directly through interfaces like the AWS Console can bypass Terraform's regular processes, further leading to drift. &lt;/p&gt;

&lt;p&gt;A lack of adequate training among non infra savvy developers in the team (yes - "shifting left" gone wrong) regarding Terraform's use can result in them making direct updates through cloud service consoles, inadvertently introducing drift.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implications of Drift
&lt;/h2&gt;

&lt;p&gt;Drift in Terraform can have far-reaching implications. It can expose security vulnerabilities, leading to potential data breaches and system compromises. In terms of compliance, drift can lead to violations, especially when it results in unauthorized access or exposure of sensitive data. Operationally, drift can introduce challenges, increasing system downtime and impacting performance. Untracked changes can also lead to increased operational costs, particularly if they involve the use of higher-spec resources that were not part of the original plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Detecting and Managing Drift
&lt;/h2&gt;

&lt;p&gt;Detecting and managing drift in Terraform is a multifaceted process. The use of Terraform commands such as &lt;code&gt;terraform refresh&lt;/code&gt; and &lt;code&gt;terraform plan&lt;/code&gt; plays a critical role in identifying drifts. Additionally, periodic monitoring of the infrastructure using these commands can aid in early detection and prevention of larger issues. Tools like &lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt; and Terraform Cloud offer dedicated drift detection and remediation mechanisms. These tools provide continuous monitoring and notifications, enabling teams to stay informed about the state of their infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpeoq48ilqgf3e5xtry8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpeoq48ilqgf3e5xtry8u.png" alt="Digger"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Drift Detection in Digger - Slack Alerts&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Drift Remediation Approaches
&lt;/h2&gt;

&lt;p&gt;There are two primary approaches to remediate drift in Terraform. The first involves reconciling the changes, which means restoring the infrastructure to the state defined in the Terraform code. This typically involves reapplying the configuration. The second approach is aligning the Terraform code with the current state of the infrastructure. This is often necessary when changes made outside of Terraform are deemed necessary and should be maintained. This involves updating the Terraform code to reflect the real-time state of the infrastructure.&lt;/p&gt;

&lt;p&gt;In conclusion, managing infrastructure drift in Terraform environments requires diligent monitoring, effective use of tools, and clear policies and training for team members. This comprehensive approach is vital to ensure that the infrastructure remains secure, compliant, and aligned with the organizational goals and requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Thank you for reading until the end. Before you go, just wanted to share the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We're building an Open Source Tool that helps you orchestrate Terraform within CI/CD systems such as GitHub Actions while providing RBAC via OPA, Drift Detection and Concurrency with a self hostable orchestrator backend. Would love your feedback!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Star us on GitHub&lt;/a&gt; | &lt;a href="https://docs.digger.dev" rel="noopener noreferrer"&gt;Check out Docs&lt;/a&gt; | &lt;a href="https://blog.digger.dev" rel="noopener noreferrer"&gt;Blog&lt;/a&gt; | &lt;a href="https://bit.ly/diggercommunity" rel="noopener noreferrer"&gt;Slack&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>go</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Typical challenges faced while setting up CI/CD for Terraform at scale</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Wed, 31 Jan 2024 15:29:55 +0000</pubDate>
      <link>https://dev.to/digger/typical-challenges-faced-while-setting-up-cicd-for-terraform-at-scale-37hn</link>
      <guid>https://dev.to/digger/typical-challenges-faced-while-setting-up-cicd-for-terraform-at-scale-37hn</guid>
      <description>&lt;p&gt;Say, hypothetically, that you are a part of a startup handling payments, and after a good few months of effort, you have now codified all of your infrastructure in Terraform. Your next task is to set up CI/CD for terraform to automate terraform deployments and enable collaborative, self-service deployments for all the (hypthetical) 500 developers in your team. This article aims to explain the challenges you are likely to face while doing this.&lt;/p&gt;

&lt;p&gt;Setting up CI/CD for Terraform at scale involves addressing challenges such as managing state files, ensuring environment consistency, and maintaining collaboration and version control. &lt;/p&gt;

&lt;p&gt;The process also includes implementing automated testing, modularizing code, and establishing workflows to manage the dynamic nature of IaC. &lt;/p&gt;

&lt;p&gt;Let's get into the specifics, then.&lt;/p&gt;

&lt;h2&gt;
  
  
  Modularization of Code
&lt;/h2&gt;

&lt;p&gt;In CI/CD for IaC, code modularization is crucial. It involves breaking down infrastructure code into distinct, reusable modules. This approach enhances manageability, allowing developers to focus on specific areas without impacting others. It also reduces duplication, as common functionalities are abstracted into modules that can be reused across different parts of the infrastructure. This method streamlines updates and maintenance, as changes to a module propagate wherever it's used, ensuring consistency and reducing the likelihood of errors in large-scale deployments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbg8vh8zk9dyv704u5cf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbg8vh8zk9dyv704u5cf.png" alt="Modules" width="800" height="358"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Image credit - FreeCodeCamp)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Secret Management
&lt;/h2&gt;

&lt;p&gt;Managing secrets, such as API keys and passwords, is essential in IaC. Exposing these secrets can lead to security vulnerabilities. Using secret management tools is a recommended practice (Hashicorp Vault, or Infisical are highly recommended by the community). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fid23zu1ebrsi9c5ngggp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fid23zu1ebrsi9c5ngggp.png" alt="Secret Management" width="400" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Image credit - IN4IT)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These tools store secrets securely and provide controlled access to them, ensuring that sensitive information is not hardcoded in the IaC scripts. Proper secrets management not only enhances security but also simplifies the process of rotating and updating secrets, which is a critical aspect of maintaining the security posture in CI/CD environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure Monitoring and Logging
&lt;/h2&gt;

&lt;p&gt;Setting up comprehensive monitoring and logging is vital for maintaining the health and performance of infrastructure. This involves collecting, analyzing, and storing logs from various components of the infrastructure. &lt;/p&gt;

&lt;p&gt;Effective monitoring enables teams to detect and respond to issues proactively, minimizing downtime. Logging provides valuable insights into the performance and behavior of the infrastructure, aiding in troubleshooting and optimizing resource utilization. In large-scale deployments, automated monitoring and alerting systems are indispensable for maintaining stability and performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling Dependencies
&lt;/h2&gt;

&lt;p&gt;Effective management of dependencies between different infrastructure components is crucial. Dependencies must be clearly defined and managed to ensure that changes in one component do not adversely affect others. &lt;/p&gt;

&lt;p&gt;This requires a thorough understanding of the infrastructure's architecture and the interrelations between its components. Proper dependency management facilitates smoother updates and minimizes the risk of failures during deployment. It also aids in predicting the impact of changes, allowing for better planning and testing of updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost Management
&lt;/h2&gt;

&lt;p&gt;Monitoring and managing the costs associated with deployed infrastructure is essential to avoid budget overruns. This includes regular reviews of resource utilization, identifying underutilized or unnecessary resources, and optimizing infrastructure to balance performance with cost. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2efqg55727oisduvqs1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2efqg55727oisduvqs1c.png" alt="Cost Management" width="490" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Implementing cost monitoring tools and setting up alerts for budget thresholds helps in maintaining financial control. Effective cost management ensures that the infrastructure meets the required performance standards without incurring unnecessary expenses, which is especially important in large-scale operations where costs can escalate quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/diggerhq/digger"&gt;Digger&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Thank you for reading until the end. Before you go, just wanted to share the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We're building an Open Source Tool that helps you orchestrate Terraform within CI/CD systems such as GitHub Actions while providing RBAC via OPA, Drift Detection and Concurrency with a self hostable orchestrator backend. Would love your feedback!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger"&gt;Star us on GitHub&lt;/a&gt; | &lt;a href="https://docs.digger.dev"&gt;Check out Docs&lt;/a&gt; | &lt;a href="https://blog.digger.dev"&gt;Blog&lt;/a&gt; | &lt;a href="https://bit.ly/diggercommunity"&gt;Slack&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>go</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>GitHub issues from top Open Source Golang Repositories that you should contribute to</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Mon, 15 Jan 2024 17:36:50 +0000</pubDate>
      <link>https://dev.to/digger/github-issues-from-top-open-source-golang-repositories-that-you-should-contribute-to-4gp8</link>
      <guid>https://dev.to/digger/github-issues-from-top-open-source-golang-repositories-that-you-should-contribute-to-4gp8</guid>
      <description>&lt;p&gt;This article is for contributors who are looking to contribute to cool open source go projects. &lt;/p&gt;

&lt;p&gt;We collated a bunch of issues that we thought the community would be interested in contributing to, feel feel to check them out!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9rh75a5ezyskzixrpmn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9rh75a5ezyskzixrpmn.png" alt="Open Source"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Digger - an Open Source Terraform Automation &amp;amp; Collaboration tool
&lt;/h2&gt;

&lt;p&gt;Before we dive in to the issues, let me share Digger with you. It's an open-source Infrastructure as Code Management tool that helps you securely use IaC such as Terraform and OpenTofu as a team. Digger is an alternative to Hashicorp's Terraform cloud, and the best part is that it's completely open-source!&lt;/p&gt;

&lt;p&gt;I would be extremely grateful if you could give us a star &amp;amp; share your thoughts in the comments section below&lt;br&gt;
&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;https://github.com/diggerhq/digger&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcqt6eirvfris0a9b4a37.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcqt6eirvfris0a9b4a37.png" alt="Star us on GitHub"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We've picked up issues from projects such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flipt (Open Source Feature Management tool)&lt;/li&gt;
&lt;li&gt;CasaOS (open-source Personal Cloud system)&lt;/li&gt;
&lt;li&gt;Tailscale (VPN service for secure networks)&lt;/li&gt;
&lt;li&gt;Memos (A lightweight note taking service)&lt;/li&gt;
&lt;li&gt;s5cmd (Parallel S3 and local filesystem execution tool.)&lt;/li&gt;
&lt;li&gt;AdGuardHome (Network-wide ads &amp;amp; trackers blocking DNS server)&lt;/li&gt;
&lt;li&gt;Transfer.sh (File sharing from the command-line.)&lt;/li&gt;
&lt;li&gt;Digger (Terraform automation and collaboration tool)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Diving right in to the issues! 👇&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Syntax of the list below will be {project name} - {Issue Title} and will link directly to the issue in the repository of the project that it is a part of.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/flipt-io/flipt/issues/2653" rel="noopener noreferrer"&gt;Flipt - Clickhouse integration for flag eval analytics&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/IceWhaleTech/CasaOS/issues/1555" rel="noopener noreferrer"&gt;CasaOS - Settings -&amp;gt; Edit the docker-compose.yml &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/tailscale/tailscale/issues/7677" rel="noopener noreferrer"&gt;Tailscale - Make depaware output patch compatible&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/tailscale/tailscale/issues/882" rel="noopener noreferrer"&gt;Tailscale - Make Netgear ReadyNAS package&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/usememos/memos/issues/2748" rel="noopener noreferrer"&gt;Memos - customise max content length of memo&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/usememos/memos/issues/2678" rel="noopener noreferrer"&gt;Memos - backdates&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/usememos/memos/issues/2316" rel="noopener noreferrer"&gt;Memos - slash command&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/peak/s5cmd/issues/690" rel="noopener noreferrer"&gt;s5cmd - Extended character support for s3 compatible backend&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/peak/s5cmd/issues/418" rel="noopener noreferrer"&gt;s5cmd - concurrency flag performance&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/AdguardTeam/AdGuardHome/issues/6628" rel="noopener noreferrer"&gt;Adguardhome - Clients identification issue&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/AdguardTeam/AdGuardHome/issues/6333" rel="noopener noreferrer"&gt;Adguardhome - Client info is not correct&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/dutchcoders/transfer.sh/issues/578" rel="noopener noreferrer"&gt;Transfer.sh - Option to user a CLI&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/dutchcoders/transfer.sh/issues/411" rel="noopener noreferrer"&gt;Transfer.sh - Upload files from URL&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger/issues/1014" rel="noopener noreferrer"&gt;Digger - Policy violation message switched variables&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger/issues/344" rel="noopener noreferrer"&gt;Digger - Support Case insensitive Digger commands&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger/issues/121" rel="noopener noreferrer"&gt;Digger - Fail with better error message&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>go</category>
      <category>opensource</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Tools used by the top 1% of Platform Engineers and their Commercial Open Source Alternatives</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Fri, 12 Jan 2024 16:15:41 +0000</pubDate>
      <link>https://dev.to/digger/tools-used-by-the-top-1-of-platform-engineers-and-their-commercial-open-source-alternatives-6l7</link>
      <guid>https://dev.to/digger/tools-used-by-the-top-1-of-platform-engineers-and-their-commercial-open-source-alternatives-6l7</guid>
      <description>&lt;p&gt;In today’s article, we are diving deep into the top tools used by platform engineers and their commercial open source alternatives&lt;/p&gt;

&lt;p&gt;The tools that we will be talking about will around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure as code management&lt;/li&gt;
&lt;li&gt;Service Catalogs&lt;/li&gt;
&lt;li&gt;Observability&lt;/li&gt;
&lt;li&gt;CI/CD within Hosted Git&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem that tool solves&lt;/th&gt;
&lt;th&gt;Open Source&lt;/th&gt;
&lt;th&gt;Proprietary SaaS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure as Code Management&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developer.hashicorp.com/terraform/cloud-docs" rel="noopener noreferrer"&gt; Hashicorp Terraform Cloud&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Service Catalog&lt;/td&gt;
&lt;td&gt;&lt;a href="https://backstage.io/" rel="noopener noreferrer"&gt;Backstage&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.getport.io/compare/backstage-vs-port" rel="noopener noreferrer"&gt;Port&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Observability&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/SigNoz/signoz" rel="noopener noreferrer"&gt;Signoz&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.datadoghq.com/" rel="noopener noreferrer"&gt;Datadog&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD within VCS&lt;/td&gt;
&lt;td&gt;&lt;a href="https://about.gitlab.com/solutions/continuous-integration/" rel="noopener noreferrer"&gt;Gitlab CI&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.github.com/en/actions" rel="noopener noreferrer"&gt;Github Actions&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Lets dive into each of them one by one:&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure as code (IaC) management
&lt;/h2&gt;

&lt;p&gt;Infrastructure as Code management involves being able to use IaC as a team in a reproducible and consistent manner. Teams use either OpenTofu or Terraform to provision their infrastructure as code, but use IaC managment tools, often called “Terraform automation and Collaboration Software” (Tacos) to manage and automate this in a team setting - specifically for things such as state management, role based access controls, drift detection and concurrent runs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rjz32tzu9zjkn8vqc7s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rjz32tzu9zjkn8vqc7s.png" alt="Digger"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Digger is a Commercial Open Source IaC management platform and Hashicorp’s Terraform Cloud is the proprietary SaaS company offering IaC management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Check Digger's repo on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Service Catalogs
&lt;/h2&gt;

&lt;p&gt;A service catalog centralizes all infrastructure tools, services, and documentation, streamlining the development process. It acts as a single point of access for developers, enhancing efficiency and coherence in the deployment and management of infrastructure. By consolidating resources and guidelines, it simplifies decision-making and promotes best practices, ensuring a more unified and effective development environment. In addition to this it includes information about deliverables, prices, contact points, and ordering and request processes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz37s9084p1hngg74li9o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz37s9084p1hngg74li9o.png" alt="Service Catalog"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Backstage by Spotify is an Open Source Service Catalog and Port is a Proprietary SaaS offering the same service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/backstage/backstage" rel="noopener noreferrer"&gt;Check the Backstage repo on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Observability
&lt;/h2&gt;

&lt;p&gt;Observability platforms provide a comprehensive view of environments by visualizing metrics, traces, and logs in a single interface. They allow monitoring of key performance indicators like p99 latency, error rates, and API calls. Users can pinpoint issues' root causes by examining specific traces and detailed flame-graphs of request traces. These platforms enable running aggregates on trace data to derive business-relevant metrics. Additionally, they offer functionalities to filter and query logs, create custom dashboards and alerts, and automatically record exceptions in various programming languages. Their easy-to-use query builders facilitate setting up custom alerts efficiently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e8b4gdx2q413s1t77gj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e8b4gdx2q413s1t77gj.png" alt="Signoz"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Signoz is a commercial Open Source Observability Tool and Datadog is a popular Proprietary SaaS product offering the same service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SigNoz/signoz" rel="noopener noreferrer"&gt;Check Signoz's repo on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CI/CD within VCS
&lt;/h2&gt;

&lt;p&gt;CI/CD systems integrated within version control platforms like GitHub automate the software delivery process. They enable continuous integration (CI) by automatically testing code changes, ensuring that new code integrates smoothly into the existing codebase. Continuous Delivery (CD) follows, where the tested changes are automatically deployed to production environments. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwsj2q0cc0ej3axuwxkg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwsj2q0cc0ej3axuwxkg.png" alt="Gitlab CI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using CI/CD within version control systems (VCS) like GitHub, as opposed to external services such as CircleCI, offers several advantages. Integrated CI/CD is seamlessly connected with the codebase, streamlining workflows and reducing the need for additional configuration or context switching. Built-in CI/CD tools in VCS are often more user-friendly for teams already familiar with the VCS environment, and they may provide better integration with other features of the VCS platform.&lt;/p&gt;

&lt;p&gt;Gitlab CI is a commercial Open Source CI/CD Tool within Gitlab VCS and GitHub Actions is Proprietary product offering a similar service.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>go</category>
      <category>opensource</category>
      <category>aws</category>
    </item>
    <item>
      <title>10 open source tools that platform, SRE and DevOps engineers should consider in 2024.</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Thu, 04 Jan 2024 15:44:55 +0000</pubDate>
      <link>https://dev.to/digger/10-open-source-tools-that-platform-sre-and-devops-engineers-should-consider-in-2024-2kkg</link>
      <guid>https://dev.to/digger/10-open-source-tools-that-platform-sre-and-devops-engineers-should-consider-in-2024-2kkg</guid>
      <description>&lt;p&gt;This article highlights ten open source tools that have gained significant attention amongst infrastructure engineers and are considered essential for professionals in Platform Engineering/DevOps/Site Reliability engineering.&lt;/p&gt;

&lt;p&gt;These tools cover a wide range of functionalities, including Infrastructure as Code management, secret management, distributed filesystems, internal developer portals, continuous integration and deployment (CI/CD), and self-hosted Git services. &lt;/p&gt;

&lt;p&gt;Each of these open-source projects, from Digger's Infrastructure as Code platform to Gitea's self-hosted Git service, represents a key component in the modern DevOps toolkit, helping engineers to build, deploy, and maintain scalable and efficient software systems.&lt;/p&gt;

&lt;p&gt;The tools are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt; - an Open Source Infrastructure as Code management platform.[Infrastrucutre as code automation]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sobolevn/git-secret" rel="noopener noreferrer"&gt;Git Secret&lt;/a&gt; - A bash-tool to store your private data inside a git repository. [Secret Management]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Infisical/infisical" rel="noopener noreferrer"&gt;Infisical&lt;/a&gt; - Open source end-to-end encrypted secrets sync for teams and infrastructure.  [Secret Management]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zifeo/lade" rel="noopener noreferrer"&gt;Lade&lt;/a&gt; - Automatically load secrets from your preferred vault as environment variables.  [Secret Management]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ceph.io/en/" rel="noopener noreferrer"&gt;Ceph&lt;/a&gt; - Highly scalable object, block and file-based storage under one whole system. [Distributed Filesystems]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://backstage.io/" rel="noopener noreferrer"&gt;Backstage&lt;/a&gt; - An open platform for building developer portals. [Internal Developer Portal]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kraken.ci/" rel="noopener noreferrer"&gt;Kraken CI&lt;/a&gt; - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. [CI/CD]&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://buildbot.net/" rel="noopener noreferrer"&gt;Buildbot&lt;/a&gt; - automate all aspects of the software development cycle. [CI framework]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gogs.io/" rel="noopener noreferrer"&gt;Gogs&lt;/a&gt; - A  self-hosted Git service. [Git]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gitea.io/" rel="noopener noreferrer"&gt;Gitea&lt;/a&gt; - Another  self-hosted Git service.  [Git]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now lets dive into each tool one by one:&lt;/p&gt;

&lt;h2&gt;
  
  
  Digger
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm75zxuabtc4nhbhha3v1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm75zxuabtc4nhbhha3v1.png" alt="Digger"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt; is an IaC management tool for Terraform and OpenTofu, addressing the complexities often encountered with specialized IaC CI systems like Terraform Cloud and Atlantis. &lt;/p&gt;

&lt;p&gt;Its unique approach integrates Terraform/OpenTofu directly into your existing CI infrastructure, leveraging its asynchronous jobs, compute, orchestration, and logging capabilities. &lt;/p&gt;

&lt;p&gt;This integration not only enhances security by keeping cloud access secrets within your CI environment but also proves cost-effective by eliminating the need for extra compute resources. Digger's feature set includes Terraform plan and apply within pull request comments, private runners utilizing existing CI compute environments, Open Policy Agent (OPA) support for robust access control, and PR-level locks to prevent race conditions. Additionally, it supports advanced functionalities like Terragrunt, multiple Terraform versions, and drift detection, making it an all-encompassing solution for managing Terraform/OpenTofu deployments efficiently and securely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Star Digger on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.digger.dev/self-host/deploy-docker" rel="noopener noreferrer"&gt;Check out self hosting documentation&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Secret
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fughyn48rd9fdvpl3z4ns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fughyn48rd9fdvpl3z4ns.png" alt="Git Secret"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sobolevn/git-secret" rel="noopener noreferrer"&gt;Git Secret&lt;/a&gt; is an essential bash tool for developers and DevOps professionals, offering a robust solution for secret management within a Git repository. This open-source tool effectively encrypts sensitive files and data, ensuring that confidential information like passwords, keys, and credentials are securely stored in the repository. &lt;/p&gt;

&lt;p&gt;By encrypting files with the public keys of allowed users, Git Secret ensures that only authorized personnel can access and decrypt these secrets. This method not only enhances security but also simplifies the process of sharing sensitive data among team members. It's particularly valuable in collaborative environments, where managing access to sensitive information is crucial for maintaining security and compliance. Git Secret stands out as a practical, secure, and efficient way to handle private data in code repositories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sobolevn/git-secret" rel="noopener noreferrer"&gt;Star Git Secret on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Infisical
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s6s0o3edf437h1p2u4l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s6s0o3edf437h1p2u4l.png" alt="Infisical"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Infisical/infisical" rel="noopener noreferrer"&gt;Infisical&lt;/a&gt; is an open source secret management platform tailored for teams to centralize crucial data such as API keys, database credentials, and configurations. Aimed at making secret management accessible to everyone, not just security experts, it redesigns the entire developer experience. The platform offers a user-friendly dashboard for managing secrets across various projects and environments, client SDKs for on-demand secret retrieval, and a CLI tool for integrating secrets into any framework during local development. &lt;/p&gt;

&lt;p&gt;Infisical includes native integrations with platforms like GitHub, Vercel, and Netlify, and features such as automatic Kubernetes deployment secret reloads, self-hosting options on different infrastructures, secret versioning, Point-in-Time Recovery, comprehensive audit logs, Role-based Access Controls, simplified on-premise deployments to AWS and Digital Ocean, along with secret scanning and leak prevention capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Infisical/infisical" rel="noopener noreferrer"&gt;Star Infisical on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Lade
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2jp1535hufic2ugz41w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2jp1535hufic2ugz41w.png" alt="Lade"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zifeo/lade" rel="noopener noreferrer"&gt;Lade&lt;/a&gt; is a practical tool designed to enhance secret management by automatically loading secrets from a user's chosen vault into environment variables or files. This functionality is key in minimizing the exposure of sensitive information, as it restricts access to secrets only for the duration of a specific command's execution. By ensuring that secrets are only available when absolutely necessary, Lade significantly reduces the risk of unauthorized access or leaks. This approach is particularly beneficial in environments where security and data privacy are paramount. Lade is part of the Metatype ecosystem. Consider checking out how this component integrates with the whole ecosystem and browse the documentation to see more examples.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zifeo/lade" rel="noopener noreferrer"&gt;Star Lade on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ceph
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8obko4t1jndtiu3ypxi5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8obko4t1jndtiu3ypxi5.png" alt="Ceph"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ceph.io/en/" rel="noopener noreferrer"&gt;Ceph&lt;/a&gt; stands out in storage technology, offering a scalable and reliable solution where traditional systems fall short. It supports object, block, and file storage in one system, adaptable for various environments including on-premises, cloud, or container-native setups. Key benefits include scalability, enabled by the CRUSH algorithm, allowing for expansion without typical downtime. This makes Ceph suitable for businesses and institutions needing to grow their storage capacity rapidly.&lt;/p&gt;

&lt;p&gt;Ceph is also notable for its reliability. It is self-managing and self-healing, with Monitor and Manager daemons enhancing data availability. The CRUSH algorithm reduces failure risks, ensuring a robust storage solution.Performance-wise, Ceph's customizable deployment suits diverse needs without compromising efficiency. As a software-defined system, it performs well regardless of the infrastructure, addressing the limitations of traditional storage systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Backstage
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlzltb423aw0qmkulnvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlzltb423aw0qmkulnvo.png" alt="Backstage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/backstage/backstage" rel="noopener noreferrer"&gt;Backstage&lt;/a&gt; is an innovative open platform designed for creating internal developer portals, streamlining the developer experience within organizations. As a centralized hub, it allows teams to manage software components, monitor services, and access tools and documentation from a single interface.&lt;/p&gt;

&lt;p&gt;This enhances collaboration and increases efficiency by reducing the complexity often associated with accessing various development tools and resources. By providing a unified, customizable environment, Backstage fosters a more organized and coherent workflow. Its open-source nature invites contributions and adaptations to suit specific organizational needs, making it an invaluable tool for companies looking to optimize their internal software development processes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/backstage/backstage" rel="noopener noreferrer"&gt;Star Backstage on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kraken CI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0jqksqh7t8ma6f3qsf8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0jqksqh7t8ma6f3qsf8.png" alt="Kraken CI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kraken.ci/" rel="noopener noreferrer"&gt;Kraken CI&lt;/a&gt; is a modern CI/CD system that operates on the Continuous Integration philosophy, focusing on pre-commit and post-commit phases in software development. In the pre-commit phase, developers and testers prepare code changes, aiming to minimize the risk of breaking production code. Kraken CI facilitates this by providing a validation environment that simplifies testing, making it easier to produce quality code. It reduces the likelihood of large, risky changes and helps manage code integration more effectively.&lt;/p&gt;

&lt;p&gt;In the post-commit phase, the emphasis is on maintaining the stability of production code. Kraken CI's effective post-commit validation delivers clear, unambiguous information about the production code, reducing the time to feedback and allowing for quick response to any issues. This results in greater stability and release-readiness of the production code. By improving both pre-commit and post-commit phases, Kraken CI fosters a culture shift in software development. It moves away from a gate-focused approach, where each stage of development is a barrier, to a more fluid process where small changes are made frequently. This shift reduces the impact of breaks and improves the overall quality and efficiency of the engineering process, allowing teams to focus on innovation and delivering unique value to customers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Buildbot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3etwl3b8b76w1fcyfxn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3etwl3b8b76w1fcyfxn.png" alt="Buildbot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://buildbot.net/" rel="noopener noreferrer"&gt;Buildbot&lt;/a&gt; is a versatile CI framework designed to automate all aspects of the software development cycle, enhancing efficiency and reliability. As an open-source platform, it is highly customizable, allowing teams to tailor the automation process to their specific needs. Buildbot excels in integrating various stages of development, from code integration, testing, to deployment, ensuring a seamless and coherent workflow. This framework supports multiple development environments, making it adaptable to different technologies and project requirements. Its ability to streamline complex processes and foster continuous integration and deployment makes Buildbot a valuable tool for teams seeking to optimize their software development lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gogs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiki6e8vjxtnvxaeiq9f2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiki6e8vjxtnvxaeiq9f2.png" alt="Gogs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/gogs/gogs" rel="noopener noreferrer"&gt;Gogs&lt;/a&gt; project is dedicated to creating a simple, stable, and extensible self-hosted Git service, emphasizing ease of setup. Utilizing Go, Gogs offers an independent binary distribution compatible across multiple platforms, including Linux, macOS, Windows, and ARM systems. The platform features a comprehensive user dashboard, profile, and activity timeline, and supports repository access through SSH, HTTP, and HTTPS. &lt;/p&gt;

&lt;p&gt;It includes robust management tools for users, organizations, and repositories, alongside webhooks and Git hooks. Gogs facilitates repository issues, pull requests, wiki, and collaboration features. It also offers migration and mirroring of repositories, a web editor for repository files, Jupyter Notebook and PDF rendering, and supports various authentication methods including SMTP, LDAP, and GitHub integration. Additionally, Gogs is customizable, supports a range of databases like PostgreSQL and MySQL, and is localized in over 31 languages, making it a versatile and user-friendly solution for Git hosting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gogs/gogs" rel="noopener noreferrer"&gt;Star Gogs on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Gitea
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffgesyq9djkeju9ssdn63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffgesyq9djkeju9ssdn63.png" alt="Gitea"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://about.gitea.com/" rel="noopener noreferrer"&gt;Gitea&lt;/a&gt; is a versatile tool for creating and managing git-based repositories, streamlining Code Review to enhance code quality for users and businesses. It integrates a CI/CD system, Gitea Actions, compatible with GitHub Actions, allowing users to create workflows in YAML or use existing plugins. Gitea's project management features include issue tasks, labeling, and kanban boards for efficient management of requirements, features, and bugs. These tools integrate with branches, tags, milestones, assignments, time tracking, and dependencies to plan and track development progress. Furthermore, Gitea supports over 20 package management types, such as Cargo, Composer, NPM, and PyPI, catering to a wide range of public or private package management needs. This comprehensive suite of features makes Gitea a powerful platform for managing development projects and packages.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>devops</category>
      <category>kubernetes</category>
      <category>aws</category>
    </item>
    <item>
      <title>5 Open Source tools written in Golang that you should know about</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Fri, 15 Dec 2023 15:23:43 +0000</pubDate>
      <link>https://dev.to/digger/5-open-source-tools-written-in-golang-that-you-should-know-about-3jad</link>
      <guid>https://dev.to/digger/5-open-source-tools-written-in-golang-that-you-should-know-about-3jad</guid>
      <description>&lt;p&gt;Most modern backend developers absolutely LOVE golang. &lt;/p&gt;

&lt;p&gt;Developers continue to build simple, secure, scalable systems with Go, and those who do, swear by it. In this blog, we will explore five essential open-source tools written in Go that are turning heads.&lt;/p&gt;

&lt;p&gt;Lets dive right in 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flozvg953ks6p7rq4cklq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flozvg953ks6p7rq4cklq.png" alt="Digger"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt; is an Open Source Infrastructure as Code management tool that helps orchestrate IaC such as Terraform &amp;amp; OpenTofu within GitHub Actions. Digger reuses compute used for application code so that you don't overpay for 3rd party managed compute for IaC.  This approach eliminates the duplication of CI/CD infrastructure such as compute, jobs, and logs, and reduces security concerns by keeping sensitive data within the CI job. Digger's integration with existing CI systems offers scalability by leveraging on-demand compute resources and enhances security by confining data within the existing CI environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Star Digger on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22" rel="noopener noreferrer"&gt;Good first issues&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Buf.build
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrqtsozjs2egpt3w8cew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrqtsozjs2egpt3w8cew.png" alt="Buf.build"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/bufbuild/buf" rel="noopener noreferrer"&gt;Buf CLI&lt;/a&gt; is a versatile tool designed for handling Protocol Buffers (Protobuf), a method of serializing structured data. It offers several key features, including managing Protobuf assets through the Buf Schema Registry (BSR), providing a linter to enforce optimal API design and structure, and a breaking change detector to maintain compatibility either in source code or at the wire level. Additionally, the Buf CLI includes a generator that activates plugins based on user-defined templates and a formatter to standardize the formatting of Protobuf files according to industry norms. It also integrates seamlessly with the Buf Schema Registry, supporting comprehensive dependency management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bufbuild/buf" rel="noopener noreferrer"&gt;Star Buf on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bufbuild/buf/issues?q=is%3Aopen+is%3Aissue+label%3AFeature" rel="noopener noreferrer"&gt;Feature Requests&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Permify
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nnww3u74qrje7d9q2qn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nnww3u74qrje7d9q2qn.png" alt="Permify"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Permify/permify" rel="noopener noreferrer"&gt;Permify&lt;/a&gt; is an open-source service for creating and managing complex permissions in applications, inspired by Google Zanzibar. It offers a flexible authorization language compatible with various models like RBAC, ReBAC, and ABAC, and allows for efficient authorization data management in preferred databases. Permify's API facilitates access checks, resource filtering, and bulk permission analyses. It also includes comprehensive testing tools for authorization logic, including scenario-based testing and policy coverage analysis. Additionally, Permify supports multi-tenancy, enabling distinct authorization models for different applications within a single instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Permify/permify" rel="noopener noreferrer"&gt;Star Permify on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Permify/permify/issues?q=is%3Aopen+is%3Aissue+label%3A%22%F0%9F%92%8E+Bounty%22" rel="noopener noreferrer"&gt;Open Bounties&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  JuiceFS
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev3hzgwrfbe8rynqalu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev3hzgwrfbe8rynqalu7.png" alt="JuiceFS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/juicedata/juicefs" rel="noopener noreferrer"&gt;JuiceFS&lt;/a&gt; under the Apache License 2.0, is a high-performance POSIX file system optimized for cloud-native environments. It stores data in Object Storage (e.g., Amazon S3) and metadata in databases like Redis, MySQL, or TiKV. JuiceFS integrates massive cloud storage with big data, machine learning, and AI applications efficiently, akin to local storage. It features full POSIX and Hadoop compatibility, S3 interface, Kubernetes support, and shared file storage for numerous clients. Some cool features are -  strong consistency, scalable performance, data encryption, global file locks, and compression with LZ4 or Zstandard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/juicedata/juicefs" rel="noopener noreferrer"&gt;Star JuiceFS on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/juicedata/juicefs/issues?q=is%3Aopen+is%3Aissue" rel="noopener noreferrer"&gt;Open Issues&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Steampipe
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2jx0vze7cfjt98fs9v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2jx0vze7cfjt98fs9v0.png" alt="Steampipe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/turbot/steampipe" rel="noopener noreferrer"&gt;Steampipe&lt;/a&gt; is a tool that simplifies data extraction from APIs and services, eliminating the need for ETL (Extract, Transform, Load) processes. It includes several components: the Steampipe CLI for querying APIs, ensuring compliance, and creating dashboards; Steampipe Postgres FDWs (Foreign Data Wrappers) which turn APIs into foreign tables in Postgres; Steampipe SQLite extensions that convert APIs into SQLite virtual tables; and standalone export tools for directly exporting data from APIs without requiring a database. Additionally, Turbot Pipes, a part of Steampipe, offers capabilities for querying, checking, and visualizing data, tailored for DevOps teams with a focus on intelligence, automation, and security.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/turbot/steampipe" rel="noopener noreferrer"&gt;Star Steampipe on GitHub ✨&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/turbot/steampipe/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22" rel="noopener noreferrer"&gt;Good first issues&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>opensource</category>
      <category>devops</category>
      <category>backend</category>
    </item>
    <item>
      <title>Top 10 terraform tools you should know about.</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Mon, 11 Dec 2023 17:00:00 +0000</pubDate>
      <link>https://dev.to/digger/top-10-terraform-tools-you-should-know-about-1fhg</link>
      <guid>https://dev.to/digger/top-10-terraform-tools-you-should-know-about-1fhg</guid>
      <description>&lt;p&gt;Terraform stands out as a powerful Infrastructure-as-Code (IaC) tool on its own, yet as the sophistication of your infrastructure grows, you might discover the need for additional tooling for specific use-cases. &lt;/p&gt;

&lt;p&gt;In this article, we will explore some of the leading tools currently employed in deployments managed by Terraform.&lt;/p&gt;

&lt;p&gt;Let's dive right in 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  Digger
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Digger&lt;/a&gt; is an Open Source IaC management platform that allows you to orchestrate terraform/OpenTofu in your CI/CD system. It helps you resue async jobs infrastructure with compute, orchestration, logs, etc of your existing CI. Digger also has a pro version built on top of Digger’s community edition. Digger’s “bring your own compute” ensures that users have private runners by defualt and don’t have to pay for it additionally. Digger pro gives team leads, managers and IaC practitioners dashboards, Drift Detection, RBAC via OPA policies and concurrency so they can help guide the team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foru9smchzyah4xw4m1cv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foru9smchzyah4xw4m1cv.png" alt="Digger - an open source IaC management tool"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/diggerhq/digger" rel="noopener noreferrer"&gt;Star Digger on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Checkov
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/bridgecrewio/checkov" rel="noopener noreferrer"&gt;Checkov&lt;/a&gt; is a versatile static code analysis tool designed for infrastructure as code (IaC) and software composition analysis (SCA). It supports a wide range of technologies, including Terraform, CloudFormation, Kubernetes, Docker, and others, to detect security and compliance issues through graph-based scanning. Checkov also performs SCA scans, identifying vulnerabilities in open source packages and images by checking for Common Vulnerabilities and Exposures (CVEs). Additionally, it is integrated into Prisma Cloud Application Security, a platform that helps developers secure cloud resources and infrastructure-as-code files, enabling the identification, rectification, and prevention of misconfigurations throughout the development lifecycle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bridgecrewio/checkov" rel="noopener noreferrer"&gt;Star Checkov on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Former2
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/iann0036/former2" rel="noopener noreferrer"&gt;Former2&lt;/a&gt; is a tool that automates the creation of Infrastructure-as-Code (IaC) scripts from existing AWS resources. It utilizes the AWS JavaScript SDK to scan the user’s AWS infrastructure, identifying all available resources. Users can then select from this list which resources they want to include in their IaC outputs. This process simplifies the task of writing IaC scripts, especially for complex environments, by directly converting current AWS configurations into ready-to-use code. Former2 is particularly useful for documenting existing infrastructure or for migrating manually created resources into an IaC framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/iann0036/former2" rel="noopener noreferrer"&gt;Star Former2 on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Infracost
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/infracost/infracost" rel="noopener noreferrer"&gt;Infracost&lt;/a&gt; is a tool that provides cloud cost estimates for infrastructure managed by Terraform. It enables engineers to view and understand the financial impact of their infrastructure changes before they are applied. Infracost integrates directly into the workflow, offering cost breakdowns in various environments like the terminal, Visual Studio Code, or directly within pull requests. This feature allows for more informed decision-making regarding infrastructure modifications, promoting cost-awareness and budget management in the early stages of development. Infracost is particularly useful for teams looking to balance cloud resource utilization with budget constraints. Infracost Cloud is their SaaS product that builds on top of Infracost open source and works with CI/CD integrations. It gives team leads, managers and FinOps practitioners dashboards, guardrails, centralized cost policies and Jira integration so they can help guide the team (e.g. switch AWS GP2 volumes to GP3).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flafkweu9m9tkj7vf8n9s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flafkweu9m9tkj7vf8n9s.png" alt="Infracost"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/infracost/infracost" rel="noopener noreferrer"&gt;Star Infracost on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Terragrunt
&lt;/h2&gt;

&lt;p&gt;Created and maintained by Gruntwork, &lt;a href="https://github.com/gruntwork-io/terragrunt" rel="noopener noreferrer"&gt;Terragrunt&lt;/a&gt; is a tool designed to enhance Terraform’s capabilities. It acts as a thin wrapper around Terraform, offering additional features to streamline and optimise Terraform usage. Key functions of Terragrunt include helping users keep their Terraform configurations DRY (Don’t Repeat Yourself), efficiently managing multiple Terraform modules, and handling remote state management. By reducing repetition in Terraform code and simplifying the management of complex module dependencies and remote state, Terragrunt makes working with Terraform more efficient, especially for larger or more complex infrastructure deployments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap0jaw3516jowramzn9m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap0jaw3516jowramzn9m.png" alt="Terragrunt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gruntwork-io/terragrunt" rel="noopener noreferrer"&gt;Star Terragrunt on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sato
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/JamesWoolfenden/sato" rel="noopener noreferrer"&gt;Sato&lt;/a&gt; is a conversion tool designed to translate CloudFormation and ARM (Azure Resource Manager) templates into Terraform configurations. Developed in Go, Sato stands out for its speed and efficiency in this conversion process. By automating the translation of existing templates into Terraform’s syntax, Sato facilitates a smoother and quicker migration to Terraform’s ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/JamesWoolfenden/sato" rel="noopener noreferrer"&gt;Star Sato on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prettyplan
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://prettyplan.chrislewisdev.com/" rel="noopener noreferrer"&gt;Prettyplan&lt;/a&gt; is a user-friendly tool designed to simplify the review of large Terraform plan outputs. It enhances readability by providing an online interface where users can paste their Terraform plan output, which is then reorganized into a more manageable format. Key features include expandable and collapsible sections for a comprehensive yet detailed view, a tabular layout for straightforward comparison of old and new values, and improved display formatting for multi-line strings like JSON documents. Initially created for Terraform versions up to 0.11, Prettyplan’s relevance has diminished with Terraform’s 0.12 update, which incorporated many of Prettyplan’s functionalities, leading to no further updates for the tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/chrislewisdev/prettyplan" rel="noopener noreferrer"&gt;Star Pretty Plan on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Regula
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/fugue/regula" rel="noopener noreferrer"&gt;Regula&lt;/a&gt; is a dynamic tool designed for pre-deployment security and compliance checks of infrastructure as code (IaC) for multiple cloud providers and Kubernetes. It supports an array of file types, including CloudFormation JSON/YAML templates, Terraform source code and JSON plans, Kubernetes YAML manifests, and Azure Resource Manager (ARM) JSON templates (currently in preview). Regula leverages a rule library written in Rego, the language used by the Open Policy Agent (OPA) project, offering robust policy evaluation. It integrates seamlessly with popular CI/CD tools like Jenkins, Circle CI, and AWS CodePipeline, and even includes a GitHub Actions example for easy setup. Regula’s policies are aligned with CIS Benchmarks for AWS, Azure, Google Cloud, and Kubernetes, aiding in comprehensive compliance assessments. This tool is actively developed and maintained by the team at Fugue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fugue/regula" rel="noopener noreferrer"&gt;Star Regula on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Terraboard
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://terraboard.io/" rel="noopener noreferrer"&gt;Terraboard&lt;/a&gt; is a web-based dashboard designed for visualizing and querying Terraform states. It offers several key features: an overview page that lists the most recently updated state files along with their activities; a detailed state page showing versions and resource attributes of state files; a search interface for querying resources by type, name, or attributes; and a diff interface for comparing state versions. Terraboard supports various remote state backend providers, including AWS S3 for state management and DynamoDB for locking, S3-compatible backends like MinIO, Google Cloud Storage, Terraform Cloud (remote), and GitLab. This makes it a versatile tool for managing and understanding Terraform state files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3pysfoq9rulkk3xwkhy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3pysfoq9rulkk3xwkhy.png" alt="Terraboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/camptocamp/terraboard&amp;lt;br&amp;gt;%0A" rel="noopener noreferrer"&gt;Star Terraboard on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TFLint
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/terraform-linters/tflint" rel="noopener noreferrer"&gt;TFlint&lt;/a&gt; is a powerful linter for Terraform, designed to catch errors and issues that &lt;code&gt;terraform plan&lt;/code&gt; may not detect. As Terraform grows in popularity for infrastructure as code, the need for robust tools to ensure code quality and reliability becomes paramount. TFlint fulfills this need by analyzing Terraform configurations to find problems that are not covered by syntax checks. It checks for things like unsuitable AWS instance types, incorrect IAM policy syntax, and the use of deprecated syntax or features. By integrating TFlint into the development process, users can proactively identify potential problems, improving the stability and efficiency of their infrastructure deployments. This additional layer of validation is crucial for maintaining high standards in complex, cloud-based infrastructures.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/terraform-linters/tflint" rel="noopener noreferrer"&gt;Star TFLint on GitHub ⭐️&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was orginally published on medium - link &lt;a href="https://medium.com/@DiggerHQ/10-terraform-tools-you-should-know-about-0dfd9862fae8" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>terraform</category>
      <category>infrastructureascode</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Migrating from Terraform Cloud to Amazon S3 and DynamoDB: A Guide</title>
      <dc:creator>Utpal Nadiger</dc:creator>
      <pubDate>Thu, 25 May 2023 08:54:49 +0000</pubDate>
      <link>https://dev.to/utpalnadiger/migrating-from-terraform-cloud-to-amazon-s3-and-dynamodb-a-guide-3ib6</link>
      <guid>https://dev.to/utpalnadiger/migrating-from-terraform-cloud-to-amazon-s3-and-dynamodb-a-guide-3ib6</guid>
      <description>&lt;p&gt;Terraform’s recent move to the resources under management &lt;a href="https://www.hashicorp.com/products/terraform/pricing"&gt;pricing model&lt;/a&gt; has frustrated a lot of users. As one user on &lt;a href="https://www.reddit.com/r/Terraform/comments/13jgzc5/terraform_new_pricing/"&gt;this&lt;/a&gt; reddit thread remarked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The pricing on Terraform literally just jumped to almost same as we are paying for the AWS resources it manages.We’re on the free plan, with only 2 devs — were looking at moving to the paid plan this month which was going to be $20/user/month — but now we’re looking at a ~ $250 monthly bill for our dev, test and prod environments. We’re only paying $300 for the AWS resources.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Migrating your backend from Terraform Cloud to an infrastructure based on Amazon S3 and DynamoDB may help save you some $$ and help extend that end of runway.&lt;/p&gt;

&lt;p&gt;It involves configuring Terraform to use these services for remote state storage. Here’s a guide on how to perform this migration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prepare the infrastructure:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Create an S3 bucket: Log in to the AWS Management Console and create a new S3 bucket to store your Terraform state files. Choose a unique name for the bucket.&lt;/p&gt;

&lt;p&gt;Create a DynamoDB table: In the AWS Management Console, create a new DynamoDB table to manage Terraform state locking. Provide a table name and a primary key (e.g., “LockID” of type String).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update Terraform configuration:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open your Terraform configuration files (e.g., &lt;code&gt;main.tf&lt;/code&gt;, &lt;code&gt;backend.tf&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Remove the existing Terraform Cloud backend configuration.&lt;br&gt;
Add a new backend configuration to use S3 and DynamoDB. Here’s an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform {
  backend "s3" {
    bucket         = "&amp;lt;your-s3-bucket-name&amp;gt;"
    key            = "terraform.tfstate"
    region         = "&amp;lt;aws-region&amp;gt;"
    dynamodb_table = "&amp;lt;your-dynamodb-table-name&amp;gt;"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;NOTE: Replace &lt;code&gt;&amp;lt;your-s3-bucket-name&amp;gt;&lt;/code&gt; with the name of the S3 bucket you created in step 1, &lt;code&gt;&amp;lt;aws-region&amp;gt;&lt;/code&gt; with the appropriate AWS region, and &lt;code&gt;&amp;lt;your-dynamodb-table-name&amp;gt;&lt;/code&gt; with the name of the DynamoDB table you created.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initialize the backend:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open a terminal or command prompt in the directory containing your Terraform configuration files.&lt;br&gt;
Run &lt;code&gt;terraform init&lt;/code&gt; to initialize the new backend configuration and download any necessary provider plugins.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migrate the existing state:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://support.hashicorp.com/hc/en-us/articles/4411513223443-How-to-migrate-Terraform-state-file-from-Terraform-Cloud-to-S3-bucket"&gt;(Hashicorp Help Center Docs)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have an existing Terraform state in Terraform Cloud, you’ll need to download it and migrate it to the new backend.&lt;br&gt;
Use the &lt;code&gt;terraform state pull&lt;/code&gt; command to download the current state from Terraform Cloud.&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;terraform init -reconfigure&lt;/code&gt; to reconfigure Terraform with the new backend and upload the state to S3 and DynamoDB.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Test the new backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Run any Terraform commands (e.g., terraform plan, terraform apply) to ensure the new backend is working correctly.&lt;br&gt;
Verify that the state files are stored in the S3 bucket and that the DynamoDB table is being used for state locking.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean up:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re confident that the migration was successful, you can remove the old Terraform Cloud backend configuration and associated state files.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migrate your Terraform CI/CD:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are plenty of options for cheaper alternatives to Terraform Cloud — &lt;a href="https://itnext.io/spice-up-your-infrastructure-as-code-with-tacos-1a9c179e0783"&gt;This&lt;/a&gt; article on Terraform automation and collaboration software speaks about it in detail.&lt;/p&gt;

&lt;p&gt;There are some &lt;a href="https://github.com/dflook/terraform-github-actions"&gt;DIY Github Actions&lt;/a&gt; that can be added as steps to your own workflow files. Here is an example of one such tool.&lt;/p&gt;

&lt;p&gt;Disclosure: We’re building &lt;a href="https://github.com/diggerhq/digger"&gt;Digger&lt;/a&gt; — an open source GitOps tool for Terraform that reuses the async jobs infrastructure with compute, orchestration, logs, etc of your existing CI/CD. Do feel free to try it out!&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>go</category>
      <category>aws</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
