Showing 5 out of 5 results


The Future of DevOps

The pandemic and remote work have changed the direction of the DevOps movement. Find out what lies ahead with Hanna Park, community manager at Mattermost, and PJ Hagerty, head of developer relations at Mattermost, in their discussion at GOTO Copenhagen 2021.

November 16, 2021

Delivering AI on Code: Live Demo of source{d}

source{d} is building the open-source components to enable large-scale code analysis and machine learning on source code. Their powerful tools can ingest all of the world’s public git repositories turning code into ASTs ready for machine learning and other analyses, all exposed through a flexible and friendly API. Francesc Campoy, VP of Developer Relations at [source{d}](, will show you how to run machine learning on source code with a series of live demos.


Distributed Data Stores on Kubernetes

Are containers good for running anything other than stateless ephemeral services? Let’s explore why and how to run a distributed data store like Cassandra on Kubernetes. This approach can be beneficial for development and testing, as cluster creation, destruction, and set up take minutes instead of hours or days. In this talk, we will explore Kubernetes features, such as Stateful Sets to help work with a distributed data store, Jobs to perform data population, and others, all based on Azure Container Service (ACS/AKS). You’ll leave able to create a Container Service cluster in Azure, deploy a Cassandra Stateful Set, and populate it with data using Jobs.


Building Distributed Systems with Kubernetes

Kubernetes has taken the container orchestration space by storm, but it can also be used to create higher-level application abstractions that allow you to build your own distributed systems from scratch. We’ll take a look at some of the patterns and tools available for creating these abstractions using Kubernetes, including Custom Resource Definitions and the Operator pattern. You’ll leave understanding how CRDs and the Operator pattern work, and how to create your own application abstractions using these techniques.


Designing Features for Mature Systems: Lessons Learned from Manta

Designing a distributed system (or any system) effectively requires careful design decisions based on tradeoffs within a set of constraints. Making changes to a mature system, whether by adding a new feature or just improving it, constrains the problem further: Changes should not violate existing invariant of the system, and they should work harmoniously in the context of tradeoffs made for the system long ago. This talk will explore a case study of expanding a distributed system: designing a multipart upload API for Manta, Joyent’s highly-scalable distributed object store. We will talk about the design goals of Manta, then discuss the goals of the new API and why users wanted it. From there, we will design the feature from the ground up, discussing how to achieve the goals of the API -- including idempotent distributed commit and abort operations and performance goals for other operations -- within Manta’s established invariants and design goals. Distributed systems can be especially difficult to reason about -- especially when making changes to them -- and the lessons learned from adding a multipart upload API to Manta resonate with me for all systems I work on.