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

Remote Desktop, Continuously Delivered

Remote Desktop, Continuously Delivered

Originally presented at 2019 DevOpsDays Philadelphia.

Traveling with multiple electronic devices can be a chore, especially with constraints on size and the hurdles of security. We can try to solve this problem by using a remote desktop accessible from any of our devices but that can take time to set up! What happens when we need another remote desktop quickly? How can we create a remote desktop as on-demand as a container or virtual machine in our datacenter?

In this talk, we’ll apply infrastructure-as-code to create a continuously delivered remote desktop experience. While there are some limitations to a seamless user experience for a remote desktop, we’ll review tools allow us to automate creation and configuration and techniques to ensure it is built reliably. By applying infrastructure-as-code to remote desktop, we can create an immutable remote desktop image, deploy replicas based on our geographic location, and test if our development environment is ready for use.

Rosemary Wang

October 23, 2019
Tweet

More Decks by Rosemary Wang

Other Decks in Technology

Transcript

  1. Why? ▪ Security – Intellectual Property – Personal Identifying Information

    ▪ Developer Productivity ▪ I ❤ my development machine
  2. Right? 6.4 Mt Of e-waste in US, 2017 ~ 1.2

    M Asian elephants, in equivalent weight https://collections.unu.edu/eserv/UNU:6341/Global-E-waste_Monitor_2017__electronic_single_pages_.pdf
  3. Right? 6.4 Mt Of e-waste in US, 2017 ~ 1.2

    M Asian elephants, in equivalent weight https://www.worldwildlife.org/species/asian-elephant < 50,000 Current population of Asian elephants
  4. Reduce friction with Continuous Delivery ▪ So I can predictably

    and reliably create a development environment, on-demand. ▪ And run on one tablet.
  5. Remote Desktop, Continuously Delivered Immutable image of desktop tools So

    I’m ready to develop Deploy to region of choice In a reliable way Run it on my tablet Travel lighter and reduce cost 11
  6. Scripts install packages. ▪ Chrome Remote Desktop ▪ Visual Studio

    Code & Extensions ▪ Golang ▪ Git ▪ Terraform ▪ Docker
  7. Before I need the cloud, test with Vagrant. CODE EDITOR

    Vagrant.configure("2") do |config| config.vm.box = "debian/stretch64" config.vm.provision "shell", path: “../packer/install- desktop.sh" config.vm.provision "shell", path: “../packer/install- devtools.sh", privileged: false config.vm.provision "shell", path: "../packer/test.sh", privileged: false end
  8. Continuously Deliver the Image ▪ vagrant up for local test

    ▪ Commit and push ▪ CircleCI uses Packer to build
  9. Unit ▪Not exactly a unit test ▪Check if runtime has

    variables defined ▪Still passes locally
  10. Manual End-to-End Test ▪ I didn’t bring my tablet! ▪

    Modifier keys don't work ▪ Would like to automate this
  11. Cost Optimization ▪ Schedule weekly shutdown ▪ Simple cron job

    ▪ Build better development discipline and habits
  12. “Tech Debt” ▪ Secrets (PIN, API keys, etc.) ▪ Automate

    retrieval of refresh token ▪ Security scanning ▪ Lock down networking
  13. “Tech Debt” ▪ Auditing log-ins ▪ Better lifecycle management ▪

    Cost estimation Similar to developing a product…
  14. Not quite! ▪ Security – Still need to do auditing

    steps ▪ Developer Productivity – Pipelines, with some manual steps ▪ I ❤ my development machine – At least I have my IDE
  15. Useful Links ▪ Remote Desktop Image & Pipeline ▪ Chrome

    Remote Desktop ▪ Packer Builder for GCE ▪ Terraform Cloud ▪ VS Code CLI Extension Management