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

Proposed Tracks

  • Machine Learning without a PhD

    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.

  • Building Predictive Data Pipelines

    From personalized news feeds to engaging experiences that forecast demand: learn how innovators are building predictive systems in modern application development.

  • Modern Languages: The Right Language for the Job

    We're polyglot developers. Learn languages that excel at very specific tasks and remove undifferentiated heavy lifting at the language level.

  • Delivering on the Promise of Containers

    Runtime containers, libraries and services that power microservices.

  • Evolving Java & the JVM

    6 month cadence, cloud-native deployments, scale, Graal, Kotlin, and beyond. Learn how the role of Java and the JVM is evolving.

  • Trust, Safety & Security

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

  • Beyond the Web: What’s Next for JavaScript

    JavaScript is the language of the web. Latest practices for JavaScript development in and out of the browser topics: react, serverless, npm, performance, & less traditional interfaces.

  • Modern Operating Systems

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

  • Optimizing You: Human Skills for Individuals

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

  • Modern CS in the Real World

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

  • Human Systems: Hacking the Org

    Power of leadership, Engineering Metrics and strategies for shaping the org for velocity.

  • Building High-Performing Teams

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

  • Software Defined Infrastructure: Kubernetes, Service Meshes & Beyond

    Deploying, scaling and managing your services is undifferentiated heavy lifting. Hear stories, learn techniques and dive deep into what it means to code your infrastructure.

  • 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.

  • Developer Experience: Level up your Engineering Effectiveness

    Improving the end to end developer experience - design, dev, test, deploy and operate/understand.

  • Architectures You've Always Wondered About

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