<

Bryan Hunt

Open source contributor, solutions architect at Erlang solutions

Bryan is a long time programmer whose career has spanned Perl, ASP, Enterprise Java, Erlang and now Elixir. He's been building software to run on Linux systems since the 90s and worked with all sorts of weird and wonderful virtualisation. Right now, his primary deployment focus is on Kubernetes. He came from the world of eventually consistent via Riak (Dynamo paper implemented in Erlang) but recently has been riding more on the strongly consistent side of the wave. His favourite things include, but are not limited to, the great outdoors, hillbilly music and working/hunting dogs.

Upcoming Activities

Bryan Hunt
Code BEAM America 2021

Event Streaming State of the Union in Modern Architectures

Applications in the Erlang Ecosystem are compatible with modern, cloud agnostic, low-latency, event streaming architectures. The programming model and semantics of the BEAM is ideal for idiomatically expressing, manipulating and routing data -basically- most systems dealing with event streams. 

In this talk, we will examine the real costs, tradeoffs and benefits of connecting an Erlang system to a log streaming system. Having run many of these projects and seen the ecosystem evolve, we consider the pitfalls, trade-offs and optimisations we made along the way. We will examine the current state of library support for such architectural patterns. 

Some of the questions you can expect answered include:

  • Will messages arrive in the right order?
  • How do you resolve duplicate messages? 
  • How important is idempotency? 
  • What is the contemporary Erlang support for Reactive systems? 
  • How do you pair a reactive system with a CP database such as CockroachDb?
  • How do you build a system spanning multiple Kubernetes clusters? 
  • How consistent is enough? 
  • Is consistency constant throughout a system?
  • How do you manage transactional interactions between heterogeneous database systems?
  • How do you ensure zero message loss, and is such a thing even possible?
  • Realistically, how much can you abstract the details of the underlying systems?

Past Activities

Bryan Hunt
Code BEAM STO V
Tutorial/ 09 Sep 2020
09.00 - 17.00

Clueful Elixir with Kubernetes

Deploying, running, operating and debugging Elixir and Erlang applications on Kubernetes doesn’t have to be a big deal once you know a couple of basic tricks and patterns.

In this one-day tutorial, you will learn to build, deploy, scale and cluster Elixir applications on Kubernetes.

 

OBJECTIVES

When you've completed this tutorial, you will:

  • Have a deeper understanding of Kubernetes
  • Know how to operate an Elixir cluster deployed on Kubernetes
  • Know how to set up monitoring Know how to debug issues
  • Know how to template configuration for deployment in multiple environments
  • Learn the techniques for keeping secrets secret

Most of the class will be live coding together. You'll have plenty of time to work on labs along the way as you hone your skills. About half of the class is either lab work or coding side-by-side with your instructor.

 

PREREQUISITES

Attendees should have a basic understanding of Elixir applications, releases, distributed Erlang, and Docker.

Please have docker for Mac (edge) installed on their machine (Kubernetes supported out of the box)(preferable), a working Kubernetes instance, or use a provided GKE Google Kubernetes Engine instance.

 

TARGET AUDIENCE

Elixir/Erlang developers with basic knowledge of Docker wishing to expand their operational ability of running BEAM applications on Kubernetes.

COURSE OUTLINE

  • Best practice for building docker images of Elixir applications
  • Using distillery for building releases
  • Using libcluster for automatically forming Elixir clusters
  • Integrating Prometheus/Grafana monitoring
  • Debugging deployment issues
  • The characteristics of the different Kubernetes controllers
  • How to leverage Kube DNS
  • Autoscaling
  • Working with dependencies and private repositories
  • Startup failure and health checks
  • Exposing Kubernetes applications to the internet (GKE)
Bryan Hunt
Code BEAM SF
Tutorial/ 04 Mar 2020
09.00 - 17.00

Clueful Elixir with Kubernetes

Deploying, running, operating and debugging Elixir and Erlang applications on Kubernetes doesn’t have to be a big deal once you know a couple of basic tricks and patterns. In this one-day tutorial, you will learn to build, deploy, scale and cluster Elixir applications on Kubernetes.

 

OBJECTIVES

When you've completed this tutorial, you will

  • Have a deeper understanding of Kubernetes
  • Know how to operate an Elixir cluster deployed on Kubernetes
  • Know how to set up monitoring
  • Know how to debug issues
  • Know how to template configuration for deployment in multiple environments
  • Techniques for keeping secrets secret

