Devops For Dishwashers - Bringing Grown-Up Practices to the Internet of Things
The Internet of Things is undeniably here. In the last year we have heard tell of of security cameras, dishwashers and even ovens roaming the internet unsupervised.
As a consultant and writer about the Internet of Things, I have worked to bring my experience from 20 years in manufacturing and internet security to the IoT world. This presentation will cover the tools and techniques I use to build secure, reliable and rapidly updatable IoT devices.
The techniques covered are applicable to both the simplest embedded devices with no general-purpose OS, and more powerful devices running Linux or Windows.
Outline/Structure of the Talk
Part 1, architecture and coding:
- Using containment (eg. docker) in the embedded world (and simple equivalents for less capable platforms)
- Applying Continuous Integration and automated testing to embedded devices
Part 2, deployment and maintenance:
- Using orchestration tools (chef, ansible, salt etc) to provision IoT devices. As a case study I introduce a framework (https://github.com/unixbigot/kevin) which has been developed for use in my IoT projects
- Examples of using cloud frameworks for IoT management: Amazon AWS, Resin.io, Android Things et.al.
Part 3, Monitoring, Command and Control:
- Tracking your device behaviour using cloud data techniques (case study SaltStack and Elastic Search)
- Updating your devices in the field (with potential compilications of limited or slow connectivity)
- Tips and techniques for device longevity - when you literally need a jackhammer to reach the console port
This talk is a sequel to my earlier "Internet of Scary Things". In that talk I covered how not to make embarrassing security mistakes. In this talk I expand to cover bringing the DevOps principles of Rapid deployment and immutable infrastructure to the embdded world.
Slides and video from my previous presentations can be seen at https://christopher.biggs.id.au/#talks
Learning Outcome
Attendees will learn how to apply best practice "big project" tools and techniques to their IoT projects, and also how to maximise the longevity of their devices in the field, where there is often no "user" to fix them.
Target Audience
IoT Developers
Video
Links
http://christopher.biggs.id.au/#talks
schedule Submitted 5 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Aaron Morton - Scalable IOT with Apache Cassandra
45 Mins
Talk
Intermediate
IOT and Event Based systems can process huge volumes of data. Which typically needs to be stored and read in near real time for event processing, in addition to being read in bulk to feed data hungry learning systems. Apache Cassandra provides a high performance, scalable, and fault tolerant database platform with excellent support for time series data models typically seen in IOT systems. It's millisecond (or better) latency can support systems that react to events in real time, while scalable bulk reads via batch processing systems such as Apache Hadoop and Apache Spark can support learning applications. These features, and more, make Cassandra an ideal persistence platform for modern data intensive, event driven, systems.
In this talk Aaron Morton, CEO at The Last Pickle, will discuss lessons learned using Cassandra for IOT systems. He will explain how Cassandra fits into the modern technology landscape and dive into data modelling for common IOT use cases, capacity planning for huge data loads, tuning for high performance, and integration with other data driven systems. Whether starting a new project, or deep into the weeds on an existing system, attendees will leave will leave with an understanding of how Apache Cassandra can help build robust infrastructure for IOT systems. -
keyboard_arrow_down
Anna Harrison - Decoding Design: Because You Are Not "Just Like Your User"
45 Mins
Talk
Intermediate
At this very moment, there are over 5 billion people tapping and swiping on their mobile phones in every corner of our planet. There are people in Sri Lanka tapping and swiping, South-Africa, Ecuador and Tanzania. The Albanias and Swedes, also busy tapping and swiping.
As a technologist, your aim in life is to capture as many of these tappers and swipers as you can. Given that there are only about 22 million developers in the world, it is likely that the tappers and swipers will not at all be just like you. Building a product for people like you, therefore, greatly limits the size of your total addressable market - which in short, is really bad business.
We know that startups co-founded by designers are far more likely to succeed. But why is this? What exactly do these mysterious Design Creatures do, and more importantly, what can you learn from them to help your product win the tapping and swiping game?
Join Anna for an entertaining, practical and example packed presentation that will absolutely change the way you view the role of design in the making of your next product.
-
keyboard_arrow_down
Larene Le Gassick - Creating Inclusive Apps with React Native
45 Mins
Talk
Intermediate
Creating inclusive and accessible apps is easy using React Native! Javascript developers can have a working app on their phone in less than an hour. Join me to see a working demo of how to plan, develop, and test for accessibility in the mobile space.
I will also be talking about resources and guidelines you can use and share with your organisation to develop apps for everyone - including what the bare minimum looks like to help you prioritise your requirements!
-
keyboard_arrow_down
Nick Moore - Easy IoT with MicroPython on ESP SoCs
45 Mins
Talk
Intermediate
Implementing IoT projects doesn't have to be difficult, time consuming and expensive.
MicroPython brings Python 3 to embedded platforms, and since Python is one of the easiest languages to learn, and there are WiFi SoCs available around $5, this is a great way to get started in IoT! We'll look at:- What is a System-on-a-Chip (SoC) with some specific examples based on the ESP8266 and ESP32 WiFi SoCs
- Why Python? A quick look at C and IoT vulnerabilities
- How to install MicroPython and communicate with the ESP SoC to write programs
- What it is capable of and what things are being developed for it
- How to contribute to the MicroPython project
-
keyboard_arrow_down
Andrew Harvey - They're Good Dogs: A Gentle Introduction to Machine Learning with CoreML and Vision
45 Mins
Talk
Intermediate
At WWDC this year, Apple announced their CoreML and Vision frameworks. These allow you do easily implement machine learning models inside your app, running on the GPU on an iPhone. Suddenly a world of machine learning is possible in ways that it wasn't before.
In this talk, you'll see a real world example written in just hours which implements a freely available object classification model to find out who is a good dog. Silly as this sounds, it shows the power now at our disposal.We’ll look at what you need to do to build a simple app, and then dig into some of the innards of machine learning to see what we need to do to create something really useful.
-
keyboard_arrow_down
Tim Sawtell / Damon Smith / Tyrone Trevorrow - Building React Web and React-Native Apps with Shared Code
Tim SawtellEngineering LeadSportsbetDamon SmithEngineering LeadSportsbetTyrone TrevorrowEngineering Lead (iOS)Sportsbetschedule 5 years ago
45 Mins
Case Study
Intermediate
Diving into the feasibility of using a single code base for generating multiple front-end applications.
We'll discuss using React and React-Native for building apps that provide a consistent experience across native, mobile and desktop web.
Using React and React-Native as the UI layer upon a shared JavaScript core codebase can greatly improve your organisation's delivery of new features to customers.
We'll talk about our migration strategy for the new apps replacing our existing apps, piece by piece. Not slowing down our continuous release of features to customers while replace the apps.
-
keyboard_arrow_down
Samantha Connelly - Robots and Testing
30 Mins
Demonstration
Intermediate
How can you use robots to help you test?
Meet Tappy McTapFace, Tappy is a robot that was built during a 2 day hackathon to help demonstrate how robots could be used to automate testing on mobile apps. It's made out of 3D printable parts, based on Taptser 2.0 open source designs and can be programmed in javascript.
You could also use a robotics challenge to engage your team around testing ideas. Sam will give her insights from running multiple testing challenges that engaged over 100 software engineers. From a lunch time robotics challenge to a company wide bug bash. Sam has run many events that help raise a companies testing culture. -
keyboard_arrow_down
Sam Ritchie - Using the Elm Architecture in Swift
45 Mins
Talk
Advanced
Elm, for a long time the flag bearer of Functional Reactive Programming on the web, recently switched to a simpler pure functional architecture, citing 'ease of use'. Those of us that have worked on complex RxSwift/ReactiveCocoa apps can sympathise with this - using FRP injudiciously in your app can make the code difficult to understand and near impossible for new developers to pick up.
So are we able to apply some of the techniques and patterns from Elm into Swift iOS apps? It turns out the Elm architecture is a really great fit for Swift - it allows us to:
- reserve our FRP hammer for the use cases that make the most sense
- separate out a simple, consistent, and highly testable pure functional core, and
- provide a flexible, yet easily understood & applied set of architectural building blocks.
This session will cover the basics of implementing and using an Elm-style architecture in a Swift app, will include lessons learnt in a real-world implementation, pitfalls/benefits, and implementation considerations should you adopt the approach in your own app.
-
keyboard_arrow_down
Andrew Kelly - ConstraintLayout - One Layout to Rule them All.
30 Mins
Demonstration
Intermediate
This session will give a practical demonstration of how to convert an existing deeply nested view hierarchy for a typical Android app into a more efficient (in terms of measure and layout performance) hierarchy using ConstraintLayout. I will also show how you can use the features of the ConstraintLayout library to create view hierarchies that enable rich animations with little effort.
-
keyboard_arrow_down
Florian Harr - The Internet of Things and Mobile Clients: Don't let your toaster bring down the internet!
45 Mins
Talk
Intermediate
Amazon Alexa, Google Home, HomeKit, and Cortana are more than personal assistants and seem to be the next big battle the big four will go into, but why is this so important to them? There are two components to those assistants; the first is integration with your personalized data gathered from the apps you use and the second is their IoT capability automating your devices at home.
With almost every manufacturing company hiring engineers like crazy to get their devices into the cloud, the results are very different ranging from really bad to great solutions. This behavior shows that we are in the Wild West when it comes to how cloud integrations, device security, and backend security is being implemented. That is why we as pioneers of this technology have to help shape the future by avoiding common pitfalls, secure private data responsibly and don’t end up accidentally weaponizing our IoT creations.
In this talk, I’m going to talk about lessons learned from developing a major IoT platform that controls about a quarter million appliances in the US and Canada. We’re also going to take a look at pitfalls we have overcome and which possibly nice looking shortcuts you should avoid no matter how small your iOS client or IoT device is.
-
keyboard_arrow_down
Paul Stringer / Bethan Timmins - Subcutaneous Testing Mobile
Paul StringerHead of MobileEqual ExpertsBethan TimminsPartnerEqual Expertsschedule 5 years ago
45 Mins
Talk
Advanced
Automated Acceptance Testing is one of the essential ingredients of a healthy agile software practice. Unfortunately, attempts to adopt this on mobile usually result in the creation of slow, brittle and highly complex UI tests - where did we go wrong?
This approach is a far cry from the original idea of acceptance testing and does little to improve the reputation of mobile development. Automation is meant to bring confidence – but used in this way, it creates more problems than it solves. This leaves development teams and businesses left on a seemingly never ending quest for the next thing - usually in the guise of a new framework promising to be better than the last e.g. KIF, Calabash, Appium etc. -
keyboard_arrow_down
Mitchell Tilbrook - React Native Better Than Native
45 Mins
Talk
Intermediate
React Native allows developers to create native cross-platform using JavaScript, or really anything that will compile to JS C#, TypeScript, or even F#. But why would you use React Native? How run-time typed language like JavaScript be a better choice for developing apps than say, Swift, Java, Kotlin, C# ( Xamarin ) or C++ all compile time static type checked languages. Firstly is just that, there is no need for a compile step, React Native can update the JS without having to reload compile and replace the previous application. Compiling an app everytime can take a long time for a small project this might be 1-5min, but larger apps can easily take as long as 45 minutes or more to build a single app.
In this talk, we will explore how features like hot code reloading allow for much faster edit and run cycles, how you can use tools like Flow or TypeScript to add type safety without incurring the long compile times found in more native methods. To Prove the how simple and fast React Native is to builds apps we will create a simple app live on stage. To top it all off, you can even embed React into existing Native Apps, avoiding the need for total rewrite. -
keyboard_arrow_down
Florian Harr - Cross Platform Development with Xamarin! Is It Worth It?
45 Mins
Talk
Advanced
Xamarin as a compiled cross-platform solution claims to offer obvious benefits that seem to make it the perfect solution when trying to reuse code or integrate with an existing solution. The tech industry increasingly requests Xamarin experience and more Xamarin consultancies and startups pop up in the scene, making it attractive for newcomers and job seeker alike. But it wouldn’t be the first solution to promise everything and deliver nothing. With Microsoft’s seemingly disinterest with its own Windows Phone, Xamarin as a Visual Studio native seems to be their biggest stake in the mobile market, but how good is their play and is it worth even looking into this technology?
Three years ago I wrote my dissertation about the usability of Xamarin, evaluating Xamarin against native development and doing performance testing between the two approaches. Back then, it was clear that Xamarin had a lot of work to do to overcome being a nice product only for a small number of businesses, still lacking a long list of important things. In the meantime, Microsoft has taken over and we see more Xamarin apps pop up every day, so it is time to reevaluate.
In this talk, we’re going to explore Xamarin as a cross-platform solution and we compare it with other promising solutions such Facebook’s React Native under the aspects of usability and performance. Having heard the talk you will leave with an overview of key technologies in the cross-platform sector as well as an idea when Xamarin can help you boost your business and what pitfalls to avoid. Distilling the essentials of a 110-page dissertation and cleaning up with myths from the PhoneGap era that will make it clear whether or not this is just another bubble or this has real potential. -
keyboard_arrow_down
Florian Harr / Jason Atwood - Keeping up with the enemy! Software tools to keep branding and feature parity with your iOS app!
Florian HarrSoftware Engineerstable|kernelJason AtwoodAndroid Developerstable|kernelschedule 5 years ago
30 Mins
Demonstration
Advanced
You’re busy implementing a new feature in your Android app. Part of this new feature requires processing and adding visual assets, images, colors etc. from your designers. At the same time you have a set of strings, numbers and colors from existing apps and resources that you would like to keep in line with your recent work. This tedious process is critical to a great app and a constantly great experience between all your projects but not the best use of your expertise.
Little do you know a developer on another platform is implementing the same feature and struggling with the same problem. With multiple developers interpreting the same designs, the Android and iOS apps start to diverge. Color schemes, dialog messages and assets will begin to look different. Fixing this discrepancy before a release is a consuming task with a mediocre result.
To eliminate this divergence, we will demo the brand new “Remixer” framework from the Material Foundation, which aims at keeping experiences in sync between Android and iOS. We will also present our collective experience from a real-world project by showing best practices and other tools that have helped keep the UI in sync. -
keyboard_arrow_down
Kai Koenig - Android’s WebView - how (not) to use it and tales from the trenches
45 Mins
Talk
Intermediate
How many times have you heard this or similar: “Hey, can’t we just build a ‘wrapper’ app around our mobile web site or web app? We just need to be present in the Play Store with anything, really”? Then you start to explain to people why that is a good or bad idea and how their mobile web app might be completely wrongly architected for such an endeavour. At this point the topic of Phonegap usually pops up and “that it should just take a couple of minutes to get that all done, right”. The story goes on and on from here.
But in all seriousness, Android’s WebView has its place. It’s a reasonably versatile and more or less well designed component Android developers can use to embed browser-based elements into their app. And yes - it can also be used to drive a complete mobile web app inside of your actual Android app. But it is clearly its own beast and it can create a lot of havoc in the heart of your app, too. Starting with having to deal with performance problems, having to implement support for older implementations of the Android WebView in your Markup, CSS and JS code, up to inadvertently opening up potential security holes. -
keyboard_arrow_down
Nick Moore - The Internet of (Not Shit) Things
45 Mins
Talk
Intermediate
Trying to better understand the problems of the Internet of Things by actually listening to its detractors. There's a lot of valid criticism of the Internet of Things, generally under the catchy phase 'The Internet of Shit'.
This talk is a light-hearted look at the problems of existing IoT devices, and how to be constructive by transforming criticisms into requirements for a better Internet of Things. And we'll look at some of the proposed solutions for better ways to do IoT.