What is Infrastructure as Code (IaC)
Infrastructure as Code or IaC means codifying your infrastructure provisioning, configuration, and management. DevOps and SREs use tools like Terraform, Ansible, Pulumi, Puppet, or others to put the IaC concepts into practice. The great thing about IaC is that instead of manually having to request, configure and manage your infrastructure, you can automate the process.
However, as with every piece of tech, it solves one set of challenges and introduces a new set of challenges. Before we get onto the solution which is Firefly, let's see what are the challenges.
Problems with IaC
Below are some of the major challenges when it comes to Infrastructure as Code. These are even more of an issue as your codebase gets larger.
Managing your Infrastructure assets is difficult the larger your codebase gets. You can have hundreds of assets that need to constantly be updated with dependencies and configurations. Imagine you add even more assets, and now in the blink of an eye, you have more than a thousand assets. It becomes very difficult, if not impossible to navigate and manage this Infrastructure Jungle.
Drifted assets tie in with unmanaged assets. Oftentimes, Infrastructure drifts are caused due to having thousands of assets, which cannot all be managed efficiently. In easy terms, drifted assets are present in your infrastructure, but they are not present in your IaC code. Drifted Assets can bring down your entire production environment if left unchecked. To learn more about why Drifts occur, check out this talk from DevOps Days Tel Aviv.
Ghost assets are present in your IaC code, but have been manually deleted from your cloud. The asset may be deleted since it is no longer deleted, or due to human or machine error. When you redeploy your IaC code, this deleted asset will be recreated. If the asset was deleted because it was no longer needed, it would only affect costs. However, if it was deleted due to an error, the entire workload might experience downtime. Imagine you have an application with a web server and a database. If even one of these were deleted, you would experience downtime. For more information on Ghost Assets, you can refer to this article
Firefly is a Cloud Asset Management solution that enables DevOps and Cloud teams to control their entire cloud footprint, turn unmanaged resources into codified IaC assets, detect misconfigurations to prevent service failures, and manage a single inventory of all their cloud resources across Multi-cloud, multi-accounts and Kubernetes deployments.
It solves the challenges of cloud asset management, not only in the perspective of cost, security, and governance but the overall management of the entire cloud, whether it's an infrastructure / SaaS application or something else.
How it helps solve Infrastructure problems
Firefly scans your entire cloud footprint and IaC states to find out which parts of your infrastructure are codified, or unmanaged. Once it finds the unmanaged resources, it automatically converts them into managed assets as code in your repository that match the desired state of your cloud. Firefly continuously scans your cloud for pre-made or custom policy violations to make sure your cloud is in its desired state.
All of these assets can be managed from your Firefly Dashboard which is clean, and intuitive to use.
What's unique about Firefly?
Unlike other companies that are focused on the general discovery of the cloud, Firefly provides the users with the unique metric of their IaC status and specifically knowing what is the IaC posture of each asset.
With Firefly, users not only see what cloud assets they have but also know if this asset is managed in code, created manually, drifted, or doesn't exist in the actual state of the cloud.
To sum it all up, for teams working with Infrastructure as Code, Firefly is a must-have tool to detect and fix drifts, and ghost assets, manage all their infrastructure assets, codify unmanaged resources, and more!