Phase 5: Advanced & Multi-Cloud

Conducting well-architected reviews & documenting findings

Advanced ~4 min read
Think of it this way A friendly analogy. Read this if the technical version feels dense. Show Hide

Imagine you're the head coach of a really big, important sports team – maybe for a championship game! Your team isn't just a few players; it's like a whole squad with different positions, strategies, and goals. Even if your team is super talented, sometimes things can go wrong during a game, or you might realize there's a better way to play to win. That's why a great coach doesn't just train the team, they also regularly check in to make sure everything is working perfectly.

This is a bit like what a Cloud Architect does with computer programs. When you "conduct well-architected reviews," you're acting like that coach. You gather the different parts of the team – the players (which are like different sections of a computer program), the assistant coaches (other tech teams), and even the team owners (people who run the business). Together, you look at how the program is built and how it's playing its "game." You ask questions like: Is our team communicating well? (That's like making sure the program runs smoothly.) Is everyone safe from injuries or having their plays stolen? (That's about security.) Can the team keep playing even if one player makes a mistake? (That's reliability.) Are we using our energy and time smartly to score points efficiently? (That's performance and cost.) And can our team keep winning games for many, many seasons without getting tired or needing to completely rebuild? (That's sustainability.)

As the coach, you're not just finding fault; you're helping the team be its absolute best. You might notice things like a player who needs a bit more practice on a specific skill (a "medium-risk issue") or a big problem like a torn uniform that could stop them from playing altogether (a "high-risk issue"). When you "document findings," you're writing down all these observations, just like a coach writes a detailed report after a game or practice. You explain why something is a problem – not just that a player missed a pass, but how that missed pass could make them lose the entire game or even the championship! This helps everyone understand what needs to change to make the team stronger and more successful.

So, when you're older and building your own amazing computer programs, or even just planning a big project for school, you can use this same kind of thinking. You'll be able to look at your creation and ask, "Is this well-designed? Is it safe? Will it work reliably for a long time?" This means you can help make sure that whatever you build isn't just cool, but also really dependable and successful, like a championship-winning team!

Conducting well-architected reviews is a critical skill for any Cloud Architect, moving beyond theoretical understanding to practical application. It's a collaborative health check, not merely an audit, designed to evaluate an existing workload against the Well-Architected Framework's pillars (Operational Excellence, Security, Reliability, Performance Efficiency, Cost Optimization, Sustainability). The primary goal is to proactively identify high-risk issues (HRIs) and medium-risk issues (MRIs) that could impact the business, and then to translate those technical deviations into tangible business risks. This process typically involves reviewing architecture diagrams, interviewing stakeholders, and leveraging cloud provider-specific tools like the AWS Well-Architected Tool or Azure Advisor to guide the discussion and identify areas for improvement across the entire application lifecycle.

Effective reviews demand more than just technical expertise; they require strong facilitation and communication skills. As an architect, you'll guide conversations with development, operations, security, and product teams, asking probing questions that uncover underlying assumptions and design choices. The focus isn't just on what is configured, but why it's configured that way and what business requirements or constraints drove those decisions. This involves drilling down into specific components, data flows, and operational procedures, ensuring that the workload aligns with best practices for scalability, resilience, security posture, and cost-effectiveness. It's crucial to connect technical findings back to their business impact – for instance, an unencrypted database is a security HRI with potential compliance and reputational business consequences.

Documenting findings is where the value of the review is crystallized. A mere list of problems is insufficient; the documentation must clearly articulate each finding, its specific impact (risk, cost, performance degradation), its alignment with a Well-Architected pillar, and, most importantly, provide actionable, prioritized recommendations for remediation. HRIs, such as single points of failure, critical security vulnerabilities, or significant cost inefficiencies, should always take precedence. The output is not just a static report but a living roadmap for continuous improvement, often integrating into existing backlog management systems. Follow-through and tracking remediation progress are essential to ensure the review translates into tangible improvements and a more resilient, efficient, and secure cloud environment.

Key Takeaways

  • Well-architected reviews are collaborative health checks, not punitive audits, focused on proactive risk mitigation.
  • Prioritize High-Risk Issues (HRIs) with immediate business impact across all pillars.
  • Documentation must include specific findings, their impact, and actionable, prioritized remediation steps.
  • Leverage cloud provider tools (AWS WAF Tool, Azure Advisor) to structure and guide the review process.
  • Reviews are iterative; follow-up and tracking remediation are crucial for continuous improvement.

Code Example

bash
#!/bin/bash

echo "Checking AWS S3 buckets for public access block configuration..."

# List all S3 bucket names
aws s3api list-buckets --query "Buckets[].Name" --output text | tr '\t' '\n' | while read bucket_name; do
  # Attempt to get Public Access Block configuration for each bucket
  public_access_config=$(aws s3api get-public-access-block --bucket "$bucket_name" --query "PublicAccessBlockConfiguration" 2>/dev/null)

  if [ $? -eq 0 ] && [ "$public_access_config" != "null" ]; then
    # Check if any of the block settings are false (less restrictive)
    if echo "$public_access_config" | grep -q '"BlockPublicAcls": false' || \
       echo "$public_access_config" | grep -q '"IgnorePublicAcls": false' || \
       echo "$public_access_config" | grep -q '"BlockPublicPolicy": false' || \
       echo "$public_access_config" | grep -q '"RestrictPublicBuckets": false'; then
      echo "  [WARNING] S3 bucket '$bucket_name': PublicAccessBlock is present but not fully restrictive." # MRI
    else
      echo "  [INFO] S3 bucket '$bucket_name': PublicAccessBlock is fully restrictive." # Good
    fi
  else
    # No Public Access Block configuration found is a high risk
    echo "  [CRITICAL] S3 bucket '$bucket_name': NO PublicAccessBlock configured. HIGH RISK!" # HRI
  fi
done

echo "S3 public access check complete."

How this code works

This code performs an automated well-architected review by checking AWS S3 buckets for public access block configurations, a critical security control. Its job is to identify buckets that are either exposed to public access risks or are not following best practices for restricting such access. The script first lists all S3 bucket names using aws s3api list-buckets, parsing the output to process each bucket_name individually.

For each bucket_name, the script attempts to retrieve its Public Access Block configuration using aws s3api get-public-access-block. A subtle but important detail is the 2>/dev/null which suppresses error messages when a bucket does not have this configuration set, allowing the script to check $? to determine if the command succeeded. If the configuration is found and enabled, the code then checks if any of the specific BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy, or RestrictPublicBuckets settings are false using grep -q, indicating a potential security loophole. If no Public Access Block is configured at all, or if any setting is false, it reports a [CRITICAL] or [WARNING] finding, respectively, aiding in a thorough security review.