DevOps : a journey from microservice to cloud based containerization / Hitesh Kumar Sharma, Anuj Kumar, Sangeeta Pant, Mangey Ram.
Transitioning to DevOps requires a change in culture and mindset. At its simplest, DevOps is about removing the barriers between two traditionally siloed teams, development, and operations. In some organizations, there may not even be separate development and operations teams; engineers may do both....
Saved in:
Online Access: |
Full Text (via Taylor & Francis) |
---|---|
Main Authors: | , , , |
Format: | Electronic eBook |
Language: | English |
Published: |
[United States] :
River Publishers,
[2023]
|
Series: | River Publishers series in computing and information science and technology.
|
Subjects: |
Table of Contents:
- Preface xiii List of Figures xv List of Table xix List of Abbreviations xxi 1 DevOps: An Introduction 1 1.1 Introduction 1 1.2 DevOps: A Culture 2 1.3 DevOps Environment 3 1.4 Benefits of DevOps Culture 5 1.4.1 Ensuring faster development 6 1.4.2 Balancing in the workplace 6 1.4.3 Improved quality 6 1.4.4 Room for innovation 6 1.4.5 Supports agility 6 1.4.6 Continuous delivery of the product 7 1.4.7 Dependable problem-solving techniques 7 1.4.8 Transparency 7 1.4.9 Cost efficient 7 1.4.10 Better manage unplanned work 7 1.5 Best Practices of DevOps Culture 7 1.5.1 Project management with agility 8 1.5.2 Shift left with CI/CD 8 1.5.3 Using the right tools 8 1.5.4 Implementing automation 9 1.5.5 Monitor the CI/CD pipeline 9 1.5.6 Gather continuous feedback 9 1.5.7 Cultural change 9 1.6 Challenges in DevOps Culture 10 1.6.1 Overcoming the mentality of Dev V/S Ops 10 1.6.2 Ordinary understanding of continuous-delivery practices in an organisation 10 1.6.3 Moving on to microservices from legacy infrastructure and architecture 11 1.6.4 Implementing the strategy of test automation 11 1.6.5 Emphasising more on tools 12 1.6.6 Resistance to new change 12 1.6.7 Dev and Ops toolset conflicts 13 1.7 Conclusion 13 References 14 2 Microservice versus Monolithic Architecture 17 2.1 Introduction 17 2.1.1 Monolithic architecture examples 19 2.1.2 Advantages of monolithic architecture 19 2.1.3 Disadvantages of monolithic architecture 21 2.2 Microservices 22 2.2.1 Advantages of microservices architecture 24 2.2.2 Disadvantages of microservices architecture 25 2.3 Monolithic versus Microservices 26 2.4 Conclusion 27 References 27 3 Implementation of Microservice 31 3.1 Introduction 31 3.2 Building Microservices 32 3.2.1 Create monolithic architecture 32 3.2.2 Organise your teams properly 33 3.2.3 Create microservices architecture by splitting monolith architecture 34 3.3 Principles of Microservices 39 3.3.1 Decentralisation 41 3.3.2 Modelled around the business domain 41 3.3.3 Isolated failure 41 3.3.4 Culture of automation 42 3.3.5 Deploy independently 42 3.3.6 Highly observable 42 3.3.7 Hide implementation details 42 3.4 Major Consideration for Microservices Architecture 42 3.4.1 Bounded context 43 3.4.2 Dynamic scale up and scale down 43 3.4.3 Monitoring 43 3.4.4 Fault tolerance 43 3.4.5 Cyclic dependency 44 3.4.6 DevOps culture 44 3.5 Microservices Components 44 3.5.1 API 44 3.5.2 Containers 44 3.5.3 Service mesh 45 3.5.4 Software development approach (SOA) 45 3.5.5 Cloud 45 3.6 Best Practices for Microservices 45 3.7 Core Benefits of Microservices 46 3.7.1 Agility 46 3.7.2 Small but focused teams 46 3.7.3 Small code base 47 3.7.4 Mix of technologies 47 3.7.5 Fault isolation 47 3.7.6 Scalability 47 3.7.7 Data isolation 47 3.8 Conclusion 47 References 48 4 Container: A Solution of Diverse Platform 51 4.1 Introduction 51 4.2 Container as Microservice 53 4.3 Container Storage 54 4.4 Security 55 4.5 Container Monitoring 56 4.5.1 Options for container monitoring 57 4.6 Conclusion 58 References 58 5 Container Monitoring: A Container Health Check Process 61 5.1 Introduction 61 5.2 Container Monitoring 62 5.2.1 Monitoring Docker container 63 5.3 Container Monitoring Tools 63 5.3.1 Sematext 63 5.3.2 Datadog 64 5.3.3 Dynatrace 66 5.3.4 Elasticsearch and Kibana 66 5.3.5 SolarWinds server and application monitor 67 5.3.6 AppOptics Docker monitoring with APM 68 5.4 Conclusion 68 References 69 6 Docker: An Open-Source Containerisation Platform 71 6.1 Introduction 71 6.2 Docker: A Containerisation Platform 71 6.2.1 Working of Docker 71 6.2.2 Purpose of Docker 72 6.2.3 Benefits of Docker 72 6.3 Significance of Docker 72 6.3.1 Performance 73 6.3.2 Portability 73 6.3.3 Security 73 6.4 Container Operations 74 6.5 Docker installation 75 6.5.1 Docker installation on windows 75 6.5.2 Installation on Mac 77 6.5.3 Docker installation on Ubuntu 79 6.6 Docker Hub 80 6.6.1 Features of the Docker Hub 80 6.7 AWS Fargate 81 6.8 Docker Lifecycle 81 6.8.1 Development 81 6.8.2 Build code and Dockerising application 81 6.8.3 Pushing the Docker image into a private registry 82 6.8.4 Deploying it into the testing environment 82 6.8.5 Host 82 6.9 Conclusion 82 References 83 7 Docker Container: Volume and Network 85 7.1 Introduction 85 7.2 Docker Architecture 86 7.2.1 Parts of Docker 86 7.3 Docker in Software Development Life Cycle 87 7.3.1 Build 87 7.3.2 Testing 87 7.3.3 Deploy and maintain 87 7.4 Managing Data in Docker 88 7.5 Docker Volumes 88 7.5.1 Use cases for volumes 88 7.5.2 Utilisations of volumes 90 7.5.3 Docker volume commands 90 7.5.4 Docker volume with Jenkins 92 7.6 Docker Network 94 7.6.1 Docker network drivers 96 7.6.2 Basic Docker networking commands 102 7.7 Conclusion 105 References 106 8 Container Orchestration: Managing Cluster of Containers 107 8.1 Introduction 107 8.2 Container Orchestration 108 8.3 Need for Container Orchestration 108 8.4 Working of Container Orchestration 110 8.5 Container Orchestration Tools 111 8.5.1 Kubernetes 111 8.5.2 Docker swarm 111 8.5.3 Apache Mesos 112 8.6 Docker Swarm Container Orchestration Versus Kubernetes Container Orchestration 112 8.7 Some Other Container Orchestration Tools 113 8.8 Docker Swarm 115 8.8.1 Features of Docker swarm 118 8.8.2 Working with Docker swarm 118 8.9 Conclusion 119 References 120 9 Kubernetes: An Advanced Orchestration Platform 123 9.1 Introduction 123 9.2 Kubernetes 124 9.2.1 Virtual machines versus Kubernetes 124 9.2.2 Advantages 125 9.3 Installation of Kubernetes 125 9.3.1 Update the repositories 125 9.3.2 Turn off swap space 125 9.3.3 Update the hostname 126 9.3.4 Note the IP address 126 9.3.5 Update the hosts file 126 9.3.6 Set a static IP address 126 9.3.7 Install OpenSSH server 126 9.3.8 Install curl 126 9.3.9 Install the required dependencies and packages 127 9.3.10 Update the Kubernetes configuration 127 9.4 Companies using Kubernetes 127 9.4.1 Kubernetes on google cloud 128 9.4.2 Kubernetes in DevOps pipeline 129 9.5 Kubernetes Features 130 9.6 Docker and Kubernetes 131 9.7 Kubernetes Play Pokemon Go: A Case Study of Pokemon Go 132 9.8 Kubernetes Architecture 133 9.8.1 Worker nodes 133 9.8.2 Container run time 134 9.8.3 Kubelet 135 9.8.4 Kube proxy 135 9.8.5 Master node 136 9.8.6 Kubernetes control plane (AKA master node) 136 9.8.7 Node 137 9.8.8 Pod 138 9.8.9 Service 139 9.8.10 Ingress 139 9.8.11 ConfigMap 139 9.8.12 Secret 141 9.8.13 Volume 141 9.8.14 Deployments 141 9.9 POD Lifecycle 142 9.9.1 Waiting 142 9.9.2 Running 142 9.9.3 Terminated 142 9.10 Conclusion 143 References 143 10 Containerisation Services on Cloud Computing Platforms 145 10.1 Introduction 145 10.2 Containers in the Cloud 146 10.3 Cloud-based Containers Working 147 10.4 Virtual Machines and Containers in a Cloud Environment 149 10.5 Bridging Containers and the Cloud: Challenges and Solutions 149 10.5.1 Migration 149 10.5.2 Container security 150 10.5.3 Container networking 150 10.6 Cloud Computing Platforms 151 10.6.1 Amazon web services (AWS) 151 10.6.2 Microsoft Azure 152 10.6.3 Google cloud platform (GCP) 152 10.7 Amazon Web Services (AWS) Containerisation Service 153 10.7.1 Benefits 154 10.7.2 AWS global infrastructure 155 10.7.3 Identity access management 157 10.7.4 Features of identity access management 157 10.8 Amazon Elastic Container Service (Amazon ECS) 158 10.8.1 ECS terminology 160 10.8.2 Types of startups 160 10.9 Microsoft Azure Containerisation Services 161 10.9.1 Azure Kubernetes services (AKS) 162 10.9.2 Advantages of Azure containerisation services 164 10.9.3 Use cases of Azure containerisation services 165 10.10 Conclusion 166 References 166 Index 169 About the Authors 171.