𝔖 Scriptorium
✦   LIBER   ✦

📁

A Complete Guide to DevOps with AWS: Deploy, Build, and Scale Services with AWS Tools and Techniques

✍ Scribed by Osama Mustafa


Publisher
Apress
Year
2023
Tongue
English
Leaves
579
Edition
1st ed.
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Gain a thorough understanding of DevOps concepts and learn to deploy AWS DevOps services in an organization. This book covers AWS DevOps deployment and building applications and services for enhanced performance.

A Complete Guide to DevOps with AWS will show you how to use AWS DevOps to launch and scale services using AWS tools. It demonstrates how to handle infrastructure as code such as AWS CodeCommit, AWS CodeBuild, and AWS CodeArtifact, and how to adapt your software with familiar tools such as terraform and cloud formation. This practice also helps in the continuous integration and deployment of pipelines such as AWS CodeDeploy and AWS CodePipeline with different deployment strategies. You will also learn how to find bugs quicker, enhance software quality, reduce your time to market, and how to build, test, and prepare for a release with frequent code changes. You will also see how to scale your applications to provide maximum performance for users with high traffic. The book also covers monitoring and logging applications, giving an overall picture of the ecosystem of product development. It also explains Kubernetes in depth with AWS EKS. It concludes by walking you through how to build projects with AWS DevOps tools and technologies. 

After completing this book, you will have gained a solid understanding of the concepts of AWS DevOps through examples, including building projects with integration of software tools.

 

What You Will Learn

  • Automate processes with AWS tools
  • Understand AWS Services for Continuous deployment, and how to use them
  • Use infrastructure as code with AWS in different formats
  • Integrate AWS security into DevOps

Who This Book Is For

DevOps professionals and cloud engineers.


