Author | Michael T. Nygard | |
ISBN-10 | 0978739213 | |
Release | 2007 | |
Pages | 350 | |
Download Link | Click Here |
Provides information on ways to effectively design and release an application. |
Author | Michael T. Nygard | |
ISBN-10 | 9781680504521 | |
Release | 2018-01-08 | |
Pages | 378 | |
Download Link | Click Here |
A single dramatic software failure can cost a company millions of dollars - but can be avoided with simple changes to design and architecture. This new edition of the best-selling industry standard shows you how to create systems that run longer, with fewer failures, and recover better when bad things happen. New coverage includes DevOps, microservices, and cloud-native architecture. Stability antipatterns have grown to include systemic problems in large-scale systems. This is a must-have pragmatic guide to engineering for production systems. If you're a software developer, and you don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic. This updated edition deals with the production of today's systems - larger, more complex, and heavily virtualized - and includes information on chaos engineering, the discipline of applying randomness and deliberate stress to reveal systematic problems. Build systems that survive the real world, avoid downtime, implement zero-downtime upgrades and continuous delivery, and make cloud-native applications resilient. Examine ways to architect, design, and build software - particularly distributed systems - that stands up to the typhoon winds of a flash mob, a Slashdotting, or a link on Reddit. Take a hard look at software that failed the test and find ways to make sure your software survives. To skip the pain and get the experience...get this book. |
Author | Dave Ingram | |
ISBN-10 | 9780470482933 | |
Release | 2009-02-23 | |
Pages | 700 | |
Download Link | Click Here |
This unique and critical book shares no-fail secrets for building software and offers tried-and-true practices and principles for software design, development, and testing for mission-critical systems that must not fail. A veteran software architect walks you through the lifecycle of a project as well as each area of production readiness—functionality, availability, performance and scalability, operability, maintainability, and extensibility, and highlights their key concepts. |
Author | Richard Monson-Haefel | |
ISBN-10 | 9780596555467 | |
Release | 2009-02-05 | |
Pages | 222 | |
Download Link | Click Here |
In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects -- including Neal Ford, Michael Nygard, and Bill de hOra -- offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from years of experience. Among the 97 principles in this book, you'll find useful advice such as: Don't Put Your Resume Ahead of the Requirements (Nitin Borwankar) Chances Are, Your Biggest Problem Isn't Technical (Mark Ramm) Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards) Simplicity Before Generality, Use Before Reuse (Kevlin Henney) For the End User, the Interface Is the System (Vinayak Hegde) It's Never Too Early to Think About Performance (Rebecca Parsons) To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important and how they approach a project. If you want to enhance your career, 97 Things Every Software Architect Should Know is essential reading. |
Author | Susan J. Fowler | |
ISBN-10 | 9781491965948 | |
Release | 2016-11-30 | |
Pages | 172 | |
Download Link | Click Here |
One of the biggest challenges for organizations that have adopted microservice architecture is the lack of architectural, operational, and organizational standardization. After splitting a monolithic application or building a microservice ecosystem from scratch, many engineers are left wondering what’s next. In this practical book, author Susan Fowler presents a set of microservice standards in depth, drawing from her experience standardizing over a thousand microservices at Uber. You’ll learn how to design microservices that are stable, reliable, scalable, fault tolerant, performant, monitored, documented, and prepared for any catastrophe. Explore production-readiness standards, including: Stability and Reliability: develop, deploy, introduce, and deprecate microservices; protect against dependency failures Scalability and Performance: learn essential components for achieving greater microservice efficiency Fault Tolerance and Catastrophe Preparedness: ensure availability by actively pushing microservices to fail in real time Monitoring: learn how to monitor, log, and display key metrics; establish alerting and on-call procedures Documentation and Understanding: mitigate tradeoffs that come with microservice adoption, including organizational sprawl and technical debt |
Author | Michael Keeling | |
ISBN-10 | 1680502093 | |
Release | 2017-10-25 | |
Pages | 360 | |
Download Link | Click Here |
Don't engineer by coincidence-design it like you mean it! Filled with practical techniques, Design It! is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Lead your team as a software architect, ask the right stakeholders the right questions, explore design options, and help your team implement a system that promotes the right -ilities. Share your design decisions, facilitate collaborative design workshops that are fast, effective, and fun-and develop more awesome software! With dozens of design methods, examples, and practical know-how, Design It! shows you how to become a software architect. Walk through the core concepts every architect must know, discover how to apply them, and learn a variety of skills that will make you a better programmer, leader, and designer. Uncover the big ideas behind software architecture and gain confidence working on projects big and small. Plan, design, implement, and evaluate software architectures and collaborate with your team, stakeholders, and other architects. Identify the right stakeholders and understand their needs, dig for architecturally significant requirements, write amazing quality attribute scenarios, and make confident decisions. Choose technologies based on their architectural impact, facilitate architecture-centric design workshops, and evaluate architectures using lightweight, effective methods. Write lean architecture descriptions people love to read. Run an architecture design studio, implement the architecture you've designed, and grow your team's architectural knowledge. Good design requires good communication. Talk about your software architecture with stakeholders using whiteboards, documents, and code, and apply architecture-focused design methods in your day-to-day practice. Hands-on exercises, real-world scenarios, and practical team-based decision-making tools will get everyone on board and give you the experience you need to become a confident software architect. |
Author | John Allspaw | |
ISBN-10 | 9781449394158 | |
Release | 2010-06-21 | |
Pages | 338 | |
Download Link | Click Here |
A web application involves many specialists, but it takes people in web ops to ensure that everything works together throughout an application's lifetime. It's the expertise you need when your start-up gets an unexpected spike in web traffic, or when a new feature causes your mature application to fail. In this collection of essays and interviews, web veterans such as Theo Schlossnagle, Baron Schwartz, and Alistair Croll offer insights into this evolving field. You'll learn stories from the trenches--from builders of some of the biggest sites on the Web--on what's necessary to help a site thrive. Learn the skills needed in web operations, and why they're gained through experience rather than schooling Understand why it's important to gather metrics from both your application and infrastructure Consider common approaches to database architectures and the pitfalls that come with increasing scale Learn how to handle the human side of outages and degradations Find out how one company avoided disaster after a huge traffic deluge Discover what went wrong after a problem occurs, and how to prevent it from happening again Contributors include: John Allspaw Heather Champ Michael Christian Richard Cook Alistair Croll Patrick Debois Eric Florenzano Paul Hammond Justin Huff Adam Jacob Jacob Loomis Matt Massie Brian Moon Anoop Nagwani Sean Power Eric Ries Theo Schlossnagle Baron Schwartz Andrew Shafer |
Author | Neal Ford | |
ISBN-10 | 9781491986325 | |
Release | 2017-09-18 | |
Pages | 190 | |
Download Link | Click Here |
The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time. |
Author | Tim Peierls | |
ISBN-10 | 0132702258 | |
Release | 2006-05-09 | |
Pages | 432 | |
Download Link | Click Here |
Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice , the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them. However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant. This book covers: Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model |
Author | Paul M. Duvall | |
ISBN-10 | 9780321630148 | |
Release | 2007-06-29 | |
Pages | 336 | |
Download Link | Click Here |
For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques. The authors first examine the concept of CI and its practices from the ground up and then move on to explore other effective processes performed by CI systems, such as database integration, testing, inspection, deployment, and feedback. Through more than forty CI-related practices using application examples in different languages, readers learn that CI leads to more rapid software development, produces deployable software at every step in the development lifecycle, and reduces the time between defect introduction and detection, saving time and lowering costs. With successful implementation of CI, developers reduce risks and repetitive manual processes, and teams receive better project visibility. The book covers How to make integration a “non-event” on your software development projects How to reduce the amount of repetitive processes you perform when building your software Practices and techniques for using CI effectively with your teams Reducing the risks of late defect discovery, low-quality software, lack of visibility, and lack of deployable software Assessments of different CI servers and related tools on the market The book’s companion Web site, www.integratebutton.com, provides updates and code examples. |
Author | Gene Kim | |
ISBN-10 | 9780988262584 | |
Release | 2014-10-14 | |
Pages | 348 | |
Download Link | Click Here |
Bill is an IT manager at Parts Unlimited. It's Tuesday morning and on his drive into the office, Bill gets a call from the CEO. The company's new IT initiative, code named Phoenix Project, is critical to the future of Parts Unlimited, but the project is massively over budget and very late. The CEO wants Bill to report directly to him and fix the mess in ninety days or else Bill's entire department will be outsourced. With the help of a prospective board member and his mysterious philosophy of The Three Ways, Bill starts to see that IT work has more in common with manufacturing plant work than he ever imagined. With the clock ticking, Bill must organize work flow, streamline interdepartmental communications, and effectively serve the other business functions at Parts Unlimited. In a fast-paced and entertaining style, three luminaries of the DevOps movement deliver a story that anyone who works in IT will recognize. Readers will not only learn how to improve their own IT organizations, they'll never view IT the same way again. |
Author | Betsy Beyer | |
ISBN-10 | 9781491951170 | |
Release | 2016-03-23 | |
Pages | 552 | |
Download Link | Click Here |
The overwhelming majority of a software system’s lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems? In this collection of essays and articles, key members of Google’s Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You’ll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient—lessons directly applicable to your organization. This book is divided into four sections: Introduction—Learn what site reliability engineering is and why it differs from conventional IT industry practices Principles—Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE) Practices—Understand the theory and practice of an SRE’s day-to-day work: building and operating large distributed computing systems Management—Explore Google's best practices for training, communication, and meetings that your organization can use |
Author | Marian Petre | |
ISBN-10 | 9780262035187 | |
Release | 2016-09-30 | |
Pages | 184 | |
Download Link | Click Here |
What makes an expert software designer? It is more than experience or innate ability. Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software. The book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a drawing on the facing page. For example, "Experts generate alternatives" is illustrated by the same few balloons turned into a set of very different balloon animals. The text is engaging and accessible; the drawings are thought-provoking and often playful. Organized into such categories as "Experts reflect," "Experts are not afraid," and "Experts break the rules," the insights range from "Experts prefer simple solutions" to "Experts see error as opportunity." Readers learn that "Experts involve the user"; "Experts take inspiration from wherever they can"; "Experts design throughout the creation of software"; and "Experts draw the problem as much as they draw the solution." One habit for an aspiring expert software designer to develop would be to read and reread this entertaining but essential little book. The insights described offer a guide for the novice or a reference for the veteran -- in software design or any design profession. |
Author | John F. Dooley | |
ISBN-10 | 148423152X | |
Release | 2017-11-27 | |
Pages | 320 | |
Download Link | Click Here |
Learn the principles of good software design, and how to turn those principles into great code. This book introduces you to software engineering — from the application of engineering principles to the development of software. You'll see how to run a software development project, examine the different phases of a project, and learn how to design and implement programs that solve specific problems. It's also about code construction — how to write great programs and make them work. Whether you're new to programming or have written hundreds of applications, in this book you'll re-examine what you already do, and you'll investigate ways to improve. Using the Java language, you'll look deeply into coding standards, debugging, unit testing, modularity, and other characteristics of good programs. With Software Development, Design and Coding, author and professor John Dooley distills his years of teaching and development experience to demonstrate practical techniques for great coding. What You'll Learn Review modern agile methodologies including Scrum and Lean programming Leverage the capabilities of modern computer systems with parallel programming Work with design patterns to exploit application development best practices Use modern tools for development, collaboration, and source code controls Who This Book Is For Early career software developers, or upper-level students in software engineering courses |
Author | Jim Webber | |
ISBN-10 | 9780596805821 | |
Release | 2010-09-17 | |
Pages | 428 | |
Download Link | Click Here |
REST continues to gain momentum as the best method for building web services, leaving many web architects to consider whether and how to include this approach in their SOA and SOAP-dominated world. This book offers a down-to-earth explanation of REST, with techniques and examples that show you how to design and implement integration solutions using the REST architectural style. Explore several web communications approaches, and discover what makes REST different Walk through the pros and cons of the RESTful approach Learn how the underlying architecture of the Web can drastically simplify programming built on top of it View REST in the context of cloud computing and the Semantic Web Understand how hypermedia serves as a model for computers to process data |
Author | Scott Cranton | |
ISBN-10 | 9781782170310 | |
Release | 2013-12-26 | |
Pages | 424 | |
Download Link | Click Here |
This book is written in a Cookbook style with short recipes showing developers how to effectively implement EIP without breaking everything in the process. It is concise and to the point, and it helps developers get their data flowing between different components without the need to read through page upon page of theory, while also enabling the reader to learn how to create exciting new projects. Camel Enterprise Integration Cookbook is intended for developers who have some familiarity with Apache Camel and who want a quick lookup reference to practical, proven tips on how to perform common tasks. Every recipe also includes a summary and reference pointers for more details that make it easy for you to get a deeper understanding of the Apache Camel capabilities that you will use day to day. |
Author | Dave Zwieback | |
ISBN-10 | 9781491914465 | |
Release | 2015-10-07 | |
Pages | 92 | |
Download Link | Click Here |
Failure is inevitable and a postmortem analysis, conducted in an open, blameless way, is the best way for IT techs and managers to learn from outages and near-misses. But when the "root cause" is determined to be "human error" (or worse, particular humans), the real causes and conditions are lost. In this insightful book, IT veteran Dave Zwieback shows you an approach for making postmortems blameless, so you can focus instead on addressing areas of fragility within systems and organizations. If you’re involved with assessing why something goes wrong on a project or at your company—as a system administrator, developer, team manager, or executive—the concrete steps in this guide will help you find a real solution that works. Recognize and mitigate the effects of stress during outages Learn how to communicate effectively in a charged, high-stakes postmortem conversation Collect the necessary data before the postmortem begins Focus on determining the actual causes and conditions of an outage Learn techniques for writing up a postmortem for either internal or external use |