Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Telepresence Case Studies: From First Experience to Fast Feedback at Scale

Telepresence Case Studies: From First Experience to Fast Feedback at Scale

Building and testing your microservice-based application becomes difficult when you can no longer run everything locally due to resource requirements. Moving to the cloud for testing is a no-brainer, but how do you synchronize your local changes against your remote Kubernetes environment? Following the usual container build-push-test cycle makes your inner development loop slower because you’d have to wait for minutes, sometimes hours, before seeing the impact of your code changes, and this dramatically reduces the number of iterations you can perform, the features you can ship to your end-users and negatively impacts the developer experience. Using three companies as a case study, this talk highlights how adopting the open source CNCF tool Telepresence improved their developer experience, accelerated their inner dev loop, and reduced staging environment compute costs. An explanation of what Telepresence is and a demo of how to implement it will also be covered in this talk.

Edidiong Asikpo

April 20, 2023
Tweet

More Decks by Edidiong Asikpo

Other Decks in Technology

Transcript

  1. Hello! My name is Edidiong Asikpo Senior Developer Advocate at

    Ambassador Labs. CNCF Ambassador. Enjoys writing, building, and sharing knowledge. Social media - @didicodes
  2. Twitter: @didicodes Things enables you to plan your day, manage

    your projects, and make real progress toward your goals.
  3. Twitter: @didicodes • Use Kubernetes in AWS • Have multiple

    services • Use multiple managed databases Multiple microservices. Interdependently. Communicate. Process business requests.
  4. Twitter: @didicodes Testing your local code changes against the other

    microservices and dependencies they rely on before deploying to prod is essential.
  5. Twitter: @didicodes • Limited resources • Inconsistent data between production

    and non-production environments • Managing distinct configuration for separate environments This can be quite challenging!
  6. Twitter: @didicodes They wanted… A dev environment that allowed them

    to test their code changes against their external dependencies without the fear of things going wrong or not matching up after shipping to production.
  7. Twitter: @didicodes Before Telepresence 😔 A development environment quite different

    from their production environment. With Telepresence 🎉 A development environment that resembles production very well. • “We can develop against the same database running in the exact same configuration.” • “When we develop something, we can be sure it’s 100% compatible with our production environment.” ▪ No surprising missing environment variable ▪ Incompatibility between production and mocked database ▪ Catch bugs before shipping to production
  8. Twitter: @didicodes A collaborative conversation design platform where AI teams

    design, test, and ship chat and voice assistants faster.
  9. Twitter: @didicodes Voiceflow was originally built as a monolithic application

    They eventually adopted the microservice architecture 20+ microservices, multiple databases, & queue engines
  10. Twitter: @didicodes A tool that allows anyone to make voice

    apps without coding. • Applications became too large to run locally. • The development workflow was very slow. • Devs didn’t know what other devs were working on. • They couldn’t replicate the interdependency of cloud deployed apps locally, so their local testing wasn’t comprehensive enough. What challenges did Voiceflow face?
  11. Twitter: @didicodes A tool that allows anyone to make voice

    apps without coding. • Applications became too large to run locally. • The development workflow was very slow. • Devs didn’t know what other devs were working on. • They couldn’t replicate the interdependency of cloud deployed apps locally, so their local testing wasn’t comprehensive enough. What challenges did Voiceflow face?
  12. Twitter: @didicodes “Other solutions introduce more complexity to their inner

    loop like adding file syncing with the cluster or checking changes in a Dockerfile, re-building it, and pushing it to the cluster.”
  13. Twitter: @didicodes Before Telepresence 😔 With Telepresence 🎉 • The

    need to constantly build and deploy test images was removed • Increase in the speed & fidelity of their inner dev loop • They had to go through the build/push/test cycle before seeing the impact of their code changes • A slow inner dev loop
  14. Twitter: @didicodes This is a large fintech organization that provides

    personal accounting services in the APAC region.
  15. Twitter: @didicodes Without Telepresence 😔 A not so great developer

    experience With Telepresence 🎉 An improved developer experience • They bore the operational & resource burden of running all their microservices locally • Couldn’t utilize the benefits of both the “local” & “remote” K8s development methods • Code -> Build container -> Push to registry → Deploy & wait -> Test • Code -> Intercept ->Test • They got the best of both worlds (local and remote Kubernetes development) • The operational & resource burden of running all their microservices locally was removed
  16. Twitter: @didicodes What is Telepresence? • A tool that simplifies

    how teams develop and test on Kubernetes • Connects your local machine to a remote K8s cluster via a two-way proxying mechanism ▪ Access remote services as if they are running locally ▪ Reroute remote traffic to your local service • Seamlessly creates a remote-to-local “remocal” dev environment
  17. Twitter: @didicodes Conclusion • Kubernetes & containerization has solved many

    challenges that business face today when it comes to flexibility, scaling & reliability of the release of new versions. • But it also posed additional challenges for developers by introducing operational complexity into their development workflow. • To solve this, we need to bridge the gap between remote K8 clusters and local development. • This is exactly what Telepresence does! It gives you the best of both worlds. • Try it out and/or contribute to this CNCF project.
  18. Twitter: @didicodes Thank you! Questions? • GitHub - https://github.com/telepresenceio/telepresence •

    Product page - https://www.getambassador.io/products/telepresence • Telepresence for Docker - https://www.docker.com/products/telepresence-for-docker • Telepresence Pavillion - K30 • Ambassador Labs’ Booth - S7 • Slack channel - a8r.io/slack • Twitter - @ambassadorlabs