Announcing Okteto Agent Fleets for scalable AI workflows.
Read the blog
  • AI Agent EnvironmentsBetaIsolated environments to run agent fleets
  • Development EnvironmentsModern, Realistic, Self-service on K8s
  • Preview EnvironmentsShareable environments with every pull request
  • Test EnvironmentsRun tests directly in your development environments
  • Platform FeaturesOkteto Experience features and benefits
  • Build Development ExperiencesDevelopment experiences for your entire team

6 principles for designing a modern development experience

Why start with principles?

For Platform and DevX Engineering responsible for realizing the ultimate development experience

Forward-thinking platform leaders recognize that the standard state of development experience isn't addressing the biggest problems developers are facing. Understanding what your team needs to create a modern, automated development experience begins with understanding how they work and what's important to them. Okteto used these beliefs to address the needs - and roadblocks - to building a modern development experience.

The following 6 principles are for the engineering team in establishing the “north star” for platform and devX automation. Project leads, designers, and architects can use these principles like tenets to ideate, prioritize, and implement the platform.

Developer Principles

Creativity

  • For a developer, inventing new things matters a lot! Developers are creators. Minimizing and eliminating the need to configure and administer environments frees developers from the toil and lower productivity.
  • Creativity also means maximizing freedom. Freedom enables developers to experiment, iterate, and test non-stop without the risk for impacting the development team or work flow.
  • Ephemeral environments allow developers the freedom to experiment fast since they can easily delete and launch new environments

Confidence

  • Knowing and understanding the code and the required collection of microservices works and works in production the same way it works in development
  • Trust in knowing the configured environment is correct and aligned with production
  • Increasing the visibility and status of running microservices during development stages
  • Faster feedback loops to increase production like code and app understanding and usage
  • Using same configurations as production during dev ensures that things do not break when you push to production

Collaboration

  • It is a given that with modern architected apps development teams work in groups on specific services (i.e front-end; back-end; security; data; etc) Environments will need to be shared to achieve higher speed that 1 + 1 = 3 effect.
  • Development teams working on different components of microservice apps may need to have access to each other’s specific services to develop or test against without configuring shared access or automating an additional shared environment
  • Microservices working together on Kubernetes clusters and potentially with non-Kubernetes cloud-native services.
  • Collaborative and distributed development become a critical factor in speeding dev to deployment
  • Enabling faster ways to increase code, app sharing to increase performance.

Platform Principles

Governance

  • Everyone gets the right level of visibility, trust, and control for running code, the microservices and working on the full stack environment
  • Self-service just works correctly, as expected, and securely
    • Preconfigured Environments
    • Standard functions and operations
  • Consuming the correct amount of resources without overages
    • Monitor and report on utilization

Automation

  • Nothing gets slowed down due lack of automation / poor performing environments / manual setup
  • Guiding: Nothing gets slowed down due lack of automation / incorrectly configured environments
  • Modern: No abstraction and/or confusing issues using environments, the microservices and access to required external dependencies.
  • Engineered for development-to-production deployment coverage.
    • For example: Okteto manifest - dev environments as code
    • Control external, non-Kubernetes resources - bring dependencies with the environment

Availability

  • All the tasks and operations a developer or automation tool needs to execute is automated / available, running and delivered with the right service levels. The environment does not get in the way / become a burden to work flow.
  • Eliminate performance or platform issues related to executing code and microservices on local machines and moving to cloud native environments
  • Deliver the modern development experience with cloud native platforms to support:
    • On-demand, anywhere access and usage
    • Managed security without disrupting the developer and/or development workflow
    • Test and control resources and maintain correct service-levels from development-to-production.

Your 6 principles for designing modern development experience

Creativity

Developers are unblocked to spend time on building innovative solutions

Confidence

Developers ship confidently knowing they build in realistic environments

Collaboration

Foster collaborative development by seamlessly sharing environments among specialized teams

Governance

Self-service, preconfigured environments and standard functions for optimal resource utilization and control

Automation

Trusted and defined one-click environments for swift development-to-production deployment excellence

Availability

Ensure uninterrupted availability with automated tasks, optimal performance, and controlled workflows for modern development

Playbooks for Platform Engineering designing Modern DevX

Guide: 5 Steps to DevX Automation Scoping

Use this framework to discover DevX automation project requirements and scope.

DevX Automation Scoping Templates

Defining your project is the first step to building DevX Automation. Use this set of templates to start the process.