Preface
A sound cloud native adoption approach can be a significant business enabler. It can accelerate innovation cycles, improve our time to market, increase resilience, improve security posture, and enable observability and flexible integrations for data, APIs, and connectivity. Despite all the potential that cloud native brings, the authors of this book have seen many things go wrong, were involved in the remediation steps across the software development life cycle, and had opportunities to start building new capabilities from scratch. A cloud native journey is not only about technology and tools. It starts with a cultural transformation, leveraging the right ways of working and transforming our company into a learning organization. The adoption also requires a shift in governance, security, ownership, and continuous improvement of our architecture and skills. With great power comes great responsibility. This book provides insights into where cloud initiatives tend to go wrong, how to spot those anti-patterns while they are starting to unfold, and how to remediate them to drive successful cloud adoption. By reading this book, you will learn about the following:
- How to identify common anti-patterns encountered when shifting to agile cloud native delivery
- What high-performing cloud native delivery looks like
- How to spot anti-patterns in your organization and analyze their long-term impacts
- Prescriptive guidance on how to remediate anti-patterns
Who this book is for
This book is intended for the following audience that has fundamental knowledge of information technology solutions and wants to improve their cloud native knowledge:
- Cloud platform engineers and software engineers
- Cloud or solution architects
- Quality and test engineers
- Enterprise architects
- Technical team leads
- Engineering managers
What this book covers
Chapter 1, Benefits of Cloud Native and Common Misunderstandings, explores benefits, DevOps culture and CI/CD, observability, and resilience, and clarifies some common misunderstandings.
Chapter 2, The Cost of Unclear Objectives and Strategy, discusses common strategy mistakes, such as outsourcing knowledge or lacking roadmaps and partnership strategies, and how to transition into good practice.
Chapter 3, Rethinking Governance in a Cloud Native Paradigm, steps through common governance anti-patterns, such as underestimating cultural impact and learning effort, and discusses how to develop good habits.
Chapter 4, FinOps - How to Avoid a Bill Shock, discusses mistakes including lacking tagging enforcement, focusing on cost savings instead of value optimization, and others. For each area, we will also explain what good looks like and how to achieve it.
Chapter 5, Delivering Rapidly and Continuously Without Compromising Security, analyzes problem spaces including cultural impacts, guardrails, and shifting left. Of course, we will also examine how to improve our organization.
Chapter 6, How to Meet Your Security and Compliance Goals, discusses pitfalls such as permission mismanagement, supply chain challenges, and reliance on penetration tests. We will step through transitioning into good habits.
Chapter 7, Expressing Your Business Goals in Application Code, explores application-related anti-patterns, such as tight coupling and stateful applications, and how to transition into good habits.
Chapter 8, Don't Get Lost in the Data Jungle, covers data-related anti-patterns, including manual data ingestion and a lack of data observability, and we will help you adopt good practices.
Chapter 9, Connecting It All, covers adopting future-proof network architectures after discussing network-related pitfalls, such as ignoring latency or bandwidth and not having a DNS strategy.
Chapter 10, Observing Our Architecture, explores observability-related anti-patterns, such as capturing everything or ignoring ML and AI capabilities, which can burden our organization, and we will explore how to improve our observability.
Chapter 11, Running It Without Breaking It, discusses operational-related pitfalls, such as underestimating the learning curve and considering cloud service provider (CSP) SLAs. We will also discuss the adoption of good operational practices.
Chapter 12, Migrating from Legacy Systems to Cloud Native Solutions, looks at migration anti-patterns, such as a lack of planning and stakeholder commitment or sticking to on-premises security controls, which will prevent successful cloud adoption, and we will discuss how to avoid these bad practices.
Chapter 13, How Do You Know It All Works?, explores test-related pitfalls, such as ignoring non-functional requirements upfront or relying on manual testing, which do not scale and will slow us down. We will explore how to avoid these anti-patterns.
Chapter 14, How to Get Started with Your Cloud Native Improvement Journey, discusses how to prepare ourselves and our organization for a successful cloud adoption journey. We will summarize how to spot anti-patterns and define the best outcome.
Chapter 15, Transitioning to Cloud Native Good Habits, dives deeper into stakeholder alignment, enhancing our roadmap, and setting our organization up for continuous improvement.
To get the most out of this book
To get the most out of this book, you will have some fundamental information technology knowledge, no matter whether your background is development, operations, testing, technical leadership, governance, security, or strategy. The book doesn't require you to install software. To follow along with some of the hands-on examples, you can optionally create a free-tier account for AWS, Azure, or GCP.
Conventions used
There are a number of text conventions used throughout this book.
Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: " WARN: When a transient issue arises, such as a timeout during a payment request to AWS RDS, a WARN log is generated:"
A block of code is set as follows:
WARN: Payment service timeout - user_id=12345, transaction_id=txn001, retry_attempt=1
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
INFO: Payment initiated - user_id=12345, session_id=abc987, transaction_id=txn001, amount=49.99 Any command-line input or output is written as follows:
gcloud services enable cloudasset.googleapis.com
Bold: Indicates a new term, an important word, or words that you see onscreen. For instance, words in menus or dialog boxes appear in bold. Here is an example: " Aggregate and Centralize Logs: Logs from each service are centralized using AWS CloudWatch Logs."
Tips or important notes
Appear like this.
Get in touch
Feedback from our readers is always welcome.
General feedback: If you have questions about any aspect of this book, email us at customercare@packtpub.com and mention the book title in the subject of your message.
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata and fill in the form.
Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at copyright@packt.com with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Share Your Thoughts
Once you've read Cloud Native Anti-Patterns, we'd love to hear your thoughts! Please click here to go straight to the Amazon review page for this book and share your feedback.
Your review is important to us and the tech community and will help us make sure we're delivering excellent quality content.
Download a...