Log in

goodpods headphones icon

To access all our features

Open the Goodpods app
Close icon
Elixir Wizards - Dan Ivovich from SmartLogic - Elixir in Production

Dan Ivovich from SmartLogic - Elixir in Production

02/28/19 • 28 min

Elixir Wizards

We talk with developers from the team here at SmartLogic about our current practices on deploying Elixir and Phoenix in production.

Dan Ivovich - Director of Development Operations @ SmartLogic

Learn more about how SmartLogic uses Phoenix and Elixir.

00:00 - Fade In

00:30 - Introductions to Eric, Dan and SmartLogic

Dan Ivovich - Director of Development Operations @ SmartLogic

Eric Oestrich - Developer, Elixir Lead @ SmartLogic

Justus Eapen - Full stack developer @ SmartLogic

Introduced to Elixir by an old colleague.

1:20 - What Elixir projects do you have in production?

Several client projects in production. Several Mobile Apps with APIs powered by Phoenix and Elixir.

Baltimore Water Taxi.

A digital marketplace.

And more!

1:57 - Advantages and disadvantages to using Elixir.

We made the switch when a colleague was stoked about Functional Programming and introduced us to Elixir. We were won over by the performance and rich feature sets, OTP, etc.

2:43 - Where are we hosting our Elixir Apps?

  • Heroku
  • AWS
  • Linode
  • Digital Ocean

6:20Deployment process, tools, scripting

  • Ansible - for underlying VPS’s, servers, and more recently deployment itself. (Similar to Capistrano).
  • Distillery
  • Mix.release

7:18 - Zero Downtime Deployments

  • Old school load balancers and rolling restarts

7:46 - What are the performance metrics like? Comparatively.

  • Ruby ends up with memory leaks. That doesn’t happen with Elixir.
  • Memory utilization is flat and low no matter what.
  • “Phenomenal response times”

8:54 - How does Eric think about clustered applications in Elixir?

12:40 - How do we handle background tasks?

  • Started with verk
  • Recently becoming more comfortable with spinning up GenServers
  • “The language itself is built to be concurrent.”

15:06 What libraries are we using in prod?

  • First thing: You don’t need a whole lot because the language is so well designed.
  • Phoenix - web framework
  • Ecto - sort of an ORM
  • Distillery - for releases
  • Bamboo - for sending emails
  • Quantum - for task scheduling
  • Timex - for dates and times, and timezones
  • Cachex - for caching

18:20- What third party integrations have we attempted

  • Stripe
  • Square
  • Twilio
  • Mindbody

Always building our own clients. Using HTTPoison

19:58Has Elixir ever saved the day in production?

It’s saved many days by PREVENTING ISSUES. Systems are architected for reliability and fault-tolerance.

21:48 - Where do supervision trees come from? What is OTP?

  • OTP is an Erlang standard lib
  • Includes supervision trees, genservers, ETS, and a lot of stuff we don’t even know about!
  • gen_tcp
  • Mnesia
  • dets

23:43- Tips for devs considering running elixir in production.

  • Jump in and read the docs
  • Understand how systems boot, distillery releases, config providers, etc.
  • “Good server monitoring hygiene”
  • “DIVE IN!” 19:54 Outro

Learn more about how SmartLogic uses Phoenix and Elixir.

Special Guest: Dan Ivo...

plus icon
bookmark

We talk with developers from the team here at SmartLogic about our current practices on deploying Elixir and Phoenix in production.

Dan Ivovich - Director of Development Operations @ SmartLogic

Learn more about how SmartLogic uses Phoenix and Elixir.

00:00 - Fade In

00:30 - Introductions to Eric, Dan and SmartLogic

Dan Ivovich - Director of Development Operations @ SmartLogic

Eric Oestrich - Developer, Elixir Lead @ SmartLogic

Justus Eapen - Full stack developer @ SmartLogic

Introduced to Elixir by an old colleague.

1:20 - What Elixir projects do you have in production?

Several client projects in production. Several Mobile Apps with APIs powered by Phoenix and Elixir.

Baltimore Water Taxi.

A digital marketplace.

And more!

1:57 - Advantages and disadvantages to using Elixir.

We made the switch when a colleague was stoked about Functional Programming and introduced us to Elixir. We were won over by the performance and rich feature sets, OTP, etc.

