DevOps for the Internet of Things
Senior Software Engineer

Experience Team @ resin.io
Akis Kesoglou
The tools and technologies
behind resin.io
What’s in for today
• Architecture Overview
• Core Technologies
• Development Tools and Processes
What is resin.io
• Deploys your application to your remote Linux-based devices
• Supports a dozen devices and any language/platform
• Enables fast code/push/deploy development cycle
Architecture Overview
Architecture Overview
• Service-oriented

git, Dashboard, API, Builder, Registry, Proxy, Database
• Deployed in Docker containers

on Amazon AWS
• Linux, Docker, Node.js, PostgreSQL
Architecture Overview
• git
• Performs authentication
• Receives your code
• Builder
• Builds application image
• Pushes to Registry
• Notifies API
• API
• Notifies devices via Proxy
• Resin Agent
• Downloads new image
• Kills previous container
• Starts new container
$ git push resin master
Core Technologies
Core Technologies
• git
• Docker
• Yocto Linux
• Node.js
• Go
• SBVR & OData
• Entry-point to resin.io
• Orchestration via hooks

Authentication, progress report, etc.
git
Docker
• High-level API to underlying Linux technology

cgroups, kernel namespaces, union filesystems (aufs, overlayfs, btrfs)
• Containers
• Light-weight, self-contained “virtual-machines”
• Contain application code and dependencies
• Provide isolation and resource management
• Deployed as images
• Same image can be deployed anywhere
• Transient, running instances of an image
Yocto Linux
• “Meta-Distribution”

Set of tools to build Linux distributions
• Single Linux distribution for all our supported boards
• x86, x64, ARM architectures
• Configuration via Board Support Packages (BSP)

kernel, modules, bootloader, etc.
Node.js
• Used for our CLI, API, Agent
• Write once, deploy everywhere
• Huge community and number of projects
• Fast enough
• Pyramid of dependencies
• Memory footprint
Go
• Used for our new Resin Agent
• No interpreter!

Tiny memory footprint and fast
• Easy to cross-compile
• Verbose syntax
SBVR & OData
• SBVR

“Semantics of Business Vocabulary and Business Rules”
• OData

Protocol for building RESTful APIs
• PineJS
SBVR & OData
Term: pilot
Term: plane
Fact type: pilot can fly plane
Fact type: pilot is experienced
Rule: It is obligatory that each pilot can fly

at least 1 plane
Rule: It is obligatory that each pilot that is

experienced can fly at least 3 planes
SBVR & OData
// Get all experienced pilots
GET http://api.example.com/pilot?↩ 

$filter=(is_experienced eq true)
Development Tools and

Processes
We Work Remotely
• Distributed team

People work remotely from 10 different countries
• Offices in 3 countries

Greece, UK, US
• All-Resin call once a week
• Ad-hoc calls
• Summit once a year
Development Tools
• Flowdock
• Mumble
• Bitbucket
• Jira
• Confluence
• Vagrant + VirtualBox

for our development environment
Development Workflow
• Ticket in Jira
• Branch in git
• Pull Request in Bitbucket
• Deployment to staging
• Test and refine
• Deployment to production
Links
Resin.io https://resin.io/
Docker https://docker.com/
Yocto Project https://yoctoproject.org/
SBVR Spec http://www.omg.org/spec/SBVR/Current/
OData http://odata.org/
Flowdock https://flowdock.com/
Mumble http://mumble.info/
Vagrant https://vagrantup.com/
Jira https://atlassian.com/software/jira/
Confluence https://atlassian.com/software/confluence/
Thank you!
The tools and technologies behind resin.io
Questions?

More Related Content

PPTX
AWS for the Java Developer
PDF
Netflix Architecture and Open Source
PPTX
Vs java (1)
PPTX
Kiss.ts - The Keep It Simple Software Stack for 2017++
PDF
Pablo Chico de Guzman | Introducción a Docker y Kubernetes | Codemotion Madri...
PPTX
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
PPTX
Externalized Spring Boot App Configuration
PDF
On Prem Container Cloud - Lessons Learned
AWS for the Java Developer
Netflix Architecture and Open Source
Vs java (1)
Kiss.ts - The Keep It Simple Software Stack for 2017++
Pablo Chico de Guzman | Introducción a Docker y Kubernetes | Codemotion Madri...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
Externalized Spring Boot App Configuration
On Prem Container Cloud - Lessons Learned

