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

The infrastructure of IoT

Yamil Urbina
November 24, 2016

The infrastructure of IoT

Presented at IoT Cochabamba

Yamil Urbina

November 24, 2016
Tweet

More Decks by Yamil Urbina

Other Decks in Education

Transcript

  1. Mojix Cloud Operations at Mojix Working with microservices, cloud servers

    and scalability for distributed systems. Twitter, FB and more social: @yamilurbina Yamil Urbina
  2. Mojix • Hardware: Servers • Software: Applications, Databases, Caches, Proxies

    • Network: DNS, VPNs, Firewalls Cloud Infrastructure
  3. Mojix • We put applications in production • Monitoring and

    recovery planning • Application logs collection • 24/7 on call (no sleep, sleep is for the weak) Cloud Operations
  4. Mojix • A sensor or device produces data • The

    data is transmitted to a service: • Modifies data based on filters • Triggers tasks or devices • Relays the data to another service • Saves the data to a database The IoT workflow
  5. Mojix • Can produce data based on location, temperature or

    custom gathered information • More sensors, more data to send • Bandwidth is needed to transmit big chunks of data over the internet Sensors and devices
  6. Mojix • 20.741.671 things in database • Over 280 antennas

    deployed in 3 sites • 2.5MB data per second • 656GB data transmitted per day • 5000+ messages per second • 728GB Big Data database size ViZix Challenge
  7. Mojix • All components must be running 24/7 • How

    do we update to new versions? • Support 5000+ messages per second • Internet bandwidth to support 656GB / day • Monitoring health and logs ViZix Challenge
  8. Mojix • Servers in the cloud • 100% customizable •

    10GB+ internet speed • Firewall, secure and reliable Amazon Web Services
  9. Mojix • Can’t handle traffic / drops messages • Single

    point of failure • CPU, RAM and Network shared by all components • High disk writes occupies the HDD • Configurations all over the place First attempt: fail
  10. Mojix • All components must be running 24/7 • How

    do we update to new versions? • Support 5000+ messages per second • Bandwidth to support 656GB / day • Monitoring health and logs ViZix Challenge
  11. Mojix • Modular services • Easy to scale, destroy and

    update • Each microservice contains a component • Easy to connect within a network • Runs across many servers Microservices Architecture
  12. Mojix • Automates deployment • Builds and packages components •

    Same configuration • Very portable Docker
  13. Mojix 1. Compile and package your components 2. Include configuration

    and versions 3. Package it into a container 4. Same container goes through all stages: Development -> QA -> Operations Automated builds
  14. Mojix 1. Get the new container 2. Stop and delete

    the old container 3. Run the new container Total Time: 5 seconds Easy updates
  15. Mojix • All components must be running 24/7 • How

    do we update to new versions? • Support 5000+ messages per second • Internet bandwidth to support 656GB / day • Monitoring health and logs Second attempt
  16. Mojix • Create a network between all servers • Use

    a service discovery app like Consul • Containers will find each other magically Distribute containers
  17. Mojix • All components must be running 24/7 • How

    do we update to new versions? • Support 5000+ messages per second • Internet bandwidth to support 656GB / day • Monitoring health and logs Second attempt
  18. Mojix • Logs are not files; they are streams •

    Find specific events in the past • Errors can happen anytime • Define alerts based on filters and text • We send logs to Papertrail Logs
  19. Mojix • Nothing is bulletproof; services can die • Better

    know beforehand than after your customers • Clients will understand if you let them know • Notify problems via SMS and email Health alerting
  20. Mojix • Infrastructure never ends; it evolves constantly • Be

    prepared for disaster • If it works now, leave it and try new things • Don’t guarantee 100% uptime; errors happen Conclusions