SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
Haggai Philip Zagury | Tikal Knowledge
Kubexperience
Sharing our Experience with K8s
The pla>orm for developers
Who we are ? - Full Stack !
Backend
Promotions only work as
well as the marketing.
DevOps
Kubernetes, SRE, I.A.C
Frontend
React, Node.js
Mobile
Android, Cross Platform
OPS
Operations Background
CM/CI/CD
~10 years practicing CI/CD
Docker Swarm
Making CI flexible
Kubernetes
Take all you know to k8s
KubeExperience
This is literally all I do 70%
of the time ;)
Group & Tech Lead
11+ years @
Configuration Management
Continuous Integration
Continuous Delivery & Deployment
Kubernetes
Monitoring
2008
Haggai Philip
Zagury
What
What is it ?
Why
Do you need it ?
Today’s Goals
Explain how we think you should prepare
yourselves for the era of distributed
systems development
How
Methodology
Tikal Academy
Our in & out strategy
Why do we
kubexperience? Why
Do we do it ?
The why!
Open Source1
Roadmap2
Let’s talk about our Values
What makes us tick
The Bigger Picture
of so,ware development
Containers
Universal packaging unit
Production
Anywhere
Runtime
Any OS
Code
Any Language
Production Environment Evolution
Server-Rack
Unix, Linux Windows, Solaris
Virtualization
Docker
Kubernetes
Cloud OS
The cloud
Public | Private | Multi | Poly
Kubernetes - The OS of the Cloud
Why call it that ?
What
Is Kubexperience ?
kubexperience !
What we wanted to say
Anat Zayit,
Head of FullStack
Community
• kubernetes you must know it
• kubernetes for developers
• OperaZng Kubernetes
• kuberentes for microservices
Assaf Gannon,
Frontend GL
What we wanted to say
• kubernetes you must know it
• kubernetes for developers
• OperaZng Kubernetes
• kuberentes for microservicces Anat Zayit,
Head of FullStack
Community
Assaf Gannon,
Frontend GL
Kubernetes is what they all have in common
What we heard from all our teams
So What ?
✓ New cool tech from Google
✓ Everybody’s seems to be doin’ it
➡ What’s in it for us:
✓ It does this Docker thingy ;)
✓ DeclaraPve formats | Resource DefiniPons
✓ Infrastructure as Code
✓ Flexibility in CI/CD workloads (Pure pay as you go)
✴ MulP-cloud Vendor AgnosPc
✴ Self-managed + As A Service
So What ?
It’s a kubexperience !
Something that changed how we experiment, work,
operate production
How do we (you ?)
kubexperience
The How !
How
Methodology
Theory
Learn what you are
building
Practice
Do it together
Conclusion
Align -> best practice
solution
Hands-On
kubexperience is a set os session designed
as walkthroughs, taking you from Theory to
Practice something you can take with you
at the end to your playground.
Container & Microservices
Docker
Promotions only work
as well as the marketing.
01
02
Microservices
Beyond the single
Microservice
✓ 12 factor app principles
✓Micro service development
✓ Containerisation with Docker (intro 2 docker)
✓ Working with container registries
01
Docker
Promotions only work
as well as the marketing.
01
Container & Microservices
02
✓ Running docker stacks with docker-compose
✓Compose concepts
✓Developing with production in mind
✓12 factor app best practices implementation
Microservices
Beyond the single
Microservice
Docker
Promotions only work
as well as the marketing.
01
Container & Microservices
✓ 12 factor app principles
✓Micro service development
✓ Containerisation with Docker (intro 2 docker)
✓ Working with container registries
01
Docker
Promotions only work
as well as the marketing.
02
✓ Running docker stacks with docker-compose
✓Compose concepts
✓Developing with production in mind
✓12 factor app best practices implementation
Microservices
Beyond the single
Microservice
Container & Microservices
Standard Workloads
Working with Standard
K8s Definitions
04
Kubernetes OS
Kubernetes
Understanding how k8s
works !
03
Standard Workloads
Working with Standard
K8s Definitions
04
Kubernetes
Understanding how k8s
works !
03
nodes key value store control plane components
Kubernetes OS
Kubernetes
Understanding how k8s
works !
03
Standard Workloads
Working with Standard
K8s Resource
Definitions
Tasks Stateful AppsStateless apps
Kubernetes OS
Kubernetes
Understanding how k8s
works !
03
nodes key value store control plane components
Standard Workloads
Working with Standard
K8s Resource
Definitions
04
Tasks Stateful AppsStateless apps
Kubernetes OS
✓ Packaging application on/for k8s
✓ Helm 3 - Using helm for managing application deployment
✓ Kustomize - the new runner up package manager
✓ Application Templating
Microservices
Beyond the single
Microservice
06
K8s Apps
Taking micro services to
the application level
05
K8s - Beyond the Basics
05
K8s Apps
Taking micro services to
the application level
06
✓Using repositories and Helm / Kustomise plugins
✓ Explore secrets management options
✓ Explore Operators / “Kubernetes addons”
✓GitOps - way & short intro
Microservices
Beyond the single
Microservice
Custom Resource Definitions Kubernetes Operators & Common extensions
K8s - Beyond the Basics
use case
Application Scaling
Replica Sets
Load Balancing
Multiple pod instances
App Proxy
proxy-Kube
Service Discovery
core-dns / kube-dns
DNS
core-dns / kube-dns
Kubernetes out of the box use cases
Develop
Docker + docker compose
Prep 4 k8s
Promotions only work as
well as the marketing.
Deploy
See our demo-app
running in k8s
Demo
2
3
1
Perquisites
Requirements you need
1 Docker
container technology
Minikube / k3s / Any k8s
To host our little project
2
3
Kubectl (1.14+)
Compatible with your k8s version
Develop
Docker + docker compose
Prep 4 k8s
Promotions only work as
well as the marketing.
Deploy
See our demo-app
running in k8s
Demo
2
3
1
Develop
Docker + docker compose
cat << EOF > package.json
{
"name": "kubexperience-podinfo",
"version": "1.0.0",
"description": "DNS LB demo Kubexperience app",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"license": "MIT"
}
EOF
Create a package.json
A requirement for
building a node app
mkdir kubexperience-podinfo
Create a project directory
To host our little project1 2
Develop
Docker + docker compose
cat << EOF > index.js
var http = require("http");
var os = require("os");
var server = http
.createServer(function (request, response) {
response.writeHead(200, {
"Content-Type": "text/html",
});
response.end('Your hostname is: ' + os.hostname());
})
.listen(8080);
console.log("Listening on port 8080");
EOF
Create an index.js
Serve the hostname of
the container (pod)
3
Develop
Docker + docker compose
cat << EOF > Dockerfile
FROM node:14.2-alpine
RUN mkdir -p /app
WORKDIR /app
COPY package*.json /app/
RUN npm install
COPY . /app
EXPOSE 8080
CMD [ "npm", "start" ]
EOF
Create a Dockerfile
Package our application
4
Build your container
Package our application
Docker build . -t nodejs-http-demo:latest
5
Local Test
Package our application
echo "http://localhost:8080" && 
docker run --rm -p 8080:8080 nodejs-http-demo:latest
6
Develop
Docker + docker compose
Prep 4 k8s
Promotions only work as
well as the marketing.
Deploy
See our demo-app
running in k8s
Demo
2
3
1
Deploy
Docker + docker compose
Push your container
Share on Doekcer hub
docker login
docker push hagzag/nodejs-http-demo:latest
71
Deploy
Generating standard manifests
Create a deployment
Deployment = rs + pod
cat << EOF > deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ke-podid
spec:
replicas: 1
template:
metadata:
labels:
deployment: ke-podid
spec:
containers:
- name: ke-podid
image: hagzag/nodejs-http-demo:latest
EOF
2
Deploy
Generating standard manifests
Create a service
Expose your deployment
cat << EOF > service.yaml
apiVersion: v1
kind:
metadata:
creationTimestamp: null
labels:
app: ke-podinfo
name: ke-podinfo
spec:
ports:
- port: 8080
protocol: TCP
targetPort: 8080
selector:
app: ke-podinfo
status:
loadBalancer: {}
EOF
3
Deploy
Generating standard manifests
Create a patch file
Prepare for more environment
cat <<EOF >./kustomization.yaml
namePrefix: dev-
commonLabels:
app: ke-podinfo
resources:
- deployment.yaml
- service.yaml
EOF
4
environment prefix
Develop
Docker + docker compose
Prep 4 k8s
Promotions only work as
well as the marketing.
Deploy
See our demo-app
running in k8s
Demo
2
3
1
Prep for K8s
Generating standard manifests
kubectl apply -k ./
Apply Deployment [ patch ]
Prepare for dev environment5
kustomize is a tool designed to let users
“customize raw, template-free YAML files for
mulZple purposes, leaving the original YAML
untouched and usable as is” (wording taken directly
from the kustomize GitHub repository). ... yaml to
store the instrucZons on the changes the user
wants made to a set of resources.
Prep for K8s
Generating standard manifests
kubectl delete -k ./
Cleanup Deployment
Prepare for dev environment
6
Containers
Production
Runtime
Code
Prep 4 k8s
Standard kubernetes manifests
Replicaset
Deployment
Service
Namespace
kubectl get rs
kubectl get deploy
kubectl get svc
kubectl logs <podId>
kubectl describe <podId>
kubectl get ns
Pod
Backed-in Standards
Standard kubernetes manifests
Replicaset
Deployment
Service
Namespace
kubectl get rs
kubectl get deploy
kubectl get svc
kubectl logs <podId>
kubectl describe <podId>
kubectl get ns
Pod
Application Scaling
Replica Sets
Load Balancing
Multiple pod instances
App Proxy
proxy-Kube
Service Discovery
core-dns / kibe-dns
DNS
core-dns / kibe-dns
Develop
Docker + docker compose
Prep 4 k8s
Promotions only work as
well as the marketing.
Deploy
See our demo-app
running in k8s
2
3
1
4
Kuberentes in Docker
Do everything on your laptop
You are the cloud !
Cool tool -> K8s
Generating standard manifests
kind create cluster --name kubexperience
Create a cluster with kind
create a cluster locally
kind delete cluster --name kubexperience
Cleanup Deployment
Prepare for dev environment
0
7
kubectl apply -k ./
Apply Deployment [ patch ]
Prepare for dev environment52
A cloud experience on your laptop
Generating standard manifests
kind create cluster --name kubexperience-MetalLB
Create a cluster with kind
create a cluster locally0
kubectl apply -k ./
Deploy MetalLB
So we have a load balancer provider
2
Kubexperience
Join our next ride - June 2020 Online
kubexperience@bkalk.com

