Interactive debugging in CI

Video in TIB AV-Portal: Interactive debugging in CI

Formal Metadata

Interactive debugging in CI
Genesis and future of the spread tool
Alternative Title
Interactive debugging inside CI systems
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Commonly used CI systems operate as SAAS solutions, where the user is not running the CI stack locally. This lends itself to debugging pitfall as developers cannot easily reproduce the problem locally and cannot interactively examine it. This talk proposes an inverted design, where self-operated CI tool can be used both in the cloud as well as locally, supporting interactive debugging sessions. The recent surge of CI systems has created an interesting new problem, where a failure occurs in a specific test environment but does not appear in the familiar environment used by the developer. This problem is compounded by the batch nature of such systems, where a developer can merely push additional patches to some branch to trigger an asynchronous execution process. During the development of Ubuntu Core operating system, this problem was amplified by the fact building and testing a full OS image is a time-consuming process, leading to cycles that spanned hours and lead to frustration. Snapd developers created the spread program to solve this, among other, problem. The SAAS solution became a thin wrapper around spread, which allocates, provisions, uses and finally discards the test environment. Crucially, almost all errors can be reproduced locally, as spread runs as a standalone tool, using QEMU, LXD, Google Compute Engine or Linode as executors. This allows anyone to run spread locally, in interactive mode, and explore the problem without putting additional load on the centralized CI system, greatly improving the debugging process.
Statistical hypothesis testing Complex (psychology) Group action Linear regression Distribution (mathematics) Source code Workstation <Musikinstrument> Medical imaging Virtual reality Personal digital assistant Compiler Website Exception handling Surgery Constraint (mathematics) Intel Software developer Sound effect Instance (computer science) Statistical hypothesis testing Individualsoftware Virtual machine Derivation (linguistics) Latent heat Process (computing) Internet service provider System programming Quicksort Spacetime Point (geometry) State transition system Constraint (mathematics) Interactive television Computer-generated imagery Disintegration Branch (computer science) Streaming media Latent heat Goodness of fit Energy level Representation (politics) Configuration space Punched card Distribution (mathematics) Dot product Key (cryptography) Multilateration Density of states Group action Cartesian coordinate system Error message Software Integrated development environment Circle Personal digital assistant Revision control Statement (computer science) Musical ensemble Game theory Exception handling Scheduling (computing) Standard deviation Building INTEGRAL Multiplication sign View (database) 1 (number) Set (mathematics) Formal language Befehlsprozessor Cuboid Circle Library (computing) Point cloud Presentation of a group Open source Internet service provider Interface (computing) Website Configuration space PRINCE2 Laptop Stapeldatei Game controller Service (economics) Software developer MIDI Virtual machine Sampling (statistics) Statistical hypothesis testing Revision control Causality Iteration Canonical ensemble Software Touch typing System programming Integrated development environment Theory of everything Game theory Task (computing) Addition Execution unit Cellular automaton Principal ideal Interactive television Planning Machine code File archiver Point cloud
Statistical hypothesis testing Suite (music) Complex (psychology) Context awareness Randomization Group action Scripting language Linear regression Source code Workstation <Musikinstrument> Thermal expansion Computer programming Neuroinformatik Software bug Blog Different (Kate Ryan album) Computer configuration Single-precision floating-point format Office suite Arm Theory of relativity Software developer Constructor (object-oriented programming) Electronic mailing list Sound effect Bit Instance (computer science) Sequence Statistical hypothesis testing Partition (number theory) Category of being Latent heat Message passing Process (computing) Systems integrator Internet service provider Order (biology) System programming Moving average Quicksort Spacetime Point (geometry) Inheritance (object-oriented programming) Proxy server Computer file Variety (linguistics) Disintegration Interactive television Barrelled space Rule of inference Event horizon Product (business) Number Latent heat Googol Operating system Energy level Configuration space Compilation album Distribution (mathematics) Information Suite (music) Server (computing) Uniqueness quantification Core dump Computer network Directory service Line (geometry) Cartesian coordinate system Compiler Error message Software Integrated development environment Personal digital assistant Network topology ECos Statement (computer science) Gastropod shell Game theory Matrix (mathematics) Library (computing) Building Installation art State of matter Ferry Corsten Multiplication sign Combinational logic Sheaf (mathematics) Set (mathematics) Instance (computer science) Parameter (computer programming) Mereology Machine code Subset Mathematics Casting (performing arts) Bit rate Befehlsprozessor Logic Matrix (mathematics) Entropie <Informationstheorie> Cuboid Information Point cloud Scripting language Area Service (economics) Computer file Moment (mathematics) Internet service provider Cloud computing Variable (mathematics) Entire function Googol Computer configuration Compiler Configuration space Right angle Whiteboard Remote procedure call Block (periodic table) Task (computing) Resultant Laptop Server (computing) Functional (mathematics) Game controller Enterprise architecture Feedback Real number Virtual machine Directory service Electronic mailing list Limit (category theory) Statistical hypothesis testing Sequence Revision control Iteration Natural number Canonical ensemble Gastropod shell System programming Integrated development environment Proxy server Task (computing) Addition Multiplication Inheritance (object-oriented programming) Projective plane Computer program Interactive television Machine code Software maintenance Kernel (computing) Event horizon Rootkit Logic Point cloud Spectrum (functional analysis) Local ring
Statistical hypothesis testing Complex (psychology) Context awareness Group action Distribution (mathematics) Source code File format Computer programming Software bug Neuroinformatik Medical imaging Computer configuration Different (Kate Ryan album) Kernel (computing) Core dump Error message God Enterprise architecture Arm Touchscreen Intel Software developer Bit Maxima and minima Instance (computer science) Control flow Statistical hypothesis testing 10 (number) Derivation (linguistics) Message passing Process (computing) Internet service provider Order (biology) System programming Cycle (graph theory) Quicksort Writing Spacetime Booting Point (geometry) Reduced instruction set computing Computer file Computer-generated imagery Disintegration Data storage device Product (business) Goodness of fit Latent heat Computer programming Computer hardware Rootkit Operating system Energy level Boundary value problem Booting Compilation album Metropolitan area network Scale (map) Distribution (mathematics) Dot product Expert system Plastikkarte Computer network Login Line (geometry) Single-board computer Compiler Word Loop (music) Integrated development environment Estimation Personal digital assistant Network topology Revision control Video game Iteration Gastropod shell Musical ensemble Library (computing) Standard deviation State of matter Multiplication sign 1 (number) Set (mathematics) Machine code Arm Formal language Data management Optical disc drive Mathematics Bit rate Befehlsprozessor Oval Visualization (computer graphics) Cuboid Process (computing) Extension (kinesiology) Point cloud Scripting language Injektivität Service (economics) Token ring Internet service provider Cloud computing Entire function Connected space Fraction (mathematics) MiniDisc Configuration space PRINCE2 Whiteboard Ocean current Game controller Existence Enterprise architecture Service (economics) Observational study Link (knot theory) Real number Virtual machine Plastikkarte Statistical hypothesis testing Power (physics) Revision control Iteration Gastropod shell System programming Integrated development environment Mathematical optimization Task (computing) Installation art Serial port Multiplication Projective plane Computer program Interactive television Machine code Similarity (geometry) Kernel (computing) Voting Level set method Calculation Speech synthesis Point cloud Pressure Sanitary sewer
Element (mathematics)
hello i'm going to talk about interacting the banking insights that but isn't going its key and of principle technologists of the open source technology center and huawei you may know me from my previous work it's the naro where i call it a lot and not can only call or i could develop check box.
and later on sept the.
some couple of things i'll stick its target of three things you know about me i really like oldest games with in touch with the music alone had to surge in my spine was unpleasant. when i come to the cartilage i can die so without other the way let's get to it. but i wasn't started the problem statements about c. r. and d. gotten delicate go into the basics of the tool called spread them to focus on specific debugging features that spread of hers than the government on this review will spread and are close with some plans and ideas for spreads. all about where they. so what they think is a problem with cia and the been so yes a is a bash system really interaction is highly undesired because. all to bash system you send your see our jobs you push your branches up a new with his yacht say yes or and usually it just says yes we know based on the good things like it's going to find some issues in your toes the same issues you may find local it but sometimes that's not the case sometimes. this fails but the reason it fails is unclear into we need the budget and then problems can you be bothered locally or you have to be bought and using this yes them because nobody is really highly interactive is intrinsically interactive because it requires exploration. unknown. but when you're forced to the but and issues as the ice them you're really trying to use the wrong tool for the job. over sometimes you're just have to do that because the bear only shows up in c i sold the people do than what i've done it myself. pushing commits that tried to explore the problem space try to prince an environment verbals tried to look at the pile as their kind final can processes are running all kinds of stuff. but this really be wasteful you are harming your team because you're a century competing for the same quota over sources and using these resources in a very poor weight because you're running all kinds of other to us in addition to the thing you're modifying to see if it's making anything better. and there are exceptions to this if you look up the public size services like travellers are circles the odd they offer a limited interactive as ajax as pretty but in. the it really feels like an afterthought. it's not exactly what you would like to do d. but a problem because i'm always there you can't rely on at it it's really time them at the time runs out and you're out and it's always a clutch is not national it's not nice to use. but it's be amplified its problems we have provided the fact that sea ice systems the largely u.c.i. systems of effect of the come custom distributions that users are not be using usually get the director of unaids l.t.s.. did much the old one always at some point you're going to get the new one. but these are not just a boon to l.t.s. machines they're heavily customize they have a mission software pre-installed and not just softer from the archive that you could install your cell they have custom software that is only there in that image it's this as some some special build that's convenient when you just want to compile. some kind of weird language that may not be packaged and distribution archive but reality is when you see if they'll year and it really happens in see i have not on your system you're left wondering why. and also extra special constraints that light the execution of carbon is his biggest special sauce maybe it's a container maybe it's of yen or maybe some her medal you really don't know but these things matter as we explore more and more of the system using your tests and also in addition to being. perhaps the container there are additional restrictions that apply because all the sea ice systems use shared instances and they could additional levels of some boxing to prevent you from messing about are suitable work. because it kind of feels from distribution point of view that the sky systems were not pay for us they're really optimise for the larger audience of application developers who actually rely on all kinds of customizations that the systems provide to get the job done or writing. occasions and if you look at the distribution point food distribution point of view. this emissions some sort of the distribution celtic sea ice systems have their own set of challenges but they're just weird as rare that use most of the time had to be a package competitor to even have access to that on the tooling is well as known because even. between two different distributions the can be widely different there's no common tooling around that as if you think about integration you are put into action is on earth. but resolve. so low. of the world clean skewing popular high quality sea ice systems that are not really well made in huge give you a distribution developer or even upstream the bell who cares about us actually providing test of software quarter down streams and its and downs terms. the sixty i systems are even worse in many ways so how can we changed out how can you change on a practical way so we can use a third party site systems but run a thirst party helper to incite that tool create the environment we actually want to exercise it will create the environment using address. center distribution image or other control image of who can understand and reproduce and use locally as well and the task actually run in data environment the one that could be gay that using our new tool and the to connect the dots between the public clouds between the public's the eye sustenance. and argue environments and the test the executive side of the environment. and this too is actually compatible common new systems like travis get have or get lot so you don't have to reinvent the whole you why they are or create extra websites were anything complex so the trick is really make a special case to see either way. and if you fall this through the sea ice system and becomes your daily driver because you don't have to turn testicles locally using the system you haven't sold your station relapse lot you can actually use it to develop teachers to exercise the building a new unit past that you probably. the building code base on top of that you can create integration test that emphasize that cause a high level using real system the ones that are customers or users are going to music you can also use it for aggression us russians are certain tasks that because they tend to capture more than just your software they tend to capture the behavior. for software in human conflicts like a specific version of this tradition. so these are we'll world use cases that you can exercise all the time. and this even helps you figure out that the distribution broke underneath you during development of sent the huge me town issues in all kinds of distributions where you curdle cars or question or a punch package agree change some kind of interaction with the rest of the system. and art has caught the war could shoot the users will begin should have suffered for users and in some cases the task of that the war the ship us that they did software should the general public so that he could communicate with the distribution in tears about software could the fixes in place so the time it came out. the fix would be already in place so the trick is really the same year he runs the same as that you use cell he will be running on your laptop whatever up that may be running that is representative of a real system that the subtle wrong on later. so this was an absolute avoid the sky provider lock were your so reliance on the special sauce other given provider is giving you whether it's the specific language compiler that is available and eat and how to think about how it got. there are or where is the special syntax are features of a special configuration quality or sea ice system is use it so you have to rely on data anymore you can develop the sea ice system your cell using something that can run on any crowd or on any sea ice islam the public here big.
c.i. system that were most familiar with and it's not just you anyone else can run this as well so anyone who's interested new project can come along and figure out how to run your test suite on their device exists eyes the same thing even before the push to call out to you or the war. they are are ready to share it with anyone else and they don't have any special rights or any privileges that are required here they can be anonymous they can do this in private and their own machines. so this gives you a dish no features that were just impossible before because now using the system you can actually engineering in this way which allows you to do interact the exploratory bubbling and do with the way that's precise by only running the right pass and only run. and right fragments of those to us so that you can effectively quickly get to the point where you understand what's broken without wasting a lot of c.q. time and that her on just running everything because that's the only thing that system would otherwise provide you with. so i think that by changing the nature of the game we can keep using the high quality sea ice the slums in the public cloud are out there but also improve them by taking control of the right player and using got to work bandage. by just building a barrel for piece of software in a better over process so now like this not are the problems they impart and switch to the strong one part where i'm going to talk about the tool which is called spread not allowed to do this. so a bit of background on spread was created by custom my are for the developer and of course ninety on set the has very unique features and very unique requirements if you want to think about testing some these effect of the heart of ubuntu corps which isn't own its own operating systems entire distribution. but is also a program which runs alongside tradition distributions ends as you may know it runs on a wide variety of these institutions raging from different versions of the yen to the versions of the booze who to the door and sent to us another's and there are quite different so having support for being able to. has snapped de waal you develop snap the across all the systems was really highly desirable an of the public sea ice systems offered such capability because i mentioned before most of them just give your the river the one who's who and pretty much nothing else. and also specifically percent the the details matter so the kernels that you're using or whether it's running inside the container or a member metal or even its it is the cloud version of a given colonel or the berm adult version of a given current the eagles like that can matter and being able to test. was always combinations was just an invaluable source that the has about six hundred specific tasks which you can think of us pacific tests that result in staggering thirty seven thousand possible execution targets in these are for architecture. every poor requests was not the would spawn right now about hundred version machines and give you a result for across all those to us in one run our and you can do depot as changes every time you to all requests. so spread has been in use in canonical are it's been used by several projects and i think it's been successful and what it was created to do. so let me show you how spread functions so spread has a concert hall work space which is just a directory without spread configuration while it could be equivalent to a get repository bothers me have to be can somebody workspace however you like to spread the understands that there are some kind of systems that can be. he constructed on them and where it's in version machines or in containers or when the public clout and a partial of work space is archived or don't apartheid and send to these fresh agree that a firm rules as news spread has to consider the task which you can think about a test that is. then assigned to those created systems to execute and spreads highly concurs so if you create multiple virtual machines it's the one you can run those test much faster because a given virtual machine all the run a subset of the available to us and you can also run a set of different machines of the sink. i'm so perhaps multiple different version machine so multiple different distributions from all different versions of this tradition alongside multiple different containers and even public cloud over the same time you can really get results from all of that says all that set the entire collection of has and the end of the casting process as well as a. because of lot of anything that went wrong. so in a nutshell spreads a full system integration test the runner. by full system and really mean lets you interact with the real operating system as is installed not with the limited subset of an operating system that is convenient for sky are provided to you you can define the backhand sweeney things that can create and what it would create systems like him you can create version. teens and legs the can create container instances or using the public cloudy can you can use arm note or google computer and one to create virtual machines there you can find those systems arm for instance can say one up sixty four bit are eighty six to forget in about ten machine and a further thirty three machine. and then he defined the tasks and put them to sweets so that they can execute in some context and as for exit this use the whole work space across these machines and runs the to us so i already mentioned accumulates the and other providers that can use ferguson locally or incompatible cloud because he can also. use something like hear your legs the public clout there's also a special i'm back in tight culham box like a humming box back in the office that you can use to petition a larger system arm like a server or the high court hard our board to a smaller sense of humor. virtual machines like a miniature cloud that just requires very little interest to on the maintenance costs because it's super simple to set up on like something out a full blown cloud instance there. and you can use the public college in the note and google because these are the historic be of use of the cloud providers are when spread was the other by sunday but you can be easily add additional targets this is not sophisticated but mostly when use public caught some piece of light so we're going to get that. this is a special kind of back and four like rescripting the construction of your machines so we could use a divot the boiler metal or so the writing so spread code for instance sheeting for instance uninsured virtual machine could perhaps do it who come on line using that. so sell a typical spread across it looks like there's a spread the animals by other defines the root of the product and there is a harbinger he said of directories that you name suits the have some directly switch whole house or additional piles as well as costs. and tasks are time in the sting the animal was so it was like a look at a simple spread costs here is just says hello world using eco in shell arm all spread casts executed by essentially running social code and castles as a matter data. it's just as a summary which is rooted in various places. so i'm on a task fails you may want to collect some additional information that is specific to this task for his are cheered that has just tells all the time and we get the current version that may be relevant in the specific cases not because it's just an example but you can construct anything that is verbose but relevance and that. caldwell only exit you get added to the log when the cost actually fails. so more complex task requires some preparation steps and the steps me me to be and on to lead the machine in the pristine states for her other costs that will also run on the same machine so you have occurred her and restore some tax for running shell coat which is specifically for began preparing restoring the machine and this is distinct from. things get so now when you want to interact with the deal about something you will be placed in right context in the right time but when you want to explore something can say i would like to explore the environment actor was preferred sold just wrong yet install fooding bonds will not wrong the flu command yet so we give you the environment. the state where it's convenient for the body or crew been forged explored. so we can also the fine environment virals and these can use for all kinds of reasons for abbreviations for small customizations for configuring some third party software.
and inside the spread of the animal the top level while you can have also acts as the host environment using some special cent tax and this has the unique use cases like cooking putting the proxy information from your host into the bigger container so they can access your proxy. but virals environment problems can also be used for creating additional pass out of a single cast camel file and you can see that this task actually tries to compile some kind of software using one of the two compilers easy to find a single young pile the single task animal you'll get. but two distinct tasks you can actually executed one for climb and yet of which is easy and this is not a matrix that you had an initial viable that says like and a compiler warning label or sorry i'm down to like or something like that it would not more supplies soon create for possible targets it's just a little. list of things not our variants were you to pick you can sign values to give an environment variable and of areas. so the last thing that the task can say it's very useful is either limited sell to a set of systems that is compatible with because for instance using commands unique to indians to be huge an order you are using or is just a task that applies a specific context or you can exclude a specific system. so in general this test is available to all system but maybe not to for instance here when to forty no for which doesn't have system the. and whatever task you can some of them into sweets and these are again just directories so a sprint get level you just need to specify the path of the directory were such sweet lives inside the seattle you can also have additional optional prepared statements that apply for the whole suite this is quicker and equally to restore. which will be as a kid after all of us from the swede are down as if you think you can also say prepare age and this will prepare the exact you should for every task in this sweet so for instance instead of looking some common cleanup logic and some sort of logic in each has five. well you can actually just copy to the sweet level and have it there and all the tasks will will share that and his property or having those each arm prepare each will restore each arm snippets applies across all the local so you can go up to back earns or to the project level. all they will combine next to the right time. and also you can have about each which is equally useful if you want to have some specific the banking information gathering commence that executes at any moment when something in a given sweet would fail so the last fall that is binding all of this information is for the animal and we would mention. in sweets and we mention systems and we mention back and but there's also a couple of other things you can specify because you have to specify actually the path where the work space we place on those tests system so it can be a new path that is compatible with your installation i'm you can also have like a goalkeeper script that just troopers the machine before. anything once at all and you can also have eased the school special delta script which is really useful in really practical and really shows how it has how the whole idea of times but was empowering divorce which another local workstations or laptops. don't the script allows you to take together some information is available in the public clout for instance your product tree project get tree somewhere up in the cloud and take some specific fixed point all your tree there and down moved into the remote testing machine faster because you. i caught a cloud computing quickly and then only sells the delta since that point in time others picks from your local laptop so you're applying on your laptop is not as relevant as a otherwise would have been if you had to copy the entire project own with its you know entire history or entire state of the two we not history because it's good. it is not used in this picture in general it's the entire work space so if the workspace up many thousands of miles and you just mortified if you only d.'s few miles with action to be sent to the remote instance for testing and accountability doesn't apply it to testing locally for testing locally you just have passed local copy but this is a. there are practical future. i'm so that's the over you cannot picture how you can use these things to compile your code to exiles your program or exercise your library or whether we're building. in a practical way because the century your capturing use cases and six formalizes writing them down in as a huge double ways so this was the bills the library of pests that you can run or her preferred distribution targets on all of the versions that. you're willing to support. and you can actually won the convenes leap roll your laptop and the public clouds shy the same exact way so let's say you've done that and not something is not working something failed maybe the distribution berg needed cast as flaky arm maybe some coach changed on and now as after. some time it's actually the braking because it interacts with another thing that changes as harmless so you want to do about the issue we want to understand it and you really don't know what's going on at the first thing you can do is just to run spread the option that he bought and get the name of the past week the back and the system. this week and it has a new variant. and you just one that passed the proper enough of the environment to run that single pass and nothing else is going to be much faster than run your entire history and going to drop your internet into into an interactive shell right at the moment of failure may be that has is not facing all the time it's like a network earlier that your application is. of handling or maybe it's just a race in europe occasion and is just feel sometimes so spread has a future we can repeat a given tasks a number of times and this is better than just blindly repeating the spectrum and because will not tear down the system or wrong to prepare and restore commence all the time it will just from the park. that is exercise in your in your tasks execute section so you for his this year we say a repeat this does a hundred times and can run this as many times you like and it's much cheaper because first of all you're not running additional costs you're not wasting time running. the preparer restore logical the time you're probably not running all the unrelated distributions or and related versions of those distributions of the press is not failing on and you can do this higher in the public clouds or you can do it on your machine without bothering your colleagues who are may be showing the same public kokoda. and there's some additional interaction options available it can you can drop in the shell just for the is a good section or immediately afterwards to the bug the state of the environment that your test was expecting or was expected to be and even just there's a will be exhibited sectional together but just running show instead of it. so spread by the whole reorders us at random so when you run spread multiple times with the same arguments unless you provide the sea around and see that it will result in different execution because spread intermediate has the task stealing system were essentially machines say i'm ready. to give me some task and in addition it's shuffles the entire list that they're stealing from so you can find unexpected failures just because a sequence of executions leaves the system in a specific state where the test the otherwise would pass neither relation. would not sent to jail and a business depends highly on your us to eat on instead of the will with testing all kinds of complex interactions it was common to install additional software to configure discuss the future the curlers specific way or even reconfigure the colonel machines. who did with and any kind of mistake in this kind of papers store logic may occur to us so to alleviate this randomness with the body every time spread fails and tells you i failed this is the failure this is the past that failed in addition thousand this is the seed you can use to reproduce. the random see to reproduce disorder events so you can jump as point quickly and this is really highly practical. and spread has additional features that are really meant for interactive its rate of development i'm setting up a project may be slowing may take it may take minutes or couple arm out like a few dozen minutes right it may require compiling a large project and doing that local in your laptop.
it's just silly if you have to do it over and over us through any small change prince of course much faster iterations by our new to reuse an existing test machine that you created before so human spread that's result shun it's going to keep running on the existing. machines that you created before and keep them at the specific state they will let him but also it means that you can do incremental bills and those machines you can do incremental pass by changing the cold a little bit in your taxes are changing the pass a little bit and running the test. this again and i'm just catch up with where his dresser he too has started to ration is much much faster than a full complete can set up and it's also to be really putting spreads straight into development cycles so every time the bulb something it's like ok i'm going to write that hasn't use a huge to the old. the time before you are done thinking about the tree can even already start writing ideas of how that each would be tested but just mocking up some shell of how the speech should be interacting with it's a shell program it's like a man like program or thinking about became will going to pass this how does the past. for my option ology look like an first not the this has been transformative some of the century he no longer lens less people land and the future or any significant books without everybody a complete featured asked order question that's the end of the level of complexity that. on that project involving our i think you could be hostile to the hours. so you're honest review opinions but ever since god created in june has and sixteen. and it's a perfect systems there are some disadvantages there are some rough edges but the overall it's a very practical it's a very practical full system testing. system. because it can really do anything you would like on the normal system can form of the disc you can install the worker alertness so you can run services can configure it anything is possible as a small example of this. the bones of core tests week when he is running in the public cloud actually assembles on higher distribution image the entire point of core distribution image and boots that by having the disc been white from the entire the and. set up so that on the subsequent reboot you actually book not into the one to twenty four rating no for whatever was the initial a machine that google could be that it's actually goosing into the open to the core operating system that you white street installation process and can reproduce this locally interview as well and. it really shows that their the amount of flexibility in the spread is not an are holding back and once you start thinking that's why you're known are reliant on anything that a magic side image contains for the provider chooses to give you this week because of those images change over time. time and older images go away in human just show up with new magic somewhere inside so essentially no longer have to care about the month patients are just you need to discuss that. and this looks use of just freedom of testing of religious traditions shut real kernels a real interactions with as human eggs with a partner the things that your customers like it on a real production environments you can actually test that now. this market here the cloud kernels terror provided by the major cloud providers while being the official curls for those systems are different they're not always the same current configuration because they're optimise forgiven clout so when you test in january when it has in the global public while you actually. you prefer into this think us there are not interchangeable in every regard you see if your softer of visitors about this that. so you can also test on against upcoming distributions so prince's can keep testing as they the image of sit or can keep passing israel high or you're coming loose little countries and you can perhaps makes that was of coming development package some as the blurry so you can have a task that just takes a stable. well yes release of a distribution and installs your upcoming updates to see if they were coming up these would break your project and this is me the highly practical all of those teachers have found true bugs they have found issues have been problematic if they were actually found later on in production. so there isn't this advantage us and them it's hard for me to convey the the the importance of these advantages i'm just going to sell them out. first be why alight in a terrible it's filling this play so bring your own image of him. unlike for containers where you have lows a well defined arm sources for container images there's no such thing for virtual machine images i think i'm major distributions provider virtual machines but got to find yourself there are different places some distributions don't provide you an easy i am undecided be one. the holiday tests and thing themselves think the need yet to discover this. and you always always have to take his images and provide minimal kind of post processing really it's just something he forecasts work so that spreads can log in to those systems or using club in it to the same like you just have to tweak them a little bit to make them suitable for project so the differences. is that you no longer the magic see the image from reliance project you can now take it well defined image and and customize it in the world one way in this is that you know what has been customised those with patients are space of two years the islanders like princeling the compilers we don't have to do it at a time or flipping. and some option dutch your soccer says is required and thing is that makes sense your project but you still have to do this used to have to maintain those images for this to shoes and releases and architecture is that you care about testing and others the as soon as you take the public love into account was going to cost associated with that. graff this yacht providers just don't always give you a bit to run next the fertilization and give the do it may just to slow so you may lie and containers that actually does work and some of the public clouds sort of the cars the public's yet providers. but if you want to have a lot like the complete control over what is available to you may have to just pay for your calculator and just run with the like there. lastly i think about when these lee shell is a terrible language and the that's still writing quality shell his heart and i can tell you i've seen so many things in shell but i wouldn't believe someone told me that this is actually worse that i know that by now. this is actually works so she was full of traps and write in good quality show called at still requires discipline and of course when so let's which the gas because does everything isn't in like a built in this a band that some of these things are just not done yet some batteries are not include that search culture can grow. can be making instruments so somebody has essentially out of tree no legal she's not right with the study has a script which lets you run shell check on yours for tasks but this is not something that's provides other the box for you something that's more natural way to increase pressure will be read. great because you as you start to grow you'll agree a scripting that fuels are products test you will realize some point that you made a and there are tens that error has multiple instances across or kobe's and you may be able to fix that error but. you may be more stunned by the fact that shelter with have told you about this are in the first place. so other other specific gaps that i've found is that testing is not new user it requires six additional effort by the whole spread runs your sweet as goods on it might be the consequence of what's needed to do is not insurmountable it could require some. gration that is that as a halt possibility but but i think that's just a natural place where he were spread could be developed for are equally testing in a log in the session so when you're actually carrying about testing what users me for see having a proper log in the session. with all the consequences of that starts to become relevance again spread does not provide that and if you want to look an example had quite that somebody has to since test letter but it's not integrated and probably would be even more difficult to integrate into the other things just because of how having a.
the user in their quotes look in the because with all his life in the session on looks like a cross time across the street versions but nonetheless is its i think it's a cap because if your test well as couldn't that they are you may find that you have to provide this yourself. and as he does you'll also find their painful this huge differences between the solutions that just need support tools to come to make more pragmatic for us developments and this could be anything like installing a package like install just see a causal distributions we have a compiler well yes it's almost always even the. incoming light even the same package may but on you want to replicate those kind of difference us verbose the in your to us you probably want to build some scripting library around up against and the hassle examples of that as well. another got which i think is more relevant you think about using spread in general to replace our or rebuilding or your testing system on top of his know when there's a makeover support so if your project that actually cares about these environments and would like to exercise them will spread is not a complete solution i think. for those of you were back and be really useful. in general when those could require additional changes to snap a certain helped us that the to spread so that things like the shelter or shells actions would be using power show or something else and in that is appropriate but that's not provide that and lastly if you're using spreads to. just using additional machines in the public clout so for instance using a public provider to run spread which has its secrets in the odds are asked to see ross i finally got going for the public lodging been shown images song you can create additional instances in the public policy. all that also are some effort because you have to distribute have no those pockets of those who have arisen against your across the globe are so they can use it as well on the essentially managed on clough's just going to keep running your instance s. analysts spread house a chance to shut them down again of testing. mickey and minnie accumulate these are not insurmountable issues and there could be a way to make this better in practice for every possible clouds that you try this on there's a world on way to make this pretty much a one off problem to do to to can result by something of some other nation but it's the. got it's not like in batteries included will have to worry about this. so. this is the context this is on the steve stricker today i would like to present some ideas on how specifically we are the us to see what the experts who are that will help us to develop your harm your rating system so first of all we like to improve human sports humans can be very relevant. ford has been open harmony is practical you can run it without having access to harbor and as other devices go not everyone has the same harder not everyone has on has everything so having some sort of virtual machines that you can run but anyone can run even if they don't have the perfect coverage. is really relevant and one thing would like to do instead is so that instead of having the center distribution image taking as ascension context we can say that might last week actually requires you to give me an image because on that has to be standardized but the image would marry so the arm for instance in our case the. the pipeline will just produce was images and those who as much as we felt this protest against in the workplace so we would like to extend sport support for that. and suddenly like to improve crossed architecture support so that like a public cloud it says server and wrong. a version she thought really just like an arm or risk five computer. so that's him on would like to extend credit in one more way that's going to be very relevant for us that has ever with. stressing over school boards on currently spread requires as his age to connects onto machine to execute commands and don't know who to copy files over we were like withstand a sprint salute you can actually do this over sewer line were still lined with some minimal shell like program. on the other and enough for us to support non linux down by controlled words so anything that is sufficient for us to essentially start writing test cases against suffer. and lastly related to both of these in the way we like to improve support for deploying on her mental so you know our borders are not really like a cloud their don't have like a nicety our word which has a billion features and everything most the words it's usually the opposites especially when you're talking about non-starter harder. usually the only boot from his e-cards us something you can rely on everything and anything else is is fiddly or is highly specific to a given device on not even to insists he will given specific no reference point for letting me working with so as a way out of dots that we can actually. as the images were providing would like to take on two projects that are are up there are one is of the spread of the other is much spine and bring them closer together so much by if you're not familiar with out is the high season. the rivals will not read his of his of the vote on board created by the highs and projects for specifically testing so it is like an assist the extra device that have alongside your actual development board which can be used to create more interesting test cases on it and you know similarly eight. the press a button is going on simply disconnecting some cable it can most importantly for us harm we that pashtun is the card from your device and asked what are his reply was usually goods from his the cards to buy sell some aspies can reprogram that is the card and bloodied by and. let's face it can also marks by can also control the power supply cure mice hundred s. to turn this is the turn of the vice of virtually like injected is the car program is what it bought and this feels like a nice way to start out making the woman and testing. the lowest images so would like to bring this closer to the press was threatening to be used up. and lastly who like this experimental the six permanent with programming evil and board using either use beer silver surfer connection some the bigger the armed well on board will have a as was the specific first who first they didn't blow. for which you may be able to talk over cereal or he overthrew and has been and you can inject enough additional voted the next they lowered enough for you to be able to essentially run your code on the board even of the board has nothing on the other ones. so if you think about why this is relevant for for as you can think about as a way to avoid having a mock spy in the loop not spies and little piece of hardware is for the difficult to get its early pricey so if you can just avoid and use use the people that's much better so on looking at how on spread could be. he taught program specific kind of the voices of have this image flash an image by following a set of on blue or path on injections on that we have really valuable thing for us to try to the cycle. so that's that's this representation on thank you for listening. i liked leave some links on the screens rican on can have a look at those first the there's the o.c.c. dot surrey did not pose the dash you the board that's the good love instance run by arsene the open source technology center and the need that in those the tools away spread you can find the friend before have spread. it's that we're running it's going to have additional features before the year except to the extreme there's also the upstream are spread repository of get how it's good have accomplished not course mush spread. will suffice the channels on three notes on and also the man in most instances that chat not out that was the dash you got bored so we can talk to us in either of these places are some developers are kind enough to welcome us on the channel so we keep you in a week. we are in contact so with and she can develop spreads across company boundaries so i'm going to be on the support of channel four pounds for the conference where i will ask certain i will yield once you questions you have any and the west bank of listening. and why.