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

The Android device farm that fits in a (cloudy) pocket

785e783fa5b01bb225aecde8ce2af08c?s=47 Poddingue
December 01, 2018

The Android device farm that fits in a (cloudy) pocket

Android developers are facing a common problem: how to test our applications on many devices without sacrificing too much time or money?

How to build and test automatically our applications for each commit?
How can we find those devices inside the company, whatever its size may be?
Could there be a directory somewhere that lists those available devices?
Could we use a device remotely and share it with other developers as if it were in the cloud?

What if you could answer all these questions with the help of a low cost device farm that fits into a pocket? A pocket full of clouds…

Poddingue, our proposal, aims to tackle this problem thanks to Docker, HypriotOS, Armbian, Gitlab CI and OpenSTF. It’s an internal solution made of OSS readily available, but it has not yet been publicly announced as a whole.

This is a feedback about an idea on its way to production, a long journey full of different feelings : horror, happiness, suspense, boredom…

Why should I come?

This presentation won’t be too technical ; it is opened to anybody who has an interest into Android, exotic hardware or continuous integration, as long as you can stand a bad sense of humour. At the end of the talk, you should know how to build your own cloudy pocket farm of Android devices and how to use it to test your applications within your ci pipeline.

And as I am cheap, you will also be surprised at how little money you need to build it.

785e783fa5b01bb225aecde8ce2af08c?s=128

Poddingue

December 01, 2018
Tweet

