Continuous Architecture in Practice


Book Description

Update Your Architectural Practices for New Challenges, Environments, and Stakeholder Expectations "I am continuously delighted and inspired by the work of these authors. Their first book laid the groundwork for understanding how to evolve the architecture of a software-intensive system, and this latest one builds on it in some wonderfully actionable ways." --Grady Booch, Chief Scientist for Software Engineering, IBM Research Authors Murat Erder, Pierre Pureur, and Eoin Woods have taken their extensive software architecture experience and applied it to the practical aspects of software architecture in real-world environments. Continuous Architecture in Practice provides hands-on advice for leveraging the continuous architecture approach in real-world environments and illuminates architecture's changing role in the age of Agile, DevOps, and cloud platforms. This guide will help technologists update their architecture practice for new software challenges. As part of the Vaughn Vernon Signature Series, this title was hand-selected for the practical, delivery-oriented knowledge that architects and software engineers can quickly apply. It includes in-depth guidance for addressing today's key quality attributes and cross-cutting concerns such as security, performance, scalability, resilience, data, and emerging technologies. Each key technique is demonstrated through a start-to-finish case study reflecting the authors' deep experience with complex software environments. Key topics include: Creating sustainable, coherent systems that meet functional requirements and the quality attributes stakeholders care about Understanding team-based software architecture and architecture as a "flow of decisions" Understanding crucial issues of data management, integration, and change, and the impact of varied data technologies on architecture Architecting for security, including continuous threat modeling and mitigation Architecting for scalability and resilience, including scaling microservices and serverless environments Using architecture to improve performance in continuous delivery environments Using architecture to apply emerging technologies successfully Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.




Continuous Architecture


Book Description

Continuous Architecture provides a broad architectural perspective for continuous delivery, and describes a new architectural approach that supports and enables it. As the pace of innovation and software releases increases, IT departments are tasked to deliver value quickly and inexpensively to their business partners. With a focus on getting software into end-users hands faster, the ultimate goal of daily software updates is in sight to allow teams to ensure that they can release every change to the system simply and efficiently. This book presents an architectural approach to support modern application delivery methods and provide a broader architectural perspective, taking architectural concerns into account when deploying agile or continuous delivery approaches. The authors explain how to solve the challenges of implementing continuous delivery at the project and enterprise level, and the impact on IT processes including application testing, software deployment and software architecture. Covering the application of enterprise and software architecture concepts to the Agile and Continuous Delivery models Explains how to create an architecture that can evolve with applications Incorporates techniques including refactoring, architectural analysis, testing, and feedback-driven development Provides insight into incorporating modern software development when structuring teams and organizations




Software Architecture in Practice


Book Description

This is the eagerly-anticipated revision to one of the seminal books in the field of software architecture which clearly defines and explains the topic.




Building Evolutionary Architectures


Book Description

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.




Continuous Architecture in Practice


Book Description

Revamp Your Architectural Practices for New Challenges, Environments, and Stakeholder Expectations "This book recognizes that software architecture is not the merely conceptual domain of disconnected experts but is the . . . give-and-take daily tussle of team members who have to balance trade-offs and competing forces to deliver resilient, high-performing, secure applications. . . . [It] bridges the significant gap between the 'Earth from orbit' view and the pavement-level view of refactoring microservice code." --Kurt Bittner, VP, Enterprise Solutions, Scrum.org Authors Murat Erder, Pierre Pureur, and Eoin Woods have taken their extensive enterprise architecture experience and applied it to the practical aspects of continuous architecture in real-world environments. Continuous Architecture in Practice provides hands-on advice for leveraging continuous architecture in real-world environments and illuminates architecture's changing role in the age of Agile, DevSecOps, and cloud platforms. This guide will help technologists update their architecture practice for new application challenges. As part of the Vaughn Vernon Addison-Wesley Signature Series, this title was hand-selected for the practical, delivery-oriented knowledge that architects and software engineers can quickly apply. It includes in-depth guidance for addressing today's key quality attributes, including cross-cutting concerns such as security, performance, scalability, resilience, data, and innovation. Each key technique is demonstrated through a start-to-finish case study reflecting the authors' deep experience evolving complex software environments. Create sustainable, coherent systems that meet functional requirements and the quality attributes stakeholders care about Understand team-based software architecture and architecture as a "flow of decisions" Reflect varied data technologies and crucial issues of data management, integration, and change Architect for security, including continuous threat modeling and mitigation Use architecture to improve performance in continuous delivery environments Architect for scalability and scale microservices and serverless environments Use architecture to apply emerging technologies more successfully.




Software Architect’s Handbook


Book Description

