Building software products is difficult
The journey from prototype to production involves a myriad of tools along the way. From version control, pull requests, and code reviews, to testing, building, deploying, and operations with logging, metrics, error reporting, and customer support, modern products have to offer a lot.
Now, there have been efforts to simplify the process of building software including PaaS tools, managed services, and even Kubernetes to make it easier to run distributed workloads, but we still spend lots of time on the nitty-gritty details of integrating services, finding a fitting tool, managing dependencies, wiring up sales tools to our product and vice-versa, managing access to services, and so on.
Deep integration takes time
With ever more service providers at play, keeping track of the source of truth and synchronization of data is a challenge. When user data is stored in multiple systems, figuring out strategies to keep everything in sync, keep privacy-conscious customers happy, and get the right data at the right time requires time and focus.
Growing teams have a lot of needs
As products grow and evolve over time, teams have to adapt to new requirements and challenges. Where a managed database was a good fit previously, monitoring and recovery capabilities become significantly more important, as does fine-tuning to get the best performance. Similarly, giving everyone on the team full access becomes a liability, so access management solutions have to be brought in and integrated with every existing system.
Switching out individual tools can be impossible when you settled for a fully-managed solution, so you will have to stick with your earliest decisions, which can be costly.
From sysadmins to platform teams
Infrastructure has historically been managed by teams with deeply-specialized knowledge. Sure, we have seen the impact of the DevOps movement in enabling developers to handle infrastructure too, but especially in bigger companies, platform teams still play a big role. The reason for this is simple: Cloud platforms offer an inventory of resources that can potentially be used, but someone still has to find the best tool for the job and provision, connect, and operate it.
Building Blocks for software teams
With Anzu, we are setting out to enable teams to focus on what is most important to them: building their product. For this, we provide the most important building blocks for teams to build on:
- User Management: Authentication, authorization, and access control (including roles and permissions, user groups, and complex policies)
- Services: Expose APIs to the internet with automatic TLS, auto-scaling, and load balancing
- Databases: Managed databases with point-in-time recovery, high availability, and connection pooling
- Monitoring & Error Reporting: Contextual observability with deep links to the codebase and actors involved
- Analytics: Measure and analyze the performance of your product
All building blocks are built on a platform designed to support growing teams and rapid iteration. We provide CI/CD workflows, preview environments, local development, and more out of the box, for everything we do.
Deep integration without lock-in
You might feel a little uneasy about a fully-managed platform, and we hear you. That is why we are committed to building in public, with the highest possible transparency. Most of our tools are open source, and you can run the entire platform on your own infrastructure. In addition, even for our managed offering, you will always be able to eject your data and keep running Anzu on your own, regardless of the size of your team.
Designed to mix and match
Building blocks work best when they are used together, but sometimes, you just want or need to use a different tool (or build your own) for a specific part of your stack, and that is exactly what we designed the platform for: We provide the APIs and tools you need to integrate with your existing infrastructure, allowing gradual onboarding and customization along your journey.