Transcript

  1. Bruno Verachten bruno.verachten atos.net The Android device farm that fits

    in a (cloudy) pocket poddingue
  2. Bruno Verachten

  3. Bruno Verachten

  4. Bruno Verachten

  5. Bruno Verachten %[PoDdinG##U#E]*: the Android device farm that fits in

    a (cloudy) pocket Throw your Android devices into the cloud
  6. Bruno Verachten %[PoDdinG##U#E]*: the Android device farm that fits in

    a (cloudy) pocket Throw your Android devices into the cloud
  7. Bruno Verachten

  8. Bruno Verachten

  9. Bruno Verachten

  10. Bruno Verachten SBC STANDS FoR Single Board Computer

  11. Bruno Verachten 6 Poddingue: history

  12. Bruno Verachten 6 Poddingue: history

  13. Bruno Verachten 6 Poddingue: history

  14. Bruno Verachten 7 Poddingue: history

  15. Bruno Verachten 7 Poddingue: history

  16. Bruno Verachten 7

  17. Bruno Verachten 7 Poddingue: history

  18. Bruno Verachten 8 Poddingue: history

  19. Bruno Verachten 8 Poddingue: history

  20. Bruno Verachten 9 Poddingue: history

  21. Bruno Verachten 10 Poddingue: history/our start

  22. Bruno Verachten 10 Poddingue: history/our start Poddingue: history/our start

  23. Bruno Verachten 10 Poddingue: history/our start Poddingue: history/our start

  24. Bruno Verachten 11 Poddingue: history/our start Poddingue: history/our start

  25. Bruno Verachten 12 Poddingue: how does it work? openSTF

  26. Bruno Verachten 12 Poddingue: how does it work? openSTF

  27. Bruno Verachten 13 Poddingue: how does it work? openSTF

  28. Bruno Verachten 14 Poddingue: how does it work? openSTF

  29. Bruno Verachten 15 Poddingue: how does it work? API

  30. Bruno Verachten 15 Poddingue: how does it work? API

  31. Bruno Verachten 15 Poddingue: how does it work? API

  32. Bruno Verachten 15 Poddingue: how does it work? API

  33. Bruno Verachten 16 Poddingue: how does it work? API

  34. Bruno Verachten 16 Poddingue: how does it work? API

  35. Bruno Verachten 17 Architecture/Local

  36. Bruno Verachten 17 Architecture/Local

  37. Bruno Verachten 17 Architecture/Local

  38. Bruno Verachten 17 Architecture/Local

  39. Bruno Verachten 17 Architecture/Local

  40. Bruno Verachten 17 Architecture/Local

  41. Bruno Verachten 17 Architecture/Local

  42. Bruno Verachten 18 Architecture/Local

  43. Bruno Verachten 18 Architecture/Local

  44. Bruno Verachten 18 Architecture/Local

  45. Bruno Verachten 19 Architecture/Local

  46. Bruno Verachten 20 Architecture/Local

  47. Bruno Verachten 20 Architecture/Local

  48. Bruno Verachten 21 Architecture/Provider-App

  49. Bruno Verachten 21 Architecture/Provider-App

  50. Bruno Verachten 21 Architecture/Provider-App

  51. Bruno Verachten 21 Architecture/Provider-App

  52. Bruno Verachten 21 Architecture/Provider-App

  53. Bruno Verachten 22 Architecture/Provider role

  54. Bruno Verachten 22 Architecture/Provider role

  55. Bruno Verachten 22 Architecture/Provider role

  56. Bruno Verachten 22 Architecture/Provider role

  57. Bruno Verachten 23 Architecture/App role

  58. Bruno Verachten 23 Architecture/App role

  59. Bruno Verachten 23 Architecture/App role

  60. Bruno Verachten 23 Architecture/App role

  61. Bruno Verachten 23 Architecture/App role

  62. Bruno Verachten 23 Architecture/App role

  63. Bruno Verachten 23 Architecture/App role

  64. Bruno Verachten 23 Architecture/App role

  65. Bruno Verachten 25 Architecture/Workflow

  66. Bruno Verachten 25 Architecture/Workflow

  67. Bruno Verachten 26 Architecture/Workflow

  68. Bruno Verachten 26 Architecture/Workflow

  69. Bruno Verachten 26 Architecture/Workflow

  70. Bruno Verachten 26 Architecture/Workflow

  71. Bruno Verachten 26 Architecture/Workflow

  72. Bruno Verachten 27 739 VLAN

  73. Bruno Verachten 28 VLAN

  74. Bruno Verachten 28 VLAN Building I Building II Server Room

  75. Bruno Verachten 28 VLAN Building I Server Room

  76. Bruno Verachten 28 VLAN Building I Server Room

  77. Bruno Verachten 29 Booking/Right management

  78. Bruno Verachten 29 Booking/Right management

  79. Bruno Verachten 29 Booking/Right management

  80. Bruno Verachten 29 Booking/Right management

  81. Bruno Verachten 29 Booking/Right management

  82. Bruno Verachten 30 Continuous integration

  83. Bruno Verachten 30 Continuous integration

  84. Bruno Verachten 30 Continuous integration

  85. Bruno Verachten 30 Continuous integration

  86. Bruno Verachten 30 Continuous integration

  87. Bruno Verachten 32 Steps / NUC?

  88. Bruno Verachten 32 Steps / NUC?

  89. | LinuxLab 2018 | Bruno Verachten | @Poddingue Worldline| Software

    Development Community Office Bruno Verachten Raspberry 3 and phones
  90. | LinuxLab 2018 | Bruno Verachten | @Poddingue Worldline| Software

    Development Community Office Bruno Verachten Raspberry 3 and phones
  91. Bruno Verachten 34 steps : Raspberry Pi 3B

  92. Bruno Verachten 34 steps : Raspberry Pi 3B

  93. Bruno Verachten 34 steps : Raspberry Pi 3B

  94. Bruno Verachten 34 steps : Raspberry Pi 3B steps :

    Raspberry Pi 3B
  95. Bruno Verachten 35 • What if… steps : raspberry pi

    3B/ lubuntu
  96. Bruno Verachten 35 • What if… steps : raspberry pi

    3B/ lubuntu
  97. Bruno Verachten 36 • What if… steps: raspberry pi 3b/

    raspbian
  98. Bruno Verachten 36 • What if… steps: raspberry pi 3b/

    raspbian
  99. Bruno Verachten 36 • What if… steps: raspberry pi 3b/

    raspbian
  100. Bruno Verachten 37 • What if… Steps : Raspberry Pi

    3B/ Hypriot os
  101. Bruno Verachten 37 • What if… Steps : Raspberry Pi

    3B/ Hypriot os
  102. Bruno Verachten 37 • What if… Steps : Raspberry Pi

    3B/ Hypriot os
  103. Bruno Verachten 38 • What if… Steps : Raspberry PI

    3B/ Hypriot OS
  104. Bruno Verachten 38 • What if… Steps : Raspberry PI

    3B/ Hypriot OS
  105. Bruno Verachten 39 Steps: building an ARM image/Raspi

  106. Bruno Verachten 39 Steps: building an ARM image/Raspi

  107. Bruno Verachten 39 Steps: building an ARM image/Raspi

  108. Bruno Verachten 39 Steps: building an ARM image/Raspi

  109. Bruno Verachten 39 Steps: building an ARM image/Raspi

  110. Bruno Verachten 40 Steps: building an ARM image/Raspi

  111. Bruno Verachten 40 Steps: building an ARM image/Raspi

  112. Bruno Verachten 40 Steps: building an ARM image/Raspi

  113. Bruno Verachten 41 Steps: building an ARM image/Gitlab

  114. Bruno Verachten 41 Steps: building an ARM image/Gitlab

  115. Bruno Verachten 41 Steps: building an ARM image/Gitlab

  116. Bruno Verachten 42 Steps: building an ARM image/Gitlab

  117. Bruno Verachten 42 Steps: building an ARM image/Gitlab

  118. Bruno Verachten 43 Steps: building an ARM image/Gitlab

  119. Bruno Verachten 43 Steps: building an ARM image/Gitlab

  120. Bruno Verachten 43 Steps: building an ARM image/Gitlab

  121. Bruno Verachten 45 ARM image on DockerHub / take 1

  122. Bruno Verachten 45 ARM image on DockerHub / take 1

  123. Bruno Verachten 45 ARM image on DockerHub / take 1

  124. Bruno Verachten 46 ARM image on DockerHub / take 1

  125. Bruno Verachten 46 ARM image on DockerHub / take 1

  126. Bruno Verachten 46 ARM image on DockerHub / take 1

  127. Bruno Verachten 47 ARM image on DockerHub

  128. Bruno Verachten 47 ARM image on DockerHub

  129. Bruno Verachten 47 ARM image on DockerHub

  130. Bruno Verachten 48 ARM image on DockerHub / take 2

  131. Bruno Verachten 48 ARM image on DockerHub / take 2

  132. Bruno Verachten 49 Architecture/Workflow

  133. Bruno Verachten 50 • What if… Steps: building an ARM

    image/Raspi
  134. Bruno Verachten 51 • What if… Steps: building an ARM

    image/Raspi
  135. Bruno Verachten 52 Down the rabbit hole: SBC

  136. Bruno Verachten 52 Down the rabbit hole: SBC SBC STANDS

    FoR Single Board Computer
  137. Bruno Verachten 52 Down the rabbit hole: SBC SoC STANDS

    FoR System on Chip
  138. Bruno Verachten 53 Down the rabbit hole: SBC GPio STANDS

    FoR General purpose input output
  139. Bruno Verachten 54 Down the rabbit hole: SBC

  140. Bruno Verachten 55 Down the rabbit hole: SBC

  141. Bruno Verachten 55 Down the rabbit hole: SBC Uboot stands

    for Universal boot loader
  142. Bruno Verachten 57 Down the rabbit hole/Kernel/UBooT

  143. What about a smoothie?

  144. What about a smoothie?

  145. What about a smoothie?

  146. Bruno Verachten 66 Smoothie: orange Pi one Plus

  147. Bruno Verachten 66 Smoothie: orange Pi one Plus

  148. Bruno Verachten 66 Smoothie: orange Pi one Plus

  149. Bruno Verachten 66 Smoothie: orange Pi one Plus

  150. Bruno Verachten 66 Smoothie: orange Pi one Plus

  151. Bruno Verachten 67 Smoothie: orange Pi one Plus

  152. Bruno Verachten 67 Smoothie: orange Pi one Plus

  153. Bruno Verachten 67 Smoothie: orange Pi one Plus

  154. Bruno Verachten 67 Smoothie: orange Pi one Plus

  155. Bruno Verachten 68 Smoothie: orange Pi one Plus

  156. orange juice

  157. orange juice

  158. Bruno Verachten 71 orange juice, anyone?

  159. Bruno Verachten 71 orange juice, anyone?

  160. Bruno Verachten 71 orange juice, anyone? interesting it is…

  161. Bruno Verachten 71 orange juice, anyone?

  162. Bruno Verachten 71 orange juice, anyone?

  163. What about Beefier?

  164. Bruno Verachten 73 Beef, anyone?

  165. Bruno Verachten 73 Beef, anyone?

  166. Bruno Verachten 73 Beef, anyone?

  167. Bruno Verachten 74

  168. Bruno Verachten 74

  169. Bruno Verachten 74

  170. Bruno Verachten 74

  171. Bruno Verachten 75 Beef, anyone?

  172. Bruno Verachten 75 Beef, anyone?

  173. Bruno Verachten 75 Beef, anyone?

  174. Bruno Verachten 75 Beef, anyone?

  175. Bruno Verachten 75 Beef, anyone?

  176. Bruno Verachten 75 Beef, anyone?

  177. Bruno Verachten 76 Beef, anyone?

  178. What about beefier and stranger?

  179. What about beefier and stranger?

  180. What about beefier and stranger?

  181. What about beefier and stranger?

  182. What about beefier and stranger? You’re cheap!

  183. What about totally strange?

  184. What about totally strange?

  185. What about totally strange?

  186. What about totally strange? interesting…

  187. ARM in the server room

  188. ARM in the server room

  189. Bruno Verachten 85

  190. Bruno Verachten 85

  191. Bruno Verachten 85

  192. Bruno Verachten 85

  193. Bruno Verachten 85

  194. Bruno Verachten 85 Arm in the cloud

  195. Bruno Verachten 85 Arm in the cloud

  196. Bruno Verachten 85 Arm in the cloud

  197. Bruno Verachten 85 Arm in the cloud

  198. Bruno Verachten 85 Arm in the cloud

  199. Bruno Verachten 86 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/ Arm in the server room
  200. Bruno Verachten 86 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/ Arm in the server room
  201. Bruno Verachten 86 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/ Arm in the server room
  202. Bruno Verachten 86 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/ Arm in the server room
  203. Bruno Verachten 86 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/
  204. Bruno Verachten 87 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/ Arm in the server room
  205. Bruno Verachten 87 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/
  206. Bruno Verachten 87 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/
  207. Bruno Verachten 87 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/
  208. Bruno Verachten 87 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/
  209. Bruno Verachten 87 • Scaleway pour builder • Puis xtreme2

    et compagnie in house • https:/ / blog.hypriot.com/ post/ test- build- and- package- docker- for- arm- the- official- way/
  210. Bruno Verachten 88 Takeaways

  211. Bruno Verachten 88 Takeaways

  212. Bruno Verachten 88 Takeaways

  213. Bruno Verachten 88 Takeaways

  214. Bruno Verachten 89 Takeaways

  215. Bruno Verachten 90 These aren’t the sbcs you’re looking for

  216. Bruno Verachten 90 These aren’t the sbcs you’re looking for

  217. Bruno Verachten 90 These aren’t the sbcs you’re looking for

    otg stands for On The Go
  218. Bruno Verachten 90 These aren’t the sbcs you’re looking for

  219. Bruno Verachten 91

  220. Bruno Verachten 91

  221. Bruno Verachten 91

  222. Bruno Verachten 91

  223. Bruno Verachten 92 These aren’t the sbcs you’re looking for

  224. Bruno Verachten 92 These aren’t the sbcs you’re looking for

  225. Bruno Verachten 92 These aren’t the sbcs you’re looking for

  226. Bruno Verachten 92 These aren’t the sbcs you’re looking for

    it’s a trap… Don’t look at other sbcs
  227. Bruno Verachten 93 Takeaways

  228. Bruno Verachten 93 Takeaways

  229. Bruno Verachten 93 Takeaways

  230. Bruno Verachten 93 Takeaways

  231. Bruno Verachten Thanks For more information please contact: Poddingue bruno.verachten

    atos.net