Democratizing Deployment
with Ellie and Pep
@elliefairholm and @Gilacost
Ellie Fairholm and Josep (Pep) Giralt D’Lacoste are on a mission to democratize the process of software deployment and encourage development teams to “fail fast.”
We spoke with Ellie and Pep about their new book for BEAM developers on how to combine development and operations with the goal of creating a frictionless team that delivers frequent small releases.
Engineering Elixir Applications: Navigate Each Stage of Software Delivery with Confidence by Ellie Fairholm and Josep Giralt D’Lacoste
INTERVIEW
Watch to the complete interview here:
WIN!
We’re giving away one of Ellie and Pep’s books to one lucky winner! Simply post a comment or a question in his ask me anything (AMA) below, and the Devtalk bot will randomly pick a winner at a time of the author’s choosing…then automatically update this thread with the results!
Interview Highlights
For those who prefer to read rather than watch or listen, following are highlights from the interview.
On shared responsibility…
The DevOps approach that Ellie and Pep advocate combines continuous integration, delivery, and deployment in a pattern of source, build, test, and deploy. It also has a tendency to democratize software development and build happy teams. There are many compelling reasons to move to a CI/CD pipeline. “If you’ve Dockerized everything, people can quickly spin up the app. You can deploy faster. Ship features faster even if new people come in.” says Ellie.
“If you submit a pull request to the main branch and it’s automatically deployed, you know—everyone knows—that it’s going to be deployed, so everyone is going to be more careful,” Pep muses. If teams can shift towards CI/CD, deployments become routine and manageable. “And then you have healthier teams and there’s more love in the environment because knowledge is shared, problems are shared, and we all take care of each other.”
“Sharing responsibilities, it creates a lot more empathy across teams. It makes teams work, I think, better and more efficiently.” Ellie postulates.
When the documentation is the code you can “let the code base be the source of truth of everything. If you have continuous delivery, you don’t need to ask anyone how the application is deployed,” explains Pep, “just go to the Github workflow…and see how it’s deployed.”
On environment integrity…
Differences in development and production environments often mean bugs in production that can’t be reproduced locally. “Hopefully, [those issues] will be a thing of the past.” says Ellie. “One of the big things that we talk about is environment integrity…using the same tools for development and production. So …you can replicate all production scenarios in development.”
For example, with Docker Swarm, you can use the Docker Compose file for both development and production. One of the downsides is that it’s easy to lock yourself into particular versions of libraries and everything else. Ellie and Pep use tools like Renovate that regularly check your dependencies and submit pull requests to update those dependencies.
On visualizing infrastructure…
Engineering Elixir Applications offers much more than just the practical steps to deliver BEAM applications using a DevOps approach. The authors developed an application for the book that visualizes infrastructure operations. They built a Phoenix LiveView application that “allows you to visualize the different nodes in which availability zones they are deployed. It allows you to see the CPU usage. And then it allows you also to stress the cluster and see the different auto-scaling activities.”
Visualization makes the process much less abstract and more tangible to developers who may not be experienced with deployment-related tasks and information. And while the book uses the BEAM ecosystem for examples, principles like CI/CD, shared responsibility, environment integrity, and Kaizen are universal. For example, no matter the framework, tools, or language, submitting something small frequently and then testing it offers benefits. “You aim small, you fail small.” Pep reminds us.
On writing together…
The couple met while working at the same company six years ago, where they realized they shared a passion for improving deployment practices. And now they are writing a book together about deploying software, which has the potential to be quite stressful.
But just as they automate away friction points to make teams a happier place to be, they automate away some of the pain points of writing together.
“We have our own CDI pipeline for the book, for each chapter, checking all the code in each chapter to make sure it works.” Ellie explains.
They wanted to reproduce the whole infrastructure that was being built in each of the chapters, but decided to do the minimum. “For example, if we have a Terraform module, let’s try to validate, check the format…and try to at least plan the Terraform but not apply it.” says Pep.
Ellie and Pep are able to communicate openly without ego to avoid conflict and make writing a book together a happy experience.
Dave Thomas asks if they guarantee that if you follow CI/CD practices you’ll find love. “Yes, that should be our marketing tagline,” Ellie says, laughing. “Everyone should be in love with each other.” Pep adds with a grin.
Now that you know their story, add Ellie and Pep’s book to your developer toolkit today! Don’t forget you can get 35 percent off with the coupon code devtalk.com!
Engineering Elixir Applications
book-engineering-elixir-applications
Follow the authors:
Ellie Fairholm
- Github: elliefairholm
- Website: ellie fairholm
- LinkedIn: elliefairholm
Josep Giralt D’Lacoste
- Github: gilacost
- Website: Pepo Ventures
- LinkedIn: joseplluisgiraltdlacoste
- X: @JosepGiLacost
YOUR TURN!
We’re now opening up the thread for your questions! Ask Ellie and Pep anything! Please keep it clean and don’t forget: by participating you automatically enter the competition to win one of Ellie and Pep’s ebooks!