Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Can i service this from my raspberry pi

157 views

Published on

Infrastructure-related skills are essential for developers in cross-functional teams who build microservices for the cloud. Becoming proficient in infrastructure development is not just about understanding the hardware and software components on top of which applications run in the cloud. It's also about being able to use the tools that provide virtual access to this infrastructure and enable us to provision, configure, monitor it, and deploy applications to it. In this talk Gesa shares how building a Kubernetes cluster of Raspberry Pis and serving applications from it can help in acquiring fundamental infrastructure skills.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Can i service this from my raspberry pi

  1. 1. Can I serve this from my Raspberry Pi? Gesa Stupperich How to learn infrastructure with a travel size Kubernetes cluster
  2. 2. How to acquire infrastructure skills?
  3. 3. How to acquire infrastructure skills?
  4. 4. Docker files? Logs and metrics? Secrets injection? Infrastructure-as-code? Networking? How to acquire infrastructure skills?
  5. 5. Load Testing A/B Testing Strategy Security Testing Microservice Ecosystem Testing Continuous Delivery Pathways Basic Coding Skills Basic Knowledge of Architecture Test Pyramid Automation of Verifications Growing better testable code and pipelines Different Programming Paradigms Design Patterns Growing better testable code and pipelines Evolutionary Architecture Developing large ecosystems Developing other team members Com m and Line Basics Infrastructure Basic (Using) Kubernetes/Heroku/ AWS/Other Platforms (Creating) Integration with the Platform Deprecating Technology Docker Configuration M anagem ent Creating and Maintaining deploym ent pipelines Infrastructure as Code (Maintaining) Kubernetes/Heroku/AWS/Other Platforms Infrastructure Requirem ents, Stability,Patching Infrastructure Middleware, Routing, Permissions, Protocols On Call Routine Logging Platform Cluster M anagem ent and Tracing M onitoring Platform Tuning of Systems, DBs, Distributed Systems Manual Quality Verification
  6. 6. How to acquire infrastructure skills?
  7. 7. How to acquire infrastructure skills?
  8. 8. How to acquire infrastructure skills?
  9. 9. Raspberry Pi vs. Cloud VM
  10. 10. Raspberry Pi vs. Cloud VM No subscription
  11. 11. Raspberry Pi vs. Cloud VM No subscription Vendor agnostic
  12. 12. Raspberry Pi vs. Cloud VM No subscription Vendor agnosticPsychology of limitation
  13. 13. Raspberry Pi vs. Cloud VM No subscription Vendor agnosticPsychology of limitation Fun factor
  14. 14. “It's that sense of power in making a computer do a thing” - Eben Upton
  15. 15. Why did I start serving things from my Raspberry Pi?
  16. 16. Stage 1: Raspberry Pi Python Script
  17. 17. Database Web Application Python Script Browser Store Data Query Data Get Visualizations Stage 1: Raspberry Pi Python Script
  18. 18. Database Web Application Python Script Browser Store Data Query Data Get Visualizations Stage 2: Raspberry Pi Python Script
  19. 19. Database Web Application Python Script Browser Stage 2: Raspberry Pi Web Server 77.43.104.123:80192.168.1.16:3000
  20. 20. Why did I continue to serve things from my Raspberry Pi?
  21. 21. Tools and Concepts ● Docker ● Grafana ● Home router software
  22. 22. Tools and Concepts ● Docker: container networking and storage ● Grafana ● Home router software
  23. 23. Tools and Concepts ● Docker ● Grafana: automatic provisioning ● Home router software
  24. 24. Tools and Concepts ● Docker ● Grafana ● Home router software: network address translation and port forwarding
  25. 25. Stage 3: Raspberry Pi Kubernetes Cluster
  26. 26. Stage 3: Raspberry Pi Kubernetes Cluster WLAN Master Node Worker Nodes
  27. 27. Stage 3: Raspberry Pi Kubernetes Cluster WLAN Shared Storage Master Node Worker Nodes
  28. 28. Stage 3: Raspberry Pi Kubernetes Cluster Database Web Application WLAN Shared Storage Master Node Worker Nodes
  29. 29. Stage 3: Raspberry Pi Kubernetes Cluster Browser Web Application Database WLAN Shared Storage Master Node Worker Nodes
  30. 30. Stage 3: Raspberry Pi Kubernetes Cluster Browser Web Application Database WLAN Shared Storage Master Node Worker Nodes
  31. 31. Browser Stage 3: Raspberry Pi Kubernetes Cluster Web Application Database WLAN Shared Storage Master Node Worker Nodes AWS EC2 Instance
  32. 32. Browser Stage 3: Raspberry Pi Kubernetes Cluster Web Application Database WLAN Shared Storage Master Node Worker Nodes AWS EC2 Instance VPN
  33. 33. Browser Stage 3: Raspberry Pi Kubernetes Cluster Web Application Database WLAN Shared Storage Master Node Worker Nodes AWS EC2 Instance VPN
  34. 34. Browser Stage 3: Raspberry Pi Kubernetes Cluster Web Application Database LAN Shared Storage Master Node Worker Nodes AWS EC2 Instance VPN
  35. 35. Browser Shared Storage Master Node Worker Nodes AWS EC2 Instance VPN LAN Stage 3: Raspberry Pi Kubernetes Cluster Temperature and Humidity Monitoring
  36. 36. Stage 3: Raspberry Pi Kubernetes Cluster Browser Shared Storage Master Node Worker Nodes AWS EC2 Instance VPN LAN Flashcard App
  37. 37. Stage 3: Raspberry Pi Kubernetes Cluster Browser Shared Storage Master Node Worker Nodes AWS EC2 Instance VPN LAN Request duration CPU & RAM Health and Performance Monitoring
  38. 38. What did I learn from serving things from my Raspberry Pi?
  39. 39. Tools and Concepts ● Kubernetes ● GlusterFS ● Tinc ● Nginx ● OpenSSL, Let’s Encrypt, Certbot ● Prometheus always wanted to use had used before
  40. 40. Tools and Concepts ● Kubernetes: container orchestration ● GlusterFS ● Tinc ● Nginx ● OpenSSL, Let’s Encrypt, Certbot ● Prometheus
  41. 41. Tools and Concepts ● Kubernetes ● GlusterFS: distributed file systems ● Tinc ● Nginx ● OpenSSL, Let’s Encrypt, Certbot ● Prometheus
  42. 42. Tools and Concepts ● Kubernetes ● GlusterFS ● Tinc: VPN tunneling ● Nginx ● OpenSSL, Let’s Encrypt, Certbot ● Prometheus
  43. 43. Tools and Concepts ● Kubernetes ● GlusterFS ● Tinc ● Nginx: reverse proxying ● OpenSSL, Let’s Encrypt, Certbot ● Prometheus
  44. 44. Tools and Concepts ● Kubernetes ● GlusterFS ● Tinc ● Nginx ● OpenSSL, Let’s Encrypt, Certbot: SSL/TLS ● Prometheus
  45. 45. Tools and Concepts ● Kubernetes ● GlusterFS ● Tinc ● Nginx ● OpenSSL, Let’s Encrypt, Certbot ● Prometheus: monitoring
  46. 46. Iterative approach Bigger goal Small goal Find out how to accomplish it Improve/ Fix it Understand why it works/ doesn’t work Application/ infrastructure code PICKPLAN RESEARCH IMPLEMENTRESEARCHIMPLEMENT
  47. 47. Why should you start serving things from your Raspberry Pi?
  48. 48. Load Testing A/B Testing Strategy Security Testing Microservice Ecosystem Testing Basic Coding Skills Basic Knowledge of Architecture Test Pyramid Manual Quality Verification Automation of Verifications Growing better testable code and pipelines Different Programming Paradigms Design Patterns Growing better testable code and pipelines Evolutionary Architecture Developing large ecosystems Developing other team members Com m and Line Basics Infrastructure Basic (Using) Kubernetes/Heroku/ AWS/Other Platforms (Creating) Integration with the Platform Deprecating Technology Docker Configuration M anagem ent Creating and Maintaining deploym ent pipelines Infrastructure as Code (Maintaining) Kubernetes/Heroku/AWS/Other Platforms Infrastructure Requirem ents, Stability,Patching Infrastructure Middleware, Routing, Permissions, Protocols On Call Routine Logging Platform Cluster M anagem ent and Tracing M onitoring Platform Tuning of Systems, DBs, Distributed Systems Continuous Delivery Pathways PERSONALISED
  49. 49. How to learn to play the piano?
  50. 50. How to learn to play the piano? Improvise Study harmony
  51. 51. How to learn to play the piano? Improvise Study harmony
  52. 52. How to learn to play the piano? Improvise Study harmony
  53. 53. How to learn to encrypt your web traffic?
  54. 54. How to learn to encrypt your web traffic? Configure HTTPS Study TLS
  55. 55. How to learn to encrypt your web traffic? Configure HTTPS Study TLS
  56. 56. How to learn to encrypt your web traffic? Configure HTTPS Study TLS
  57. 57. Raspberry Pis Micro SD cards USB chargers Hardware Doesn’t have to be inventive! Meaningful projects What do you need?
  58. 58. Resources To get started Raspberry Pi Foundation https://www.raspberrypi.org/documentation/ Alex Ellis’ Blog https://blog.alexellis.io/ Pi Dramble https://www.pidramble.com/ Gist with more resources https://gist.github.com/neinkeinkaffee/c406edd68e17798eaaa9a4463f30 edfb
  59. 59. Gesa Stupperich Thank you

×