Cycloid Platform Engineering - Blog

InfraView: ever wish your colleagues understood your infra better?

Written by Niamh Lynch | Mar 30

Distributed teams, collaborative tools, democratic access to the CI/CD pipeline...

They're all things that make our DevOps-loving hearts sing, but as your environments get more complex and your team grows and diversifies, it can be harder and harder to allow democratic access to your infra.

InfraView's here to change all that. 

TL;DR

Ever wish your colleagues understood your infra better? We've added a feature called InfraView to Cycloid. It creates a visual representation of your cloud infrastructures using Terraform, making them visible to all members of your team.

Try it now

Why your organization needs infra-as-code

Infrastructure management has changed drastically in the last 20 years. Back in 2000, infra changes often fell to a single ops engineer and, even then, well, let's be honest - infrastructures didn't change that much.

Infrastructure 2020, meanwhile, is great in many ways. It allows for scale unlike anything ops 2000 could have imagined and it democratizes access to development pipelines like never before. Unfortunately, it also means that the number of ways our infrastructure can change has skyrocketed. The fact that environments can change quickly and in various ways is one of their major benefits, but it also makes them highly complex, and that's precisely where Cycloid steps in.

Infra-as-code as a starting point, not a destination

You might think infrastructure as code (IaC) is a buzzword, but it's not. Documenting the changes to your environments is a basic tool in one of the biggest of our infrastructure challenges: drift. A little drift is manageable when you have one server and one ops engineer, but when you've got multiple instances, people, commits, and tools, well...a little drift becomes a lot of drift very quickly. IaC is the answer - it allows everyone see what changes have been made, allows them to codify those changes so they can be reused, and allows changes to be rolled back, if they need to be.

The problem with infra as code is that it's not exactly accessible to all. When you're working in cross-functional, perhaps geographically diverse, teams, you're going to have team members that aren't fluent in Terraform and who can't decipher your infrastructure. If they can't decipher it, they don't truly have access to it. 

Diagram or text?

Infra-as-code in text beats nothing, but infra-as-code diagrams beat text. Diagrams give you more flexibility when representing complex information and are much better at demonstrating the relationship between resources, especially to other people. Cloud structures make it easier than ever before to make changes, which in some respects is great, but they don't force you to document those changes, which is what leads to drift. Documenting as text is good, but documenting as a diagram is better. Check out our post focussing specifically on infra-as-code here.

So how does it work?

  1. Open up the Cycloid console 

     

  2. Define the infrastructure you want documented 

     



  3. InfraView will query the Terraform state in the S3 bucket and read the info that it finds.


  4. InfraView will represent this information visually under the InfraView tab, where all users of your organization will be able to see it.

The information is stored in a .tfstate file, which describes the relationship between Terraform and what is actually happening on AWS.

 

What is Terraform?

Terraform is an infrastructure-as-code tool from HashiCorp that allows you to define and provision a cloud infrastructure. Terraform is often mentioned in conjunction with AWS, but it also runs on other clouds like Microsoft Azure and Google Cloud Platform, or in private clouds like VMWare vSphere, OpenStack, or CloudStack. Terraform offers reusable configurations called Terraform modules and stores them in a catalog-like Terraform registry where you can pick and choose the ones you need.

The future of InfraView

InfraView is a great start and is ready for you to use, but we have big plans for this tool. For starters, we fully intend to expand capability to more cloud services (right now, it supports AWS), starting with GCP and Flexible Engine.

In June, we updated InfraView to show more details like ports, IP addresses, and more. Ultimately, we want InfraView to be your documentation, not just help you with it, and that's what we are planning for.

The very next InfraView feature will be a refresh button. You see, right now, InfraView is up-to-date, but not exactly real time. We're going to leverage another Cycloid feature - TerraCognita - to do this. Right now, InfraView queries the existing .tfstate and relays the information, also telling you how long has elapsed since it was updated. With the TerraCognita update, TerraCognita queries AWS directly and will relay the most recent .tfstate to InfraView, which will display the real time structure. How's that for snazzy?