Deploying Software to Kubernetes
Kubernetes is the new infrastructure. If you understand how to use it, it automatically unlocks the benefits of standard continuous delivery in your apps. We are going to set up a Kubernetes cluster in Google Cloud Platform and deploy software in a CI/CD manner so that we speed up the release cycle in a way that has no one seen before.
This video course starts by explaining the organizational alignment that has to happen in every company that wants to implement DevOps in order to be effective.
We delve into deploying and managing applications on Kubernetes, but we also take a look at how Docker Swarm works. We also explore how to create a continuous delivery pipeline and deploy a microservice-based system to update it, keeping all the lights on.
We will review some tools for monitoring software, but our focus will be on Stackdriver, as this monitoring solution from Google Cloud Platform provides us (out of the box) with a fairly comprehensive set of tools to deal with the flaws in our systems.
About The Author
David Gonzalez is an enthusiastic engineer and author of a book called DevelopingMicroservices with Node.js; as microservices don’t work without platform automation, he wrote this book to deliver the best possible deal to the readers of both books. He is a Google Developer Expert (a nomination from Google to certain experts in several areas) in Kubernetes (GKE), who enjoys being pushed out of his comfort zone in order to sharpen his skills. Java, Node.js, Python, and DevOps–as well as a holistic approach to security–are part of the skill set that has helped him deliver value across different start-ups and corporations. Nowadays, he is a consultant at nearForm, enabling companies to deliver the best possible solution to their IT problems or proposals, as well as an avid speaker at conferences, such asRebelCon, and Google I/O Extended, among others.
DevOps in the Real World
This video will give you an overview about the course.
DevOps is a philosophy more than a set of tools or a procedure. In this video, we will look at DevOps and corporations.
- Understand the DevOps concept
This video brushes through the traditional release management concept. We will also see the cost of fixing buys as well. The other main part of this video deals with modern release management where we will have a look at Agile development and communicaton.
- Study the traditional release management system
- Understand the importance of Agile development and communication
Microservices are a big trend nowadays. It is a small software components that allow companies to manage their systems on vertical slices of functionality. In this video, we will see DevOps organizational alignment.
- Understand microservices and DevOps Organizational alignment
Docker Swarm and Kubernetes – Clustering Infrastructure
Docker is a fantastic tool that follows the most modern architectural principles used for running applications packed as containers. Docker Swarm is the clustered version of Docker. In this video, we will look into clustering as well.
- Understand the relationship between development and operations with clustering
- Study docker Swarm
Kubernetes is the jewel of the crown of the containers orchestration. We will also see different ways to set up the Kubernetes cluster. We will also look into Kubernetes logical architecture.
- Study Kubernetes
- Understand the logical architecture of Kubernetes
The first thing to start playing with in Kubernetes is a cluster. In this video, we will see how to set up a cluster in Google Cloud Platform.
- Create a cluster
- Install kubectl
In this video, we are going to look at some of the most important API Objects that Kubernetes provide in order to build our applications. First we are going to look at pods which are the basic element of Kubernetes API. To overcome the disadvantages of pods, we have come up with replica sets. We will also see services in Kubernetes.
- Deploy a pod using number of commands
- Create pods using replica set and deploy it
- Create service on top of deployment
In Kubernetes, there are many other building blocks that can be used to build more advanced applications. In this video, we will look at other building blocks of Kubernetes such as daemon sets, PetSets and jobs. We will also see secrets and configuration management in Kuberenetes.
- Understand different building block of Kubernetes
- Create secrets in Kubernetes
Release Management – Continuous Delivery
In this video, we look at different services such as ISO date, UTC date and aggregator service. We will also push the images to Google container registry.
- Understand the test system
- Look at the ISO date and UTC dates service example
- Look at the aggregator service code
Now that we have deployed our images to GCR, we need to automate the process so that we minimize the manual intervention. In this video, we will set up a continuous delivery pipeline for images.
- Create three repository in out GitHub account
- Push the code in the remote repository
Jenkins has become Kubernetes-friendly with a plugin that allows Jenkins to spawn slaves when required in a containerized fashion.
- Set up Jenkins
In this video, we are going to set up the continuous delivery pipeline for our code and the Kubernetes infrastructure. This pipeline is going to be actioned by a Jenkins job, which we will trigger manually. We will also see different deployments such as blue-green and canary deployment.
- Create a service for our application
- Set up Jenkins job to articulate our build
- Look at different deployments
In this video, we will look at two types of monitoring: Blackbox monitoring and White box monitoring.
- Understand the different types of monitoring
Monitoring is usually a good candidate to involve third-party companies. In this video, we are going to take a look at three tools in particular: Pingdom, Logentries and AppDynamics.
- Look at the different third part monitoring tools
Stackdriver can monitor standalone applications by capturing metrics and logs.
- Create a simple monitoring application
In this video, we will create a cluster with stackdrivers and then monitor it.
- Integrate cluster with stackdrivers
- Add monitoring to the cluster
- Create a alerting policy