AWS DevOps Simplified

Book description

The complete guide to increasing the DevOps maturity of your organization while adhering to AWS’ well-architected principles

Key Features

  • Increase your organization’s DevOps maturity level from both strategic and tactical standpoint
  • Get hands-on AWS experience with ready-to-deploy code examples covering enterprise scenarios
  • Advance your career with practical advice to ensure customer satisfaction and stakeholder buy-in
  • Purchase of the print or Kindle book includes a free PDF eBook

Book Description

DevOps and AWS are the two key enablers for the success of any modern software-run business. DevOps accelerates software delivery, while AWS offers a plethora of services, allowing developers to prioritize business outcomes without worrying about undifferentiated heavy lifting. This book focuses on the synergy between them, equipping you with strong foundations, hands-on examples, and a strategy to accelerate your DevOps journey on AWS.

AWS DevOps Simplified is a practical guide that starts with an introduction to AWS DevOps offerings and aids you in choosing a cloud service that fits your company's operating model. Following this, it provides hands-on tutorials on the GitOps approach to software delivery, covering immutable infrastructure and pipelines, using tools such as Packer, CDK, and CodeBuild/CodeDeploy. Additionally, it provides you with a deep understanding of AWS container services and how to implement observability and DevSecOps best practices to build and operate your multi-account, multi-Region AWS environments.

By the end of this book, you’ll be equipped with solutions and ready-to-deploy code samples that address common DevOps challenges faced by enterprises hosting workloads in the cloud.

What you will learn

  • Develop a strong and practical understanding of AWS DevOps services
  • Manage infrastructure on AWS using tools such as Packer and CDK
  • Implement observability to bring key system behaviors to the surface
  • Adopt the DevSecOps approach by integrating AWS and open source solutions
  • Gain proficiency in using AWS container services for scalable software management
  • Map your solution designs with AWS’s Well-Architected Framework
  • Discover how to manage multi-account, multi-Region AWS environments
  • Learn how to organize your teams to boost collaboration

Who this book is for

This book is for software professional who build or operate software on AWS. If you have basic knowledge of AWS Console or CLI, this book will help you build or enhance your DevOps skills by developing a solid foundational understanding of AWS offerings. You’ll also find it useful if you’re looking to optimize your software delivery cycles and build reliable, cost-optimized, secure, and sustainable solutions on AWS.