✦ Table of Contents


Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Overview of Amazon Web Services
Cloud Services at a Glance
Types of Cloud Computing
Cloud Service Models
AWS Cloud Computing’s Key Characteristics
AWS Regions
Availability Zones
Global Edge Services
Route 53
Web Application Firewall
CloudFront
Lambda@Edge
AWS Shield
AWS Operational Benefits
AWS Data Best Practices
AWS Network Best Practices
AWS Application Best Practices
The Well-Architected Framework
The Well-Architected Tool
Conclusion
Chapter 2: Understanding DevOps Concepts
DevOps Primer
The DevOps Process
DevOps Goals
Shared Goal
Collaboration (No Silos Between Teams)
Speed
Innovation
Satisfaction of Customers
Agile vs. DevOps
Continuous Integration and Continuous Delivery
Continuous Integration’s Advantages
Continuous Delivery
Continuous Delivery Advantages
Continuous Deployment
Roundup of Concepts
CI/CD Tools
Infrastructure as Code
How Infrastructure as Code Works
IaC Types
Standard IaC Tools
Terraform
Ansible
Chef
Puppet
SaltStack
Vagrant
AWS CloudFormation
Azure Resource Manager
Google Cloud Deployment Manager
Tool Roundup
Benefits of Infrastructure as Code
Infrastructure as Code Examples
Terraform
Ansible
AWS CloudFormation
Automation Testing
Advantages
Misconceptions
Stakeholders
Disadvantages
Test Automation Process
Automation Framework
Test Automation Tools
Selenium
Cucumber
Watir
Mabl
Version Control
Significance of a Version Control System
Git
SVN
Bitbucket
GitLab
Version Control System Types
Local Version Control Systems
Centralized Version Control Systems
Distributed Version Control Systems
Summary
Chapter 3: AWS Services for Continuous Integration
Continuous Integration and Continuous Deployment
CI/CD and DevOps
Continuous Integration
AWS CodeCommit
Creating a CodeCommit Repository on AWS
Create a Repository (Console)
Create a Repository (AWS CLI)
Connect a Local/Existing Repo to the CodeCommit Repository
View Repository Details (Console)
View CodeCommit Repository Details (AWS CLI)
View CodeCommit Repository Details (Git)
Configuring Notifications for AWS CodeCommit
AWS CodeBuild
How CodeBuild works
Using CodeBuild via the Console
Step 1: You Need to Have the Source Code
Step 2: Create a Build Specs File
Step 3: Create an S3 Bucket
Step 4: Upload Your Code
Step 5: Create the Code Build Project
Using CodeBuild via the AWS CLI
Step 6: Test and Run the Code
How to Create a CodeBuild-Based Pipeline
Use AWS CodeBuild with Jenkins
Use AWS CodeBuild with Codecov
CodeArtifact
Configure CodeArtifact
Create a CodeArtifact Domain
Create a CodeArtifact Repository
Example CodeArtifact for Python
Summary
Chapter 4: AWS Services for Continuous Deployment
Introduction to Continuous Deployment
Continuous Delivery
AWS CodeDeploy
AWS CodeDeploy Project
Step 1: Configure an EC2 Instance
Step #2: Configure the Source Content to Be Deployed on EC2
Step 3: Upload WordPress Code to S3
Step 4: Deploy the Code
Step 5 (Optional): Redeploy the Code
AWS CodePipline
CodeDeploy Component
Project: Create an Essential Pipeline Using AWS CodePipeline
Step 1: Create the S3 Bucket
Grant Access to EC2
Step 2: Launch the EC2 Instance
Step 3: Install the CodeDeploy Agent on EC2
Step 4: Create the Pipeline
Integrate CodePipeline CI/CD with GitHub
Summary
Chapter 5: AWS Deployment Strategies
What Is a Deployment Strategy?
Blue/Green Deployments
Canary Deployments
A/B Testing Methodologies
Re-create Deployments
Ramped Deployments (Rolling Upgrades)
Shadow Deployments
Amazon AWS Deployment Strategies
In-Place Deployments
Prebaking vs. Bootstrapping AMIs
Linear Deployments
All-at-Once Deployments
Blue/Green Deployments for MySQL RDS
Summary
Chapter 6: Infrastructure as Code
What Is Infrastructure as Code?
Why Do You Need IaC?
IaC Types
Scripts
Configuration Management
Provisioning
Containers and Templating
Tool Examples
How to Choose an IaC Tool
Provision vs. Configuration Management
Agent vs. Agentless
Integration with Other Tools
Mutable Infrastructure vs. Immutable Infrastructure
General IaC Language vs. Specifically Designed Language
Paid Version vs. Free Version
Comparison of Tools
Terraform
Terraform Concepts
The provider.tf
Variable.tf
Main.tf
Output.tf
Terraform Module
VPC Code
EC2
EC2 Security Group
RDS
RDS Security Group
Terraform Tips and Tricks
Loops
Conditionals
AWS CloudFormation
Pulumi
Pulumi Concepts
Resources
State and Back Ends
Inputs and Outputs
Ansible
RHEL/CentOS Linux
Debian/Ubuntu Linux
Simple Playbook Example
Summary
Chapter 7: AWS Monitoring and Observability Tools
Monitoring
White-Box Monitoring
Black-Box Monitoring
Resource Dashboard
AWS CloudTrail
Using CloudTrail
AWS CloudWatch
CloudWatch Metrics Concepts
Namespaces
Metric Dimensions
Metric Filter
AWS X-Ray
Summary
Chapter 8: DevOps Security (DevSecOps)
Why Is Security Crucial for DevOps?
Security and the Cloud
Weak Identity and Credentials
Application Vulnerabilities
Malicious Insider
Denial-of-Service Attacks
External Sharing of Data
Insecure APIs
Hijacking the Accounts
Advanced Persistent Threats
Lack of Visibility
An Abundance of Available Tools
AWS Artifact
AWS Certificate Manager
Request a Public Certificate Using the Console
Web Application Firewall
Web ACLs
Rules
Rules Group
Variable.tf
main.tf
Security Hub
Enabling Security Hub
Security Standards
Trusted Advisor
Policy as Code
Policy as Code Benefits
CloudFormation Guard
How to Install CloudFormation Guard
Amazon AWS Service Catalog
Static Code Analysis
Checkov
SonarQube
Installing SonarQube
Manual Installation
Docker Installation
SonarCloud
Amazon CodeGuru
Summary
Chapter 9: Microservices vs. Monolithic
Monolithic
Modular Monolith
The Challenge
Coupling and Cohesion
Monolithic Advantages and Disadvantages
Microservices
Microservices Advantages and Disadvantages
Which Architecture Is the Best for You?
Containerization
Why Containerization?
Docker
Docker Installation
Images
Image Commands
Containers
Dockerfile
Amazon Elastic Container Service
ECS Components
Create an ECS Cluster via Console
Create an ECS Cluster via Terraform
main.tf
variables.tf
vpc.tf
Provider.tf
Output.tf
Terraform.tfvars
Summary
Chapter 10: Kubernetes
What Is Kubernetes?
Kubernetes Benefits
Facilitating a Focus on Essential App Features for Developers
Improving Operational Teams’ Ability to Make Effective Use of Available Resources
High Availability Solution and Ensure It
Management of Release and Deployment of Containers
Scaling
Kubernetes Components
Master Node Components
API
Scheduler (kube-scheduler)
Controller Manager
Etcd
Worker Node Components
Building a Kubernetes Cluster
The Master Node Setup
Minikube Installation for a Single-Node Cluster
Using Kubernetes and Kind to Create a Cluster with Several Nodes
Amazon EKS Kubernetes Installation
EKSCTL
Terraform
CloudFormation
Diving into Kubernetes
Pods
Labels and Annotations
Namespaces
Jobs
backoffLimit
completions
parallelism
activeDeadlineSeconds
ttlSecondsAfterFinished
Kubernetes and CronJob
Kubernetes Trick and Tips
Liveness Probe
Replication Controllers
Replica Set
DaemonSets
Logs
Volumes
emptyDir
awsElasticBlockStore
Persistent Volumes
ConfigMaps
Kubernetes Secrets
Services
Deployment
Kubernetes and Helm
Kubernetes Dashboard
Elasticsearch with Kibana
Prometheus with Grafana
RBAC in Kubernetes
Kubenetes CI/CD Tools
Summary
Chapter 11: DevOps Projects
Cloning a GitHub Repository
SSH
HTTPS
Project 1: Creating an AWS Endpoint
Repository Structure
How Do You to Use the Solution?
How to Deploy the Solution to AWS
Project 2: Creating an EKS Instance and Deploying an Application to the Cluster via Terraform
How to Run the Code
Delete the Resource
Project 3: Creating AWS Resources Using Terraform
How to Run the Code
Project 4: Creating a CloudFormation Project
Project Architecture
Application Setup
Logging
Hardening
Summary
Index


