Elixir Wizards

Dan Ivovich from SmartLogic - Elixir in Production


Listen Later

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?

          • Going Multi Node (https://www.youtube.com/watch?v=lCUKQnkjajo)
          • Pg2 - process groups
          • Mnesia distributed database (beware!)
          • “Just sending messages to pids because Erlang is great”
          • Swarm / Horde
          • 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 Ivovich.

                      Links:

                      • Going Multi-Node
                      • PG2
                      • mnesia
                      • Swarm
                      • Horde
                      • Verk
                      • Bamboo
                      • Quantum
                      • Cachex
                      ...more
                      View all episodesView all episodes
                      Download on the App Store

                      Elixir WizardsBy SmartLogic LLC

                      • 4.9
                      • 4.9
                      • 4.9
                      • 4.9
                      • 4.9

                      4.9

                      22 ratings