舉報

會員
Learning DevOps
TheimplementationofDevOpsprocessesrequirestheefficientuseofvarioustools,andthechoiceofthesetoolsiscrucialforthesustainabilityofprojectsandcollaborationbetweendevelopment(Dev)andoperations(Ops).Thisbookpresentsthedifferentpatternsandtoolsthatyoucanusetoprovisionandconfigureaninfrastructureinthecloud.You'llbeginbyunderstandingDevOpsculture,theapplicationofDevOpsincloudinfrastructure,provisioningwithTerraform,configurationwithAnsible,andimagebuildingwithPacker.You'llthenbetakenthroughsourcecodeversioningwithGitandtheconstructionofaDevOpsCI/CDpipelineusingJenkins,GitLabCI,andAzurePipelines.ThisDevOpshandbookwillalsoguideyouincontainerizinganddeployingyourapplicationswithDockerandKubernetes.You'lllearnhowtoreducedeploymentdowntimewithblue-greendeploymentandthefeatureflagstechnique,andstudyDevOpspracticesforopensourceprojects.Finally,you'llgraspsomebestpracticesforreducingtheoverallapplicationleadtimetoensurefastertimetomarket.Bytheendofthisbook,you'llhavebuiltasolidfoundationinDevOps,anddevelopedtheskillsnecessarytoenhanceatraditionalsoftwaredeliveryprocessusingmodernsoftwaredeliverytoolsandtechniques
最新章節
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Chapter 15: DevOps Best Practices
- Chapter 14: DevOps for Open Source Projects
- Chapter 13: Reducing Deployment Downtime
- Chapter 12: Security in the DevOps Process with DevSecOps
品牌:中圖公司
上架時間:2021-06-24 12:06:06
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Leave a review - let other readers know what you think 更新時間:2021-06-24 12:33:06
- Other Books You May Enjoy
- Chapter 15: DevOps Best Practices
- Chapter 14: DevOps for Open Source Projects
- Chapter 13: Reducing Deployment Downtime
- Chapter 12: Security in the DevOps Process with DevSecOps
- Chapter 11: Security and Performance Tests
- Chapter 10: Static Code Analysis with SonarQube
- Chapter 9: Testing APIs with Postman
- Chapter 8: Managing Containers Effectively with Kubernetes
- Chapter 7: Containerizing Your Application with Docker
- Chapter 6: Continuous Integration and Continuous Delivery
- Chapter 5: Managing Your Source Code with Git
- Chapter 4: Optimizing Infrastructure Deployment with Packer
- Chapter 3: Using Ansible for Configuring IaaS Infrastructure
- Chapter 2: Provisioning Cloud Infrastructure with Terraform
- Chapter 1: DevOps Culture and Practices
- Assessments
- Further reading
- Questions
- Summary
- Evolving project management
- Monitoring your system
- Applying security with DevSecOps
- Integrating tests
- Building a good CI/CD pipeline
- Designing the system architecture
- Writing all your configuration in code
- Choosing the right tool
- Automating everything
- DevOps Best Practices
- Further reading
- Questions
- Summary
- Detecting security vulnerabilities with WhiteSource Bolt
- Analyzing code with SonarCloud
- Getting started with GitHub Actions
- Using Travis CI for continuous integration
- Sharing binaries in GitHub releases
- Managing the changelog and release notes
- Contributing using pull requests
- Contributing to the GitHub project
- Creating a new repository on GitHub
- Storing the source code in GitHub
- Technical requirements
- DevOps for Open Source Projects
- Further reading
- Questions
- Summary
- Using the LaunchDarkly solution
- Using an open source framework for feature flags
- Introducing feature flags
- Using Azure Traffic Manager
- Using App Service with slots
- Applying blue-green deployments on Azure
- Exploring the dark launch pattern
- Understanding the canary release pattern
- Using blue-green deployment to improve the production environment
- Understanding blue-green deployment concepts and patterns
- Reducing deployment downtime with Terraform
- Technical requirements
- Reducing Deployment Downtime
- Further reading
- Questions
- Summary
- Getting Vault secrets in Terraform
- Using the Vault UI web interface
- Reading secrets in Vault
- Writing secrets in Vault
- Starting the Vault server
- Installing Vault locally
- Preserving data with HashiCorp's Vault
- Integrating AzSK in Azure Pipelines
- Checking the Azure security using AzSK
- Installing the Azure DevOps Security Kit
- Using the Secure DevOps Kit for Azure
- Executing InSpec
- Writing compliance InSpec tests
- Creating an InSpec profile file
- Writing InSpec tests
- Configuring Azure for InSpec
- Installing InSpec
- Overview of InSpec
- Testing Azure infrastructure compliance with Chef InSpec
- Technical requirements
- Security in the DevOps Process with DevSecOps
- Section 5: Taking DevOps Further
- Further reading
- Questions
- Summary
- Running performance tests with Postman
- Ways to automate the execution of ZAP
- Using ZAP for security testing
- Applying web security and penetration testing with ZAP
- Technical requirements
- Security and Performance Tests
- Further reading
- Questions
- Summary
- Creating a CI pipeline for SonarQube in Azure Pipelines
- Configuring SonarQube
- Executing SonarQube in continuous integration
- Real-time analysis with SonarLint
- Installation in Azure
- Installation via Docker
- Manual installation of SonarQube
- Installing SonarQube
- Overview of the SonarQube architecture
- Installing SonarQube
- Exploring SonarQube
- Technical requirements
- Static Code Analysis with SonarQube
- Further reading
- Questions
- Summary
- The pipeline execution
- Publish test results
- Npm run newman
- Npm install
- Build and release configuration
- Integration of Newman in the CI/CD pipeline process
- Running the Newman command line
- Exporting the environments
- Exporting the collection
- Preparing Postman collections for Newman
- Understanding the Newman concept
- Executing Postman request tests locally
- Writing Postman tests
- Using environments and variables to dynamize requests
- Creating our first request
- Creating a collection
- Installation of Postman
- Creating a Postman collection with requests
- Technical requirements
- Testing APIs with Postman
- Section 4: Testing Your Application
- Further reading
- Questions
- Summary
- Automatic deployment of the application in Kubernetes
- The build and push of the image in the Docker Hub
- Creating a CI/CD pipeline for Kubernetes with Azure Pipelines
- Advantages of AKS
- Configuring kubectl for AKS
- Creating an AKS service
- Using AKS
- Using HELM as a package manager
- First example of Kubernetes application deployment
- Installing the Kubernetes dashboard
- Installing Kubernetes on a local machine
- Kubernetes architecture overview
- Installing Kubernetes
- Technical requirements
- Managing Containers Effectively with Kubernetes
- Further reading
- Questions
- Summary
- Creating a CI/CD pipeline for the container
- The Terraform code for ACI
- Deploying a container to ACI with a CI/CD pipeline
- Pushing an image to Docker Hub
- Testing a container locally
- Instantiating a new container of an image
- Building a Docker image
- Building and running a container on a local machine
- Dockerfile instructions overview
- Writing a Dockerfile
- Creating a Dockerfile
- An overview of Docker's elements
- Docker installation
- Registering on Docker Hub
- Installing Docker
- Technical requirements
- Containerizing Your Application with Docker
- Section 3: Containerized Applications with Docker and Kubernetes
- Further reading
- Questions
- Summary
- Accessing the CI pipeline execution details
- Creating the CI pipeline
- Creating a new project and managing your code source
- Authentication at GitLab
- Using GitLab CI
- Creating the CD pipeline: the release
- Creating the CI pipeline
- Versioning of the code with Git in Azure Repos
- Using Azure Pipelines
- Executing the Jenkins job
- Configuring a Jenkins CI job
- Configuring a GitHub webhook
- Installing and configuring Jenkins
- Using Jenkins
- Azure Artifacts
- Nexus Repository OSS
- Private NuGet and npm repository
- Using a package manager
- Continuous delivery (CD)
- Continuous integration (CI)
- The CI/CD principles
- Technical requirements
- Continuous Integration and Continuous Delivery
- Further reading
- Questions
- Summary
- GitFlow tools
- The GitFlow pattern
- Branching strategy with GitFlow
- Isolating your code with branches
- Retrieving updates
- The code update
- Cloning the repository
- Archiving on the remote repository
- Committing the code
- Creating and configuring a Git repository
- Starting with the Git process
- Understanding the Git process and GitFlow pattern
- Managing branches
- Synchronizing the local repository from the remote
- Updating the remote repository
- Creating a commit
- Adding a file for the next commit
- Configuring a local repository
- Initializing a local repository
- Retrieving a remote repository
- Git command lines
- Git vocabulary
- Configuration Git
- Git installation
- Overviewing Git and its command lines
- Technical requirements
- Managing Your Source Code with Git
- Section 2: DevOps CI/CD Pipeline
- Further reading
- Questions
- Summary
- Using a Packer image with Terraform
- Running Packer to generate our VM image
- Checking the validity of the Packer template
- Configuring Packer to authenticate to Azure
- Executing Packer
- Integrating an Ansible playbook in a Packer template
- Writing the Ansible playbook
- Using Ansible in a Packer template
- Building an Azure image with the Packer template
- The variables section
- The provisioners section
- The builders section
- The structure of the Packer template
- Creating Packer templates for Azure VMs with scripts
- Checking the Packer installation
- Integrating Packer with Azure Cloud Shell
- Installing Packer by script on macOS
- Installing Packer by script on Windows
- Installing Packer by script on Linux
- Installing by script
- Installing manually
- Installing Packer
- An overview of Packer
- Technical requirements
- Optimizing Infrastructure Deployment with Packer
- Further reading
- Questions
- Summary
- Using a dynamic inventory for Azure infrastructure
- Protecting sensitive data with Ansible Vault
- Using variables in Ansible for better configuration
- Protecting data with Ansible Vault
- Increasing the log level output
- Using the preview or dry run option
- Executing Ansible
- Improving your playbooks with roles
- Understanding Ansible modules
- Writing a basic playbook
- Writing the first playbook
- Testing the inventory
- Configuring hosts in the inventory
- The inventory file
- Creating an inventory for targeting Ansible hosts
- Configuring Ansible
- Ansible artifacts
- Integrating Ansible into Azure Cloud Shell
- Installing Ansible with a script
- Installing Ansible
- Technical requirements
- Using Ansible for Configuring IaaS Infrastructure
- Further reading
- Questions
- Summary
- Protecting tfstate in a remote backend
- Terraform's life cycle in a CI/CD process
- Validating the code
- Formatting the code
- Formatting and validating the code
- Using destroy to better rebuild
- Terraform command lines and life cycle
- Applying the changes
- Previewing changes
- Initialization
- Deploying the infrastructure with Terraform
- Dynamizing the code with variables and interpolation functions
- Protection of sensitive data
- Better visibility with the separation of files
- Following some Terraform good practices
- Writing a Terraform script to deploy Azure infrastructure
- Terraform configuration for local development and testing
- Configuring the Terraform provider
- Creating the Azure SP
- Configuring Terraform for Azure
- Integrating Terraform with Azure Cloud Shell
- Installing Terraform by script on macOS
- Installing Terraform by script on Windows
- Installing Terraform by script on Linux
- Installation by script
- Manual installation
- Installing Terraform
- Technical requirements
- Provisioning Cloud Infrastructure with Terraform
- Further reading
- Questions
- Summary
- IaC best practices
- Configuration and deployment in Kubernetes
- Immutable infrastructure with containers
- Server configuration
- The deployment and provisioning of the infrastructure
- The IaC topology
- Declarative types
- Scripting types
- IaC languages and tools
- The benefits of IaC
- Understanding IaC practices
- Continuous deployment
- Continuous delivery (CD)
- Implementing CI
- Continuous integration (CI)
- Implementing CI/CD and continuous deployment
- Getting started with DevOps
- DevOps Culture and Practices
- Section 1: DevOps and Infrastructure as Code
- Reviews
- Get in touch
- Conventions used
- Code in Action
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewers
- About the author
- Contributors
- Why subscribe?
- About Packt
- Foreword
- Dedication
- Learning DevOps
- Copyright and Credits
- Title Page
- coverpage
- coverpage
- Title Page
- Copyright and Credits
- Learning DevOps
- Dedication
- Foreword
- About Packt
- Why subscribe?
- Contributors
- About the author
- About the reviewers
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Code in Action
- Conventions used
- Get in touch
- Reviews
- Section 1: DevOps and Infrastructure as Code
- DevOps Culture and Practices
- Getting started with DevOps
- Implementing CI/CD and continuous deployment
- Continuous integration (CI)
- Implementing CI
- Continuous delivery (CD)
- Continuous deployment
- Understanding IaC practices
- The benefits of IaC
- IaC languages and tools
- Scripting types
- Declarative types
- The IaC topology
- The deployment and provisioning of the infrastructure
- Server configuration
- Immutable infrastructure with containers
- Configuration and deployment in Kubernetes
- IaC best practices
- Summary
- Questions
- Further reading
- Provisioning Cloud Infrastructure with Terraform
- Technical requirements
- Installing Terraform
- Manual installation
- Installation by script
- Installing Terraform by script on Linux
- Installing Terraform by script on Windows
- Installing Terraform by script on macOS
- Integrating Terraform with Azure Cloud Shell
- Configuring Terraform for Azure
- Creating the Azure SP
- Configuring the Terraform provider
- Terraform configuration for local development and testing
- Writing a Terraform script to deploy Azure infrastructure
- Following some Terraform good practices
- Better visibility with the separation of files
- Protection of sensitive data
- Dynamizing the code with variables and interpolation functions
- Deploying the infrastructure with Terraform
- Initialization
- Previewing changes
- Applying the changes
- Terraform command lines and life cycle
- Using destroy to better rebuild
- Formatting and validating the code
- Formatting the code
- Validating the code
- Terraform's life cycle in a CI/CD process
- Protecting tfstate in a remote backend
- Summary
- Questions
- Further reading
- Using Ansible for Configuring IaaS Infrastructure
- Technical requirements
- Installing Ansible
- Installing Ansible with a script
- Integrating Ansible into Azure Cloud Shell
- Ansible artifacts
- Configuring Ansible
- Creating an inventory for targeting Ansible hosts
- The inventory file
- Configuring hosts in the inventory
- Testing the inventory
- Writing the first playbook
- Writing a basic playbook
- Understanding Ansible modules
- Improving your playbooks with roles
- Executing Ansible
- Using the preview or dry run option
- Increasing the log level output
- Protecting data with Ansible Vault
- Using variables in Ansible for better configuration
- Protecting sensitive data with Ansible Vault
- Using a dynamic inventory for Azure infrastructure
- Summary
- Questions
- Further reading
- Optimizing Infrastructure Deployment with Packer
- Technical requirements
- An overview of Packer
- Installing Packer
- Installing manually
- Installing by script
- Installing Packer by script on Linux
- Installing Packer by script on Windows
- Installing Packer by script on macOS
- Integrating Packer with Azure Cloud Shell
- Checking the Packer installation
- Creating Packer templates for Azure VMs with scripts
- The structure of the Packer template
- The builders section
- The provisioners section
- The variables section
- Building an Azure image with the Packer template
- Using Ansible in a Packer template
- Writing the Ansible playbook
- Integrating an Ansible playbook in a Packer template
- Executing Packer
- Configuring Packer to authenticate to Azure
- Checking the validity of the Packer template
- Running Packer to generate our VM image
- Using a Packer image with Terraform
- Summary
- Questions
- Further reading
- Section 2: DevOps CI/CD Pipeline
- Managing Your Source Code with Git
- Technical requirements
- Overviewing Git and its command lines
- Git installation
- Configuration Git
- Git vocabulary
- Git command lines
- Retrieving a remote repository
- Initializing a local repository
- Configuring a local repository
- Adding a file for the next commit
- Creating a commit
- Updating the remote repository
- Synchronizing the local repository from the remote
- Managing branches
- Understanding the Git process and GitFlow pattern
- Starting with the Git process
- Creating and configuring a Git repository
- Committing the code
- Archiving on the remote repository
- Cloning the repository
- The code update
- Retrieving updates
- Isolating your code with branches
- Branching strategy with GitFlow
- The GitFlow pattern
- GitFlow tools
- Summary
- Questions
- Further reading
- Continuous Integration and Continuous Delivery
- Technical requirements
- The CI/CD principles
- Continuous integration (CI)
- Continuous delivery (CD)
- Using a package manager
- Private NuGet and npm repository
- Nexus Repository OSS
- Azure Artifacts
- Using Jenkins
- Installing and configuring Jenkins
- Configuring a GitHub webhook
- Configuring a Jenkins CI job
- Executing the Jenkins job
- Using Azure Pipelines
- Versioning of the code with Git in Azure Repos
- Creating the CI pipeline
- Creating the CD pipeline: the release
- Using GitLab CI
- Authentication at GitLab
- Creating a new project and managing your code source
- Creating the CI pipeline
- Accessing the CI pipeline execution details
- Summary
- Questions
- Further reading
- Section 3: Containerized Applications with Docker and Kubernetes
- Containerizing Your Application with Docker
- Technical requirements
- Installing Docker
- Registering on Docker Hub
- Docker installation
- An overview of Docker's elements
- Creating a Dockerfile
- Writing a Dockerfile
- Dockerfile instructions overview
- Building and running a container on a local machine
- Building a Docker image
- Instantiating a new container of an image
- Testing a container locally
- Pushing an image to Docker Hub
- Deploying a container to ACI with a CI/CD pipeline
- The Terraform code for ACI
- Creating a CI/CD pipeline for the container
- Summary
- Questions
- Further reading
- Managing Containers Effectively with Kubernetes
- Technical requirements
- Installing Kubernetes
- Kubernetes architecture overview
- Installing Kubernetes on a local machine
- Installing the Kubernetes dashboard
- First example of Kubernetes application deployment
- Using HELM as a package manager
- Using AKS
- Creating an AKS service
- Configuring kubectl for AKS
- Advantages of AKS
- Creating a CI/CD pipeline for Kubernetes with Azure Pipelines
- The build and push of the image in the Docker Hub
- Automatic deployment of the application in Kubernetes
- Summary
- Questions
- Further reading
- Section 4: Testing Your Application
- Testing APIs with Postman
- Technical requirements
- Creating a Postman collection with requests
- Installation of Postman
- Creating a collection
- Creating our first request
- Using environments and variables to dynamize requests
- Writing Postman tests
- Executing Postman request tests locally
- Understanding the Newman concept
- Preparing Postman collections for Newman
- Exporting the collection
- Exporting the environments
- Running the Newman command line
- Integration of Newman in the CI/CD pipeline process
- Build and release configuration
- Npm install
- Npm run newman
- Publish test results
- The pipeline execution
- Summary
- Questions
- Further reading
- Static Code Analysis with SonarQube
- Technical requirements
- Exploring SonarQube
- Installing SonarQube
- Overview of the SonarQube architecture
- Installing SonarQube
- Manual installation of SonarQube
- Installation via Docker
- Installation in Azure
- Real-time analysis with SonarLint
- Executing SonarQube in continuous integration
- Configuring SonarQube
- Creating a CI pipeline for SonarQube in Azure Pipelines
- Summary
- Questions
- Further reading
- Security and Performance Tests
- Technical requirements
- Applying web security and penetration testing with ZAP
- Using ZAP for security testing
- Ways to automate the execution of ZAP
- Running performance tests with Postman
- Summary
- Questions
- Further reading
- Section 5: Taking DevOps Further
- Security in the DevOps Process with DevSecOps
- Technical requirements
- Testing Azure infrastructure compliance with Chef InSpec
- Overview of InSpec
- Installing InSpec
- Configuring Azure for InSpec
- Writing InSpec tests
- Creating an InSpec profile file
- Writing compliance InSpec tests
- Executing InSpec
- Using the Secure DevOps Kit for Azure
- Installing the Azure DevOps Security Kit
- Checking the Azure security using AzSK
- Integrating AzSK in Azure Pipelines
- Preserving data with HashiCorp's Vault
- Installing Vault locally
- Starting the Vault server
- Writing secrets in Vault
- Reading secrets in Vault
- Using the Vault UI web interface
- Getting Vault secrets in Terraform
- Summary
- Questions
- Further reading
- Reducing Deployment Downtime
- Technical requirements
- Reducing deployment downtime with Terraform
- Understanding blue-green deployment concepts and patterns
- Using blue-green deployment to improve the production environment
- Understanding the canary release pattern
- Exploring the dark launch pattern
- Applying blue-green deployments on Azure
- Using App Service with slots
- Using Azure Traffic Manager
- Introducing feature flags
- Using an open source framework for feature flags
- Using the LaunchDarkly solution
- Summary
- Questions
- Further reading
- DevOps for Open Source Projects
- Technical requirements
- Storing the source code in GitHub
- Creating a new repository on GitHub
- Contributing to the GitHub project
- Contributing using pull requests
- Managing the changelog and release notes
- Sharing binaries in GitHub releases
- Using Travis CI for continuous integration
- Getting started with GitHub Actions
- Analyzing code with SonarCloud
- Detecting security vulnerabilities with WhiteSource Bolt
- Summary
- Questions
- Further reading
- DevOps Best Practices
- Automating everything
- Choosing the right tool
- Writing all your configuration in code
- Designing the system architecture
- Building a good CI/CD pipeline
- Integrating tests
- Applying security with DevSecOps
- Monitoring your system
- Evolving project management
- Summary
- Questions
- Further reading
- Assessments
- Chapter 1: DevOps Culture and Practices
- Chapter 2: Provisioning Cloud Infrastructure with Terraform
- Chapter 3: Using Ansible for Configuring IaaS Infrastructure
- Chapter 4: Optimizing Infrastructure Deployment with Packer
- Chapter 5: Managing Your Source Code with Git
- Chapter 6: Continuous Integration and Continuous Delivery
- Chapter 7: Containerizing Your Application with Docker
- Chapter 8: Managing Containers Effectively with Kubernetes
- Chapter 9: Testing APIs with Postman
- Chapter 10: Static Code Analysis with SonarQube
- Chapter 11: Security and Performance Tests
- Chapter 12: Security in the DevOps Process with DevSecOps
- Chapter 13: Reducing Deployment Downtime
- Chapter 14: DevOps for Open Source Projects
- Chapter 15: DevOps Best Practices
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-24 12:33:06