410 likes | 417 Views
Join Alan Blythe and Joey Lorich as they share their experiences and insights gained while building UniKey Technologies, a successful IoT startup in Azure. Learn about getting started on the right foot, designing for scalability, moving to microservices, embracing DevOps, and avoiding pitfalls in IoT. Discover where UniKey is today and get practical advice on network programs, scaling, architecture choices, adopting new technology, and enjoying the journey.
E N D
Born in the CloudLessons learned while building a successful IoT startup in Azure Alan Blythe Chief Architect UniKey Technologies – Orlando, FL Joey Lorich Technical Architect – Azure Application Development Microsoft Technology Center – Denver, CO BRK2410
Born in the CloudLessons learned while building a successful IoT startup in Azure • Getting started on the right foot • Designing to scale • Moving to microservices • Embracing DevOps • Pitfalls of IoT • Where UniKey is today
Where We Started What Came Next CosmosDB Application Insights App Services Azure Functions Key Vault Traffic Manager HAProxy Azure AD VM ScaleSets Cloud Services Service Bus Blob Storage Table Storage New Relic SQL Database Redis SQL Server Data Warehouse Linux VM
Recent What's Next? Service Fabric Data Factory Data Lake Power BI API Management Docker in App Services Logic Apps Azure DevOps Service Fabric Mesh Kubernetes
Getting started on the right footThe challenges faced • Starting a new business is hard • Starting a new business is risky • Starting a new business is expensive
Getting started on the right footWhat did UniKey do? • Raise Money • Launch a product fast • Control costs as much as possible
Getting started on the right footWhy did we succeed? • Hire excited, driven people • Take advantage of programs for startups • Leverage partner expertise
Designing to scaleThe challenges faced • UniKey had very high media-driven interest • Cost was a big concern • Very resource constrained • Know what your focus is
Designing to scaleWhat did UniKey do? • Cloud-first PaaS was the only path to success • SQL Azure was a natural choice • N-tiered architecture, background workers, sharding, and caching • Embrace distributed computing concepts such as eventual consistency
Designing to scaleLessons learned • Start with something already scalable • Be prepared to scale, but don’t until you need to • Well-designed monoliths are fine, and a great place to start • Good design transcends implementations • Asynchronous work is extremely important
Moving to microservicesThe challenges faced • Moving to support multiple verticals • Fast growing and changing teams • Increasing deployment time and risk
Moving to microservicesLessons learned • What is micro? • Be conscious of Conway’s law • Consider domain-driven design • You don’t have to use containers • Beware of dependency chains • Choose an orchestration method that fits your company
Embracing DevOpsThe challenges faced • Microservices • Frequently adding new partners with new deployments • Resource-constrained teams • Long testing times
Embracing DevOpsWhat did UniKey do? • Embrace change, move to Azure DevOps (Formerly VSTS) • Infrastructure as code • Automate piece by piece • Find an SDLC that worked well
Embracing DevOpsLessons learned • It’s not just tools, it’s culture • Fail early, fail often, fail forward • Deploy small changes, deploy often • Use deployment rings and feature flags
Pitfalls of IoTThe challenges faced • Growing set of persistently connected IoT gateway devices • Building secure internet connected embedded devices is hard • High-scale websockets in .NET on IIS is not intuitive
Pitfalls of IoTThe challenges faced How to DDOS yourself
Pitfalls of IoTHow to DDOS Yourself • DNS lookups only at startup due to memory constraints • Partly custom TCP/IP stack – including retry logic • Embedded is hard, so just reboot on successive failures • Firmware updates were slow and risky • Users are unpredictable and non-conforming, IoT devices are not • Azure Cloud Services Deployment slots cut traffic instantly • Azure Cloud Services scale slowly, and reboot all roles on scaling
Pitfalls of IoTLessons Learned • Don’t built an IoT platform yourself (unless it’s 2013) • Using ServiceBus, EventHub, etc for message processing is a great idea • You typically don’t need to report state unless it’s changed • Let websockets be websockets. Don’t build HTTP over it. • Serverless and Stream Analytics are very effective with IoT
Where UniKey is today Small company that feels big
Where UniKey is today We're growing quickly
Where UniKey is today We're a Platform
Born in the CloudLessons learned while building a successful IoT startup in Azure • Network and take advantage of programs • Plan for scaling • Choose the right architecture • Embrace DevOps • Adopt new technology and services • Enjoy the journey
Alan Blythe @blythealan alan@unikey.com Joey Lorich @josephlorich joseph.lorich@microsoft.com Contact Information
Please evaluate this sessionYour feedback is important to us! Please evaluate this session through MyEvaluations on the mobile appor website. Download the app:https://aka.ms/ignite.mobileApp Go to the website: https://myignite.techcommunity.microsoft.com/evaluations