What's hot (20)

PPTX
2 万林涛
PPTX
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...
PDF
Why I wish I'd Heard of Docker when I was 12 - Finnian Anderson
PPTX
Octopus Deploy and Biztalk
PPTX
Octopus Deploy and Docker
PDF
Building Digital Transaction Systems in the new Banking World
PDF
Your Auto-Scaling Bot - Volkan Tufecki
PDF
The Next Generation Cloud: Unleashing the Power of the Unikernal
PDF
Deploying Personalized Learning Labs using Docker Swarm by Nate Aune and Bria...
PPTX
Yet Another Session about Docker and Containers​
PDF
Mobycraft - Docker in 8-bit by Aditya Gupta
PDF
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
PDF
The Three Musketeers
PDF
Running AWS Locally
PDF
Triangle Devops Meetup 10/2015
PDF
Hacking Docker the Easy way
PDF
321 codeincontainer brewbox
PDF
Real World CI/CD with Kubernetes
PDF
Docker Geneva Meetup - Introduction to Docker
PPTX
Next generation pipelines
2 万林涛
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...
Why I wish I'd Heard of Docker when I was 12 - Finnian Anderson
Octopus Deploy and Biztalk
Octopus Deploy and Docker
Building Digital Transaction Systems in the new Banking World
Your Auto-Scaling Bot - Volkan Tufecki
The Next Generation Cloud: Unleashing the Power of the Unikernal
Deploying Personalized Learning Labs using Docker Swarm by Nate Aune and Bria...
Yet Another Session about Docker and Containers​
Mobycraft - Docker in 8-bit by Aditya Gupta
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
The Three Musketeers
Running AWS Locally
Triangle Devops Meetup 10/2015
Hacking Docker the Easy way
321 codeincontainer brewbox
Real World CI/CD with Kubernetes
Docker Geneva Meetup - Introduction to Docker
Next generation pipelines
Ad

Viewers also liked (12)

PPTX
Ellak JavaScript Day
PDF
The case for HTTP/2
PPTX
The history of asynchronous JavaScript
PPTX
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
PDF
Welcome
PDF
Programming IoT Gateways with macchina.io
PDF
GraphQL vs REST
PDF
Introduction to AllJoyn
PDF
Programming IoT Gateways in JavaScript with macchina.io
PPTX
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
PDF
Hands on with lightweight m2m and Eclipse Leshan
PDF
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
Ellak JavaScript Day
The case for HTTP/2
The history of asynchronous JavaScript
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Welcome
Programming IoT Gateways with macchina.io
GraphQL vs REST
Introduction to AllJoyn
Programming IoT Gateways in JavaScript with macchina.io
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
Hands on with lightweight m2m and Eclipse Leshan
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
Ad

Similar to The tools & technologies behind Resin.io (20)

