DevOps: A Software Architect's Perspective

Addison-Wesley Professional
3
Free sample

The First Complete Guide to DevOps for Software Architects

DevOps promises to accelerate the release of new software features and improve monitoring of systems in production, but its crucial implications for software architects and architecture are often ignored.

In DevOps: A Software Architect’s Perspective, three leading architects address these issues head-on. The authors review decisions software architects must make in order to achieve DevOps’ goals and clarify how other DevOps participants are likely to impact the architect’s work. They also provide the organizational, technical, and operational context needed to deploy DevOps more efficiently, and review DevOps’ impact on each development phase. The authors address cross-cutting concerns that link multiple functions, offering practical insights into compliance, performance, reliability, repeatability, and security.

This guide demonstrates the authors’ ideas in action with three real-world case studies: datacenter replication for business continuity, management of a continuous deployment pipeline, and migration to a microservice architecture.

Comprehensive coverage includes

• Why DevOps can require major changes in both system architecture and IT roles

• How virtualization and the cloud can enable DevOps practices

• Integrating operations and its service lifecycle into DevOps

• Designing new systems to work well with DevOps practices

• Integrating DevOps with agile methods and TDD

• Handling failure detection, upgrade planning, and other key issues

• Managing consistency issues arising from DevOps’ independent deployment models

• Integrating security controls, roles, and audits into DevOps

• Preparing a business plan for DevOps adoption, rollout, and measurement

Read more
Collapse

About the author

Len Bass is a senior principal researcher at National ICT Australia Ltd. (NICTA). He joined NICTA in 2011 after 25 years at the Software Engineering Institute (SEI) at Carnegie Mellon University. He is the coauthor of two award-winning books in software architecture—Software Architecture in Practice, Third Edition (Addison-Wesley 2013) and Documenting Software Architectures: Views and Beyond, Second Edition (Addison-Wesley 2011)—as well as several other books and numerous papers in computer science and software engineering on a wide range of topics. Len has more than 50 years’ experience in software development and research, which has resulted in papers on operating systems, database man­agement systems, user interface software, software architecture, product line sys­tems, and computer operations. He has worked or consulted in multiple domains, including scientific analysis, embedded systems, and information and financial systems.

Ingo Weber is a senior researcher in the Software Systems Research Group at NICTA in Sydney, Australia, as well as an adjunct senior lecturer at CSE at the University of New South Wales (UNSW). Prior to NICTA, Ingo held posi­tions at UNSW and at SAP Research Karlsruhe, Germany. His research interests include cloud computing, DevOps, business process management, and artificial intelligence (AI). He has published over 60 peer-reviewed papers, and served as a reviewer or program committee member for many prestigious scientific jour­nals and conferences. Ingo holds a Ph.D. and a Diploma from the University of Karlsruhe, and an MSc from the University of Massachusetts at Amherst.

Liming Zhu is a research group leader and principal researcher at NICTA. He holds conjoint positions at the University of New South Wales (UNSW) and the University of Sydney. Liming has published over 80 peer-reviewed papers. He formerly worked in several technology lead positions in the software industry before obtaining a Ph.D. in software engineering from UNSW. He is a committee member of the Standards Australia IT-015 (system and software engineering), contributing to ISO/SC7. Liming’s research interests include software architec­ture and dependable systems.

Read more
Collapse
4.3
3 total
Loading...

Additional Information

Publisher
Addison-Wesley Professional
Read more
Collapse
Published on
May 8, 2015
Read more
Collapse
Pages
99998
Read more
Collapse
ISBN
9780134049878
Read more
Collapse
Read more
Collapse
Read more
Collapse
Language
English
Read more
Collapse
Genres
Computers / Software Development & Engineering / General
Read more
Collapse
Content Protection
This content is DRM protected.
Read more
Collapse
Eligible for Family Library

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
Be a Better Developer and Deliver Better Code

Despite advanced tools and methodologies, software projects continue to fail. Why? Too many organizations still view software development as just another production line. Too many developers feel that way, too—and they behave accordingly.

In The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso offers a better and more fulfilling path. If you want to develop software with pride and professionalism; love what you do and do it with excellence; and build a career with autonomy, mastery, and purpose, it starts with the recognition that you are a craftsman. Once you embrace this powerful mindset, you can achieve unprecedented levels of technical excellence and customer satisfaction.

Mancuso helped found the world’s largest organization of software craftsmen; now, he shares what he’s learned through inspiring examples and pragmatic advice you can use in your company, your projects, and your career.

You will learn