Weitere ähnliche Inhalte

Was ist angesagt?

Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...
Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...
Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...
mfrancis
 

Was ist angesagt? (20)

Linux intro
Linux introLinux intro
Linux intro
 
Helm intro
Helm introHelm intro
Helm intro
 
Terraform 101
Terraform 101Terraform 101
Terraform 101
 
Whats all the FaaS About
Whats all the FaaS AboutWhats all the FaaS About
Whats all the FaaS About
 
DevTernity - DevOps with smell
DevTernity - DevOps with smellDevTernity - DevOps with smell
DevTernity - DevOps with smell
 
Dev ops with smell v1.2
Dev ops with smell v1.2Dev ops with smell v1.2
Dev ops with smell v1.2
 
Docker Meetup San Francisco: Radical Agility with Docker & AWS
Docker Meetup San Francisco: Radical Agility with Docker & AWSDocker Meetup San Francisco: Radical Agility with Docker & AWS
Docker Meetup San Francisco: Radical Agility with Docker & AWS
 
Automated Serverless Pipelines with #GitOps on Codefresh
Automated Serverless Pipelines with #GitOps on CodefreshAutomated Serverless Pipelines with #GitOps on Codefresh
Automated Serverless Pipelines with #GitOps on Codefresh
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
 
Build Your Own PaaS, Just like Red Hat's OpenShift from LinuxCon 2013 New Orl...
Build Your Own PaaS, Just like Red Hat's OpenShift from LinuxCon 2013 New Orl...Build Your Own PaaS, Just like Red Hat's OpenShift from LinuxCon 2013 New Orl...
Build Your Own PaaS, Just like Red Hat's OpenShift from LinuxCon 2013 New Orl...
 