PDF
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
PDF
APIs distribuidos con alta escalabilidad
PDF
SGCE 2015 REST APIs
KEY
Benefits of an Open environment with Wakanda
PPTX
Streamline Cloud-Native App Development Using CDEs​.pptx
PPTX
OpenStack Summit
PDF
DevOpsCon 2015 - DevOps in Mobile Games
PPTX
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
PDF
DevOps for Databricks
PPTX
Delivering Developer Tools at Scale
PDF
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
PPTX
Containers, Serverless and Functions in a nutshell
PPTX
Modern Web-site Development Pipeline
PPTX
CI/CD for Asp.net core apps using Docker
PPT
Introduction to node.js aka NodeJS
PPTX
Docker & aPaaS: Enterprise Innovation and Trends for 2015
PPTX
OpenShift Enterprise 3.1 vs kubernetes
PPTX
Gocd – Kubernetes/Nomad Continuous Deployment
PDF
Containers, microservices and serverless for realists
PPTX
DevOps with Azure, Kubernetes, and Helm Webinar
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
APIs distribuidos con alta escalabilidad
SGCE 2015 REST APIs
Benefits of an Open environment with Wakanda
Streamline Cloud-Native App Development Using CDEs​.pptx
OpenStack Summit
DevOpsCon 2015 - DevOps in Mobile Games
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
DevOps for Databricks
Delivering Developer Tools at Scale
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
Containers, Serverless and Functions in a nutshell
Modern Web-site Development Pipeline
CI/CD for Asp.net core apps using Docker
Introduction to node.js aka NodeJS
Docker & aPaaS: Enterprise Innovation and Trends for 2015
OpenShift Enterprise 3.1 vs kubernetes
Gocd – Kubernetes/Nomad Continuous Deployment
Containers, microservices and serverless for realists
DevOps with Azure, Kubernetes, and Helm Webinar

More from GreeceJS (13)

PDF
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
PDF
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
PDF
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
PDF
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27
PDF
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
PDF
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
PDF
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22
PDF
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22
PDF
Taming forms with React
PDF
The JavaScript toolset for development on Ethereum
PDF
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
PDF
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22
Taming forms with React
The JavaScript toolset for development on Ethereum
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15

Recently uploaded (20)

