LAVAIntro

Revision 1 as of 2011-07-14 08:10:10

Clear message

Dev Week -- Introduction to LAVA -- Zygmunt Krynicki -- Tue, Jul 12th, 2011

   1 [19:01] <zyga> welcome everyone :)
   2 [19:01] <zyga> I'm glad to be able to tell you something about LAVA today
   3 [19:02] <zyga> my name is Zygmunt Krynicki, I'm one of the developers working on the project
   4 [19:02] <zyga> feel free to ask questions at any time, check the topic for instructions on how to do so
   5 [19:02] <zyga> okay
   6 [19:02] <zyga> let's get started
   7 [19:02] <zyga> So first off, what is LAVA?
   8 [19:03] <zyga> LAVA is an umbrella project, created by Linaro, that focuses on overall quality automation
   9 [19:04] <zyga> you can think of it as a growing collection of small, focused projects that work well together
  10 [19:05] <zyga> the overall goal of LAVA is to improve quality that developers perceive while working on ARM-based platforms
  11 [19:05] <zyga> we're trying to do that by building tools that can be adopted by third party developers and Linaro members alike
  12 [19:06] <zyga> okay
  13 [19:06] <zyga> As I mentioned earlier LAVA is a collection of projects, I'd like to enumerate the most important ones that exist now
  14 [19:06] <zyga> first of all all of our projects can be roughly grouped into two bins "server side" and "client side"
  15 [19:07] <zyga> where client is either client of the "server" or a unrelated non-backend computer (like your workstation or a device being tested)
  16 [19:08] <zyga> the key project on the server is called lava-server, it acts as a entry point for all other server side projects
  17 [19:08] <zyga> essentially it's an extensible application container that simplifies other projects
  18 [19:09] <zyga> next up we have lava-dashboard - a test result repository with data mining and reporting
  19 [19:09] <zyga> lava-scheduler - scheduler for "jobs" for lava-dispatcher
  20 [19:09] <zyga> lava-dispatcher - automated deployment, environment control tool that can remotely run tests on ubuntu and android images
  21 [19:10] <zyga> the last one is really important and is getting a lot of focus recently
  22 [19:10] <zyga> essentially it's something that knows how to control physical devices so that you can do automated image deployment, monitoring and recovery on real hardware
  23 [19:11] <zyga> on the client side we have a similar list:
  24 [19:11] <zyga> lava-tool is a generic wrapper for other client side tools, it allows you to interact with server side components using command line instead of the raw API exposed by our services
  25 [19:11] <zyga> lava-dashboard-tool talks to the dashboard API
  26 [19:12] <zyga> lava-scheduler-tool talks to the scheduler API
  27 [19:12] <zyga> and most important of all: lava-test, it's a little bit different as it is primarily an "offline" component
  28 [19:12] <zyga> it's a wrapper framework for running tests of any kind and processing the results in a way that lava-dashboard can consume
  29 [19:13] <zyga> all of those projects are full of developer friendly APIs that allow for easy customization and extensions
  30 [19:13] <zyga> we use the very same tools to build additional features
  31 [19:13] <zyga> lava-test is also important because it is a growing collection of wrapper for existing tests
  32 [19:14] <zyga> using our APIs you can easily wrap your test code so that the test can be automated and processed in our stack
  33 [19:14] <zyga> some test definitions are shipped in the code of lava-test but more and more are using the out-of-tree API to register tests from 3rd party packages
  34 [19:15] <zyga> if you are an application author you could easily expose your test suite to lava this way
  35 [19:15] <zyga> okay
  36 [19:15] <zyga> that's the general overview
  37 [19:15] <zyga> now for two more things:
  38 [19:15] <zyga> 1) what can LAVA give you today
  39 [19:15] <zyga> 2) how can you help us if you are interested
  40 [19:16] <zyga> While most of our focus is not what typical application developers would find interesting (arm? automation? testing? ;-)
  41 [19:16] <zyga> some things are quite useful for a general audience
  42 [19:16] <zyga> you can use lava-server + lava-dashboard to trivially deploy a private test result repository
  43 [19:17] <zyga> the dashboard has a very powerful data system, you could store crash reports, user-submitted benchmark measurements, results from CI systems that track your development trees
  44 [19:18] <zyga> in general anything that you'd like to retain for data mining and reporting that you (perhaps) currently store in a custom solution that you need to maintain yourself
  45 [19:18] <zyga> all of lava releases are packaged in our ppa (ppa:linaro-validation/ppa) and can be installed on ubuntu lucid+ with a single command
  46 [19:19] <zyga> the next thing you could use is our various API layers: you could integrate some test/benchmark code in your application and allow users to submit this data to your central repository for analysis
  47 [19:20] <zyga> if you are really into testing you could wrap your tests in lava-test and benefit from the huge automation effort that we bring with the lava-dispatcher
  48 [19:21] <zyga> in general, as soon as testing matters to you and you are looking for a toolkit please consider what we offer and how that might solve your needs
  49 [19:22] <zyga> during this six month cycle a few interesting thins are planned to land
  50 [19:22] <zyga> first of all: end user and developer documentation
  51 [19:23] <zyga> overview of lava project, various stack layers, APIs and examples
  52 [19:23] <ClassBot> jykae asked: any projects that use successfully lava tools?
  53 [19:23] <zyga> jykae, linaro is our primary consumer at this time but ubuntu QA is looking at what we produce in hope for alignment
  54 [19:24] <zyga> jykae, next big users are ARM vendors (all the founding members of linaro) that use lava daily and contribute to various pieces
  55 [19:25] <zyga> jykae, finally I know of one big user, also from the ARM space, expect some nice announcement from them soon - they are really rocking (with what they do with LAVA and in general)
  56 [19:25] <zyga> jykae, but I hope to build LAVA in a way that _any_ developer can just deploy and start using, like a bug tracker that virtually all pet projects have nowdays
  57 [19:25] <zyga> jykae, we need more users and we will gladly help them get started
  58 [19:26] <zyga> ok, back to the "stuff coming this cycle"
  59 [19:26] <zyga> so documentation is the number one thing
  60 [19:26] <zyga> another thing in the pipe is email notification for test failures and benchmark regressions
  61 [19:26] <zyga> this will probably land next month
  62 [19:27] <zyga> we are also looking at better data mining / reporting features, currently it's quite hard to use this feature, this will be somewhat improved with good documentation but we still think it can be more accessible
  63 [19:27] <zyga> the goal is to deliver a small IDE that allows users to do data mining and reporting straight from their browsers
  64 [19:27] <zyga> this is a big topic but small parts of it will land before 11.10
  65 [19:28] <zyga> finally we are looking at some build automation features so that LAVA can help you out as a CI system
  66 [19:29] <zyga> and of course: more tests wrapper in lava-test, more automaton (arm boards, perhaps x86)
  67 [19:29] <ClassBot> jykae asked: do you have irc channel for lava?
  68 [19:29] <zyga> jykae, yes, we use #linaro for all lava talks
  69 [19:30] <zyga> jykae, a lot of people there know about it or use it and can help people out
  70 [19:30] <zyga> jykae, also all the core developers are lurking there so it's the best place to seek assistance and chat to us
  71 [19:30] <zyga> ok
  72 [19:30] <zyga> so
  73 [19:30] <zyga> a few more things:
  74 [19:31] <zyga> 1) I already mentioned our PPA, we have a policy of targeting Ubuntu 10.04 LTS for our server side code
  75 [19:31] <zyga> you should have no problems in installing our packages there
  76 [19:32] <zyga> if you want more modern system (we also support all the subsequent ubuntu releases, except for 11.10 which will be supported soon enough)
  77 [19:32] <zyga> if you want most of the code is also published on pypi and can be installed on any system with pip or easy_install
  78 [19:32] <zyga> 2) We have a website at http://validation.linaro.org where you can find some of the stuff we are making in active production
  79 [19:33] <zyga> The most prominent feature there is lava-server with dashboard and scheduler
  80 [19:33] <zyga> (the dispatcher is also there but has no web presence at this time)
  81 [19:34] <zyga> There is one interesting thing I wanted to show to encourage you to browse that site more: http://validation.linaro.org/lava-server/dashboard/reports/benchmark/
  82 [19:34] <zyga> this is a simple report (check the source code button to see how it works) that shows a few simple benchmarks we run daily on various arm boards
  83 [19:35] <zyga> there are other reports but they are not as interesting (pictures :-) unless you know what they show really
  84 [19:36] <zyga> another URL I wanted to share (it's not special, just one I selected now): http://validation.linaro.org/lava-server/dashboard/streams/anonymous/lava-daily/bundles/7c0da1d8765e806102c6f8a707ff22b99a43c485/
  85 [19:36] <zyga> this shows a "bundle" which is the primary thing that dashboard stores
  86 [19:37] <zyga> bundles are containers for test results
  87 [19:37] <zyga> from that page click on the bundle viewer tab to see how a bundle really looks like
  88 [19:38] <zyga> in the past whenever we were talking about "dashboard bundles" people had a hard time understanding what those bundles are and this is a nice visual way to learn that
  89 [19:38] <zyga> okay
  90 [19:38] <zyga> one more thing before I'm done
  91 [19:38] <zyga> what we'd like from You
  92 [19:39] <zyga> 1) Solve your problem, tell us about what you need and how LAVA might help you reach your goal (or what is preventing you from using it effectively), work with us to make that happen
  93 [19:40] <zyga> 2) Testing toolkit authors: consider allowing your users to save test results in our format
  94 [19:41] <zyga> 3) Application authors: if you care about quality please tell us what features you'd like to see the most
  95 [19:41] <zyga> 4) Coders: help us implement new features, we are a friendly and responsible upstream
  96 [19:41] <zyga> okay
  97 [19:42] <zyga> that's all I wanted to broadcast, I'm happy to answer any questions now
  98 [19:45] <zyga> nobody into quality it seems :-)
  99 [19:49] <zyga> okay, guess that's it -- thanks everyone :-)