Practical Devops : Kubernetes & Istio with Google Cloud
What you'll learn
- Learn about container and container orchestration using kubernetes
- Operate kubernetes for microservice architecture
- Use and configure nginx as ingress controller for kubernetes cluster
- How to use argocd for gitops implementation
- Kubernetes concept from the very beginning : pod, deployment, volume, service, ingress, horizontal pod autoscaling
- What is istio and how it relates with kubernetes
- Simplify, or eliminate application code by using istio & envoy proxy
- Create kubernetes analytics using prometheus & grafana for metrics visualization
- How to use helm on kubernetes, including create helm and helm repository with chartmuseum
- Istio traffic management, circuit breaker, canary release, dark launching, and security using mutual TLS (mTLS)
- Kubernetes & istio implementation using GCP (Google Cloud Platform) / GKE (Google Kubernetes Engine)
Requirements
- Just some familiarity with basic linux command (e.g. navigate to folder, run shell command). But other than that, you don't need anything, we will learn from the very beginning
- A laptop (Windows / Mac / Linux) with at least 4 CPU core and 8 GB memory (16 GB reccomended)
- No programming experience required
Description
Overview
This devops bootcamp is the first among several series (coming soon!) to start -or advance- your career as DevOPs or SRE (Site Reliability Engineer).
In this course, you will learn about container technology (docker) and container orchestration (kubernetes). Those are a-must-have knowledge for DevOps engineeer, as docker and kubernetes are popular technology and well sought by many companies. You will also learn about GitOps using ArgoCD, and how to use Istio Service Mesh with Envoy proxy to ease the application management.
What We Will Learn
We will learn how to manage application written on microservice architecture. You don't need to know any programming language to works with this course. In fact, this course is not about programming language, and mostly we will works with text files, terminal, or even graphical user interface.
Learn how to reach infrastructure agility, and easier maintenance compared to traditional infrastrucutre (virtual machine, bare metal). With the help of kubernetes, along with other tools that integrates well, maintaining reliable infrasturcture become a skill that everybody can learn (by using this course, for example).
But kubernetes and docker is not the only technology required for DevOps engineer journey. In this course, we will learn real-life infrastructure architecture that leverages several technologies, integrated to kubernetes. They are:
Nginx : very popular reverse proxy, http load balancer, which is used as traffic gateway, or kubernetes ingress controller
Sealed secret : secure your username, password, and any other "secret" things on kubernetes. Update and share them safely, since the kubernetes will "seal" them and encrypt them in secure way
Grafana, Prometheus : for kubernetes & infrastructure data gathering, analytics, and visualization
Helm : a package manager for kubernetes. Think of zip archive, but kubernetes-style, that can customized
Chartmuseum : a repository for helm
ArgoCD : learn GitOps, a subset of DevOps that focusing on automatic infrastructure based on git repository. Works well since most software engineering team will already familiar with git, so they can also leverage the kubernetes power without knowing the kubernetes itself. Collaborate together, and achieve automated application deployment through GitOps with ArgoCD
Istio & Envoy Proxy : One of the most important item to works with kubernetes. Manage, secure, and monitor your traffic. Add application functionalities without even writing single line of code
Kiali : Istio user interface to visualize your traffic that runs on kubernetes cluster,and manage them!
Jaeger : distributed tracing to know how your microservices performs, which node that has problem
Lens : hate to see the black screen on terminal? Then use this tools to navigate your kubernetes cluster
Pre-requisites
laptop with at least 8 GB memory free (so you need at least 16 GB memory)
or you can use any laptop, since we will learn to use Google Kubernetes Engine (it might has limited free quota if you are new user, but it depends on google)
Course Curricullum
These are the things that you will learn, in more than 100 lectures!
what is container and why it so popular
kubernetes from zero
declarative kubernetes
resource monitoring & limiting
volume binding
kubernetes secret & configuration map
integrate and secure nginx on your kubernetes cluster
automatic horizontal scaling to maintain performance
how to use and create helm charts
how to host your own helm repository (for free)
gitops automatic application synchronization
automatic configuration synchronization
provision and manage tls certificate
distributed tracing
service mesh (using istio and envoy proxy)
traffic management on service mesh
myths / fallacies of distributed system
opentracing
opentelemetry
service mesh visualization
load balancer
canary release
dark launching
automatic timeout / retry without even writing code
mutual TLS for security
Who this course is for:
- Anyone who wants to learn about devops, especially kubernetes and istio
- Those who find a career path as devops engineer or SRE (Site Reliability Engineer)
- Cloud infrastructure engineer who wants to leverage modern technology (kubernetes, istio) especially on google cloud platform (GCP)
- Technical manager who wants to know how to automate microservice infrastructure using kubernetes, istio, and gitops
Instructor
Timotius Pamungkas came from small Indonesian city but now working on it's capital : Jakarta. He's been in software engineering job for years. His first job was in the large consumer finance in Indonesia. Then he took a role as Engineering Manager on Indonesian unicorn. Few moments after, he moved back to another large Indonesian consumer finance and take a role on Engineering & Architect Head.
Taking the role as Head, he get more time to coach his team members about software engineering practice.
With more than 5 years experience as Java developer, and for the last few years handle enterprise complexity as Engineering Manager & Enterprise Architect, he will be glad to deliver high quality courses containing information of various technologies and software architecture design skills that he has acquired through his professional experience.
His goal is to deliver courses that not only good in theory, but also applicable in real-life use cases. His courses give the concept, and the hand-coding experience. He will also provide various resources, including source code to hands-on coding.
Other than his daily job, I also like researching new tech and get his hands into keyboard for writing codes. But he does like share what he learnt. His first teaching experience was back years ago when he was still in the college and teach juniors about algorithm. Some says he is a natural teacher, and he hope that he can share his knowledge by publishing courses into Udemy.