Learning DevOps
The complete guide to accelerate collaboration with Jenkins, Kubernetes, Terraform and Azure DevOps
Mikael Krief
- 504 Seiten
- English
- ePUB (handyfreundlich)
- Über iOS und Android verfügbar
Learning DevOps
The complete guide to accelerate collaboration with Jenkins, Kubernetes, Terraform and Azure DevOps
Mikael Krief
Über dieses Buch
Simplify your DevOps roles with DevOps tools and techniques
Key Features
- Learn to utilize business resources effectively to increase productivity and collaboration
- Leverage the ultimate open source DevOps tools to achieve continuous integration and continuous delivery (CI/CD)
- Ensure faster time-to-market by reducing overall lead time and deployment downtime
Book Description
The implementation of DevOps processes requires the efficient use of various tools, and the choice of these tools is crucial for the sustainability of projects and collaboration between development (Dev) and operations (Ops). This book presents the different patterns and tools that you can use to provision and configure an infrastructure in the cloud. You'll begin by understanding DevOps culture, the application of DevOps in cloud infrastructure, provisioning with Terraform, configuration with Ansible, and image building with Packer. You'll then be taken through source code versioning with Git and the construction of a DevOps CI/CD pipeline using Jenkins, GitLab CI, and Azure Pipelines. This DevOps handbook will also guide you in containerizing and deploying your applications with Docker and Kubernetes. You'll learn how to reduce deployment downtime with blue-green deployment and the feature flags technique, and study DevOps practices for open source projects. Finally, you'll grasp some best practices for reducing the overall application lead time to ensure faster time to market.
By the end of this book, you'll have built a solid foundation in DevOps, and developed the skills necessary to enhance a traditional software delivery process using modern software delivery tools and techniques
What you will learn
- Become well versed with DevOps culture and its practices
- Use Terraform and Packer for cloud infrastructure provisioning
- Implement Ansible for infrastructure configuration
- Use basic Git commands and understand the Git flow process
- Build a DevOps pipeline with Jenkins, Azure Pipelines, and GitLab CI
- Containerize your applications with Docker and Kubernetes
- Check application quality with SonarQube and Postman
- Protect DevOps processes and applications using DevSecOps tools
Who this book is for
If you are a developer or a system administrator interested in understanding continuous integration, continuous delivery, and containerization with DevOps tools and techniques, this book is for you.
Häufig gestellte Fragen
Information
Section 1: DevOps and Infrastructure as Code
- 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
DevOps Culture and Practices
- Getting started with DevOps
- Implementing CI/CD and continuous deployment
- Understanding IaC
Getting started with DevOps
- More frequent application deployments with integration and continuous delivery (called CI/CD)
- The implementation and automation of unitary and integration tests, with a process focused on Behavior-Driven Design (BDD) or Test-Driven Design (TDD)
- The implementation of a means of collecting feedback from users
- Monitoring applications and infrastructure
- The culture of collaboration: This is the very essence of DevOps—the fact that teams are no longer separated by silos specialization (one team of developers, one team of Ops, one team of testers, and so on), but, on the contrary, these people are brought together by making multidisciplinary teams that have the same objective: to deliver added value to the product as quickly as possible.
- Processes: To expect rapid deployment, these teams must follow development processes from agile methodologies with iterative phases that allow for better functionality quality and rapid feedback. These processes should not only be integrated into the development workflow with continuous integration but also into the deployment workflow with continuous delivery and deployment. The DevOps process is divided into several phases:
- The planning and prioritization of functionalities
- Development
- Continuous integration and delivery
- Continuous deployment
- Continuous monitoring
- Tools: The choice of tools and products used by teams is very important in DevOps. Indeed, when teams were separated into Dev and Ops, each team used their specific tools—deployment tools for developers and infrastructure tools for Ops—which further widened communication gaps.
- Better collaboration and communication in teams, which has a human and social impact within the company.
- Shorter lead times to production, resulting in better performance and end user satisfaction.
- Reduced infrastructure costs with IaC.
- Significant time saved with iterative cycles that reduce application errors and automation tools that reduce manual tasks, so teams focus more on developing new functionalities with added business value.
Implementing CI/CD and continuous deployment
- Continuous integration (CI)
- Continuous delivery (CD)
- Continuous deployment
Continuous integration (CI)
"Continuous Integration is a software development practice where members of a team integrate their work frequently... Each integration ...