Most of the class will be live coding together. You'll have plenty of time to work on labs along the way as you hone your skills. About half of the class is either lab work or coding side-by-side with your instructor.

 

PREREQUISITES

Attendees should have a basic understanding of Elixir applications, releases, distributed Erlang, and Docker. Please have docker for Mac (edge) installed on their machine (Kubernetes supported out of the box)(preferable), a working Kubernetes instance, or use a provided GKE Google Kubernetes Engine instance.

 

TARGET AUDIENCE

Elixir/Erlang developers with basic knowledge of Docker wishing to expand their operational ability of running BEAM applications on Kubernetes.)

COURSE OUTLINE

  • Best practice for building docker images of Elixir applications
  • Using distillery for building releases
  • Using libcluster for automatically forming Elixir clusters
  • Integrating prometheus/grafana monitoring
  • Debugging deployment issues * The characteristics of the different kubernetes controllers
  • How to leverage Kube DNS
  • Autoscalling
  • Working with dependencies and private repositories 
  • Startup failure and health checks
  • Exposing Kubernetes applications to the internet (GKE)
Bryan Hunt / Veronica Lopez / David Schainker / Thomas Depierre / Jani Leppanen / Jake Morrison
Code Mesh V
06 Nov 2020
21.25 - 22.05

Panel Discussion: The number of orchestration technologies is too damn high!

Service orchestration technologies are an essential tool to manage the chaos of modern application development and infrastructure scaling, but the choices can feel overwhelming. Where should a team get started on their service orchestration journey? How do they ensure this choice can benefit the team’s use case for years to come? David Schainker will facilitate a panel bringing the expertise of Jani Leppanen, Verónica López, Thomas Depierre, and Brian Hunt with the goal of bringing clarity to the fog of such decision making.

Our panelists will discuss their orchestration technology of choice and why it matters to them. We’ll hear about how to learn the ropes, how these technologies boost developer efficiency, how to staff the team to use this technology, and how to get management on board with leveraging newfound efficiencies.

Bryan Hunt
Code BEAM STO 2018
Tutorial/ 30 May 2018
09.00 - 17.30

Implementing a simple HTTP file storage server

09:00-17:00

This tutorial walks attendees through the structure, design, and setup of a distributed HTTP file storage server loving built with Cowboy/Phoenix. The server can handle large file uploads, safely passing the chunked data onwards via a gen_statem server to… well anywhere really, but typically, a remote Erlang process. The current implementation writes to the chunks sequentially to a Unix file system.

The goal of this training is be to store the file chunks via a riak_core back-end, using a custom hashing algorithm (physically adjacent chunk storage) and backed by the leveled LSM storage engine. The intent of this exercise is not to achieve Amazon API compatibility such as that provided by Riak CS (out of scope of this tutorial), but to provide an implementation of standard HTTP verbs (GET, PUT, POST, DELETE) so that the server can easily be manipulated with Unix command line tools such as `curl`, `wget`, etc. Checksums will be a project feature as will some limited form of tagging/iteration.

Bryan Hunt
Code BEAM SF
05 Mar 2020
10.40 - 11.25

Customer retention and how to avoid double billing

My talk will discuss several techniques to prevent double billing during the booking/checkout process. I'll start with simple relational datatabase techniques and work up to distributed CP, and AP implementations. I will also show how modeling a customer activity as an Elixir processes state provides an excellent means to ensure reliable ordere processing.

THIS TALK IN THREE WORDS

Transactions

Modelling

Transactions

OBJECTIVES

Demonstrate simple techniques to prevent double booking - two phase commit using RDBMS, Riak, and a strongly consistent distributed DB. Demonstrate the trade-offs and implementation details.

TARGET AUDIENCE

Elixir/Erlang developers who want to ensure their check-out process works correctly.

Media

Articles: 1

PC Member Bryan Hunt picks his personal talk highlights for Code BEAM STO 2018

Article by Bryan Hunt

Bryan hunt is on the Programme Committee for Code BEAM STO and has been involved with the open source community in various ways for the last 20 years. He is now leading Erlang Solutions' Riak support whilst being an advocate for Elixir and Erlang. In this article, Bryan gives his own personal list of talks he plans on attending at Code BEAM STO this year.

READ MORE

Videos: 1