A comprehensive guide to exploring software architecture concepts and implementing best practices Key Features Enhance your skills to grow your career as a software architect Design efficient software architectures using patterns and best practices Learn how software architecture relates to an organization as well as software development methodology Book Description The Software Architect’s Handbook is a comprehensive guide to help developers, architects, and senior programmers advance their career in the software architecture domain. This book takes you through all the important concepts, right from design principles to different considerations at various stages of your career in software architecture. The book begins by covering the fundamentals, benefits, and purpose of software architecture. You will discover how software architecture relates to an organization, followed by identifying its significant quality attributes. Once you have covered the basics, you will explore design patterns, best practices, and paradigms for efficient software development. The book discusses which factors you need to consider for performance and security enhancements. You will learn to write documentation for your architectures and make appropriate decisions when considering DevOps. In addition to this, you will explore how to design legacy applications before understanding how to create software architectures that evolve as the market, business requirements, frameworks, tools, and best practices change over time. By the end of this book, you will not only have studied software architecture concepts but also built the soft skills necessary to grow in this field. What you will learn Design software architectures using patterns and best practices Explore the different considerations for designing software architecture Discover what it takes to continuously improve as a software architect Create loosely coupled systems that can support change Understand DevOps and how it affects software architecture Integrate, refactor, and re-architect legacy applications Who this book is for The Software Architect’s Handbook is for you if you are a software architect, chief technical officer (CTO), or senior developer looking to gain a firm grasp of software architecture.




Strategic Monoliths and Microservices


Book Description

Make Software Architecture Choices That Maximize Value and Innovation "[Vernon and Jaskuła] provide insights, tools, proven best practices, and architecture styles both from the business and engineering viewpoint. . . . This book deserves to become a must-read for practicing software engineers, executives as well as senior managers." --Michael Stal, Certified Senior Software Architect, Siemens Technology Strategic Monoliths and Microservices helps business decision-makers and technical team members clearly understand their strategic problems through collaboration and identify optimal architectural approaches, whether the approach is distributed microservices, well-modularized monoliths, or coarser-grained services partway between the two. Leading software architecture experts Vaughn Vernon and Tomasz Jaskuła show how to make balanced architectural decisions based on need and purpose, rather than hype, so you can promote value and innovation, deliver more evolvable systems, and avoid costly mistakes. Using realistic examples, they show how to construct well-designed monoliths that are maintainable and extensible, and how to gradually redesign and reimplement even the most tangled legacy systems into truly effective microservices. Link software architecture planning to business innovation and digital transformation Overcome communication problems to promote experimentation and discovery-based innovation Master practices that support your value-generating goals and help you invest more strategically Compare architectural styles that can lead to versatile, adaptable applications and services Recognize when monoliths are your best option and how best to architect, design, and implement them Learn when to move monoliths to microservices and how to do it, whether they're modularized or a "Big Ball of Mud" Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.




Continuous Delivery in Java


Book Description

Continuous delivery adds enormous value to the business and the entire software delivery lifecycle, but adopting this practice means mastering new skills typically outside of a developer’s comfort zone. In this practical book, Daniel Bryant and Abraham Marín-Pérez provide guidance to help experienced Java developers master skills such as architectural design, automated quality assurance, and application packaging and deployment on a variety of platforms. Not only will you learn how to create a comprehensive build pipeline for continually delivering effective software, but you’ll also explore how Java application architecture and deployment platforms have affected the way we rapidly and safely deliver new software to production environments. Get advice for beginning or completing your migration to continuous delivery Design architecture to enable the continuous delivery of Java applications Build application artifacts including fat JARs, virtual machine images, and operating system container (Docker) images Use continuous integration tooling like Jenkins, PMD, and find-sec-bugs to automate code quality checks Create a comprehensive build pipeline and design software to separate the deploy and release processes Explore why functional and system quality attribute testing is vital from development to delivery Learn how to effectively build and test applications locally and observe your system while it runs in production




Designing Software Architectures


Book Description

Designing Software Architectures will teach you how to design any software architecture in a systematic, predictable, repeatable, and cost-effective way. This book introduces a practical methodology for architecture design that any professional software engineer can use, provides structured methods supported by reusable chunks of design knowledge, and includes rich case studies that demonstrate how to use the methods. Using realistic examples, you’ll master the powerful new version of the proven Attribute-Driven Design (ADD) 3.0 method and will learn how to use it to address key drivers, including quality attributes, such as modifiability, usability, and availability, along with functional requirements and architectural concerns. Drawing on their extensive experience, Humberto Cervantes and Rick Kazman guide you through crafting practical designs that support the full software life cycle, from requirements to maintenance and evolution. You’ll learn how to successfully integrate design in your organizational context, and how to design systems that will be built with agile methods. Comprehensive coverage includes Understanding what architecture design involves, and where it fits in the full software development life cycle Mastering core design concepts, principles, and processes Understanding how to perform the steps of the ADD method Scaling design and analysis up or down, including design for pre-sale processes or lightweight architecture reviews Recognizing and optimizing critical relationships between analysis and design Utilizing proven, reusable design primitives and adapting them to specific problems and contexts Solving design problems in new domains, such as cloud, mobile, or big data




Continuous Integration


Book Description

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.