Application Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesApplication Modernization with PKS / Kubernetes
Application Modernization with PKS / Kubernetes
 
Monitor your Java application with Prometheus Stack
Monitor your Java application with Prometheus StackMonitor your Java application with Prometheus Stack
Monitor your Java application with Prometheus Stack
 
Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...
Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...
Build bundles in the cloud - How Cloudyle PaaS+ helps creating OSGi applicati...
 
Kubernetes day 2 Operations
Kubernetes day 2 OperationsKubernetes day 2 Operations
Kubernetes day 2 Operations
 
Deploying Cloud Native Red Team Infrastructure with Kubernetes, Istio and Envoy
Deploying Cloud Native Red Team Infrastructure with Kubernetes, Istio and Envoy Deploying Cloud Native Red Team Infrastructure with Kubernetes, Istio and Envoy
Deploying Cloud Native Red Team Infrastructure with Kubernetes, Istio and Envoy
 
Puppet on a string
Puppet on a stringPuppet on a string
Puppet on a string
 
Terraform GitOps on Codefresh
Terraform GitOps on CodefreshTerraform GitOps on Codefresh
Terraform GitOps on Codefresh
 
Cloud infrastructure as code
Cloud infrastructure as codeCloud infrastructure as code
Cloud infrastructure as code
 
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
 

