2. Business Model Driven Cloud Adoption: What NI Is Doing In The Cloud Ernest Mueller Cloud Architect, LabVIEW R&D ernest.mueller@ni.com @ernestmueller http://theagileadmin.com
3. The Short Form We built a DevOps team to rapidly deliver new SaaS products and product functionality using cloud hosting and services (IaaS, PaaS, SaaS) as the platform and operations, using model driven automation, as a key differentiating element. With this approach we have delivered multiple major products to market quickly with a very small staffing and financial outlay.
4.
5. Genesis Our hardware and software product strategy started to spawn software-as-a-service ideas – some from customer demand, some from internal drivers There were existing product to Web integration points but these were uncoordinated and poorly maintained LabVIEW R&D greenfielded an internal group in 2009 to serve as a sort of internal ISV for hosted services, the dotCom team
6. Challenges Poor R&D/IT relationship Traditional siloed IT department (programmers split by business unit, infrastructure split by technology) Low organizational IT agility – 6 weeks to get a server Uptime problems from complexity and silos On premise data centers at power/cooling capacity R&D primarily experienced in desktop software and specialized, dedicated hardware, not server/Web/open Consensus driven environment
7. Now, Discover Your Strengths Strong base of “best and brightest,” motivated employees Culture of innovation and “do it yourself” Large Web presence (ni.com) with extensive in house programming and operational experience Entrepreneurial internal environment Significant reinvention/retooling effort going on in R&D Increasing focus on system sales and quality (performance, reliability, security) over yet-more-features
8. Starting Fresh - Blessing and Curse Everything was new, so we had to simultaneously develop: Products Team Process Systems Code Operations System Automation
9. The Products (“Hosted Services”) Customer facing: LabVIEW Web UI Builder (In early access) LabVIEW FPGA Compile Cloud (In beta) Technical Data Cloud (In alpha) More in progress! Internal facing: LabVIEW.com Cloud Framework Cloud Hosting Operations
10.
11. Build and deploy it to an embedded target and hook it up to Web services to give it a sweet UI
13. Freemium model – use it for free, packaging and deploying your app to a target requires a license (compiles run in the cloud) – try it at ni.com/uibuilder
14.
15.
16. LabVIEW Web UI Builder Cloudlet WebLV Compiler WebLV Services Browser Security Services Project Data Web Server Internal Services Auth Db Routing License Db PIE LDAP DNS Load Balancer Install Services Mgmt Server Gateway File Server
17. LabVIEW FPGA Compile Cloud LabVIEW FPGA compiles take hours and consume extensive system resources; compilers are getting larger and more complex Implemented on Amazon - EC2, Java/Linux,C#/.NET/Windows, and LabVIEW FPGA Also an on premise product, the “Compile Farm”
18. LabVIEW FPGA Compile Cloud NI Hosted Compile Service User Login & Rights management Links to user account & support
19. LabVIEW FPGA Compile Cloud Cloudlet FPGA Server LabVIEW FPGA FPGA Services Security Services Web Server LDAP FPGA Workers FPGA Worker Internal Services FPGA Worker Routing Auth Db PIE License Db DNS Load Balancer Install Services Mgmt Server Gateway File Server
20. Technical Data Cloud “I just want to upload my sensor data directly to the cloud, man.” REST and LabVIEW API that lets you upload and retrieve discrete and waveform data Welcome to the Internet of Things Being built on Microsoft Azure – specific bits TBD, all .NET
23. ILLS (internal login & licensing services) – distributed user repo and licensing, complete with feed from Oracle and self service user portal; Java/Tomcat, OpenDS LDAP, mySQL
24. PIE (Programmable Infrastructure Environment) – sets up systems for you, autoscales, deploys code; uses an XML model and runtime registry; Java – more on this later!
25.
26. The Team DevOps! Application architect Systems architect (me) 2 developers 1 system automation developer Operations lead 2 follow-the-sun operations staff in Malaysia Work with other R&D product developer teams Different orgs (LabVIEW, non-LV software, hardware) Geographically distributed (Austin, Aachen, Bangalore, Singapore)
27. The Process Agile! All systems work used the “developer” tools and systems as part of DevOps collaboration philosophy Revision control (Perforce) Bug tracking (HP) Specs and reviews (Atlassian Confluence wiki) Task tracking and burndown (JIRA/Greenhopper) All members collaborate on all aspects of the product Test driven development
28. The Systems Cloud! After a quick cost assessment and experimentation, decided on Amazon EC2 as our initial hosting platform Needed control and agility we wouldn’t be able to get internally – dynamic requirements, fast scaling Needed Linux and Windows both for software support Using multiple point SaaS providers for functionality (If it’s not core, outsource it!) Agility and time to market far outweighed cost efficiency
29. Code REST! All REST-based Web services Multiple tech stacks - cloud and systems mgmt code mostly in Java, product code mostly in C#/.NET Key cloud app architecture concerns – multitenant, parallel, asynchronous, loosely coupled, APIed, instrumented, resilient in dynamic/ephemeral environment Developers deliver tests, monitoring, system model with their service
30. Operations The “secret sauce”! Not just ticket handling or “keep the lights on.” Focus on delivering value to the customer and developer. Provide performance management, availability, systems management, incident handling, security, log management, monitoring, rapid deployment Inspirations: O’Reilly “Secret Sauce” paper, Velocity conference, Visible Ops book, Transparent Uptime blog
31. System Automation PIE! The “Programmable Infrastructure Environment” XML system model defines systems, services, code installs, runtime interaction Runtime registry for systems info and eventing PIE autobuilds the runtime system from the model – provisioning, software installs, monitoring integration Perform orchestration and control on many instances of dynamic environments
32.
33. Results Win! A continuous pipeline of products delivered quickly LabVIEW Web UI Builder went beta in 2009, 1.0 in 2010 FPGA Compile Cloud went beta in 2010, 1.0 soon Technical Data Cloud going beta soon Unqualified happiness with cloud, DevOps approach Not innovation vs. reliability – new approach gets both!
34. Residual Challenges Selling SaaS products is a challenge to our existing channels Managing the collision of engineering and IT technology Culture – building collaboration, mutual respect, and trust among globally distributed dev teams, ops, and others (QA, security, etc.) Educating desktop developers on operational issues Maintaining vision through rapid change Cloud-compatible tooling still emerging
35. Where do we go from here? Complete the virtuous cycle of agile, cloud, mobile, social Move to full continuous integration and deploy-on-demand, necessitating intense investment in testing Uptake of Microsoft Azure (mostly complete) Private cloud products Look into Lean Can DevOps be spread out into the enterprise? We’ll see. More SaaS products, and product to Web integration more core to our product strategy
36. Community Engagement Austin is an awesome place for cloud work right now. Austin Cloud User Group (acug.cloudug.org) Austin OWASP (Open Web Application Security Project) chapter SXSW Interactive Events like this one DevOps and devops-toolchain Google groups Velocity conference, DevOpsDays, CloudCamps
Why niwsc.com? What does it stand for?Well, we suggested a bunch of domain names (like labview.com, natch) but management and product marketing ended up just picking something deliberately innocuous and semi-meaningless. “wsc” doesn’t really stand for anything, though you can plausibly create backronyms for it – “Web service.. Computers, or something!”
I trust you’ve all seen UI Builder by now. If not, ni.com/uibuilder.
Running in browser (can also run out of browser).Can save files to cloud or to local disk.Compiles happen in the cloud.
And it’s purty. We’ll use it in the demo!
A “cloudlet” is a term we made up, it’s a single product instance running in the cloud.
“Send it to the cloud!” Using the cloud should be extremely simple in your GUI.
You will notice the standard framework that this shares with UIB – we have created a cloud framework to supply cloud apps with the various things they need.
Would You Like To Know More? http://www.pachube.com/Good news – the Internet of Things is a hot Web trend! Bad news – of 2009. Machschnell! http://www.readwriteweb.com/archives/top_5_web_trends_of_2009_internet_of_things.php
PIE: Would You Like To Know More? http://www.slideshare.net/mxyzplk/pie-101
So who wants to guess how many cloud servers we have?