How Platform Teams Can Deliver a Great Development Experience for Modern App Developers
Modern applications have a microservices-based architecture, are containerized, and run on Kubernetes clusters in production. However, most of these applications require access to services deployed outside the cluster, such as cloud databases, message queues, storage buckets, etc. This creates problems for developers since, during development, they spend time configuring all these things instead of focusing on writing code.
Okteto's latest feature, External Resources, enables platform engineers to provide a streamlined development experience to their developers who work on modern applications. In this article, we'll explore how External Resources can help you take your developer workflow to the next level!
Modern development platforms must evolve rapidly to meet the needs of modern applications. One common thing we hear from our users is that the applications they are developing not only rely on Kubernetes resources, but also on resources deployed outside the cluster, such as cloud databases like MongoDB Atlas, S3 buckets on AWS, and PubSub queues on GCP, to name a few. They need a way to make these resources easily accessible to developers and testers during development without having to configure them for each developer every time. They also need a way to keep track of all these resources and access them from the same dashboard for easier management. To solve these problems, we have launched our latest feature: External Resources.
With Okteto, you can now seamlessly integrate External Resources into your development experience, eliminating the need for separate, manual tasks. The platform team can define any resource that microservices use and which are deployed outside the Kubernetes cluster by defining the
external section in the Okteto Manifest. Once the resources have been defined and any required deploy and destroy configurations are set, they will be available to everyone in development when an environment is launched.
This provides platform engineers with a way to automate the provisioning (and deprovisioning) of an application's resources for the developers on their team, without requiring any effort from the developers and testers themselves. External Resources also provide a way to easily control the lifecycle for all microservices and application-specific dependencies from the Okteto Admin Interface once environments are deployed.
External Resources are highly adaptable and can be used in various scenarios.
- If your application database resides somewhere else, such as MongoDB Atlas or on a cloud provider like AWS or GCP, you can provision the creation (and deletion!) of that database by adding it as an External Resource in Okteto.
- Testing tools like Postman and documentation pages on Confluence can be made as part of the environments, allowing developers to access all the resources they need from their Okteto Interface without searching for them.
- If your team uses LaunchDarkly for feature flag management, you can configure LaunchDarkly dashboards to be automatically created for each developer or tester when they spin up their environments. This saves them the trouble of manually configuring things.
The goal of External Resources is to enable platform engineers to automate the smoothest possible experience for the developers on their team. External Resources simplify the developer’s workflow by:
- Allowing for quick and easy configuration and control of connections to any resource which lives outside the K8s cluster
- Providing unified, standard control of the lifecycle of external resources and the environments
- Making it easy for the entire team to find and manage the application resources during development and testing
- Automatically garbage collecting resources when no longer used, ensuring efficient use of resources
- Saving time and removing risks and deployment errors from developers trying to set up application resources themselves
- Managing access to External Resources securely, ensuring only authorized users have access to the provisioned resources
- Giving flexibility for the application to grow and evolve by allowing you to bring any resource from any provider to your environments
In conclusion, External Resources are a valuable addition to Modern Development Experience Automation. By leveraging Okteto, platform engineers can enable developers to focus on building better, more secure, and more efficient applications, without having to worry about setting up application resources. The benefits of External Resources are truly boundless.
We have reference sample applications that showcase the power of External Resources. These samples demonstrate how External Resources can be used to build distributed, modern applications. Developers can try them to get a sense of how easy their workflow becomes once they don't have to deal with the admin and management headaches of provisioning and managing cloud resources that their application depends on. By trying out these samples, platform engineers can familiarize themselves with the capabilities of External Resources and learn how to control and govern the ultimate development experience that is fast and high-quality for their developers.
So what are you waiting for? Go give the samples a try!
If you're interested in seeing it in action, try out the product tour!