📜 SIMILAR VOLUMES


Practical Machine Learning with AWS : Pr
✍ Himanshu Singh 📂 Library 📅 2021 🏛 Apress 🌐 English

<p>Successfully build, tune, deploy, and productionize any machine learning model, and know how to automate the process from data processing to deployment. <br>This book is divided into three parts. Part I introduces basic cloud concepts and terminologies related to AWS services such as S3, EC2, Ide

Programming AWS Lambda: Build and Deploy
✍ John Chapin, Mike Roberts 📂 Library 📅 2020 🏛 O'Reilly Media 🌐 English

<div><p>Serverless revolutionizes the way organizations build and deploy software. With this hands-on guide, Java engineers will learn how to use their experience in the new world of serverless computing. You’ll discover how this cloud computing execution model can drastically decrease the complexit

Programming AWS Lambda: Build and Deploy
✍ John Chapin, Mike Roberts 📂 Library 📅 2020 🏛 O'Reilly Media 🌐 English

<div><p>Serverless revolutionizes the way organizations build and deploy software. With this hands-on guide, Java engineers will learn how to use their experience in the new world of serverless computing. You’ll discover how this cloud computing execution model can drastically decrease the complexit

Programming AWS Lambda: Build and Deploy
✍ John Chapin; Mike Roberts 📂 Library 📅 2020 🏛 O'Reilly Media 🌐 English

Serverless revolutionizes the way organizations build and deploy software. With this hands-on guide, Java engineers will learn how to use their experience in the new world of serverless computing. You’ll discover how this cloud computing execution model can drastically decrease the complexity in dev