PDF
Instit16health2.pdfghujjjgjkkggikjhgghhhjj
PDF
Research_on_Rail_Pressure_Control_of_High-Pressure.pdf
PPTX
Computer Hardware - Technology and Livelihood Education
PPTX
Magnesium_and_Phosphorus_Presentation.pptx
PPTX
Unit-5 .pptx sem 3 electrical circuits and machines
PDF
Gain improved scalability over networks and sub-networks using DVI extender
PPTX
Orange and Purple Gradient Computer Networking Technology Presentation.pptx
PPTX
最新版新加坡英华美学院毕业证(Informatics毕业证书)原版定制硕士文凭
PPT
COA______________₹₹_₹₹33₹₹₹33₹₹₹3UNIT1V8.ppt
PPTX
🛠️ Introduction to Industrial Arts.pptx
PPTX
dDifference Beetween Saving slides And Investment Slides.pptx
PPTX
Fabrication 1.pptx from electronics circuits and devices
PPTX
Java_Basics_Grade6 powerpoint prese.pptx
PDF
Cattle Scales (https://cattlescales.com.au/)
PPTX
Malnutrition_Presentation_Revised.pptxhwjsjjsjs
PPTX
Operating_Systems_Presentation_With_Icons (1).pptx
PPTX
Presentation utk shar baurlah bhhkuaie.pptx
PPTX
Purple Pink Gradient Modern Metaverse Presentation_20250817_191428_0000.pptx
PPSX
Presentatiohdhdhdhdhdhfhfbfhrrbrurbrurbn.ppsx
DOCX
Buy Abortion Pills Best Prices In Qatar$
Instit16health2.pdfghujjjgjkkggikjhgghhhjj
Research_on_Rail_Pressure_Control_of_High-Pressure.pdf
Computer Hardware - Technology and Livelihood Education
Magnesium_and_Phosphorus_Presentation.pptx
Unit-5 .pptx sem 3 electrical circuits and machines
Gain improved scalability over networks and sub-networks using DVI extender
Orange and Purple Gradient Computer Networking Technology Presentation.pptx
最新版新加坡英华美学院毕业证(Informatics毕业证书)原版定制硕士文凭
COA______________₹₹_₹₹33₹₹₹33₹₹₹3UNIT1V8.ppt
🛠️ Introduction to Industrial Arts.pptx
dDifference Beetween Saving slides And Investment Slides.pptx
Fabrication 1.pptx from electronics circuits and devices
Java_Basics_Grade6 powerpoint prese.pptx
Cattle Scales (https://cattlescales.com.au/)
Malnutrition_Presentation_Revised.pptxhwjsjjsjs
Operating_Systems_Presentation_With_Icons (1).pptx
Presentation utk shar baurlah bhhkuaie.pptx
Purple Pink Gradient Modern Metaverse Presentation_20250817_191428_0000.pptx
Presentatiohdhdhdhdhdhfhfbfhrrbrurbrurbn.ppsx
Buy Abortion Pills Best Prices In Qatar$

The tools & technologies behind Resin.io

  • 1. DevOps for the Internet of Things
  • 2. Senior Software Engineer
 Experience Team @ resin.io Akis Kesoglou
  • 3. The tools and technologies behind resin.io
  • 4. What’s in for today • Architecture Overview • Core Technologies • Development Tools and Processes
  • 5. What is resin.io • Deploys your application to your remote Linux-based devices • Supports a dozen devices and any language/platform • Enables fast code/push/deploy development cycle
  • 7. Architecture Overview • Service-oriented
 git, Dashboard, API, Builder, Registry, Proxy, Database • Deployed in Docker containers
 on Amazon AWS • Linux, Docker, Node.js, PostgreSQL
  • 8. Architecture Overview • git • Performs authentication • Receives your code • Builder • Builds application image • Pushes to Registry • Notifies API • API • Notifies devices via Proxy • Resin Agent • Downloads new image • Kills previous container • Starts new container $ git push resin master
  • 10. Core Technologies • git • Docker • Yocto Linux • Node.js • Go • SBVR & OData
  • 11. • Entry-point to resin.io • Orchestration via hooks
 Authentication, progress report, etc. git
  • 12. Docker • High-level API to underlying Linux technology
 cgroups, kernel namespaces, union filesystems (aufs, overlayfs, btrfs) • Containers • Light-weight, self-contained “virtual-machines” • Contain application code and dependencies • Provide isolation and resource management • Deployed as images • Same image can be deployed anywhere • Transient, running instances of an image
  • 13. Yocto Linux • “Meta-Distribution”
 Set of tools to build Linux distributions • Single Linux distribution for all our supported boards • x86, x64, ARM architectures • Configuration via Board Support Packages (BSP)
 kernel, modules, bootloader, etc.
  • 14. Node.js • Used for our CLI, API, Agent • Write once, deploy everywhere • Huge community and number of projects • Fast enough • Pyramid of dependencies • Memory footprint
  • 15. Go • Used for our new Resin Agent • No interpreter!
 Tiny memory footprint and fast • Easy to cross-compile • Verbose syntax
  • 16. SBVR & OData • SBVR
 “Semantics of Business Vocabulary and Business Rules” • OData
 Protocol for building RESTful APIs • PineJS
  • 17. SBVR & OData Term: pilot Term: plane Fact type: pilot can fly plane Fact type: pilot is experienced Rule: It is obligatory that each pilot can fly
 at least 1 plane Rule: It is obligatory that each pilot that is
 experienced can fly at least 3 planes
  • 18. SBVR & OData // Get all experienced pilots GET http://api.example.com/pilot?↩ 
 $filter=(is_experienced eq true)
  • 20. We Work Remotely • Distributed team
 People work remotely from 10 different countries • Offices in 3 countries
 Greece, UK, US • All-Resin call once a week • Ad-hoc calls • Summit once a year
  • 21. Development Tools • Flowdock • Mumble • Bitbucket • Jira • Confluence • Vagrant + VirtualBox
 for our development environment
  • 22. Development Workflow • Ticket in Jira • Branch in git • Pull Request in Bitbucket • Deployment to staging • Test and refine • Deployment to production
  • 23. Links Resin.io https://resin.io/ Docker https://docker.com/ Yocto Project https://yoctoproject.org/ SBVR Spec http://www.omg.org/spec/SBVR/Current/ OData http://odata.org/ Flowdock https://flowdock.com/ Mumble http://mumble.info/ Vagrant https://vagrantup.com/ Jira https://atlassian.com/software/jira/ Confluence https://atlassian.com/software/confluence/
  • 25. The tools and technologies behind resin.io Questions?