Navigate Each Stage of Software Delivery with Confidence
Ellie Fairholm, Josep Giralt D’Lacoste

#Elixir
#Erlang
#BEAMOps
#OTP
#Docker
#SOPS
#AWS
#GitHub
روزگار جدایی تیمهای توسعه (Dev) و عملیات (Ops) به پایان رسیده است — جزیرههای دانشی و فرهنگی که با عنوان «بنداز آنطرف دیوار» شناخته میشود، دشمن پیشرفت هستند. بهعنوان یک مهندس یا توسعهدهنده، باید با اطمینان مسئولیت تمام مراحل تحویل نرمافزار را بر عهده بگیرید. این کتاب، پارادایم جدیدی با عنوان BEAMOps معرفی میکند که به شما کمک میکند برنامههای مبتنی بر BEAM را بسازید، تست کنید، مستقر نمایید و اشکالزدایی کنید. استراتژیهای مؤثری برای توسعه و استقرار پیادهسازی کنید؛ از خطوط پایپلاین بهبود مستمر بهره ببرید؛ و یکپارچگی محیط اجرا را تضمین کنید. با ترکیب ارکستراتورهای عملیاتی مانند Docker Swarm با ویژگیهای توزیعپذیری، تحمل خطا و مقیاسپذیری BEAM، میتوانید برنامههایی مقاوم و قابل اعتماد ایجاد کنید.
در ابتدای مسیر BEAMOps، پایهای مستحکم برای پروژهتان میسازید. از دید زیرساخت، یاد میگیرید چگونه پیش از شروع کدنویسی از Terraform برای خودکارسازی استقرار و عملیات استفاده کنید. از دید مدیریت پروژه نیز، چگونگی استفاده از ابزارهایی مانند issues و milestones برای سادهسازی پیگیری وظایف را خواهید آموخت؛ این ساختار اولیه را در طول کتاب حفظ میکنید و مرحلهبهمرحله برای استقرار یک برنامهی مقیاسپذیر Elixir استفاده خواهید کرد.
پس از ساخت این زیربنا، میتوانید وارد فاز ساخت شوید. یک برنامهی Phoenix LiveView ایجاد کرده و با mix releases آشنا میشوید. با استفاده از Docker، استقرارهای خود را قابل اعتماد میکنید. با پیادهسازی یک پایپلاین کارآمد برای استقرار/ادغام مستمر (CI/CD) به کمک GitHub Actions، کدتان را بهطور مداوم بهبود میدهید. برنامهی Phoenix LiveView را مقیاسپذیر میکنید و با استفاده از نودهای AWS EC2، لود بالانسرهای AWS و Docker Swarm از راه دور، یک سیستم BEAM توزیعشده را در محیط تولید اجرا میکنید. یاد میگیرید کدام متریکهای برنامه باید پایش شوند، و چگونه هشدارهایی تعریف کنید تا در صورت عبور از آستانههای مشخص، سیستم بهصورت خودکار مقیاسپذیر شود. کد کمتری را در دفعات بیشتری منتشر کنید — و مطمئن شوید که آن کد درست کار میکند!
رویکرد کاربردی BEAMOps که در این کتاب آموزش داده میشود — که بسطی از پارادایم شناختهشدهی DevOps است — به شما کمک میکند تا به یک توسعهدهندهی چندمهارتی تبدیل شوید که میتواند با اعتمادبهنفس مالکیت تمام مراحل تحویل نرمافزار را در اختیار بگیرد. پس از مطالعهی این کتاب، میدانید چگونه اصول BEAMOps را در کار روزانهی خود به کار ببندید و برنامههایی قابل اعتماد، مقیاسپذیر و قابل فهم در یک تیم هماهنگ ایجاد کنید.
The days of separate dev and ops teams are over - knowledge silos and the "throw it over the fence" culture they create are the enemy of progress. As an engineer or developer, you need to confidently own each stage of the software delivery process. This book introduces a new paradigm, BEAMOps, that helps you build, test, deploy, and debug BEAM applications. Create effective development and deployment strategies; leverage continuous improvement pipelines; and ensure environment integrity. Combine operational orchestrators such as Docker Swarm with the distribution, fault tolerance, and scalability of the BEAM, to create robust and reliable applications.
BEAMOps starts by building a solid foundation for your project. On the infrastructure side, see how to use Terraform before you even start coding to automate your deployment and operations. On the project management side, we show you how to use issues and milestones to simplify tracking; you'll use this foundation as you go through the book, implementing each of the steps required to deploy a scalable Elixir application.
Now that you have a foundation, you can start building. Create a Phoenix LiveView application and explore mix releases. Make your deployments reliable with Docker. Continuously improve your codebase by implementing an efficient continuous deployment/integration pipeline with GitHub Actions. Scale the Phoenix LiveView application and operate a distributed BEAM system in production using AWS EC2 nodes, AWS load balancers, and a remote Docker swarm. Recognize which application metrics should be collected and monitored, and set alerts when certain thresholds are met to ensure that your application auto-scales. Ship less code more often, and ensure it works!
The pragmatic BEAMOps approach that we teach in this book - an extension of the well-known DevOps paradigm - will help you become a multidisciplinary developer who is empowered to own each stage of the software delivery process. After reading this book, you'll understand how to apply the BEAMOps principles in your daily work, creating reliable, scalable, and easy to understand applications in a cooperative team environment.
What You Need:
"Between the local development and the production environments, there lies a "magical" gap that we often overlook. This book takes on the mission of demystifying that "magic." It provides a journey, taking us beyond just writing the application and toward understanding the nuances involved in getting our Elixir applications to the ultimate destination---production."
Alex de Sousa - Founder and Senior Software Engineer, The Broken Link OÜ.
"I highly recommend this book for developers on my team. It's an excellent resource for anyone looking to gain a deeper understanding and control of infrastructure. A great read for any developer!"
Zi Makki - CTO and Founder, Wild Flower Tech SL.
"The structure of the whole book follows a well-organized, clear, and linear pragmatic philosophy...which can make it attractive to engineers who are willing to follow an end-to-end development cycle."
Francisco De Lucas Consuegra - Competence Lead, Klarna.
Table of Contents
About the Author
Ellie Fairholm is a full stack developer on the path to becoming a solutions architect. She excels at communication and believes that no topic is too difficult to learn. She is deeply passionate about making technology available to all, especially to those often underrepresented in the industry. She currently lives in the UK and is committed to working on projects that will one day change the world.
Josep Giralt D'Lacoste (Pep) is the founder of BeamOps Software Consultancy, a company that takes a hands-on approach to simplifying BEAM projects and ensuring lasting sustainability by involving the whole team. He has been working with Elixir for 10 years and helped set up the Elixir Meetup in his home town of Barcelona. He now lives in the UK and is on a mission to empower developers and revolutionize the way technical teams operate.









