Adopting cloud technologies offers many benefits, but the current developer experience (DevEx) could be much more effective. There are many things a developer has to learn in order to push code to production.
In this episode of the Ambassador Livin’ on the Edge podcast, Nic Jackson, developer advocate at HashiCorp, discusses all things related to modern “cloud native” platforms and developer tooling.
Be sure to check out the additional episodes of the "Livin' on the Edge" podcast.
Key takeaways:
- Kubernetes provides a great set of primitives for building a platform, but additional technologies do need to be integrated with this to offer a Platform-as-a-Service (PaaS) like experience that many developers want.
- Developers need self-service access to a platform that allows them to understand both the operational impact and business impact of their changes.
- Platforms should follow the “shared responsibility” model of ownership. Operators want to set global safety and compliance properties, and developers want granular control of release and operation of a service.
- A continuous delivery pipeline should codify all application quality and safety requirements. The execution of the pipeline should be fast and consistent (e.g. minimize flaky tests).
- Debugging services running in Kubernetes can be challenging. Metrics, logging, and distributed tracing are your friend. Prometheus and Kibana provide a lot of value.
- Integrating a service mesh, like Consul, with distributed tracing can allow issues within the system to be located much more effectively than exploring logs.
- Being able to canary release functionality, both via an edge (API) gateway and via a service mesh, provides a controlled method of testing and verifying new functionality.
- Being able to capture and replay sanitized user traffic allows for very effective testing of the overall system, especially when running load tests.