Table of contents

  1. AWS DevOps Simplified
  2. Foreword
  3. Contributors
  4. About the author
  5. About the reviewers
  6. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Download the example code files
    5. Conventions used
    6. Get in touch
    7. Share Your Thoughts
    8. Download a free PDF copy of this book
  7. Part 1 Driving Transformation through AWS and DevOps
  8. Chapter 1: Accelerating Your DevOps Journey with AWS
    1. AWS and DevOps – a perfect match
      1. Production-like environments
      2. Scaling with the cloud
      3. DevOps methodologies to accelerate software delivery
    2. Key AWS DevOps services
      1. CI
      2. CD and continuous deployment
      3. IaC
    3. Summary
    4. Further reading
  9. Chapter 2: Choosing the Right Cloud Service
    1. The three tiers of cloud offerings
      1. Infrastructure as a Service (IaaS)
      2. Platform as a Service (PaaS)
      3. Software as a Service (SaaS)
    2. What to choose when
      1. Simplicity versus control
      2. Cloud skills and resources
      3. Business requirements
      4. Security considerations
    3. Understanding your organization’s cloud operating model
      1. Focusing on sustaining workloads with the traditional approach
      2. Focusing on optimizing workloads
      3. Focusing on growth in the cloud
    4. Key AWS services
      1. Abstracting the infrastructure
      2. Accelerating software delivery with platform services
      3. Fully managed software services
    5. Summary
    6. Further reading
  10. Chapter 3: Leveraging Immutable Infrastructure in the Cloud
    1. Technical requirements
    2. Pets versus cattle
    3. Mutable and immutable infrastructure
      1. Mutable infrastructure
      2. Immutable infrastructure
    4. Getting started with AWS
      1. Creating a new AWS account
      2. Securing your root user credentials
      3. Creating additional users
      4. Setting up an AWS Cloud9 IDE in your AWS account
      5. Navigating your Cloud9 environment
    5. Working with the test application
      1. Test application
    6. Building an AMI with Packer
    7. Deploying our test instance
      1. Securing incoming traffic with security groups
      2. Creating the test EC2 instance
      3. Terminating the test EC2 instance
    8. Summary
    9. Further reading
  11. Part 2 Faster Software Delivery with Consistent and Reproducible Environments
  12. Chapter 4: Managing Infrastructure as Code with AWS CloudFormation
    1. Technical requirements
    2. What is AWS CloudFormation?
      1. Key concepts in AWS CloudFormation
    3. How CloudFormation works
      1. Permissions delegation for resource management
      2. API call logging with CloudTrail
      3. How requests flow over the network
    4. Best practices for using CloudFormation to define enterprise-grade architectures
      1. Keep templates small and reusable
      2. Leverage inputs and outputs for cross-stack dependencies
      3. Leverage other service integrations
      4. Leverage StackSets for organization-wide stack rollouts
      5. Avoid hardcoding parameter values
      6. Life cycle policies to protect critical resources
      7. Reusable resource configurations
    5. Deciding between Terraform and CloudFormation
      1. Third-party provider ecosystem
      2. Mapping a resource definition with a deployment
      3. Support for programming constructs
      4. State management for deployed resources
      5. Better integrations offered by cloud-native services
      6. Modules for code reusability
    6. Hands-on deployment with CloudFormation
      1. Network architecture design to support multi-AZ deployments
      2. Hosting a sample web application with an application load balancer and Auto Scaling groups
    7. Summary
    8. Further reading
  13. Chapter 5: Rolling Out a CI/CD Pipeline
    1. What is CI/CD?
      1. How does CI/CD enable faster software delivery?
      2. Why is continuous deployment hard to implement?
      3. An effective branching strategy is key
      4. Working with feature toggles
      5. Identifying what works best for you
    2. How to choose the best CI/CD solution for your needs
      1. Integration with existing tools
      2. On-premises hosting considerations
      3. Open source or commercial offerings?
    3. Enabling continuous integration with CodeCommit and CodeBuild
      1. Key features offered by CodeCommit
      2. Automating builds and tests with CodeBuild
    4. Using CodeDeploy to orchestrate deployment workflows in compute environments
      1. Key components in CodeDeploy
      2. Key features offered by CodeDeploy
    5. Implementing end-to-end software delivery with CodePipeline
      1. Key constructs used by CodePipeline
      2. Triggering actions in other regions
    6. Rolling out a fully automated CI/CD pipeline in your AWS account
      1. Creating a base AMI for the application instances
      2. Deploying infrastructure and application stacks
    7. Summary
    8. Further reading
  14. Chapter 6: Programmatic Approach to IaC with AWS CDK
    1. Different approaches to managing infrastructure in AWS
      1. Manual infrastructure management
      2. Automating infrastructure rollouts with scripts
      3. Adopting a declarative approach
      4. Using infrastructure definition generators
      5. Using frameworks that offer high-level abstractions
    2. What is AWS CDK?
      1. Key concepts in CDK
      2. Development workflow
      3. Pros and cons of working with CDK
    3. Deploying a test application with AWS CDK
      1. Understanding the different components of the image recognition application
      2. Bootstrapping a new CDK project
      3. Bootstrapping the AWS account to enable CDK deployments
      4. Defining CDK constructs for application components
      5. Defining Lambda code for orchestrating the application workflow
      6. Synthesizing the template
      7. Deploying the CDK stack into an AWS account
      8. Testing the image analysis workflow
    4. Summary
    5. Further reading
  15. Part 3 Security and Observability of Containerized Workloads
  16. Chapter 7: Running Containers in AWS
    1. A quick introduction to the container ecosystem
      1. What are containers and why do we need them?
      2. Docker as a container platform
      3. Scaling containerized deployments beyond simple use cases
      4. Key responsibilities of container platforms
    2. AWS services that support running containers in the cloud
      1. AWS Elastic Compute Cloud (EC2)
      2. AWS Elastic Kubernetes Service (EKS)
      3. AWS Elastic Container Service (ECS)
    3. ECS constructs and security features
      1. Important constructs used by ECS
      2. Ensuring a good security posture with ECS
    4. Deploying a test application on ECS
      1. Understanding the test application architecture
      2. Defining the CDK stack constructs
      3. Preparing the web application code
      4. Preparing the static HTML template
      5. Bundling all application dependencies together for deployment on ECS
      6. Deploying our CDK stack in an AWS account
    5. Summary
    6. Further reading
  17. Chapter 8: Enabling the Observability of Your Workloads
    1. What is observability?
      1. Benefits of observability
    2. Key AWS offerings for monitoring and observability
      1. Amazon CloudWatch
    3. Best practices for a solid observability strategy
      1. Build a hierarchy of dashboards
      2. Use consistent time zones across all systems
      3. Propagate trace identifiers
      4. Ensure that all components of your system emit events
    4. Defining your observability strategy for workloads hosted in AWS
      1. Deploying an observability stack for a test application hosted in ECS
      2. Extending the code base for better observability
      3. Deploying the stack in an AWS account
      4. Observing data to understand application behavior
    5. Summary
    6. Further reading
  18. Chapter 9: Implementing DevSecOps with AWS
    1. Trade-offs and challenges of security
      1. Lack of ownership
      2. Last step in software delivery
      3. The rapid evolution of application architectures
      4. Outdated security tools
    2. What is DevSecOps?
      1. How is it different from DevOps?
      2. Key benefits of DevSecOps
      3. What it means for security professionals
      4. What it means for developers
      5. What it means for the operations team
    3. Securing your workloads in AWS
      1. Security challenges for operating workloads in the cloud
      2. Test strategies for your AWS workloads
      3. Important tools for security assessments
    4. Rolling out a test CI/CD workflow for DevSecOps
      1. Understanding the target architecture of the DevSecOps pipeline
      2. Understanding the code base
      3. Deploying the CDK stack in an AWS account
      4. Checking the result of security assessments
    5. Summary
    6. Further reading
  19. Part 4 Taking the Next Steps
  20. Chapter 10: Setting Up Teams for Success
    1. Building a collaborative team setup and culture
      1. Enable your teams to create more value
      2. Establishing a culture of collaboration and learning
      3. Measuring the DevOps maturity of your teams
      4. De-silo Dev and Ops
      5. Blameless post-mortems and RCAs
    2. Technology best practices and considerations for success
      1. Right-size the teams based on the technology cognitive load they can handle
      2. Invest in building abstractions that promote best practices
      3. Making injection of failure scenarios a routine practice
      4. Aligning technology decisions with business expectations
    3. Resources for continuous learning and enablement
    4. Driving change from the bottom up
      1. Structure your ideas well
      2. Demonstrate commitment
      3. Find collaborators and share good practices
    5. Summary
    6. Further reading
  21. Chapter 11: Ensuring a Strong AWS Foundation for Multi-Account and Multi-Region Environments
    1. What is a Landing Zone?
    2. Key considerations in a Landing Zone
      1. Defining a structure for organizational units and accounts
      2. Focus on cross-account and hybrid networking needs
      3. Securing the Landing Zone with IAM and security services
      4. DevOps and config management
      5. Operations
    3. Best practices for managing multi-account architectures
      1. Limiting access to the management account
      2. Adopting solutions that offer the right balance of ease and control
      3. Invest in building an Account Vending Machine
      4. Maintain a separate AWS Organizations organization for platform development
      5. Avoid provisioning any IAM users
      6. Prefer no-code or low-code solutions
    4. Building a Landing Zone with Control Tower and CfCT
      1. Deploying resources with CfCT
    5. Summary
    6. Further reading
  22. Chapter 12: Adhering to AWS Well-Architected Principles
    1. Understanding different components of AWS Well-Architected
      1. The AWS Well-Architected Framework
      2. AWS Well-Architected lenses
      3. The AWS Well-Architected Tool
    2. Aligning your architecture with the six focus pillars of the framework
      1. Operating your workloads with confidence
      2. Enhancing the security posture of infrastructure and workloads
      3. Building resilient and highly available systems
      4. Improving the performance efficiency of your workloads
      5. Minimizing cloud costs while maximizing business value creation
      6. Building sustainable workloads in the cloud
    3. Summary
    4. Further reading
  23. Index
    1. Why subscribe?
  24. Other Books You May Enjoy
    1. Packt is searching for authors like you
    2. Share Your Thoughts
    3. Download a free PDF copy of this book

Product information

  • Title: AWS DevOps Simplified
  • Author(s): Akshay Kapoor
  • Release date: September 2023
  • Publisher(s): Packt Publishing
  • ISBN: 9781837634460