A service catalog is one of the most powerful tools available to developers — it tracks your microservices, libraries, and projects, making it easy to organize and manage hundreds of microservices. Without a catalog, developers can quickly become overwhelmed by the complexities of managing a distributed system.
However, a service catalog doesn’t offer visibility into all of the pieces that are operating under the hood. The databases, caches, load balancers, third party vendors, and infrastructure assets that affect your microservices don’t belong in your service catalog, but they still need to be tracked and managed.
For developers, there hasn’t been an easy way to answer the question, What resources is this service using? The AWS console is noisy and offers a poor UX for the few devs that even have access to it. Terraform definitions are scattered and hard to read, and they tend to be too focused on infrastructure provisioning to be useful. A service catalog is heavyweight to begin with, and it shouldn’t be dirtied with a bunch of other assets.
Until now, developers just haven’t had all the tools they need. With the introduction of the Resource Catalog, developers can now see what infrastructure assets are running and how everything connects, without wading through all the nitty-gritty details of provisioning. This revolutionary product offering from Cortex completely demystifies infra, giving developers a full picture of their architecture for the first time.
Why do we need insight into infra?
Without insight into infrastructure, your team members will find themselves with limited tools to handle a whole host of challenges. If information about your infrastructure doesn’t exist alongside your services, any diagram of your architecture will be incomplete. While a dependency graph will show you the relationships between services, it won’t reveal the collection of resources that those services rely on.
When an incident arises, this means you’ll encounter slowdowns in resolving the issue, especially if the incident is infra-related. Your service catalog can’t tell you if the issue exists within a database, for example, and it can be hard to figure out on the fly where that problematic database lives.
Currently, information about infra tends to be siloed, so if there is an outage, it can be hard to know where to begin. Usually the infra or cloud teams will have the necessary insight, but there isn’t a central place to access this information. Not only does tribal knowledge make it harder to solve problems quickly, but it also makes it harder for new team members to get up to speed.
A lack of insight into infra also makes it more difficult to conduct audits. While a catalog can help you see which microservices have security vulnerabilities, the same tool hasn’t existed for infrastructure. If you’re undergoing a GDPR audit, for example, you can’t immediately see how many of your services are connected to a database with PII data. At best, that information may exist in a spreadsheet or tagged in AWS, but it’s hard to track and maintain.
Most critically, there’s no means of establishing ownership over resources, which can cause serious operational problems and drag down the velocity of your team. If we discover an insecure database containing customer PII data during our GDPR audit, and it isn’t clear which team is accountable for that database, there’s no clear way forward. Precious time will be wasted tracking down the right person or team to remove that specific database.
Developers deserve insight into their infrastructure. They should know what resources their services are using, and they should have a sense of what the infra looks like beyond their specific domain. This gives them a broader context for their work, and it shows them the variety of resources that can be consumed. Down the road, this empowers developers to make more informed and creative decisions about managing their services.
The power of a Resource Catalog
The Resource Catalog allows your developers to harness the benefits of a service catalog, but with a lens of demystifying your infrastructure, giving you the tools you need to avoid those problems.
Track every resource
The Resource Catalog gives you the power to track everything that feeds into your infrastructure, like AWS accounts, Kafka topics, and third party vendors. Cortex provides built-in resource types based on requests from our beta users, but you can edit these or build your own Resource types to make the catalog more relevant to your organization.
Through simple, fully customizable JSON schemas, Cortex gives you the power to determine fields that are relevant for a resource type. This allows you to add custom resource types, so if you have unique internal resources, you can easily manage them through Cortex. With this kind of flexibility and customization, your developers have the freedom to be truly creative with how they make use of this tool.
Cortex makes it easy to import your resources with automatic discovery. Through integrations with your cloud providers, Cortex will pull in all of your databases, buckets, and other resources. With just a few clicks, you can easily build a catalog of all of your resources and tie them to your services.
Infrastructure tracking shouldn’t just be about the size of a bucket and where it lives — to effectively manage your architecture, resources need owners just like services do. Cortex has successfully driven service ownership for organizations of all sizes, and is now transforming the way we think about resources by driving a culture of accountability within infra management. Just like with services, every resource needs an owner, so if something goes wrong, folks know who to reach out to for a swift resolution.
In Cortex, every resource has its own homepage, just like every service. On that page, you’ll find listed owners and Slack channels, along with links to documentation, dashboards, logs, and other important information, like runbooks and SLOs.
By extending the concept of ownership to resources, Cortex is revolutionizing the way software developers interact with and think about their whole architecture.
Moving the culture forward
Resources are fully featured in Cortex, so anything you can do with services, you can do with resources. Not only can you declare owners, but you’ll see your infra components in Scorecards and dependency graphs, and you have the ability to query resources. With the power of the Resources tool, Cortex is truly a single pane of glass, offering a level of visibility you can’t get with any other tool on the market.
With Resources, your developers will gain a true understanding of the flow of data. Because resources are treated as first-class citizens, you have total flexibility in how your dependencies are structured. Not only can services depend on services and resources, but resources can depend on services and other resources, too. By incorporating this level of detail, your dependency graph will truly reflect your architecture.
By leveraging the power of Cortex to understand your services and resources, you not only have unparalleled visibility into your architecture, but you have the ability to conduct new kinds of cost analyses, giving you more control over your business.
Let’s say you’ve successfully imported all of your resources into Cortex, and you’ve assigned owners for all of these resources. Now, you can easily see that a specific team belonging to a specific hierarchy spends $X a month on their infrastructure. Because you can see your infra alongside your services, you can easily determine where that cost is coming from. Cortex provides you with all the tools you need — from Scorecards to the Query Builder — to gain a clearer view into how your architecture is actually working and how it can be improved.
If you’re ready to revolutionize the way your organization sees infrastructure, then book a free demo with Cortex today.