2:43 - Where are we hosting our Elixir Apps?

  • Heroku
  • AWS
  • Linode
  • Digital Ocean

6:20Deployment process, tools, scripting

  • Ansible - for underlying VPS’s, servers, and more recently deployment itself. (Similar to Capistrano).
  • Distillery
  • Mix.release

7:18 - Zero Downtime Deployments

  • Old school load balancers and rolling restarts

7:46 - What are the performance metrics like? Comparatively.

  • Ruby ends up with memory leaks. That doesn’t happen with Elixir.
  • Memory utilization is flat and low no matter what.
  • “Phenomenal response times”

8:54 - How does Eric think about clustered applications in Elixir?

12:40 - How do we handle background tasks?

  • Started with verk
  • Recently becoming more comfortable with spinning up GenServers
  • “The language itself is built to be concurrent.”

15:06 What libraries are we using in prod?

  • First thing: You don’t need a whole lot because the language is so well designed.
  • Phoenix - web framework
  • Ecto - sort of an ORM
  • Distillery - for releases
  • Bamboo - for sending emails
  • Quantum - for task scheduling
  • Timex - for dates and times, and timezones
  • Cachex - for caching

18:20- What third party integrations have we attempted

  • Stripe
  • Square
  • Twilio
  • Mindbody

Always building our own clients. Using HTTPoison

19:58Has Elixir ever saved the day in production?

It’s saved many days by PREVENTING ISSUES. Systems are architected for reliability and fault-tolerance.

21:48 - Where do supervision trees come from? What is OTP?

  • OTP is an Erlang standard lib
  • Includes supervision trees, genservers, ETS, and a lot of stuff we don’t even know about!
  • gen_tcp
  • Mnesia
  • dets

23:43- Tips for devs considering running elixir in production.

  • Jump in and read the docs
  • Understand how systems boot, distillery releases, config providers, etc.
  • “Good server monitoring hygiene”
  • “DIVE IN!” 19:54 Outro

Learn more about how SmartLogic uses Phoenix and Elixir.

Special Guest: Dan Ivo...

Previous Episode

undefined - Smart Software Season 1 Trailer

Smart Software Season 1 Trailer

Welcome to the first season of Smart Software with SmartLogic. We'll be interviewing several companies about how they use Elixir in Production this season. In this preview episode, we introduce ourselves and some of the topics we’ll be covering.

Learn more about how SmartLogic uses Phoenix and Elixir.

Next Episode

undefined - Ryan Billingsley from ClusterTruck - Elixir in Production

Ryan Billingsley from ClusterTruck - Elixir in Production

We talk with Ryan Billingsley from ClusterTruck about their current Elixir projects and how they are deployed.

Ryan Billingsley - ClusterTruck

Find Ryan elsewhere online:
https://twitter.com/ryanbillingsley
https://horriblenight.com/

00:00 - Fade In
00:50 - Ryan introduces us to ClusterTruck.
02:00 - How did Ryan get into Elixir?
03:12 - Where does the name ClusterTruck come from?
04:17 - Tell us about the projects you have in production.
05:50 - Why are you using Elixir in these projects.
08:11 - Disadvantages of using Elixir
09:22 - Comparing Elixir with Ruby, Node, Go.
11:38 - Where is ClusterTruck hosting their applications?
15:03 - Kubernetes?
16:03 - Zero Downtime Deployments?
16:42 - Do you do any clustering?
18:06 - How does Elixir perform compared to other project environments you’ve worked in?
19:52 - How are you solving background task processing?
21:09 - Other libraries?
23:34 - Other third party integrations?
25:46 - Is there a time Elixir has saved the day in Production?
27:47 - Cool OTP Features!
29:45 - Tips to devs thinking about running Elixir in Production.
31:17 - Outro

Learn more about how SmartLogic uses Phoenix and Elixir.

Special Guest: Ryan Billingsley.

Links:

Episode Comments

Generate a badge

Get a badge for your website that links back to this episode

Select type & size
Open dropdown icon
share badge image

<a href="https://goodpods.com/podcasts/elixir-wizards-489891/dan-ivovich-from-smartlogic-elixir-in-production-65124463"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to dan ivovich from smartlogic - elixir in production on goodpods" style="width: 225px" /> </a>

Copy