Why agile processes aren’t enough and why craftsmanship is crucial to making them work How craftsmanship helps you build software right and helps clients in ways that go beyond code How and when to say “No” and how to provide creative alternatives when you do Why bad code happens to good developers and how to stop creating and justifying it How to make working with legacy code less painful and more productive How to be pragmatic—not dogmatic—about your practices and tools How to lead software craftsmen and attract them to your organization What to avoid when advertising positions, interviewing candidates, and hiring developers How developers and their managers can create a true culture of learning How to drive true technical change and overcome deep patterns of skepticism

Sandro Mancuso has coded for startups, software houses, product companies, international consultancies, and investment banks. In October 2013, he cofounded Codurance, a consultancy based on Software Craftsmanship principles and values. His involvement with Software Craftsmanship began in 2010, when he founded the London Software Craftsmanship Community (LSCC), now the world’s largest and most active Software Craftsmanship community, with more than two thousand craftsmen. For the past four years, he has inspired and helped developers to organize Software Craftsmanship communities throughout Europe, the United States, and the rest of the world.

A new, quantitative architecture simulation approach to software design that circumvents costly testing cycles by modeling quality of service in early design states.

Too often, software designers lack an understanding of the effect of design decisions on such quality attributes as performance and reliability. This necessitates costly trial-and-error testing cycles, delaying or complicating rollout. This book presents a new, quantitative architecture simulation approach to software design, which allows software engineers to model quality of service in early design stages. It presents the first simulator for software architectures, Palladio, and shows students and professionals how to model reusable, parametrized components and configured, deployed systems in order to analyze service attributes.

The text details the key concepts of Palladio's domain-specific modeling language for software architecture quality and presents the corresponding development stage. It describes how quality information can be used to calibrate architecture models from which detailed simulation models are automatically derived for quality predictions. Readers will learn how to approach systematically questions about scalability, hardware resources, and efficiency. The text features a running example to illustrate tasks and methods as well as three case studies from industry. Each chapter ends with exercises, suggestions for further reading, and “takeaways” that summarize the key points of the chapter. The simulator can be downloaded from a companion website, which offers additional material. The book can be used in graduate courses on software architecture, quality engineering, or performance engineering. It will also be an essential resource for software architects and software engineers and for practitioners who want to apply Palladio in industrial settings.

For software to consistently deliver promised results, software development must mature into a true profession. Emergent Design points the way. As software continues to evolve and mature, software development processes become more complicated, relying on a variety of methodologies and approaches. This book illuminates the path to building the next generation of software. Author Scott L. Bain integrates the best of today’s most important development disciplines into a unified, streamlined, realistic, and fully actionable approach to developing software. Drawing on patterns, refactoring, and test-driven development, Bain offers a blueprint for moving efficiently through the entire software lifecycle, smoothly managing change, and consistently delivering systems that are robust, reliable, and cost-effective.

Reflecting a deep understanding of the natural flow of system development, Emergent Design helps developers work with the flow, instead of against it. Bain introduces the principles and practices of emergent design one step at a time, showing how to promote the natural evolution of software systems over time, making systems work better and provide greater value. To illuminate his approach, Bain presents code examples wherever necessary and concludes with a complete project case study.

This book provides developers, project leads, and testers powerful new ways to collaborate, achieve immediate goals, and build systems that improve in quality with each iteration.

Coverage includes

How to design software in a more natural, evolutionary, and professional way How to use the “open-closed” principle to mitigate risks and eliminate waste How and when to test your design throughout the development process How to translate design principles into practices that actually lead to better code How to determine how much design is enough How refactoring can help you reduce over-design and manage change more effectively

The book’s companion Web site, www.netobjectives.com/resources, provides updates, links to related materials, and support for discussions of the book’s content.

Most manuals assume software testing is being performed as part of a well-defined, structured development cycle based on clearly stated requirements and standards. Unfortunately, this is not often the case in the real world. Indeed, the one true constant in software development is change.

PDCA/TEST presents a continuous quality framework based on Dr. Edward Deming's famous rapid application "spiral" development model for quality through a continuous improvement process to promote effective testing methods in both structured and unstructured environments.

William E. Lewis shows you Deming's spiral approach as an alternative to the traditional waterfall method. In the waterfall method, one set of predefined sequential steps is followed with clearly enumerated requirements. But the spiral approach is one where these rigid sequential steps may, to varying degrees, be either lacking or different as circumstances demand. Starting from this fundamental building block, Lewis shows you how to:
Apply the Plan-Do-Check-Act (PDCA) quality wheel to the software testing process
Integrate a continuous quality framework into all phases of software development, including requirements analysis, logical design, physical design, program unit design, and coding
And choose the right testing tool (such as Bender & Associates Softtest) for the right test.

