You are viewing content from a past/completed QCon

Track: Modern Operating Systems

Location: Bayview AB

Day of week: Monday

Operating systems occupy a critical spot in the systems we build, but are often ignored as something that is just there, providing an interface. Recently though there has been a huge amount of innovation in the area of operating systems. Rather than being an esoteric field, it has opened up to new experiments and a wider community. Performance requirements have meant that architectural changes are necessary, leading to different designs, such as eBPF, a new in kernel programming language, and high-performance userspace device drivers. Unikernels question the monolithic architecture, building an application-centric operating environment. Emulation has become a realistic way of running existing code in new environments, with Microsoft supporting Linux on Windows as a leading example. New programming languages are being used, and there is an explosion of innovation. This track explores these changes that are taking place in this exciting field.

Track Host: Justin Cormack

Developer @Docker

Justin Cormack is developer at Docker, working on unikernels.

10:35am - 11:25am

How to Make Linux Microservice-Aware With Cilium and eBPF

Container runtimes cause Linux to return to its original purpose: to serve applications interacting directly with the kernel. At the same time, the Linux kernel is traditionally difficult to change and its development process is full of myths. A new efficient in-kernel programming language called eBPF is changing this and allows everyone to extend existing kernel components or glue them together in new forms without requiring to change the kernel itself.

Thomas Graf, Founding Member @CiliumProject

11:50am - 12:40pm

Caching Beyond RAM: The Case for NVMe

Caching architectures at every layer of the stack embody an implicit tradeoff between performance and cost. These tradeoffs however are constantly shifting: new inflection points can emerge alongside advances in storage technology, changes in workload patterns, or fluctuations in hardware supply and demand. 

In this talk, we will explore the design ramifications of the increasing cost of RAM on caching systems. While RAM has always been expensive, DRAM prices have risen by over 50% in 2017, and high densities of RAM involve multi-socket NUMA machines, bloating power and overall costs. Concurrently, alternative storage technologies such as Flash and Optane continue to improve. They have specialized hardware interfaces, consistent performance, high density, and relatively low costs. While there is increasing economic incentive to explore offloading caching from RAM onto NVMe or NVM devices, the implications for performance are still not widely understood.

Alan Kasindorf, OSS Memcached Project Maintainer, previously Memcache / Mcrouter @Facebook & Dir of Edge Engineering @Fastly

1:40pm - 2:30pm

The Operating System in 2018

Why care about the operating system any more? Linux has been around for decades aren't we just done? Actually, there is a huge set of shifts happening in the operating system, and this talk will explain these changes. The operating system space is getting interesting again! 

First, performance is changing everything. The development of faster networking, now at 100Gb and above, combined with faster flash storage, means that our tools need to change in order to make all that performance available to applications and to keep tail latency under control. This led to the development of userspace drivers and a whole new high-performance programming language in the Linux kernel, eBPF. 

Another major change is that emulation is back. Microsoft has Linux running natively on Windows, while Google has gVisor, which emulates Linux on Linux. Why is this happening, and what are the use cases? What new directions will emulation take us? 

Two things though have not changed much yet. The programming languages used in operating systems are pretty much unchanged, with C dominating, and the use of alternatives to the traditional OS, such as unikernels, microkernels and other alternatives have been slow. We look at why this is and how it may change.

Justin Cormack, Developer @Docker

4:10pm - 5:00pm

gVisor: Building and Battle Testing a Userspace OS in Go

gVisor is a container runtime that implements the Linux kernel API in userspace using Go. This talk explains why on earth such a thing exists and covers three main areas of interest: First, architectural challenges associated with userspace kernels, such as traps, faults and memory management. Second, positive and negative experiences with Go as an implementation language -- it's not all about garbage collection. Finally, how to ensure API coverage and compatibility, along with production anecdotes whenever possible.

Adin Scannell, Software Engineer @Google

5:25pm - 6:15pm

Is It Time to Rewrite the Operating System in Rust?

Since its emergence in the 1970s, C has dominated operating systems development:  despite surges of enthusiasm for C++, Java, and others, operating systems -- kernels, drivers, libraries and system commands -- have been and continue to be developed in C.  But with the rise of Rust, that dominance is now rightfully being questioned: with its core values of robustness and blazing fast performance, could Rust reasonably replace C as the lingua franca of operating systems development?  And can the advantages that Rust conveys pay the significant cost of rewriting software that already works?  In this talk, we will seek to answer these questions:  we will explore Rust, explain why it has captured the imagination of so many systems software engineers, and outline where it might best fit in the deep stack of operating system software.

Bryan Cantrill, Co-Creator DTrace, Co-Founder Fishworks Sun Microsystems, & Currently CTO @Joyent

Tracks

  • Building & Scaling High-Performing Teams

    Building, maintaining, and growing a team balanced for skills and aptitudes. Constraint theory, systems thinking, lean, hiring/firing and performance improvement

  • Evolving the JVM

    The JVM continues to evolve. We’ll look at how languages like Kotlin, Graal, Clojure, and Java are evolving the JDK. Expect polyglot, multi-VM, performance, and more in this track.

  • Trust, Safety & Security

    Privacy, confidentiality, safety and security: learning from the frontlines.

  • JavaScript & Transpiler/WebAssembly Track

    JavaScript is the language of the web. Latest practices for JavaScript development in and how transpilers are affecting the way we work. We’ll also look at the work being done with WebAssembly.

  • Modern Operating Systems

    Applied, practical & real-world deep-dive into industry adoption of OS, containers and virtualization, including Linux on.

  • Software Supply Chain

    Securing the container image supply chain (containers + orchestration + security + DevOps).

  • Modern CS in the Real World

    Thoughts pushing software forward, including consensus, CRDT's, formal methods & probabilistic programming.

  • Tech Ethics: The Intersection of Human Welfare & STEM

    What does it mean to be ethical in software? Hear how the discussion is evolving and what is being said in ethics.

  • Optimizing Yourself: Human Skills for Individuals

    Better teams start with a better self. Learn practical skills for IC.

  • Modern Data Architectures

    Today’s systems move huge volumes of data. Hear how places like LinkedIn, Facebook, Uber and more built their systems and learn from their mistakes.

  • Practices of DevOps & Lean Thinking

    Practical approaches using DevOps and a lean approach to delivering software.

  • Operationalizing Microservices: Design, Deliver, Operate

    What's the last mile for deploying your service? Learn techniques from the world's most innovative shops on managing and operating Microservices at scale.

  • Bare Knuckle Performance

    Killing latency and getting the most out of your hardware

  • Architectures You've Always Wondered About

    Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, & more

  • Machine Learning for Developers

    AI/ML is more approachable than ever. Discover how deep learning and ML is being used in practice. Topics include: TensorFlow, TPUs, Keras, PyTorch & more. No PhD required.

  • Production Readiness: Building Resilient Systems

    Making systems resilient involves people and tech. Learn about strategies being used from chaos testing to distributed systems clustering.

  • Surviving Uncertainty: Regulation, Risk, and Compliance

    With so much uncertainty, how do you bulkhead your organization and technology choices? Learn strategies for dealing with uncertainty.

  • Languages of Infra

    This track explores languages being used to code the infrastructure. Expect practices on toolkits and languages like Cloudformation, Terraform, Python, Go, Rust, Erlang.