<?xml version='1.0' encoding='utf-8' ?>
<!-- Made with love by pretalx v2024.3.1. -->
<schedule>
    <generator name="pretalx" version="2024.3.1" />
    <version>v1</version>
    <conference>
        <title>All Systems Go! 2017</title>
        <acronym>ASG2017</acronym>
        <start>2017-10-20</start>
        <end>2017-10-22</end>
        <days>3</days>
        <timeslot_duration>00:05</timeslot_duration>
        <base_url>https://cfp.all-systems-go.io</base_url>
        <logo>https://cfp.all-systems-go.io/media/ASG2017/img/asg-logo-ondark.svg</logo>
        <time_zone_name>UTC</time_zone_name>
        
        
        <track name="default" slug="1-default"  />
        
        <track name="default" slug="2-default"  />
        
        <track name="Monitoring &amp; Tracing" slug="3-monitoring-tracing"  />
        
        <track name="Debugging &amp; Tooling" slug="4-debugging-tooling"  />
        
        <track name="Service Management" slug="5-service-management"  />
        
        <track name="default" slug="6-default"  />
        
        <track name="Networking" slug="7-networking"  />
        
        <track name="default" slug="8-default"  />
        
        <track name="Process Isolation" slug="9-process-isolation"  />
        
        <track name="default" slug="10-default"  />
        
        <track name="Security" slug="11-security"  />
        
        <track name="default" slug="12-default"  />
        
        <track name="default" slug="13-default"  />
        
        <track name="default" slug="14-default"  />
        
        <track name="default" slug="15-default"  />
        
        <track name="default" slug="16-default"  />
        
        <track name="default" slug="17-default"  />
        
        <track name="default" slug="18-default"  />
        
        <track name="default" slug="19-default"  />
        
        <track name="default" slug="20-default"  />
        
        <track name="default" slug="21-default"  />
        
        <track name="default" slug="22-default"  />
        
    </conference>
    <day index='1' date='2017-10-20' start='2017-10-20T04:00:00+00:00' end='2017-10-21T03:59:00+00:00'>
        <room name='Kinvolk Office' guid='7f921f7e-6458-5ed5-a688-5d90492412c6'>
            <event guid='4808bb85-a73d-5af3-9f19-19b5a4907e16' id='1'>
                <room>Kinvolk Office</room>
                <title>Pre-Registration Event</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-20T16:30:00+00:00</date>
                <start>16:30</start>
                <duration>03:00</duration>
                <abstract>None</abstract>
                <slug>ASG2017-1-pre-registration-event</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Meet-up at the Kinvolk Office!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/142/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/142/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='2' date='2017-10-21' start='2017-10-21T04:00:00+00:00' end='2017-10-22T03:59:00+00:00'>
        <room name='Event Loft' guid='4d4de03b-f5ab-5847-864f-e5e0199c3e63'>
            <event guid='1b5b20e6-a696-5745-b137-8f631a6922cd' id='2'>
                <room>Event Loft</room>
                <title>Opening</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T07:30:00+00:00</date>
                <start>07:30</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-2-opening</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Check In and Say Hello!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/141/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/141/feedback/</feedback_url>
            </event>
            <event guid='ed2561d7-673f-59b1-b494-b9cbeca41448' id='3'>
                <room>Event Loft</room>
                <title>Really crazy container troubleshooting stories</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T07:45:00+00:00</date>
                <start>07:45</start>
                <duration>00:40</duration>
                <abstract>None</abstract>
                <slug>ASG2017-3-really-crazy-container-troubleshooting-stories</slug>
                <track>Monitoring &amp; Tracing</track>
                
                <persons>
                    <person id='3'>Gianluca Borello</person>
                </persons>
                <language>en</language>
                <description>In this talk, the presenter will share a few container troubleshooting stories that were encountered in the life of an infrastructure operator. The use cases are deliberately chosen to be a bit advanced and focused around exploring the inner workings of core libraries and kernel, to remind everyone that even the lowest level of modern systems need some love.

The talk will follow a hands-on agenda, interactively iterating over all the key points of the troubleshooting process, focusing on the different tools used and providing immediate value to the listener, who should be able to apply the various workflows to other scenarios.

Example use cases presented:

- Troubleshooting resource isolation between containers
- Tracing the root cause of a crashing containerized application
- Monitoring memory and performance issues in containers</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/115/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/115/feedback/</feedback_url>
            </event>
            <event guid='7e1d21bc-0a55-5d8f-8321-f495e4c91fb2' id='4'>
                <room>Event Loft</room>
                <title>Rust memory management</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T08:30:00+00:00</date>
                <start>08:30</start>
                <duration>00:25</duration>
                <abstract>A quick introduction to the unique memory management concepts of Rust.</abstract>
                <slug>ASG2017-4-rust-memory-management</slug>
                <track>Debugging &amp; Tooling</track>
                
                <persons>
                    <person id='4'>Zeeshan Ali Khan</person>
                </persons>
                <language>en</language>
                <description>Rust is a systems programming language that focuses on safety and performance at the same time. Most people new to Rust, often struggle with memory management. The goal of this talk is to give a very quick overview of Rust&apos;s memory management.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/118/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/118/feedback/</feedback_url>
            </event>
            <event guid='06a67ba0-2420-5097-bd7e-16f6018c8788' id='5'>
                <room>Event Loft</room>
                <title>Incremental Adoption of Open Services with Habitat</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T09:00:00+00:00</date>
                <start>09:00</start>
                <duration>00:15</duration>
                <abstract>Open services mark a paradigm shift similar to the disruption caused by open-source software in the 90s, but the path to effective adoption of open services tooling is sometimes unclear. Blake will share patterns and learnings from his experience integrating one such tool, Habitat, at smartB GmbH.</abstract>
                <slug>ASG2017-5-incremental-adoption-of-open-services-with-habitat</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='5'>Blake Irvin</person>
                </persons>
                <language>en</language>
                <description>The modern computing world revolves around delivering applications as services. Until recently, massively scalable services were the specialized domain of tech giants, and attempts by small teams to reproduce the tooling available to Fortune 100 players often led to frustration and wasted time.

Habitat is part of a new family of tools aimed at making application runtimes and service orchestration layers safe, repeatable and fully open.

