Designing for Scalability With Erlang/OTP: Implementing Robust, Fault-Tolerant Systems (英語) ペーパーバック – 2016/6/3
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
If you need to build a scalable, fault tolerant system with requirements for high availability, discover why the Erlang/OTP platform stands out for the breadth, depth, and consistency of its features. This hands-on guide demonstrates how to use the Erlang programming language and its OTP framework of reusable libraries, tools, and design principles to develop complex commercial-grade systems that simply cannot fail.
In the first part of the book, you'll learn how to design and implement process behaviors and supervision trees with Erlang/OTP, and bundle them into standalone nodes. The second part addresses reliability, scalability, and high availability in your overall system design. If you're familiar with Erlang, this book will help you understand the design choices and trade-offs necessary to keep your system running.
- Explore OTP's building blocks: the Erlang language, tools and libraries collection, and its abstract principles and design rules
- Dive into the fundamentals of OTP reusable frameworks: the Erlang process structures OTP uses for behaviors
- Understand how OTP behaviors support client-server structures, finite state machine patterns, event handling, and runtime/code integration
- Write your own behaviors and special processes
- Use OTP's tools, techniques, and architectures to handle deployment, monitoring, and operations
Francesco Cesarini has taught Erlang/OTP for fourteen years to all parties involved in the software cycle, including students, developers, support and testers, as well as project and technical managers. He has helped set up Erlang development centres in Ireland, the US and the UK. In 1999, the year after Erlang was released as open source, Francesco moved from Sweden to London and founded Erlang Training and Consulting, a company which he is a majority shareholder of today.
Steve Vinoski has spent most of his software development career, spanning over more than 30 years, working in the areas of middleware and distributed computing systems. He discovered Erlang in 2006 after nearly 20 years of developing middleware systems primarily in C++ and Java, and he's used Erlang as his primary development language ever since. Steve has contributed to a variety of Erlang projects, including the Riak database, developed and maintained by his employer, Basho Technologies, and the Yaws web server. He's also contributed dozens of bug-fix and feature patches to the Erlang/OTP codebase.
Steve is also a long-time author, having written or co-authored over 100 published articles and papers covering middleware, distributed systems, and web development, as well as a couple books. He wrote "The Functional Web" column for IEEE Internet Computing (IC) magazine from 2008 through 2012, and prior to that, from 2002-2008, wrote the "Toward Integration" column for IC as well. He also serves on the magazine s editorial board. From 1995-2005, Steve co-authored the popular Object Interconnections column on distributed object computing for the C++ Report and later the C/C++ Users Journal. Over the years Steve has also given hundreds of conference and workshop presentations and tutorials on middleware, distributed systems, web development, and programming languages, and has served as chair or program committee member for many dozens of conferences and workshops.
The book maintains a good balance between text, code and pictures to explain the subject. Although it was clear to me due to prior art but at certain junctures the graphics should be enhanced to aid the first-time-readers. I am a huge fan of separate reference section, which is missing in the book although they are embedded at places where things are introduced for the first time. Having a separate section saves time when coming back just for them apart exposing the user to specialized content (say research papers). Kudos to Francesco and Steve for making the topic look ever so simple.