Ähnlich wie Kubexperience intro session

Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019
Hidora
 

Ähnlich wie Kubexperience intro session (20)

DCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization StrategyDCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization Strategy
 
Better code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloudBetter code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloud
 
DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy  DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy
 
Docker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to DockerDocker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to Docker
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
 

Mehr von Haggai Philip Zagury

Tce automation-d4-110102123012-phpapp01
Tce automation-d4-110102123012-phpapp01Tce automation-d4-110102123012-phpapp01
Tce automation-d4-110102123012-phpapp01
Haggai Philip Zagury
 

Mehr von Haggai Philip Zagury (10)

DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Kube Security Shifting left | Scanners & OPA
Kube Security Shifting left | Scanners & OPAKube Security Shifting left | Scanners & OPA
Kube Security Shifting left | Scanners & OPA
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3s
 
Auth experience - vol 1.0
Auth experience  - vol 1.0Auth experience  - vol 1.0
Auth experience - vol 1.0
 
Auth experience
Auth experienceAuth experience
Auth experience
 
Machine Learning - Continuous operations
Machine Learning - Continuous operationsMachine Learning - Continuous operations
Machine Learning - Continuous operations
 
Git internals
Git internalsGit internals
Git internals
 
Tce automation-d4-110102123012-phpapp01
Tce automation-d4-110102123012-phpapp01Tce automation-d4-110102123012-phpapp01
Tce automation-d4-110102123012-phpapp01
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Kubexperience intro session

  • 1. Haggai Philip Zagury | Tikal Knowledge Kubexperience Sharing our Experience with K8s The pla>orm for developers
  • 2. Who we are ? - Full Stack ! Backend Promotions only work as well as the marketing. DevOps Kubernetes, SRE, I.A.C Frontend React, Node.js Mobile Android, Cross Platform
  • 3. OPS Operations Background CM/CI/CD ~10 years practicing CI/CD Docker Swarm Making CI flexible Kubernetes Take all you know to k8s KubeExperience This is literally all I do 70% of the time ;) Group & Tech Lead 11+ years @ Configuration Management Continuous Integration Continuous Delivery & Deployment Kubernetes Monitoring 2008 Haggai Philip Zagury
  • 4. What What is it ? Why Do you need it ? Today’s Goals Explain how we think you should prepare yourselves for the era of distributed systems development How Methodology
  • 5. Tikal Academy Our in & out strategy
  • 6. Why do we kubexperience? Why Do we do it ? The why!
  • 7. Open Source1 Roadmap2 Let’s talk about our Values What makes us tick
  • 8. The Bigger Picture of so,ware development Containers Universal packaging unit Production Anywhere Runtime Any OS Code Any Language
  • 9. Production Environment Evolution Server-Rack Unix, Linux Windows, Solaris Virtualization Docker Kubernetes Cloud OS The cloud Public | Private | Multi | Poly
  • 10. Kubernetes - The OS of the Cloud
  • 11. Why call it that ? What Is Kubexperience ? kubexperience !
  • 12. What we wanted to say Anat Zayit, Head of FullStack Community • kubernetes you must know it • kubernetes for developers • OperaZng Kubernetes • kuberentes for microservices Assaf Gannon, Frontend GL
  • 13. What we wanted to say • kubernetes you must know it • kubernetes for developers • OperaZng Kubernetes • kuberentes for microservicces Anat Zayit, Head of FullStack Community Assaf Gannon, Frontend GL
  • 14. Kubernetes is what they all have in common What we heard from all our teams
  • 15. So What ? ✓ New cool tech from Google ✓ Everybody’s seems to be doin’ it ➡ What’s in it for us: ✓ It does this Docker thingy ;) ✓ DeclaraPve formats | Resource DefiniPons ✓ Infrastructure as Code ✓ Flexibility in CI/CD workloads (Pure pay as you go) ✴ MulP-cloud Vendor AgnosPc ✴ Self-managed + As A Service
  • 16. So What ? It’s a kubexperience ! Something that changed how we experiment, work, operate production
  • 17. How do we (you ?) kubexperience The How ! How Methodology
  • 18. Theory Learn what you are building Practice Do it together Conclusion Align -> best practice solution Hands-On kubexperience is a set os session designed as walkthroughs, taking you from Theory to Practice something you can take with you at the end to your playground.
  • 19. Container & Microservices Docker Promotions only work as well as the marketing. 01 02 Microservices Beyond the single Microservice
  • 20. ✓ 12 factor app principles ✓Micro service development ✓ Containerisation with Docker (intro 2 docker) ✓ Working with container registries 01 Docker Promotions only work as well as the marketing. 01 Container & Microservices
  • 21. 02 ✓ Running docker stacks with docker-compose ✓Compose concepts ✓Developing with production in mind ✓12 factor app best practices implementation Microservices Beyond the single Microservice Docker Promotions only work as well as the marketing. 01 Container & Microservices
  • 22. ✓ 12 factor app principles ✓Micro service development ✓ Containerisation with Docker (intro 2 docker) ✓ Working with container registries 01 Docker Promotions only work as well as the marketing. 02 ✓ Running docker stacks with docker-compose ✓Compose concepts ✓Developing with production in mind ✓12 factor app best practices implementation Microservices Beyond the single Microservice Container & Microservices
  • 23. Standard Workloads Working with Standard K8s Definitions 04 Kubernetes OS Kubernetes Understanding how k8s works ! 03
  • 24. Standard Workloads Working with Standard K8s Definitions 04 Kubernetes Understanding how k8s works ! 03 nodes key value store control plane components Kubernetes OS
  • 25. Kubernetes Understanding how k8s works ! 03 Standard Workloads Working with Standard K8s Resource Definitions Tasks Stateful AppsStateless apps Kubernetes OS
  • 26. Kubernetes Understanding how k8s works ! 03 nodes key value store control plane components Standard Workloads Working with Standard K8s Resource Definitions 04 Tasks Stateful AppsStateless apps Kubernetes OS
  • 27. ✓ Packaging application on/for k8s ✓ Helm 3 - Using helm for managing application deployment ✓ Kustomize - the new runner up package manager ✓ Application Templating Microservices Beyond the single Microservice 06 K8s Apps Taking micro services to the application level 05 K8s - Beyond the Basics
  • 28. 05 K8s Apps Taking micro services to the application level 06 ✓Using repositories and Helm / Kustomise plugins ✓ Explore secrets management options ✓ Explore Operators / “Kubernetes addons” ✓GitOps - way & short intro Microservices Beyond the single Microservice Custom Resource Definitions Kubernetes Operators & Common extensions K8s - Beyond the Basics
  • 29. use case Application Scaling Replica Sets Load Balancing Multiple pod instances App Proxy proxy-Kube Service Discovery core-dns / kube-dns DNS core-dns / kube-dns Kubernetes out of the box use cases
  • 30. Develop Docker + docker compose Prep 4 k8s Promotions only work as well as the marketing. Deploy See our demo-app running in k8s Demo 2 3 1
  • 31. Perquisites Requirements you need 1 Docker container technology Minikube / k3s / Any k8s To host our little project 2 3 Kubectl (1.14+) Compatible with your k8s version
  • 32. Develop Docker + docker compose Prep 4 k8s Promotions only work as well as the marketing. Deploy See our demo-app running in k8s Demo 2 3 1
  • 33. Develop Docker + docker compose cat << EOF > package.json { "name": "kubexperience-podinfo", "version": "1.0.0", "description": "DNS LB demo Kubexperience app", "main": "index.js", "scripts": { "start": "node index.js" }, "license": "MIT" } EOF Create a package.json A requirement for building a node app mkdir kubexperience-podinfo Create a project directory To host our little project1 2
  • 34. Develop Docker + docker compose cat << EOF > index.js var http = require("http"); var os = require("os"); var server = http .createServer(function (request, response) { response.writeHead(200, { "Content-Type": "text/html", }); response.end('Your hostname is: ' + os.hostname()); }) .listen(8080); console.log("Listening on port 8080"); EOF Create an index.js Serve the hostname of the container (pod) 3
  • 35. Develop Docker + docker compose cat << EOF > Dockerfile FROM node:14.2-alpine RUN mkdir -p /app WORKDIR /app COPY package*.json /app/ RUN npm install COPY . /app EXPOSE 8080 CMD [ "npm", "start" ] EOF Create a Dockerfile Package our application 4 Build your container Package our application Docker build . -t nodejs-http-demo:latest 5 Local Test Package our application echo "http://localhost:8080" && docker run --rm -p 8080:8080 nodejs-http-demo:latest 6
  • 36. Develop Docker + docker compose Prep 4 k8s Promotions only work as well as the marketing. Deploy See our demo-app running in k8s Demo 2 3 1
  • 37. Deploy Docker + docker compose Push your container Share on Doekcer hub docker login docker push hagzag/nodejs-http-demo:latest 71
  • 38. Deploy Generating standard manifests Create a deployment Deployment = rs + pod cat << EOF > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: ke-podid spec: replicas: 1 template: metadata: labels: deployment: ke-podid spec: containers: - name: ke-podid image: hagzag/nodejs-http-demo:latest EOF 2
  • 39. Deploy Generating standard manifests Create a service Expose your deployment cat << EOF > service.yaml apiVersion: v1 kind: metadata: creationTimestamp: null labels: app: ke-podinfo name: ke-podinfo spec: ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: ke-podinfo status: loadBalancer: {} EOF 3
  • 40. Deploy Generating standard manifests Create a patch file Prepare for more environment cat <<EOF >./kustomization.yaml namePrefix: dev- commonLabels: app: ke-podinfo resources: - deployment.yaml - service.yaml EOF 4 environment prefix
  • 41. Develop Docker + docker compose Prep 4 k8s Promotions only work as well as the marketing. Deploy See our demo-app running in k8s Demo 2 3 1
  • 42. Prep for K8s Generating standard manifests kubectl apply -k ./ Apply Deployment [ patch ] Prepare for dev environment5 kustomize is a tool designed to let users “customize raw, template-free YAML files for mulZple purposes, leaving the original YAML untouched and usable as is” (wording taken directly from the kustomize GitHub repository). ... yaml to store the instrucZons on the changes the user wants made to a set of resources.
  • 43. Prep for K8s Generating standard manifests kubectl delete -k ./ Cleanup Deployment Prepare for dev environment 6 Containers Production Runtime Code
  • 44. Prep 4 k8s Standard kubernetes manifests Replicaset Deployment Service Namespace kubectl get rs kubectl get deploy kubectl get svc kubectl logs <podId> kubectl describe <podId> kubectl get ns Pod
  • 45. Backed-in Standards Standard kubernetes manifests Replicaset Deployment Service Namespace kubectl get rs kubectl get deploy kubectl get svc kubectl logs <podId> kubectl describe <podId> kubectl get ns Pod Application Scaling Replica Sets Load Balancing Multiple pod instances App Proxy proxy-Kube Service Discovery core-dns / kibe-dns DNS core-dns / kibe-dns
  • 46. Develop Docker + docker compose Prep 4 k8s Promotions only work as well as the marketing. Deploy See our demo-app running in k8s 2 3 1 4 Kuberentes in Docker Do everything on your laptop You are the cloud !
  • 47. Cool tool -> K8s Generating standard manifests kind create cluster --name kubexperience Create a cluster with kind create a cluster locally kind delete cluster --name kubexperience Cleanup Deployment Prepare for dev environment 0 7 kubectl apply -k ./ Apply Deployment [ patch ] Prepare for dev environment52
  • 48. A cloud experience on your laptop Generating standard manifests kind create cluster --name kubexperience-MetalLB Create a cluster with kind create a cluster locally0 kubectl apply -k ./ Deploy MetalLB So we have a load balancer provider 2
  • 49. Kubexperience Join our next ride - June 2020 Online kubexperience@bkalk.com