At smartB, Blake has brought Habitat to his org to reduce operational  complexity, guarantee application runtime behavior and provide dependency isolation and transparency for applications and their corollary security profiles. smartB is his 5th startup in 10 years and his first foray into sustainability engineering.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/104/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/104/feedback/</feedback_url>
            </event>
            <event guid='862581db-7de3-5f4a-b8ae-281080236cd9' id='6'>
                <room>Event Loft</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T09:15:00+00:00</date>
                <start>09:15</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-6-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/144/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/144/feedback/</feedback_url>
            </event>
            <event guid='e309c105-1dd9-582b-ad8e-106a351faa5a' id='7'>
                <room>Event Loft</room>
                <title>Azure networking integration challenges</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T09:30:00+00:00</date>
                <start>09:30</start>
                <duration>00:45</duration>
                <abstract>The introduction on Accelerated Networking on Azure created challenges integrating support in Linux distributions. The original method using bonding had issues that were solved by introducing a new mode called &quot;Transparent VF&quot;. This mode solves issues with udev, cloudinit and distribution specific network initialization. This talk will also cover the process of how Linux support for Azure is integrated with upstreamand distributions.</abstract>
                <slug>ASG2017-7-azure-networking-integration-challenges</slug>
                <track>Networking</track>
                
                <persons>
                    <person id='6'>Stephen Hemminger</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/93/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/93/feedback/</feedback_url>
            </event>
            <event guid='10b90da8-d7b6-5a47-983c-d722fdaab5f9' id='8'>
                <room>Event Loft</room>
                <title>Lunch</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T10:15:00+00:00</date>
                <start>10:15</start>
                <duration>01:30</duration>
                <abstract>None</abstract>
                <slug>ASG2017-8-lunch</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Yummy food available from food trucks in the courtyard
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/146/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/146/feedback/</feedback_url>
            </event>
            <event guid='a00de056-311a-55b8-bd90-57c20d72e5be' id='9'>
                <room>Event Loft</room>
                <title>systemd @ Facebook &#8212; a year later</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T11:45:00+00:00</date>
                <start>11:45</start>
                <duration>00:40</duration>
                <abstract>We&apos;ll be talking about what we learned throughout the past year running systemd in production at Facebook: new challenges that have come up, how the integration process went and the areas of improvement we discovered. We&apos;ll also discuss our efforts building a monitoring solution for system services based on systemd.</abstract>
                <slug>ASG2017-9-systemd-facebook-a-year-later</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='7'>Davide Cavalca</person>
                </persons>
                <language>en</language>
                <description>This talk is a followup to &lt;a href=&quot;https://www.youtube.com/watch?v=LhYd0S3qiMY&quot;&gt;Deploying systemd at scale&lt;/a&gt; that was presented at systemd.conf 2016, and covers the aftermath of the migration of our fleet to CentOS 7. Now that systemd is available everywhere, we found more and more services that started adopting it for their deployment, leveraging its features and occasionally exposing interesting behaviors. At the same time, we&apos;ve been able to hone our process for integrating and rolling out new versions of systemd on the fleet, and started building tooling to manage and monitor it at scale.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/126/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/126/feedback/</feedback_url>
            </event>
            <event guid='74df8413-3027-59c2-a25d-5b7e96071cff' id='10'>
                <room>Event Loft</room>
                <title>State of the rkt container runtime</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T12:30:00+00:00</date>
                <start>12:30</start>
                <duration>00:25</duration>
                <abstract>rkt is a modern container runtime, built for security, efficiency, and composability. It is one of the container runtimes supported by Kubernetes but the current implementation (&#8220;rktnetes&#8221;) doesn&#8217;t support the Container Runtime Interface (CRI). The work-in-progress CRI implementation is called rktlet.

This presentation will give an update on the rkt project, what new features were implemented recently and what&#8217;s coming up. It will also give an update on the state of the rktlet: what features are missing and what workarounds should be removed before it becomes a complete implementation of the CRI.</abstract>
                <slug>ASG2017-10-state-of-the-rkt-container-runtime</slug>
                <track>Process Isolation</track>
                
                <persons>
                    <person id='8'>Iago L&#243;pez Galeiras</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/123/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/123/feedback/</feedback_url>
            </event>
            <event guid='374a08c1-3218-5b73-a455-b3a8985ce985' id='11'>
                <room>Event Loft</room>
                <title>Portals, dynamic permissions in Flatpak</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T13:00:00+00:00</date>
                <start>13:00</start>
                <duration>00:40</duration>
                <abstract>Desktop application sandboxing is quite different than traditional
container isolation, learn how flatpak does it, using the concept of
portals.
</abstract>
                <slug>ASG2017-11-portals-dynamic-permissions-in-flatpak</slug>
                <track>Process Isolation</track>
                
                <persons>
                    <person id='9'>Alexander Larsson</person>
                </persons>
                <language>en</language>
                <description>Flatpak is a distribution independent bundling and deployment system
for Linux, focusing on desktop applications. One core aspect of flatpak
is application sandboxing, which has very different requirements on
the desktop than in the traditional container space. Applications need
to be isolated from the system, yet in order to be easy and intuitive to use
they must integrate with the desktop environment in complex ways.

Flatpak solves this by using a concept called Portals. This talk will
discuss how Flatpak sandboxing/security works and the how Portals fit
in this system.
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/114/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/114/feedback/</feedback_url>
            </event>
            <event guid='7d11aaed-6aee-5a57-ac58-b40947b29e72' id='12'>
                <room>Event Loft</room>
                <title>Containers: What Did We Learn?</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T13:45:00+00:00</date>
                <start>13:45</start>
                <duration>00:15</duration>
                <abstract>Containers: love &apos;em or hate &apos;em -- whether you think they&apos;re the hottest new thing or yesteryear&apos;s same ideas in new clothing -- the both rapid and sustained rate of adoption of recent container technologies says one thing clearly: We Were Missing Something. But what, exactly? And have we found &quot;it&quot;? Or are we just beginning to uncover something new about the way we all, in our deepest hearts, wish computers would be?  In this talk, we&apos;ll survey where containers came from, and question where they&#8217;re going: a discussion that crosses package management, releasing, deployment, immutability, reproducibility, and questions how meanings of all these things are now changing.</abstract>
                <slug>ASG2017-12-containers-what-did-we-learn-</slug>
                <track>Process Isolation</track>
                
                <persons>
                    <person id='10'>Eric Myhre</person>
                </persons>
                <language>en</language>
                <description>Containers have brought a lot of new patterns and behaviors into focus.  For example, atomic deploys have become part of everyday conversation; fully captured dependencies and snapshots are now the norm; and the very concept of &quot;releasing&quot; software is beginning to morph.

But many of these concepts -- at least, as implemented in popular container systems today -- seem to be somewhere between poorly integrated or outright in conflict with our present understanding of &quot;package managers&quot; and &quot;config management&quot;.

What do containers need to learn from the decades of package management before today?  And what hints do the package managers we all know and love need to take from the explosion of containers?  Containers are an exciting opportunity to revisit many of our oldest assumptions about how to design systems: let&apos;s take this opportunity to think carefully and ask tough questions.
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/100/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/100/feedback/</feedback_url>
            </event>
            <event guid='ef8235b5-d71d-5bf4-8e05-1ac5d4e7da32' id='13'>
                <room>Event Loft</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T14:00:00+00:00</date>
                <start>14:00</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-13-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/148/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/148/feedback/</feedback_url>
            </event>
            <event guid='9a3757dd-619f-552d-bcc6-99c1b9b6e516' id='14'>
                <room>Event Loft</room>
                <title>Fix, forget, or forge a new path?</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T14:15:00+00:00</date>
                <start>14:15</start>
                <duration>00:40</duration>
                <abstract>As Infrastructure operators we&apos;re exposed to a lot of plumbing and not a lot of porcelain. Worse, because our concerns are often esoteric (in the eyes of application developers) we have to fix our own pipes too.  Often this leads to the &quot;homeowners dilemma&quot;... Making the call of when to patch things up, when to rip out the pipes, and when to abandon gas lamps for electricity.

We outline a number of aging pipes, proposed (and implemented) solutions, and ideas for dragging our systems into the future. </abstract>
                <slug>ASG2017-14-fix-forget-or-forge-a-new-path-</slug>
                <track>Security</track>
                
                <persons>
                    <person id='11'>Brian &apos;redbeard&apos; Harrington</person>
                </persons>
                <language>en</language>
                <description>On the systems side AAA services haven&apos;t kept up with the pace of application development, our hardware is aging, and there are components of infrastructure that have fallen by the wayside.  Modern switches still support (non-TLS) RADIUS and TACACS+, other networking gear still only supports SNMP v1, and then we&apos;ve got logging...

In this talk we take stock of the landscape and discuss which pieces should be fixed, which desperately need to be abandoned, and which we have been thinking about all wrong.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/159/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/159/feedback/</feedback_url>
            </event>
            <event guid='54a422f2-5538-510f-bed3-11b45f8f36b0' id='15'>
                <room>Event Loft</room>
                <title>Streamlining systemd&apos;s code and safety</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T15:00:00+00:00</date>
                <start>15:00</start>
                <duration>00:25</duration>
                <abstract>Today, the systemd project uses a non-standard superset of C to get destructor-like functionality. But, we pay a heavy price for doing it this way: we lose compiler portability, use hundreds of boilerplate macros, and confuse static analysis tools (which don&apos;t always realize why we&apos;re not leaking memory). At compilation, the cleanup functionality gets mapped to the same facilities that handle C++ destructors. So, essentially, we&apos;re already using a non-standard version of C++ as well as a non-standard version of C. We can end this charade by following in GCC&apos;s footsteps and &lt;a href=&quot;https://lwn.net/Articles/542457/&quot;&gt;explicitly using a subset of C++&lt;/a&gt;. By doing so, we can shed thousands of lines of C-trying-to-be-C++. We can also improve memory safety and code readability -- &lt;a href=&quot;https://medium.com/@davidtstrauss/choosing-some-c-over-c-f5acb3dce4f5&quot;&gt;all while keeping the feel of C&lt;/a&gt;.</abstract>
                <slug>ASG2017-15-streamlining-systemd-s-code-and-safety</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='12'>David Strauss</person>
                </persons>
                <language>en</language>
                <description>&lt;p&gt;Today, the systemd project uses a non-standard superset of C to get destructor-like functionality. But, we pay a heavy price for doing it this way: we lose compiler portability, use hundreds of boilerplate macros, and confuse static analysis tools (which don&apos;t always realize why we&apos;re not leaking memory). At compilation, the cleanup functionality gets mapped to the same facilities that handle C++ destructors. So, essentially, we&apos;re already using a non-standard version of C++ as well as a non-standard version of C. We can end this charade by following in GCC&apos;s footsteps and &lt;a href=&quot;https://lwn.net/Articles/542457/&quot;&gt;explicitly using a subset of C++&lt;/a&gt;. By doing so, we can shed thousands of lines of C-trying-to-be-C++. We can also improve memory safety and code readability -- &lt;a href=&quot;https://medium.com/@davidtstrauss/choosing-some-c-over-c-f5acb3dce4f5&quot;&gt;all while keeping the feel of C&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this presentation, we&apos;ll consider options for systems&apos;d codebase:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Converting instances of &quot;cleanup&quot; to destructors. This should allow us to discard a couple thousand lines of boilerplate and many &quot;goto cleanup&quot; situations.&lt;/li&gt;
&lt;li&gt;Converting raw pointers to equivalents with enforced semantics. For internal APIs, this should clarify handoff of memory ownership. For event loops, this should allow typed user data.&lt;/li&gt;
&lt;li&gt;While I&apos;m no advocate of object-orientation, our concept of a &quot;unit&quot; cleanly maps to an abstract superclass. IDEs and code analysis tools will benefit from moving away from homegrown inheritance.&lt;/li&gt;
&lt;li&gt;We often return error codes as ints, and it would be good to explicitly use a real type instead. This will make refactoring easier if we change a function between returning an int vs. error vs. boolean.&lt;/li&gt;
&lt;li&gt;The journal would benefit from a higher-level storage library like RocksDB (which offers a slim version for resource-constrained environments). Libraries like RocksDB are possible to use from C but have a richer (and easier-to-use) C++ API.&lt;/li&gt;
&lt;/ul&gt;</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/124/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/124/feedback/</feedback_url>
            </event>
            <event guid='c93c61f4-6484-50b6-91eb-4be5dd1aca3f' id='16'>
                <room>Event Loft</room>
                <title>A gentle introduction to [e]BPF</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T15:30:00+00:00</date>
                <start>15:30</start>
                <duration>00:25</duration>
                <abstract>BPF is a Linux in-kernel virtual machine that is used for networking, tracing, seccomp and more. This talk will give an introduction to the extended BPF subsystem in Linux, an overview on how it works, show available tools to work with and explain possibilities as well as limits.</abstract>
                <slug>ASG2017-16-a-gentle-introduction-to-e-bpf</slug>
                <track>Monitoring &amp; Tracing</track>
                
                <persons>
                    <person id='13'>Michael Schubert</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/92/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/92/feedback/</feedback_url>
            </event>
            <event guid='213e9b6a-0277-59a2-9cf9-107d2e1ab8c9' id='17'>
                <room>Event Loft</room>
                <title>Containers without a Container Manager, with systemd</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T16:00:00+00:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>systemd service management today supports a number of the features that container management is known for, but for classic system services. Let&apos;s see which ones, and how to make use of them.</abstract>
                <slug>ASG2017-17-containers-without-a-container-manager-with-systemd</slug>
                <track>Process Isolation</track>
                
                <persons>
                    <person id='14'>Lennart Poettering</person>
                </persons>
                <language>en</language>
                <description>systemd service management today supports a number of the features that container management is known for, but for classic system services. Let&apos;s see which ones, and how to make use of them.

We&apos;ll talk about sandboxing, resource bundling, service management and resource management, and more. We&apos;ll discuss what container managers can do, that systemd service management can&apos;t and vice versa. Last but not least we&apos;ll have a look at systemd-nspawn, systemd&apos;s very own container manager and what it adds on top of systemd&apos;s native service management.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/101/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/101/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Galerie' guid='ca1cc080-f439-567c-890b-96bd4bc87ce0'>
            <event guid='a691f731-e464-5437-bef4-7306206059d1' id='18'>
                <room>Galerie</room>
                <title>Introducing Bluetooth Mesh</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T07:45:00+00:00</date>
                <start>07:45</start>
                <duration>00:40</duration>
                <abstract>Bluetooth technology has been extended with a brand new mesh feature. This presentation gives an introduction to Bluetooth Mesh and its impacts on the ecosystem. It shows the new and exciting use cases that a mesh enabled Bluetooth low energy enables. The presentation will also put a focus on Linux and Zephyr operating systems and its integration with Bluetooth Mesh.</abstract>
                <slug>ASG2017-18-introducing-bluetooth-mesh</slug>
                <track>Networking</track>
                
                <persons>
                    <person id='15'>Marcel Holtmann</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/105/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/105/feedback/</feedback_url>
            </event>
            <event guid='c4ead1cf-65e0-5d4b-b67e-4c61f35b34b1' id='19'>
                <room>Galerie</room>
                <title>High-performance Linux monitoring with eBPF</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T08:30:00+00:00</date>
                <start>08:30</start>
                <duration>00:25</duration>
                <abstract>Extended Berkeley Packet Filter (eBPF) allows for high-performance introspection of the Linux kernel execution. eBPF is widely available (part of the mainline kernel and enabled by most distributions), flexible (any kernel code path can be probed) and safe (driven from userspace and statically verified). In this talk, I will introduce eBPF, explaining how it can be used to track TCP connections in real time. On the way I will demonstrate it is possible to access eBPF from languages other than C (Golang) and remove undesirable runtime dependencies (LLVM compiler and kernel-headers). At Weaveworks we are using eBPF for the connection-tracker of the Weave Scope visualization tool.</abstract>
                <slug>ASG2017-19-high-performance-linux-monitoring-with-ebpf</slug>
                <track>Monitoring &amp; Tracing</track>
                
                <persons>
                    <person id='16'>Alfonso Acosta</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/139/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/139/feedback/</feedback_url>
            </event>
            <event guid='8b97610d-23f6-5fc9-b973-86bb8c0239bf' id='20'>
                <room>Galerie</room>
                <title>Network troubleshooting in heterogeneous cloud environment with Skydive</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T09:00:00+00:00</date>
                <start>09:00</start>
                <duration>00:15</duration>
                <abstract>With the growing number of network cloud services it becomes essential to be able to monitor, troubleshoot and analyze different virtualization or container technologies. Being able to monitor complex heterogeneous federated cloud environments is key.

Skydive is a real-time and post-mortem topology and packet analyzer. To do so, it listens for networking kernel events, monitors network namespaces, watches external components such as OVSDB and Docker. Skydive can make use of AF_PACKET or eBPF programs to capture traffic. Thanks to its classifier Skydive is able to map the network traffic with the topology.</abstract>
                <slug>ASG2017-20-network-troubleshooting-in-heterogeneous-cloud-environment-with-skydive</slug>
                <track>Networking</track>
                
                <persons>
                    <person id='17'>Sylvain Afchain</person>
                </persons>
                <language>en</language>
                <description>With the growing number of network cloud services it becomes essential to be able to monitor, troubleshoot and analyze different virtualization or container technologies. Being able to monitor complex heterogeneous federated cloud environments is key.

Skydive is a real-time and post-mortem topology and packet analyzer. To do so, it listens for networking kernel events, monitors network namespaces, watches external components such as OVSDB and Docker. Skydive can make use of AF_PACKET or eBPF programs to capture traffic. Thanks to its classifier Skydive is able to map the network traffic with the topology.

We will show through a demo how Skydive can help operators to visualize, understand and troubleshoot packet forwarding from point to point.
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/113/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/113/feedback/</feedback_url>
            </event>
            <event guid='da808332-4f1c-53be-b4ae-cccb2a28e076' id='21'>
                <room>Galerie</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T09:15:00+00:00</date>
                <start>09:15</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-21-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/145/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/145/feedback/</feedback_url>
            </event>
            <event guid='6e9517cf-a380-551d-9a8a-72e601969cb9' id='22'>
                <room>Galerie</room>
                <title>Getting Started with Habitat</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T09:30:00+00:00</date>
                <start>09:30</start>
                <duration>00:45</duration>
                <abstract>Habitat is the best way for software developers to build, deploy, and manage modern applications - regardless of their expertise. Habitat provides a self-healing, self-configuring, stack-agnostic, frictionless abstraction for running applications&#8212;regardless of their complexity on whatever infrastructure you prefer, from physical hardware and virtual machines to containers and everything in between. This session will show you how to build and run your own application. You will learn how scaffolding helps you quickly and easily package your application. Explore the build system used for generating Habitat artifacts. Run an application using the Habitat supervisor. This is the talk for anyone who&apos;s just learning about Habitat or those that are interested in seeing some of the newer features of the framework.</abstract>
                <slug>ASG2017-22-getting-started-with-habitat</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='18'>Jamie Winsor</person>
                </persons>
                <language>en</language>
                <description>Habitat is the best way for software developers to build, deploy, and manage modern applications - regardless of their expertise. Habitat provides a self-healing, self-configuring, stack-agnostic, frictionless abstraction for running applications&#8212;regardless of their complexity on whatever infrastructure you prefer, from physical hardware and virtual machines to containers and everything in between. This session will show you how to build and run your own application. You will learn how scaffolding helps you quickly and easily package your application. Explore the build system used for generating Habitat artifacts. Run an application using the Habitat supervisor. This is the talk for anyone who&apos;s just learning about Habitat or those that are interested in seeing some of the newer features of the framework.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/103/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/103/feedback/</feedback_url>
            </event>
            <event guid='b6839bc0-0839-5b02-a385-7a97ee6f600a' id='23'>
                <room>Galerie</room>
                <title>Lunch</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T10:15:00+00:00</date>
                <start>10:15</start>
                <duration>01:30</duration>
                <abstract>None</abstract>
                <slug>ASG2017-23-lunch</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Yummy food available from food trucks in the courtyard
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/147/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/147/feedback/</feedback_url>
            </event>
            <event guid='923c037d-b436-5073-88f3-bf13ea8c35fe' id='24'>
                <room>Galerie</room>
                <title>The IoT botnet wars, Linux devices, and the absence of basic security hardening</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T11:45:00+00:00</date>
                <start>11:45</start>
                <duration>00:40</duration>
                <abstract>We will discuss the various malware infecting Linux IoT devices including Mirai, Hajime, and BrickerBot and the vulnerabilities they leverage to enslave or brick connected devices. We will walk the audience through specific vectors they used to exploit devices and cover some basics in security hardening that would have largely protected from many of the widespread malware.

Some of the fundamental security concepts we will cover include:

Closing unused open network ports
Intrusion detection systems
Enforcing password complexity and policies
Removing unnecessary services
Frequent software updates to fix bugs and patch security vulnerabilities

We will also delve into the arguments and counter-arguments of vigilante hacking with Hajime and BrickerBot as examples and the potential long-term consequences in this new age of connected devices.</abstract>
                <slug>ASG2017-24-the-iot-botnet-wars-linux-devices-and-the-absence-of-basic-security-hardening</slug>
                <track>Security</track>
                
                <persons>
                    <person id='19'>Drew Moseley </person>
                </persons>
                <language>en</language>
                <description>This talk will cover the ongoing battle being waged is leveraging insecure Linux-based Internet of Things (IoT) devices. BrickerBot is an example of a recent malware strain attacking connected devices and causing them to &#8220;brick,&#8221; making an electronic device completely useless in a permanent denial-of-service (PDoS) attack.

Additionally, the Mirai botnet consisted of connected printers, IP cameras, residential gateways, and baby monitors that flooded DNS servers. Mirai was behind the largest DDoS attack of its kind ever in October 2016, with an estimated throughput of 1.2 terabits per second. It leveraged these enslaved devices to bring down large portions of the internet, including services such as Netflix, GitHub, HBO, Amazon, Reddit, Twitter, and DIRECTV. BrickerBot&#8217;s goal appears to counter Mirai&#8217;s: Bricking insecure Linux devices so that malware such as Mirai can&#8217;t subjugate these devices in another DDoS attack. We will take an in-depth look at the anatomy of the attack.

We will then dive into basic some security hardening principles which would have helped protect against many of these attacks. Some of the fundamental security concepts we will cover include:

Closing unused open network ports
Intrusion detection systems
Enforcing password complexity and policies
Removing unnecessary services
Frequent software updates to fix bugs and patch security vulnerabilities</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/129/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/129/feedback/</feedback_url>
            </event>
            <event guid='419d6895-afa9-5787-8787-9620dd760358' id='25'>
                <room>Galerie</room>
                <title>Cockpit: A Linux sysadmin session in your Browser</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T12:30:00+00:00</date>
                <start>12:30</start>
                <duration>00:25</duration>
                <abstract>Cockpit is an open source project that has built the new system admin UI for Linux. It turns Linux server into something discoverable and usable. Its goal is to remove the steep learning curve for Linux deployments.

Cockpit lets you immediately dive into things like storage, network configuration, system log diagnosis, container troubleshooting and Kubernetes orchestration. All while being zero-footprint: It goes away when not in use. Cockpit interacts well with other management configuration tools, it reacts instantly to system changes made elsewhere.

We&apos;ll look at how Cockpit is an actual linux user session that you drive through your browser, running with user privileges, and accesses to the native system APIs and tools.

You&apos;ll be able to build new pieces of sysadmin UI as fast as you write a shell script. In fact we&apos;ll do it on stage in a few minutes.
</abstract>
                <slug>ASG2017-25-cockpit-a-linux-sysadmin-session-in-your-browser</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='20'>Stef Walter</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/99/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/99/feedback/</feedback_url>
            </event>
            <event guid='2aaa4c03-fd5e-520e-ac24-c68a220722d9' id='26'>
                <room>Galerie</room>
                <title>Reproducible Builds - where do we want to go tomorrow?</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T13:00:00+00:00</date>
                <start>13:00</start>
                <duration>00:40</duration>
                <abstract>A status report on Reproducible builds, which enable everyone to verify that a given binary is made from the source it is claimed to be made from, by enabling anyone to create bit by bit identical binaries. </abstract>
                <slug>ASG2017-26-reproducible-builds-where-do-we-want-to-go-tomorrow-</slug>
                <track>Security</track>
                
                <persons>
                    <person id='21'>Holger Levsen</person>
                </persons>
                <language>en</language>
                <description>We&apos;ve made lots of progress, but we are still far from our goals of changing the (software) world
This talk will report on the state of reproducible builds in various distributions (Debian, Archlinux, coreboot, F-Droid, Fedora, FreeBSD, Guix, NetBSD, OpenWrt, SuSE, and Qubes OS - to name a few) and thus should be interesting and insightful for anyone working on any free software project.

Holger will explain how he started working on this in the Debian context and how his focus shifted slightly over the time. So he will start with explaining the status of Reproducible Debian, but this is quickly followed by an overview of common problems and solutions, followed by a quick explaination of the shared test infrastructure for reproducible tests of any project. You will learn how the community was broadened, what future plans we have to address what might be needed beyond being able to reproducible build something, so this becomes truly meaningful for users in practice.

In this talk you will also learn about the challanges we&apos;re facing to deliver on the promise. Being able to reproducibly build in theory is not enough, one needs to be able to do so in practice. And enabling this on a distro scale is much harder than we thought&#8230;
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/117/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/117/feedback/</feedback_url>
            </event>
            <event guid='30bf58fc-b494-52cd-9100-b271868d553f' id='27'>
                <room>Galerie</room>
                <title>Building containers all day</title>
                <subtitle></subtitle>
                <type>lighning_talk</type>
                <date>2017-10-21T13:45:00+00:00</date>
                <start>13:45</start>
                <duration>00:15</duration>
                <abstract>Containers have become a popular way of packaging and running applications, especially for server applications using microservice architectures. As containers can be started in no time, building new container images replacing old ones has become the predominant way of applying updates. Having continuous delivery pipelines for building these images becomes a key problem. This talk will show how the Open Build Service provides a way to automate container builds including tracking updates and automatic rebuilds of dependent containers. This makes it easy to create secure and up to date containers all day.</abstract>
                <slug>ASG2017-27-building-containers-all-day</slug>
                <track>Debugging &amp; Tooling</track>
                
                <persons>
                    <person id='22'>Cornelius Schumacher</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/95/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/95/feedback/</feedback_url>
            </event>
            <event guid='8bc82ba9-7086-55a6-b49b-89aef025f546' id='28'>
                <room>Galerie</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T14:00:00+00:00</date>
                <start>14:00</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-28-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate! 
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/149/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/149/feedback/</feedback_url>
            </event>
            <event guid='d091d9ed-fd69-59bd-b2ac-7867936dba6f' id='29'>
                <room>Galerie</room>
                <title>Using systemd for containers @ Facebook</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T14:15:00+00:00</date>
                <start>14:15</start>
                <duration>00:40</duration>
                <abstract>To achieve faster and easier containerization at Facebook we have started utilizing Chef, Btrfs and Systemd to improve our container system. These tools helped us to design a robust base for our cluster management will allow us to concentrate more higher level functionality. Our version of image and task handling tries address some issues common both to Facebook and the industry.
</abstract>
                <slug>ASG2017-29-using-systemd-for-containers-facebook</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='23'>Zeal Jagannatha</person><person id='24'>Zoltan Puskas</person>
                </persons>
                <language>en</language>
                <description>Co-presented by Zoltan Puskas and Zeal Jagannatha</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/135/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/135/feedback/</feedback_url>
            </event>
            <event guid='a3f980bc-b408-55e9-889a-4af44576226e' id='30'>
                <room>Galerie</room>
                <title>Landlock LSM: Towards unprivileged sandboxing</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T15:00:00+00:00</date>
                <start>15:00</start>
                <duration>00:25</duration>
                <abstract>Landlock is a proposal for a new Linux Security Module (LSM) to create secure sandboxes with the goal &#8220;to empower any process, including unprivileged ones, to securely restrict themselves.&#8221; This presentation will give an overview on what Landlock is, discuss the current status of the patchset and demonstrate how Landlock works, as well as its differences compared to other Linux security modules.</abstract>
                <slug>ASG2017-30-landlock-lsm-towards-unprivileged-sandboxing</slug>
                <track>Security</track>
                
                <persons>
                    <person id='13'>Michael Schubert</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/110/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/110/feedback/</feedback_url>
            </event>
            <event guid='d5c63f9c-b491-59db-994a-8cfc6df886ed' id='31'>
                <room>Galerie</room>
                <title>Software updates for connected Linux devices: key requirements</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-21T15:30:00+00:00</date>
                <start>15:30</start>
                <duration>00:25</duration>
                <abstract>A key requirement for connected Linux devices is the ability to deploy remote software updates to them so that bugs, vulnerabilities and new features can be addressed while devices live in the field for up to 10 years.

As part of the Mender.io project, we have interviewed more than 100 embedded developers to understand best practices and the current state of enabling software updates for connected devices today. The key requirements found during this study can be split into the following areas we cover:

- Robustness
- Ease
- Performant
- Secure
- Extensible</abstract>
                <slug>ASG2017-31-software-updates-for-connected-linux-devices-key-requirements</slug>
                <track>Security</track>
                
                <persons>
                    <person id='19'>Drew Moseley </person>
                </persons>
                <language>en</language>
                <description>In order to address these requirements, design trade-offs need to be made.

In this presentation, we will cover the most common update strategies, such as using A/B dual rootfs, maintenance-mode updates, package managers, tarballs, and see the trade-offs of each approach.


Remote Software Updates for Connected Devices: Key Considerations

A key requirement for connected devices is the ability to deploy remote software updates to them so that bugs, vulnerabilities and new features can be addressed while devices live in the field for up to 10 years.

As part of the Mender.io project, we have interviewed more than 100 embedded developers to understand best practices and the current state of enabling software updates for connected devices today.

The key requirements found during this study can be split into the following areas:

Robust - the cost of bricking devices is high
Ease - teams generally do not have much time to invest in an updater mechanism
Performant - bandwidth is the key limiting resource for connected devices, but other system resources should also be conserved during the update process. Downtime during the update process should be kept to a minimum.
Secure - the update process must not enable attackers to deploy malicious software to the devices
Extensible - connected devices vary greatly and the updater must be generic and extensible to support the majority of them

In order to address these requirements, design tradeoffs need to be made.

In this presentation, we will cover the most common update strategies, such as using A/B dual rootfs, maintenance-mode updates, package managers, tarballs, and see the tradeoffs of each approach.

We will also consider other important design aspects of an updater, such as validating deployment compatibility, integrity, authenticity, sanity-checking after the update, handling update failures, identifying extension points, device portability, persistent user-data, and reducing bandwidth consumption and downtime.
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/122/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/122/feedback/</feedback_url>
            </event>
            <event guid='64b66162-cc8b-5cab-8925-d3c5cdfbfdc4' id='32'>
                <room>Galerie</room>
                <title>Securing Home Automation with Tor</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T16:00:00+00:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>Today the technological worlds centralize principle is to automate each conceivable thing for simplicity in life, providing security,
saving electricity and time. 
&lt;cite&gt;Home automation is &#8220;The Internet of Things&quot;&#8230;The way that all of our devices and appliances will be networked together to provide us with a seamless control over all aspects of our home and more.&lt;/cite&gt;

Also a step toward what is referred to as the &quot;Internet of Things,&quot; in which everything has an assigned IP address, and can be monitored and accessed remotely.

The idea of automating each appliance in the home is done from many years ago, it started with connecting two electric wires to the battery and close the circuit by connecting load as a light. </abstract>
                <slug>ASG2017-32-securing-home-automation-with-tor</slug>
                <track>Security</track>
                
                <persons>
                    <person id='25'>Kalyan Dikshit</person>
                </persons>
                <language>en</language>
                <description>Be Safe. Be Secure
Automation is, unsurprisingly, one of the two main characteristics of home automation. Automation refers to the ability to program and schedule events for the devices on the network. The programming may include time-related commands, such as having your lights turn on or off at specific times each day. It can also include non-scheduled events, such as turning on all the lights in your home when your security system alarm is triggered.

Home automation systems are advancement to the mechanization processes wherein human efforts are needed with the machinery equipments to operate various loads in homes.The popularity of home automation has been expanding incredibly because of much higher reasonableness and straightforwardness through Smartphones and wireless networks. 

&lt;cite&gt;&quot;Internet of Things&quot;&lt;/cite&gt; is interlinked through these networks; because of the popularity of the home automation is improved by the quality of service provided by the devices. Different home automation systems are developed  for automatically on and off the appliances with different applications.

Once you start to understand the possibilities of home automation scheduling, you can come up with any number of useful and creative solutions to make your life better.
In present days most of the automation systems utilize the combination of hardwired and wireless systems for controlling the appliances. 

Security is extremely important for achieving this goal. As this worldwide network of interconnected objects can be exploited anywhere by anyone and anytime, it is necessary to enhance it with strong security foundations able to give birth to a world-changing paradigm.

Tor is a cumulative routing system that has helped many towards &#8220;Safe and Secure Browsing&#8221;. 
Tor can be used to secure our Home Automation, and in unlocking its workings, we will avoid being locked out of our smart home physically.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/119/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/119/feedback/</feedback_url>
            </event>
            <event guid='6e934c83-9257-54e5-8b05-3f79ab367a6e' id='33'>
                <room>Galerie</room>
                <title>Social Event</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-21T17:00:00+00:00</date>
                <start>17:00</start>
                <duration>04:55</duration>
                <abstract>None</abstract>
                <slug>ASG2017-33-social-event</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Meet people and be merry!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/143/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/143/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='3' date='2017-10-22' start='2017-10-22T04:00:00+00:00' end='2017-10-23T03:59:00+00:00'>
        <room name='Event Loft' guid='4d4de03b-f5ab-5847-864f-e5e0199c3e63'>
            <event guid='de621a3c-c947-5a4d-a2c1-f7e2769f7329' id='34'>
                <room>Event Loft</room>
                <title>What If Component xxx Dies? Introducing Self-Healing Kubernetes</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T07:30:00+00:00</date>
                <start>07:30</start>
                <duration>00:25</duration>
                <abstract>Kubernetes promises healing your application on all kinds of failure scenarios, but why not self-heal Kubernetes itself?</abstract>
                <slug>ASG2017-34-what-if-component-xxx-dies-introducing-self-healing-kubernetes</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='26'>Max Leonard Inden</person>
                </persons>
                <language>en</language>
                <description>This talk introduces self-hosted Kubernetes (K8s inside itself) to autonomously recover from failure scenarios with the help of e.g. itself, systemd and checkpointing. We will ask and answer questions like &#8220;What happens when xxx dies&#8221;. The theory will be followed by a demo on a live cluster showcasing what happens when we kill central Kubernetes components, like the API-Server. Let&#8217;s see how well Kubernetes recovers.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/137/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/137/feedback/</feedback_url>
            </event>
            <event guid='8ba00aa1-0ce1-5185-865b-c726d4eb3713' id='35'>
                <room>Event Loft</room>
                <title>kubernetes for toasters?</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T08:00:00+00:00</date>
                <start>08:00</start>
                <duration>00:40</duration>
                <abstract>Potential solutions to achieving containerization on constrained devices.

1. Why?
2. a content addressable elf linker (bolter)
3. space efficient container imaging (korhal)
4. oci compliant runtime (railcar)</abstract>
                <slug>ASG2017-35-kubernetes-for-toasters-</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='27'>Arvid E. Picciani</person>
                </persons>
                <language>en</language>
                <description>potential solutions to achieving containerization on constrained devices.
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/108/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/108/feedback/</feedback_url>
            </event>
            <event guid='2400b3ce-5808-5693-a8e4-5a6fa14ac930' id='36'>
                <room>Event Loft</room>
                <title>Using BPF in Kubernetes</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T08:45:00+00:00</date>
                <start>08:45</start>
                <duration>00:30</duration>
                <abstract>In this talk, I will present different use cases for using BPF in a Kubernetes cluster. BPF is a Linux in-kernel virtual machine and there are different kinds of BPF programs for different subsystems that will be considered: kprobes, traffic control, cgroups, LSM. I&#8217;ll follow with concrete examples, such as Weave Scope&#8217;s HTTP Statistics plugin. Finally, I&#8217;ll share tips and tricks on how to develop your own BPF programs in Kubernetes with the libraries bcc and gobpf, and show ways of easily test those with SemaphoreCI and rkt.
</abstract>
                <slug>ASG2017-36-using-bpf-in-kubernetes</slug>
                <track>Monitoring &amp; Tracing</track>
                
                <persons>
                    <person id='28'>Alban Crequy</person>
                </persons>
                <language>en</language>
                <description>Linux superpowers in the cloud
BPF and Kubernetes are both Open Source technologies on Linux but their respective communities initially had little overlaps. I want to bring more visibility of what BPF can offer to Kubernetes users and developers.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/134/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/134/feedback/</feedback_url>
            </event>
            <event guid='a97c8898-8cde-597c-8660-4b07417188bf' id='37'>
                <room>Event Loft</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-22T09:15:00+00:00</date>
                <start>09:15</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-37-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/150/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/150/feedback/</feedback_url>
            </event>
            <event guid='713dae0e-6277-5729-9906-56d2f9c7f5de' id='38'>
                <room>Event Loft</room>
                <title>Simulate hardware for integration testing</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T09:30:00+00:00</date>
                <start>09:30</start>
                <duration>00:25</duration>
                <abstract>How to get a slightly broken hard disk for testing file systems or udisks? A wifi access point which supports the old 802.11b standard for writing a test case for NetworkManager? Downloading a photo from a particular camera model which you don&apos;t own, but got a libgphoto bug report for? In this hands-on presentation and live demo of various Linux kernel and userspace tools I will show you how.</abstract>
                <slug>ASG2017-38-simulate-hardware-for-integration-testing</slug>
                <track>Debugging &amp; Tooling</track>
                
                <persons>
                    <person id='29'>Martin Pitt</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/121/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/121/feedback/</feedback_url>
            </event>
            <event guid='a08daf2b-f682-5257-b196-93f6bb15d4d8' id='39'>
                <room>Event Loft</room>
                <title>Cyborg Teams</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T10:00:00+00:00</date>
                <start>10:00</start>
                <duration>00:45</duration>
                <abstract>n the Cockpit project we&#8217;ve done something amazing: We&#8217;ve built &#8220;robot&#8221; contributors to an Open Source project. &#8220;Cockpituous&#8221;, our project&#8217;s #5 contributor, is actually our automated team members.

Bots do the mundane tasks that would otherwise use up the time of human contributors. During the talk you can see them self-organizing, finding issues, contributing code changes, making decisions, releasing the software into Linux distros and containers. They work in a completely distributed, organic way, and run in containers.

We&#8217;ll talk about how humans are pair-programming with bots, and moving at a pace that would be unthinkable otherwise. 

Treating the bots as team members is fundamental to achieving this. I&#8217;m excited to show you how to pull that off.
</abstract>
                <slug>ASG2017-39-cyborg-teams</slug>
                <track>Debugging &amp; Tooling</track>
                
                <persons>
                    <person id='20'>Stef Walter</person>
                </persons>
                <language>en</language>
                <description>Happy humans, tired machines
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/130/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/130/feedback/</feedback_url>
            </event>
            <event guid='c71d85e5-70fa-519b-a4ca-cca95c54ee8f' id='40'>
                <room>Event Loft</room>
                <title>Lunch</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-22T10:45:00+00:00</date>
                <start>10:45</start>
                <duration>01:30</duration>
                <abstract>None</abstract>
                <slug>ASG2017-40-lunch</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Yummy food available from food trucks in the courtyard
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/152/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/152/feedback/</feedback_url>
            </event>
            <event guid='bfb1f653-1ee0-51fb-9805-0c43cef65d70' id='41'>
                <room>Event Loft</room>
                <title>Meson and the changing Linux build landscape</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T12:15:00+00:00</date>
                <start>12:15</start>
                <duration>00:40</duration>
                <abstract>The Meson build system has been picking up steam this year and many
fundamental projects have transitioned to it from their old build
systems. In this talk we shall look at the advantages and disadvantages these transitions have brought, what we can expect from the future of build systems and what effect this change may have on the larger Linux ecosystem.</abstract>
                <slug>ASG2017-41-meson-and-the-changing-linux-build-landscape</slug>
                <track>Debugging &amp; Tooling</track>
                
                <persons>
                    <person id='30'>Jussi Pakkanen</person>
                </persons>
                <language>en</language>
                <description>The build system may seem like a simple and unimportant part of software development but it turns out to have implications that are both wide and deep. For example when Debian changed their package builds of systemd to use Meson, the build time on mips machines dropped from almost two hours to less than one. These sorts of changes enable workflows and process changes that simply were not possible or feasible with old tools.

In addition to single projects, this transition has wider implications for distros and other aggregate works. We shall look into some of these changes ranging from full distro rebuilds to the core dependencies and tooling needed to build a modern Linux distro and how that might change in the future.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/111/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/111/feedback/</feedback_url>
            </event>
            <event guid='67cf9956-7810-5f93-91e1-a6dec4448668' id='42'>
                <room>Event Loft</room>
                <title>Insecure containers?</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T13:00:00+00:00</date>
                <start>13:00</start>
                <duration>00:40</duration>
                <abstract>None</abstract>
                <slug>ASG2017-42-insecure-containers-</slug>
                <track>Security</track>
                
                <persons>
                    <person id='31'>Andrew Martin</person>
                </persons>
                <language>en</language>
                <description>Open Source Software underpins the internet and many enterprises, but has repeatedly proven itself vulnerable to accident and tampering. As we fight to continuously secure millions of servers from attack, have we found a crucial panacea in containers?

This talk examines the anatomy of major vulnerabilities, demonstrates their applicability to containerised applications, and explores container native security tooling throughout the pipeline.

It covers recent major CVEs, container security models and extensions (cgroups, namespaces, rlimits, capabilities, Seccomp, AppArmor), their implementation in Docker and Kubernetes (flags, configuration best practices, entitlements), container breakout and hardening live demos, and container native security tooling (static/dynamic analysis, secret leakage prevention, IDS).</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/160/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/160/feedback/</feedback_url>
            </event>
            <event guid='9fab664d-ad52-54f1-888f-21ae80162c07' id='43'>
                <room>Event Loft</room>
                <title>Creating your own 1password clone</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T13:45:00+00:00</date>
                <start>13:45</start>
                <duration>00:30</duration>
                <abstract>AgileBits, the company behind the 1password password manager, published a spec for their &#8220;opvault&#8221; format to show how confident they are in its design. This eliminates the need to reverse-engineer the encryption when trying to read from such a vault on a system where they
don&#8217;t provide their tool.

In this talk we&#8217;ll see an overview of the design of the format, such as the key derivation or the decision to split the meta-data from the details such as username and passwords.

At the same time, the talk will follow the implementation of a library to read this format in Rust, which started as a way to practice the language but now has grown a GUI to display these entries so I can use the vault on my desktop.</abstract>
                <slug>ASG2017-43-creating-your-own-1password-clone</slug>
                <track>Security</track>
                
                <persons>
                    <person id='32'>Carlos Mart&#237;n Nieto</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/158/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/158/feedback/</feedback_url>
            </event>
            <event guid='b0ab9c16-59d3-5c89-b454-2920d96bba93' id='44'>
                <room>Event Loft</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-22T14:15:00+00:00</date>
                <start>14:15</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-44-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/154/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/154/feedback/</feedback_url>
            </event>
            <event guid='5b2e3eeb-4458-5fa3-9ddc-8f38596a2653' id='45'>
                <room>Event Loft</room>
                <title>Building a secure boot chain to userland</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T14:30:00+00:00</date>
                <start>14:30</start>
                <duration>00:40</duration>
                <abstract>Secure boot as it currently exists in desktop Linux distributions is sufficient to verify that the bootloader and kernel have not been tampered with, but generally does nothing to ensure that userland is secure. How can we fix that?</abstract>
                <slug>ASG2017-45-building-a-secure-boot-chain-to-userland</slug>
                <track>Security</track>
                
                <persons>
                    <person id='33'>Matthew Garrett</person>
                </persons>
                <language>en</language>
                <description>Full system security requires the ability to determine that the entire system is in a trustworthy state. Secure Boot as currently implemented in Linux gets us partway there, but not all the way. Going further involves tying into additional security functionality, much of which already exists but is poorly integrated. This presentation will cover what needs to be done, the components required to do it and the integration work that distributions will need to do to make it viable.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/140/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/140/feedback/</feedback_url>
            </event>
            <event guid='64f0a0af-8e8e-5311-a532-660d8869f0ff' id='46'>
                <room>Event Loft</room>
                <title>Updating Embedded Systems -- Putting it all Together</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T15:15:00+00:00</date>
                <start>15:15</start>
                <duration>00:25</duration>
                <abstract>Updating embedded systems reliably requires more than just the actual
update process. This presentation gives an overview of the overall design
and components needed for successful system updates.
</abstract>
                <slug>ASG2017-46-updating-embedded-systems-putting-it-all-together</slug>
                <track>Security</track>
                
                <persons>
                    <person id='34'>Michael Olbrich</person>
                </persons>
                <language>en</language>
                <description>With the security issues in recent year, the fact that updates are
necessary is no longer in question. Still, for embedded systems updates
remain a challenge. With no administrator to handle unexpected problems, a
failed update can render the device unusable, which is not acceptable.

Performing updates reliably is only possible when updating is considered in
the design of the entire system, from the bootloader to the application.

This presentation gives an overview of the building blocks and decisions made
to create such a design. The configuration and boot choices in the bootloader,
watchdog handling, monitoring at boot- and runtime and, of course, the actual
update process itself.

The result is showcased using various open source components such as
barebox, systemd, rauc and casync.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/133/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/133/feedback/</feedback_url>
            </event>
            <event guid='71b47890-5d9c-5279-81e8-a27e595bbb3c' id='47'>
                <room>Event Loft</room>
                <title>Closing</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-22T15:45:00+00:00</date>
                <start>15:45</start>
                <duration>00:30</duration>
                <abstract>None</abstract>
                <slug>ASG2017-47-closing</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Till the next time!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/156/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/156/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Galerie' guid='ca1cc080-f439-567c-890b-96bd4bc87ce0'>
            <event guid='d29893d0-ac25-508b-9d45-10906e8d677b' id='48'>
                <room>Galerie</room>
                <title>kube-spawn: testing multi-node Kubernetes clusters on Linux systems</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T07:30:00+00:00</date>
                <start>07:30</start>
                <duration>00:25</duration>
                <abstract>kube-spawn is a tool to easily start a local, multi-node Kubernetes cluster on a Linux machine. While it was originally meant to be used mainly by developers of Kubernetes, it has been turned into a tool that is great for just trying Kubernetes out. In this talk, I will give a general introduction to kube-spawn and cover integration issues.</abstract>
                <slug>ASG2017-48-kube-spawn-testing-multi-node-kubernetes-clusters-on-linux-systems</slug>
                <track>Debugging &amp; Tooling</track>
                
                <persons>
                    <person id='35'>Dongsu Park</person>
                </persons>
                <language>en</language>
                <description>kube-spawn aims to become the easiest means of testing and fiddling with Kubernetes on Linux. It provides an environment that Kubernetes will eventually be running on, a full Linux OS. On the host side, end users are able to run native Kubernetes command-line tools to get every nodes and pods to work. For each container, kube-spawn bootstaps each instance based on CoreOS Container Linux, with the help of systemd-nspawn.

In this talk I will introduce kube-spawn briefly from the perspective of end users. After that, I&apos;m going to cover several integration issues, which have been discovered during implementation. It will range from administration tools like kubeadm to low-level issues such as btrfs-based storage pools.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/109/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/109/feedback/</feedback_url>
            </event>
            <event guid='c3016d8c-e625-5dca-ab20-914741042a62' id='49'>
                <room>Galerie</room>
                <title>cgroupv2: Linux&apos;s new unified control group hierarchy</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T08:00:00+00:00</date>
                <start>08:00</start>
                <duration>00:40</duration>
                <abstract>cgroupv1 (or just &quot;cgroups&quot;) has helped revolutionise the way that we manage and use containers over the past 8 years. A complete overhaul is coming -- cgroupv2. This talk will go into why a new control group system was needed, the changes from cgroupv1, and practical uses that you can apply to improve the level of control you have over the processes on your servers.

We will go over:

- Design decisions and deviations for cgroupv2 compared to v1
- Pitfalls and caveats you may encounter when migrating to cgroupv2
- Discussion of the internals of cgroupv2
- Practical information about how we are using cgroupv2 inside Facebook</abstract>
                <slug>ASG2017-49-cgroupv2-linux-s-new-unified-control-group-hierarchy</slug>
                <track>Monitoring &amp; Tracing</track>
                
                <persons>
                    <person id='36'>Chris Down</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/96/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/96/feedback/</feedback_url>
            </event>
            <event guid='7bc0642e-7c1b-5137-97f0-6a55ea7405d3' id='50'>
                <room>Galerie</room>
                <title>Unbreaking reloads: strategies for fast and non-blocking reconfiguration</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T08:45:00+00:00</date>
                <start>08:45</start>
                <duration>00:30</duration>
                <abstract>When configuration changes, daemon-reload stops the world in an increasingly unsustainable way. The problem is getting worse for two reasons: (1) heavier use of systemd means more units and longer reload times and (2) expanded use of socket activation/D-Bus activation/automount means more things urgently need PID 1&apos;s attention. There are ways to fix this up, but we&apos;ll need to move away from stopping the world (the main event loop), throwing out most loaded state, reloading state, and then resuming event handling.</abstract>
                <slug>ASG2017-50-unbreaking-reloads-strategies-for-fast-and-non-blocking-reconfiguration</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='12'>David Strauss</person>
                </persons>
                <language>en</language>
                <description>&lt;p&gt;When configuration changes, daemon-reload stops the world in an increasingly unsustainable way. The problem is getting worse for two reasons: (1) heavier use of systemd means more units and longer reload times and (2) expanded use of socket activation/D-Bus activation/automount means more things urgently need PID 1&apos;s attention. There are ways to fix this up, but we&apos;ll need to move away from stopping the world (the main event loop), throwing out most loaded state, reloading state, and then resuming event handling.&lt;/p&gt;

&lt;p&gt;We&apos;ll explore these options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Incremental state reloading, possibly when dependencies and other cascading configuration remains the same&lt;/li&gt;
&lt;li&gt;Amortized state reloading with an atomic switch on completion&lt;/li&gt;
&lt;li&gt;Offloading configuration loading to a separate thread or process, followed by an atomic switch-over on completion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We&apos;ll need to be careful to maintain the memory footprint on resource-constrained devices, but we have options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Choosing to still stop the world when a system is resource-constrained&lt;/li&gt;
&lt;li&gt;Storing unit data in a tree that supports snapshots and copy-on-write, which would constrain the maximum footprint during reload to barely more than it is today&lt;/li&gt;
&lt;/ul&gt;</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/131/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/131/feedback/</feedback_url>
            </event>
            <event guid='0fb8ae41-b813-5b93-8adb-d85b93e360be' id='51'>
                <room>Galerie</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-22T09:15:00+00:00</date>
                <start>09:15</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-51-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/151/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/151/feedback/</feedback_url>
            </event>
            <event guid='7dfabf2f-d26b-5955-a2a4-46bda7f785f3' id='52'>
                <room>Galerie</room>
                <title>Modern deployment for Embedded Linux and IoT</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T09:30:00+00:00</date>
                <start>09:30</start>
                <duration>00:25</duration>
                <abstract>In a world of connected devices, IoT and embedded systems, building robust products needs a modern deployment workflow where security and constant updates are as important as the product itself. The abilities of these systems to protect themselves, isolate applications inside sandboxes or containers, and support constant updates will enhance the product&apos;s security, its longevity and all the offered services around it. In this regard, Linux containers are one of the mechanisms that may allow to solve some of the Embedded and IoT systems problems, however their adoption is still facing some challenges such how can these mechanisms fit in the final embedded environment ?

In order to improve container integration in the Embedded Linux world, we will explore in this presentation some upcoming systemd and Linux kernel features, notably a new Security Permission model for systemd, a new lightweight container environment that allows to deploy and sandbox portable applications, some new kernel hardening features that can be used by both containers and the kernel itself to protect the entire system. Additionally we will discuss how to apply constant updates, how we can integrate this with systemd, and how to update the entire system. Some of this or all of it is already or will be available by default in Yocto project. To conclude we will demonstrate some results on how to block real life vulnerabilities in such Embedded Linux systems.</abstract>
                <slug>ASG2017-52-modern-deployment-for-embedded-linux-and-iot</slug>
                <track>Security</track>
                
                <persons>
                    <person id='37'>Djalal Harouni</person>
                </persons>
                <language>en</language>
                <description>In a world of connected devices, IoT and embedded systems, building robust products needs a modern deployment workflow where security and constant updates are as important as the product itself. The abilities of these systems to protect themselves, isolate applications inside sandboxes or containers, and support constant updates will enhance the product&apos;s security, its longevity and all the offered services around it. In this regard, Linux containers are one of the mechanisms that may allow to solve some of the Embedded and IoT systems problems, however their adoption is still facing some challenges such how can these mechanisms fit in the final embedded environment ?

In order to improve container integration in the Embedded Linux world, we will explore in this presentation some upcoming systemd and Linux kernel features, notably a new Security Permission model for systemd, a new lightweight container environment that allows to deploy and sandbox portable applications, some new kernel hardening features that can be used by both containers and the kernel itself to protect the entire system. Additionally we will discuss how to apply constant updates, how we can integrate this with systemd, and how to update the entire system. Some of this or all of it is already or will be available by default in Yocto project. To conclude we will demonstrate some results on how to block real life vulnerabilities in such Embedded Linux systems.

This presentation will contain: some kernel hardening measures, lightweight containers, new sandbox model and system updates. Also the integration with Yocto will be discussed so we can create better secure embedded Linux systems.

Anyone who is interested in shipping portable secure applications for Embedded Linux systems, improving Embedded Linux and IoT security, kernel hardening and Linux kernel Self Protection projects bits for embedded systems is welcome. The Embedded and IoT industry is facing major security challenges, therefore there is a huge need for improvements.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/112/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/112/feedback/</feedback_url>
            </event>
            <event guid='733b26a6-43d9-53aa-9e9a-4b3c558c6f9b' id='53'>
                <room>Galerie</room>
                <title>Synchronizing images with casync</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T10:00:00+00:00</date>
                <start>10:00</start>
                <duration>00:45</duration>
                <abstract>casync is a novel tool for delivering OS images across the Internet. While there are many tools like this around, casync has some features that set it apart. In this talk we&apos;ll discuss why it is useful for delivering your IoT, container, application or OS images, and how you can make use of it.</abstract>
                <slug>ASG2017-53-synchronizing-images-with-casync</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='14'>Lennart Poettering</person>
                </persons>
                <language>en</language>
                <description>casync is a novel tool for delivering OS images across the Internet. While there are many tools like this around, casync has some features that set it apart. In this talk we&apos;ll discuss why it is useful for delivering your IoT, container, application or OS images, and how you can make use of it.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/125/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/125/feedback/</feedback_url>
            </event>
            <event guid='49a5bd93-fd7c-5d67-be83-72afd8d992d9' id='54'>
                <room>Galerie</room>
                <title>Lunch</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-22T10:45:00+00:00</date>
                <start>10:45</start>
                <duration>01:30</duration>
                <abstract>None</abstract>
                <slug>ASG2017-54-lunch</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Yummy food available from food trucks in the courtyard
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/153/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/153/feedback/</feedback_url>
            </event>
            <event guid='72fbb681-9e40-5a91-be2f-75162554e248' id='55'>
                <room>Galerie</room>
                <title>Which network to use when - Socket Intents</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T12:15:00+00:00</date>
                <start>12:15</start>
                <duration>00:40</duration>
                <abstract>Nowadays, most end devices have multiple network interfaces to connect to the Internet. They usually pick a statically configured default interface, such as WiFi, which they prefer over LTE when both are available, but this is not necessarily the choice that provides the best performance to the application. Socket Intents is a research prototype that addresses the problem of finding policies of which network interface to pick for what kind of traffic or application. It provides several networking APIs through which an application can specify its &quot;Intents&quot;, i.e., what it knows or assumes about its own traffic. The prototype then decides which of the available network interfaces to use.</abstract>
                <slug>ASG2017-55-which-network-to-use-when-socket-intents</slug>
                <track>Networking</track>
                
                <persons>
                    <person id='38'>Theresa Enghardt</person>
                </persons>
                <language>en</language>
                <description>Hacking the Socket API for fun and research
The Socket Intents framework is a research prototype developed at the INET group at TU Berlin, running in user space on Linux and Mac OS. It is written in C and released under a BSD license. Using the Socket Intents library, an application can set up a connection specifying its &quot;Intents&quot;, e.g., whether the connection is going to be a small query or a large bulk transfer, whether it is intended to be a long-lived steady stream of data or a series of interactive bursts, and whether it is time-critical or background traffic. The client library then queries a daemon, the Multi Access Manager (MAM), to make a decision about which of the available network interfaces to bind this connection to, based on the Intents and on current performance estimates if available. 
Socket Intents aims to overcome the assumption that only one network interface would be available at a time, or that there is always the same statically configured &quot;default&quot; interface to use. By itself, the Socket API does not provide a good way to choose between different interfaces without placing the burden on the application. Instead of having each applications implement an interface selection logic by itself, Socket Intents provides one daemon, the Multi Access Manager, to gather as much information about the currently available network interfaces and their performance as possible. As it knows about the performance of the connected networks and about the needs of the application, based on its Intents, the Multi Access Manager can make decisions about which network interface to ues for what connection. It can also make decisions for individual objects, e.g., components of a web page, and schedule them among multiple persistens TCP connections that were established over multiple interfaces. Also, it is compatible with Multi-Path TCP (MPTCP) and can choose to schedule an object or connection over not a single interface, but multiple bundles interfaces.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/138/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/138/feedback/</feedback_url>
            </event>
            <event guid='27c07c45-0d7b-5a30-b497-b44a2fdf119e' id='56'>
                <room>Galerie</room>
                <title>Virtualization: what changed in the last decade</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T13:00:00+00:00</date>
                <start>13:00</start>
                <duration>00:40</duration>
                <abstract>Containers are pretty cool, but in scenarios where they don&apos;t satisfy all the requirements, service providers still rely on virtualization. Hardware virtualization became mainstream 1 decade ago and it never stopped evolving. I even dare to say that virtualization is not boring anymore!
In this presentation I will talk about the most significant hardware changes in the virtualization world.</abstract>
                <slug>ASG2017-56-virtualization-what-changed-in-the-last-decade</slug>
                <track>Process Isolation</track>
                
                <persons>
                    <person id='39'>Hugo Tavares Reis</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/136/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/136/feedback/</feedback_url>
            </event>
            <event guid='00bb87ad-054a-5ab9-9c6f-58bfb9990207' id='57'>
                <room>Galerie</room>
                <title>Update on new WiFi daemon for Linux</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T13:45:00+00:00</date>
                <start>13:45</start>
                <duration>00:30</duration>
                <abstract>This presentation is about a new 802.11 wireless daemon for Linux. It is a lightweight daemon handling all aspects around WiFi support for Linux. It is designed with a tiny footprint for IoT use cases in mind. After its initial release last year, this provides the update on the progress and its integration into ConnMan and Network Manager.</abstract>
                <slug>ASG2017-57-update-on-new-wifi-daemon-for-linux</slug>
                <track>Networking</track>
                
                <persons>
                    <person id='15'>Marcel Holtmann</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/132/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/132/feedback/</feedback_url>
            </event>
            <event guid='7293f8c0-a26d-5bd9-93bf-2a637e4d7ead' id='58'>
                <room>Galerie</room>
                <title>Break</title>
                <subtitle></subtitle>
                <type>default</type>
                <date>2017-10-22T14:15:00+00:00</date>
                <start>14:15</start>
                <duration>00:15</duration>
                <abstract>None</abstract>
                <slug>ASG2017-58-break</slug>
                <track>default</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Have a tea, coffee and/or Club Mate!
</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/155/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/155/feedback/</feedback_url>
            </event>
            <event guid='214824e8-012d-53fe-92a5-1d8d2dba2651' id='59'>
                <room>Galerie</room>
                <title>What&apos;s in a container? The OCI Answer</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T14:30:00+00:00</date>
                <start>14:30</start>
                <duration>00:10</duration>
                <abstract>The container has become one of the most overloaded industry buzzwords of the last five years. From Jails to LXC to Zones to systemd-nspawn Docker to rkt - there&apos;s an assortment of different tools on different platforms that call themselves containers, and no clear consensus what it means when it comes to distributing containers or implementing the underlying technical details. The Open Container Initiative was formed in 2015 to try to remedy this situation by establishing a shared set of container standards for different implementers to agree on. With representatives from all major server operating system platforms, the Initiative has made great strides towards specifying a truly interoperable container. The two key OCI projects recently hit their canonical 1.0 version; this talk will explain what OCI is and what that milestone means for the container ecosystem.</abstract>
                <slug>ASG2017-59-what-s-in-a-container-the-oci-answer</slug>
                <track>Process Isolation</track>
                
                <persons>
                    <person id='40'>Jon Boulle</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/157/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/157/feedback/</feedback_url>
            </event>
            <event guid='ab848276-925e-5eb7-8e94-8500fbf929c9' id='60'>
                <room>Galerie</room>
                <title>Tango with systemd</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T14:45:00+00:00</date>
                <start>14:45</start>
                <duration>00:25</duration>
                <abstract>Used by many major distributions, systemd is widely known in the desktop and
server world. But it is not so common to find it in embedded product.
In this talk, we will show how systemd can be a real benefit for the embedded
world; for both your sanity and your time.
We will discuss how systemd was integrated into Phantom, a speaker from
Devialet, and what was the pro and cons of using it.</abstract>
                <slug>ASG2017-60-tango-with-systemd</slug>
                <track>Service Management</track>
                
                <persons>
                    <person id='41'>Maxime Hadjinlian</person>
                </persons>
                <language>en</language>
                <description>Building a product from scratch is a challenge, even more so with a small team.
Every line of code that you don&apos;t have to maintain; every hour you win by using
an already existing piece of code that solve your problem, is more hours you
can spend creating new features for your product.
Using systemd in an embedded device is not a choice done by many, but it can be
really beneficial to your product, your team and yourself.
We&apos;ll first start discussing how to reduce systemd to debunk the fact that it&apos;s
huge.
Then we will see the benefits of using systemd and how it can help you build
your system without worrying.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/128/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/128/feedback/</feedback_url>
            </event>
            <event guid='a3165a14-c768-5c89-b5b2-5bb95bd3300a' id='61'>
                <room>Galerie</room>
                <title>Journal as a Storage and Other Adventures in User Session Recording</title>
                <subtitle></subtitle>
                <type>presentation</type>
                <date>2017-10-22T15:15:00+00:00</date>
                <start>15:15</start>
                <duration>00:25</duration>
                <abstract>See how Red Hat&apos;s Session Recording project is using Systemd Journal to store and playback recordings of terminal sessions. Wonder at the challenges the project faces, such as dealing with various terminal types, character encodings, random playback positioning, etc.</abstract>
                <slug>ASG2017-61-journal-as-a-storage-and-other-adventures-in-user-session-recording</slug>
                <track>Security</track>
                
                <persons>
                    <person id='42'>Nikolai Kondrashov</person>
                </persons>
                <language>en</language>
                <description>Red Hat&apos;s customers in financial, medical, government and other areas have been asking for a session recording feature for a while, and so the User Session Recording project was started.

Nikolai Kondrashov is going to introduce our project briefly and then show how we use Systemd Journal to store and playback recordings of terminal sessions for our Cockpit UI. He is going to talk about limitations of, and possible improvements for this solution, and then about other challenges the project faces: dealing with different terminal types, character encodings, implementing recording playback, etc. And, of course, there is going to be a demo!</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://cfp.all-systems-go.io/ASG2017/talk/107/</url>
                <feedback_url>https://cfp.all-systems-go.io/ASG2017/talk/107/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    
</schedule>