The book also details the spiral methodology for software testing broken down into parts, steps and tasks documented with extensive checklists, templates, and technical discussions. You will also learn to:
Master black box, white box and gray box testing
Incorporate continuous improvement into inspections and walkthroughs
Verify the logical design, physical design, program unit design, and coding phases
And more.

In sum, PDCA/TEST: A Framework for Software Testing gives you all the tools and knowledge you need to assure quality software testing throughout all stages of development, no matter how unstructured that process may wind up being.
Master The Crucial Technical Skills Every Software Architect Needs!

To succeed as a software architect, you must master both technical skills and soft skills. Dave Hendricksen illuminated the soft skills in his highly-regarded 12 Essential Skills for Software Architects. Now, in 12 More Essential Skills for Software Architects he turns to the technical side.

Drawing on his decades of experience, Hendricksen organizes technical skills into three areas.

PROJECT SKILLS: driving projects from ideation through delivery
TECHNOLOGY SKILLS: building, buying, and/or leveraging the right technologies
VISIONARY SKILLS: realizing an architectural vision that improves long-term competitiveness

He helps you develop and sharpen these key technical skills: from conceptualizing solutions to developing platforms and governance, and from selecting technology innovations to infusing architectures with an entrepreneurial spirit.

This guide reveals the technical skills you need and provides a coherent framework and practical methodology for mastering them.

Taken together, Hendricksen’s two books offer the most complete, practical pathway to excellence in software architecture. They’ll guide you through every step of your architecture career—from getting the right position to thriving once you have it.

Essential Architect Skills

Visionary Skills
Entrepreneurial Execution
Technology Innovation
Strategic Roadmapping

Technology Skills
Governance
Platform Development
Know-how
Architectural Perspective

Project Skills
Estimation
Partnership
Discovery
Management
Conceptualization

Dave Hendricksen is a big data architect for Thomson Reuters, where he works closely with the firm’s new product development teams to create innovative legal products for large-scale online platforms such as Westlaw.com. Hendricksen presented “Designing and Building Large-Scale Systems in an Agile World” at Carnegie Mellon University’s influential Software Engineering Institute.

The award-winning and highly influential Software Architecture in Practice, Third Edition, has been substantially revised to reflect the latest developments in the field. In a real-world setting, the book once again introduces the concepts and best practices of software architecture—how a software system is structured and how that system’s elements are meant to interact. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organization’s business strategy.

The authors have structured this edition around the concept of architecture influence cycles. Each cycle shows how architecture influences, and is influenced by, a particular context in which architecture plays a critical role. Contexts include technical environment, the life cycle of a project, an organization’s business profile, and the architect’s professional practices. The authors also have greatly expanded their treatment of quality attributes, which remain central to their architecture philosophy—with an entire chapter devoted to each attribute—and broadened their treatment of architectural patterns.

If you design, develop, or manage large software systems (or plan to do so), you will find this book to be a valuable resource for getting up to speed on the state of the art.

Totally new material covers

Contexts of software architecture: technical, project, business, and professional Architecture competence: what this means both for individuals and organizations The origins of business goals and how this affects architecture Architecturally significant requirements, and how to determine them Architecture in the life cycle, including generate-and-test as a design philosophy; architecture conformance during implementation; architecture and testing; and architecture and agile development Architecture and current technologies, such as the cloud, social networks, and end-user devices
Software architecture—the conceptual glue that holds every phase of a project together for its many stakeholders—is widely recognized as a critical element in modern software development. Practitioners have increasingly discovered that close attention to a software system’s architecture pays valuable dividends. Without an architecture that is appropriate for the problem being solved, a project will stumble along or, most likely, fail. Even with a superb architecture, if that architecture is not well understood or well communicated the project is unlikely to succeed.

Documenting Software Architectures, Second Edition, provides the most complete and current guidance, independent of language or notation, on how to capture an architecture in a commonly understandable form. Drawing on their extensive experience, the authors first help you decide what information to document, and then, with guidelines and examples (in various notations, including UML), show you how to express an architecture so that others can successfully build, use, and maintain a system from it. The book features rules for sound documentation, the goals and strategies of documentation, architectural views and styles, documentation for software interfaces and software behavior, and templates for capturing and organizing information to generate a coherent package. New and improved in this second edition:

Coverage of architectural styles such as service-oriented architectures, multi-tier architectures, and data models Guidance for documentation in an Agile development environment Deeper treatment of documentation of rationale, reflecting best industrial practices Improved templates, reflecting years of use and feedback, and more documentation layout options A new, comprehensive example (available online), featuring documentation of a Web-based service-oriented system Reference guides for three important architecture documentation languages: UML, AADL, and SySML
©2019 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google|Location: United StatesLanguage: English (United States)
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.