SlideShare a Scribd company logo
1 of 32
Copyright @ 2018 JFrog - All rights reserved
Kubernetes is hard!
Lessons learned taking our apps
to Kubernetes
Eldad Assis | DevOps Architect | JFrog
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Me
Email: eldada@jfrog.com
Twitter: @eldadak
LinkedIn: Eldad Assis
What I do
- I solve problems @ JFrog
- Bringing Dev and Ops closer for over 15 years
- Doing CI/CD since the turn of the century
- Automation, automation and… automation!
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Docker
Containers
● Kubernetes
An open-source system for automating deployment, scaling, and
management of containerized applications.
No deep diving. No Demo… sorry
Come see me after the talk for more!
For this talk, I assume you know a bit
Recommended knowledge
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
1. Spin up a fully functional, big or small, environment with our products
a. Developer, QA, Support, Product, Solution… anyone!
b. JFrog Enterprise Plus
2. Per branch CI/CD
a. Integrate my branch with other products development branches
3. Better utilize our resources
4. Support a new distribution for JFrog products
Our journey to Kubernetes
The problems we wanted to solve
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Start small
● Get your application ready before jumping into Kubernetes
● Security - know what’s running in your cluster
● Limits
● Health probes
● Visibility - usable and accessible monitoring and logging system
● Work with the community!
The End
What you should take from here
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Kubernetes - the myth
ZZZZ….
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Kubernetes - the reality
Hmmm….
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Start with a small application example (nginx)
● Use existing demos
○ Understand them. What does each line actually means
● Set a minimal goal for getting your app to run in Kubernetes
● Get comfortable before you move on
○ Use managed K8s to free yourself of setups (AKS, EKS, GKE)
Where should you start?
Start small!
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
A lot has to be done on your application before you can
comfortably run it in Kubernetes
Here are some key points to consider when planning your
move to Kubernetes
Start with the application!
Is your application ready to run in Kubernetes?
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Logging
○ STDOUT/STDERR
○ Handling multiple log files
● Data Persistency
○ What kind of data needs persistency (if at all)?
● Proper handling of termination signals to init a proper shutdown
○ Controlled shutdown of the application
○ Easier recovery (after a controlled shutdown)
● Survive a restart
○ Managing leftovers from previous run
Is your app ready for Kubernetes?
It’s not just pushing it to Docker...
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Improve durability and availability
● Support running multiple instances of your application with load
balancing between them
○ Scaling up and down will be easy (horizontal scaling)
● Rolling upgrades for zero downtime
○ Backward compatibility
● Zero service unavailability due to pod rescheduling
○ Cluster scaling (down)
○ Pod evicted or crashed
○ Unplanned outage of a node
Is your app ready for Kubernetes?
High availability as the new default!
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
I. Codebase - One codebase tracked in revision control, many deploys
II. Dependencies - Explicitly declare and isolate dependencies
III. Config - Store config in the environment
IV. Backing services - Treat backing services as attached resources
V. Build, release, run - Strictly separate build and run stages
VI. Processes - Execute the app as one or more stateless processes
Is your app ready for Kubernetes?
The Twelve-Factor App (https://12factor.net/)
VII. Port binding - Export services via port binding
VIII. Concurrency - Scale out via the process model
IX. Disposability - Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity - Keep development, staging, and production as similar as possible
XI. Logs - Treat logs as event streams
XII. Admin processes - Run admin/management tasks as one-off processes
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Your application is rarely the only thing in its container
○ OS packages, OSS libs, 3rd party processes
● Security vulnerabilities
● FOSS licenses compliance
Security
What’s running with your application?
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Once your application is ready, let’s talk about to how to properly
manage your applications run-time and configuration in Kubernetes
And now - Kubernetes
Properly running in Kubernetes
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Pod limits. Always!
● The app inside might need its own limits. For example:
○ Java apps
■ -Xms=1g -Xmx=2g
○ RabbitMQ
■ [rabbitmq.conf]
total_memory_available_override_value = 1GB
○ MongoDB
■ --wiredTigerCacheSizeGB=1
Know your limits
There might be more than you know….
…
resources:
requests:
memory: "1Gi"
cpu: "100m"
limits:
memory: "2Gi"
cpu: "250m"
...
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● The total sum of limits on a node can be way over 100%
● This allows for resource sharing between pods
● Pods will crash! Nodes will crash!
● See out of resources handling by Kubernetes
● Be prepared
○ Think about the requested and limits values
○ Spread your application across nodes using multiple
replicas (HA)
○ Use pods priority and preemption to take control
Know your limits - don’t overload
There might be more than you know….
…
resources:
requests:
memory: "64Mi"
cpu: "20m"
limits:
memory: "2Gi"
cpu: "4"
...
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Your application must have a reliable metric for health
● readinessProbe
○ Is the app ready to start serving
● livenessProbe
○ Is the app good to continue serving
● Types
○ Exec - return 0 on success
○ Http - return < 400 on success
○ Tcp - succeed to open a socket on a given port
● For complex checks, write a script and use the exec probe
Know your app’s health
Application’s readiness and health
…
readinessProbe:
httpGet:
path: /api/system/health
port: 8080
…
livenessProbe:
exec:
command:
- mongo
- --eval
- "db.adminCommand('ping')"
…
livenessProbe:
tcpSocket:
port: 5672
…
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Init Containers - run before main container
○ Prepare storage
○ Setup configuration
● Sidecar containers - run alongside main container
○ Maintenance
○ Log collection
○ Monitoring
○ Proxy
Multiple containers in a Pod
When a single container is not enough
Application pod example.
Multiple artifactory logs forwarded by a
Fluentbit container to a log aggregator.
Pod
Application
container
Fluentbit
container
Logs
Log
collector
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Your application is made up of multiple components
○ Each represented as a yaml file or snippet
● Versioning of an application that’s made up of several yaml files is
challenging
● Having all configuration in the yaml files is great, but
○ How can I use the same yaml for different environments?
■ Local (minikube)
■ Dev cluster
■ Production
● Rolling back to earlier versions of the application
Managing an application’s lifecycle
The static nature of the yaml descriptors is challenging
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● https://helm.sh/
● Helm is the package manager for Kubernetes. Like ‘yum’ for
CentOS/RedHat
● Your whole application described in a single package - helm
chart (template yamls)
● Default configuration values (values.yaml)
● Single version for every chart (Chart.yaml)
Here comes Helm!
Dynamic control over your application’s deployment
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Use same chart for dev,staging and production!
○ Each environment’s config managed in its own copy of values.yaml that is version
controlled (values-stg.yaml, values-prod.yaml)
○ The default values.yaml should be for dev or local, so a developer can use it locally without
hassle
○ Everything is configurable!
● External charts as requirements (dependencies)
○ Databases
○ Other 3rd parties
Helm - YES!
Use same chart in all environments
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Helm - YES! YES!
Useful helm commands for understanding what the helm is going on...
# Lint your chart for errors and recommendations
$ helm lint <chart path>
# Download a chart for local viewing
$ helm fetch <chart>
# Get a release (application already deployed with helm) actual configuration
$ helm get <release>
# Get the status of all the resources included in a release
$ helm status <release>
# Get the actual resolved configuration without deploying anything
$ helm template <chart>
$ helm install --debug --dry-run <chart>
# Test your release (need to write test pods in your chart)
$ helm test <release>
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
More Helm charts
Find existing charts
https://hub.kubeapps.com/
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● No more “ssh to the server and get me the logs”!
● Developers should not need kubectl access to debug their
applications
● Provide your Dev and Ops easy and reliable data
○ Monitoring
○ Logging
● Managed solutions provide OOB tooling
Visibility in Kubernetes?
We are not in Kansas anymore...
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Dashboard for nodes
and pods
* Prometheus
* Grafana
Visibility in Kubernetes?
Monitoring
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Logs from all pods
EFK stack
* Fluentd
* ElasticSearch
* Kibana
Visibility in Kubernetes?
Logging
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Use with your CI
Plug your CI/CD to a Kubernetes cluster for easy environment deployment
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Development CI/CD our products to K8s for testing
○ Using our official Helm charts
○ On demand, fully isolated environment per branch per developer
○ 100’s of custom testing environments a week made up of ~50+ services
● Started moving our cloud based applications to K8s
○ Internal and external
● Official JFrog Helm charts for all our products
JFrog and Kubernetes
What are we doing with Kubernetes?
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● You are not the first one to stumble on that particular problem
● It’s as if you have more developers in your team
● Fast turnaround
● Examples
○ RabbitMQ HA
○ MongoDB (Bitnami)
The community
Use already tested and managed helm charts
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
● Start small
● Get your application ready before jumping into Kubernetes
● Security - know what’s running in your cluster
● Limits
● Health probes
● Visibility - usable and accessible monitoring and logging system
● Work with the community!
The (real) End
What you should take from here
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Smooth sailing...
Copyright © 2018 JFrog. All Rights Reserved | www.swampup.jfrog.com
Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018
Be Good!
join.jfrog.com

More Related Content

What's hot

MicroService architecture_&_Kubernetes
MicroService architecture_&_KubernetesMicroService architecture_&_Kubernetes
MicroService architecture_&_KubernetesAkash Agrawal
 
Intro to creating kubernetes operators
Intro to creating kubernetes operators Intro to creating kubernetes operators
Intro to creating kubernetes operators Juraj Hantak
 
Kubernetes Deployments: A "Hands-off" Approach
Kubernetes Deployments: A "Hands-off" ApproachKubernetes Deployments: A "Hands-off" Approach
Kubernetes Deployments: A "Hands-off" ApproachRodrigo Reis
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionPhil Estes
 
Securing Containerized Applications: A Primer
Securing Containerized Applications: A PrimerSecuring Containerized Applications: A Primer
Securing Containerized Applications: A PrimerPhil Estes
 
Let's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for KubernetesLet's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for KubernetesPhil Estes
 
Enabling Security via Container Runtimes
Enabling Security via Container RuntimesEnabling Security via Container Runtimes
Enabling Security via Container RuntimesPhil Estes
 
Kubernetes 1.12 Update and Container Security with Liz Rice
Kubernetes 1.12 Update and Container Security with Liz RiceKubernetes 1.12 Update and Container Security with Liz Rice
Kubernetes 1.12 Update and Container Security with Liz RiceCloudOps2005
 
Intuit Build Platform Journey - Jenkins World 2018
Intuit Build Platform Journey - Jenkins World 2018Intuit Build Platform Journey - Jenkins World 2018
Intuit Build Platform Journey - Jenkins World 2018Srivathsan Canchi
 
Cncf storage-final-filip
Cncf storage-final-filipCncf storage-final-filip
Cncf storage-final-filipJuraj Hantak
 
Kubernetes - A Rising Hero
Kubernetes - A Rising HeroKubernetes - A Rising Hero
Kubernetes - A Rising HeroHuynh Thai Bao
 
AWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation LiveAWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation LiveRed Hat Developers
 
Cloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications PrimerCloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications PrimerPhil Estes
 
Kubernetes for machine learning
Kubernetes for machine learningKubernetes for machine learning
Kubernetes for machine learningAkash Agrawal
 
Profiling Java inside containers with ContainerJFR | DevNation Tech Talk
Profiling Java inside containers with ContainerJFR | DevNation Tech TalkProfiling Java inside containers with ContainerJFR | DevNation Tech Talk
Profiling Java inside containers with ContainerJFR | DevNation Tech TalkRed Hat Developers
 
MicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshMicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshAkash Agrawal
 
Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Docker, Inc.
 
Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Janakiram MSV
 

What's hot (20)

MicroService architecture_&_Kubernetes
MicroService architecture_&_KubernetesMicroService architecture_&_Kubernetes
MicroService architecture_&_Kubernetes
 
Intro to creating kubernetes operators
Intro to creating kubernetes operators Intro to creating kubernetes operators
Intro to creating kubernetes operators
 
Kubernetes Deployments: A "Hands-off" Approach
Kubernetes Deployments: A "Hands-off" ApproachKubernetes Deployments: A "Hands-off" Approach
Kubernetes Deployments: A "Hands-off" Approach
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine Evolution
 
Securing Containerized Applications: A Primer
Securing Containerized Applications: A PrimerSecuring Containerized Applications: A Primer
Securing Containerized Applications: A Primer
 
Let's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for KubernetesLet's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for Kubernetes
 
Enabling Security via Container Runtimes
Enabling Security via Container RuntimesEnabling Security via Container Runtimes
Enabling Security via Container Runtimes
 
Tce automation-d4
Tce automation-d4Tce automation-d4
Tce automation-d4
 
Swarm migration
Swarm migrationSwarm migration
Swarm migration
 
Kubernetes 1.12 Update and Container Security with Liz Rice
Kubernetes 1.12 Update and Container Security with Liz RiceKubernetes 1.12 Update and Container Security with Liz Rice
Kubernetes 1.12 Update and Container Security with Liz Rice
 
Intuit Build Platform Journey - Jenkins World 2018
Intuit Build Platform Journey - Jenkins World 2018Intuit Build Platform Journey - Jenkins World 2018
Intuit Build Platform Journey - Jenkins World 2018
 
Cncf storage-final-filip
Cncf storage-final-filipCncf storage-final-filip
Cncf storage-final-filip
 
Kubernetes - A Rising Hero
Kubernetes - A Rising HeroKubernetes - A Rising Hero
Kubernetes - A Rising Hero
 
AWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation LiveAWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation Live
 
Cloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications PrimerCloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications Primer
 
Kubernetes for machine learning
Kubernetes for machine learningKubernetes for machine learning
Kubernetes for machine learning
 
Profiling Java inside containers with ContainerJFR | DevNation Tech Talk
Profiling Java inside containers with ContainerJFR | DevNation Tech TalkProfiling Java inside containers with ContainerJFR | DevNation Tech Talk
Profiling Java inside containers with ContainerJFR | DevNation Tech Talk
 
MicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshMicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMesh
 
Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)
 
Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets
 

Similar to Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Assis, JFrog - Cloud Native Day Tel Aviv 2018

Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisAgileSparks
 
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...Haggai Philip Zagury
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyWeaveworks
 
GitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyGitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyWeaveworks
 
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17Muga Nishizawa
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainŁukasz Piątkowski
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018OpenEBS
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Curity
 
From shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practicesFrom shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practicesAnkush Chadha, MBA, MS
 
Http Services in Rust on Containers
Http Services in Rust on ContainersHttp Services in Rust on Containers
Http Services in Rust on ContainersAnton Whalley
 
Meetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaCMeetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaCDamienCarpy
 
OSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt Jarvis
OSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt JarvisOSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt Jarvis
OSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt JarvisNETWAYS
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For DevelopmentLaura Frank Tacho
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppPaulo Alberto Simoes ∴
 
Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...
Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...
Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...Jahia Solutions Group
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOpsShaun Smith
 
Containerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talkContainerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talkPatrick Galbraith
 
GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...
GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...
GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...James Anderson
 
ATT&CKING Containers in The Cloud
ATT&CKING Containers in The CloudATT&CKING Containers in The Cloud
ATT&CKING Containers in The CloudMITRE ATT&CK
 

Similar to Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Assis, JFrog - Cloud Native Day Tel Aviv 2018 (20)

Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
 
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...
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott Rigby
 
GitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyGitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott Rigby
 
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform Gain
 
The rise of microservices
The rise of microservicesThe rise of microservices
The rise of microservices
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1
 
From shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practicesFrom shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practices
 
Http Services in Rust on Containers
Http Services in Rust on ContainersHttp Services in Rust on Containers
Http Services in Rust on Containers
 
Meetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaCMeetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaC
 
OSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt Jarvis
OSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt JarvisOSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt Jarvis
OSDC 2019 | Introducing Kudo – Kubernetes Operators the easy way by Matt Jarvis
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For Development
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
 
Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...
Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...
Docker, Kubernetes, Openshift: Jahia on steroids in production with Julian Ma...
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
Containerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talkContainerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talk
 
GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...
GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...
GDG Cloud Southlake no. 22 Gutta and Nayer GCP Terraform Modules Scaling Your...
 
ATT&CKING Containers in The Cloud
ATT&CKING Containers in The CloudATT&CKING Containers in The Cloud
ATT&CKING Containers in The Cloud
 

More from Cloud Native Day Tel Aviv

Cloud Native is a Cultural Decision. By Reshef Mann
Cloud Native is a Cultural Decision. By Reshef MannCloud Native is a Cultural Decision. By Reshef Mann
Cloud Native is a Cultural Decision. By Reshef MannCloud Native Day Tel Aviv
 
Container Runtime Security with Falco, by Néstor Salceda
Container Runtime Security with Falco, by Néstor SalcedaContainer Runtime Security with Falco, by Néstor Salceda
Container Runtime Security with Falco, by Néstor SalcedaCloud Native Day Tel Aviv
 
Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...
Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...
Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...Cloud Native Day Tel Aviv
 
Running I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomRunning I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomCloud Native Day Tel Aviv
 
WTF Do We Need a Service Mesh? By Anton Weiss.
WTF Do We Need a Service Mesh? By Anton Weiss.WTF Do We Need a Service Mesh? By Anton Weiss.
WTF Do We Need a Service Mesh? By Anton Weiss.Cloud Native Day Tel Aviv
 
Update Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveUpdate Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveCloud Native Day Tel Aviv
 
Building a Cloud-Native SaaS Product The Hard Way. By Arthur Berezin
Building a Cloud-Native SaaS Product The Hard Way. By Arthur BerezinBuilding a Cloud-Native SaaS Product The Hard Way. By Arthur Berezin
Building a Cloud-Native SaaS Product The Hard Way. By Arthur BerezinCloud Native Day Tel Aviv
 
The Four Questions (Every Monitoring Engineer gets asked), by Leon Adato
The Four Questions (Every Monitoring Engineer gets asked), by Leon AdatoThe Four Questions (Every Monitoring Engineer gets asked), by Leon Adato
The Four Questions (Every Monitoring Engineer gets asked), by Leon AdatoCloud Native Day Tel Aviv
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.Cloud Native Day Tel Aviv
 
Cloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-Shalom
Cloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-ShalomCloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-Shalom
Cloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-ShalomCloud Native Day Tel Aviv
 
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.Cloud Native Day Tel Aviv
 
Cloud native transformation patterns, by Pini Reznik
Cloud native transformation patterns, by Pini ReznikCloud native transformation patterns, by Pini Reznik
Cloud native transformation patterns, by Pini ReznikCloud Native Day Tel Aviv
 
Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...
Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...
Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...Cloud Native Day Tel Aviv
 
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...Cloud Native Day Tel Aviv
 
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...Cloud Native Day Tel Aviv
 
Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...
Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...
Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...Cloud Native Day Tel Aviv
 
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...Cloud Native Day Tel Aviv
 
The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...
The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...
The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...Cloud Native Day Tel Aviv
 
I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018
I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018
I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018Cloud Native Day Tel Aviv
 
Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...
Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...
Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...Cloud Native Day Tel Aviv
 

More from Cloud Native Day Tel Aviv (20)

Cloud Native is a Cultural Decision. By Reshef Mann
Cloud Native is a Cultural Decision. By Reshef MannCloud Native is a Cultural Decision. By Reshef Mann
Cloud Native is a Cultural Decision. By Reshef Mann
 
Container Runtime Security with Falco, by Néstor Salceda
Container Runtime Security with Falco, by Néstor SalcedaContainer Runtime Security with Falco, by Néstor Salceda
Container Runtime Security with Falco, by Néstor Salceda
 
Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...
Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...
Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replicati...
 
Running I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomRunning I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati Shalom
 
WTF Do We Need a Service Mesh? By Anton Weiss.
WTF Do We Need a Service Mesh? By Anton Weiss.WTF Do We Need a Service Mesh? By Anton Weiss.
WTF Do We Need a Service Mesh? By Anton Weiss.
 
Update Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveUpdate Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat Cosgrove
 
Building a Cloud-Native SaaS Product The Hard Way. By Arthur Berezin
Building a Cloud-Native SaaS Product The Hard Way. By Arthur BerezinBuilding a Cloud-Native SaaS Product The Hard Way. By Arthur Berezin
Building a Cloud-Native SaaS Product The Hard Way. By Arthur Berezin
 
The Four Questions (Every Monitoring Engineer gets asked), by Leon Adato
The Four Questions (Every Monitoring Engineer gets asked), by Leon AdatoThe Four Questions (Every Monitoring Engineer gets asked), by Leon Adato
The Four Questions (Every Monitoring Engineer gets asked), by Leon Adato
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
 
Cloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-Shalom
Cloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-ShalomCloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-Shalom
Cloud Native: The Cattle, the Pets, and the Germs, by Avishai Ish-Shalom
 
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
 
Cloud native transformation patterns, by Pini Reznik
Cloud native transformation patterns, by Pini ReznikCloud native transformation patterns, by Pini Reznik
Cloud native transformation patterns, by Pini Reznik
 
Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...
Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...
Cloud and Edge: price, performance and privacy considerations in IOT, by Tsvi...
 
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
 
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
 
Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...
Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...
Not my problem! Delegating responsibilities to the infrastructure - Yshay Yaa...
 
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
 
The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...
The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...
The story of how KubeMQ was born - Oz Golan, KubeMQ - Cloud Native Day Tel Av...
 
I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018
I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018
I want it all: go hybrid - Orit Yaron, Outbrain - Cloud Native Day Tel Aviv 2018
 
Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...
Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...
Keeping I.T. Real - Aaron Wolf, Mathematics and computer programming teacher,...
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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 FresherRemote DBA Services
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Assis, JFrog - Cloud Native Day Tel Aviv 2018

  • 1. Copyright @ 2018 JFrog - All rights reserved Kubernetes is hard! Lessons learned taking our apps to Kubernetes Eldad Assis | DevOps Architect | JFrog
  • 2. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Me Email: eldada@jfrog.com Twitter: @eldadak LinkedIn: Eldad Assis What I do - I solve problems @ JFrog - Bringing Dev and Ops closer for over 15 years - Doing CI/CD since the turn of the century - Automation, automation and… automation!
  • 3. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Docker Containers ● Kubernetes An open-source system for automating deployment, scaling, and management of containerized applications. No deep diving. No Demo… sorry Come see me after the talk for more! For this talk, I assume you know a bit Recommended knowledge
  • 4. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 1. Spin up a fully functional, big or small, environment with our products a. Developer, QA, Support, Product, Solution… anyone! b. JFrog Enterprise Plus 2. Per branch CI/CD a. Integrate my branch with other products development branches 3. Better utilize our resources 4. Support a new distribution for JFrog products Our journey to Kubernetes The problems we wanted to solve
  • 5. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Start small ● Get your application ready before jumping into Kubernetes ● Security - know what’s running in your cluster ● Limits ● Health probes ● Visibility - usable and accessible monitoring and logging system ● Work with the community! The End What you should take from here
  • 6. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Kubernetes - the myth ZZZZ….
  • 7. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Kubernetes - the reality Hmmm….
  • 8. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Start with a small application example (nginx) ● Use existing demos ○ Understand them. What does each line actually means ● Set a minimal goal for getting your app to run in Kubernetes ● Get comfortable before you move on ○ Use managed K8s to free yourself of setups (AKS, EKS, GKE) Where should you start? Start small!
  • 9. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 A lot has to be done on your application before you can comfortably run it in Kubernetes Here are some key points to consider when planning your move to Kubernetes Start with the application! Is your application ready to run in Kubernetes?
  • 10. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Logging ○ STDOUT/STDERR ○ Handling multiple log files ● Data Persistency ○ What kind of data needs persistency (if at all)? ● Proper handling of termination signals to init a proper shutdown ○ Controlled shutdown of the application ○ Easier recovery (after a controlled shutdown) ● Survive a restart ○ Managing leftovers from previous run Is your app ready for Kubernetes? It’s not just pushing it to Docker...
  • 11. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Improve durability and availability ● Support running multiple instances of your application with load balancing between them ○ Scaling up and down will be easy (horizontal scaling) ● Rolling upgrades for zero downtime ○ Backward compatibility ● Zero service unavailability due to pod rescheduling ○ Cluster scaling (down) ○ Pod evicted or crashed ○ Unplanned outage of a node Is your app ready for Kubernetes? High availability as the new default!
  • 12. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 I. Codebase - One codebase tracked in revision control, many deploys II. Dependencies - Explicitly declare and isolate dependencies III. Config - Store config in the environment IV. Backing services - Treat backing services as attached resources V. Build, release, run - Strictly separate build and run stages VI. Processes - Execute the app as one or more stateless processes Is your app ready for Kubernetes? The Twelve-Factor App (https://12factor.net/) VII. Port binding - Export services via port binding VIII. Concurrency - Scale out via the process model IX. Disposability - Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity - Keep development, staging, and production as similar as possible XI. Logs - Treat logs as event streams XII. Admin processes - Run admin/management tasks as one-off processes
  • 13. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Your application is rarely the only thing in its container ○ OS packages, OSS libs, 3rd party processes ● Security vulnerabilities ● FOSS licenses compliance Security What’s running with your application?
  • 14. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Once your application is ready, let’s talk about to how to properly manage your applications run-time and configuration in Kubernetes And now - Kubernetes Properly running in Kubernetes
  • 15. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Pod limits. Always! ● The app inside might need its own limits. For example: ○ Java apps ■ -Xms=1g -Xmx=2g ○ RabbitMQ ■ [rabbitmq.conf] total_memory_available_override_value = 1GB ○ MongoDB ■ --wiredTigerCacheSizeGB=1 Know your limits There might be more than you know…. … resources: requests: memory: "1Gi" cpu: "100m" limits: memory: "2Gi" cpu: "250m" ...
  • 16. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● The total sum of limits on a node can be way over 100% ● This allows for resource sharing between pods ● Pods will crash! Nodes will crash! ● See out of resources handling by Kubernetes ● Be prepared ○ Think about the requested and limits values ○ Spread your application across nodes using multiple replicas (HA) ○ Use pods priority and preemption to take control Know your limits - don’t overload There might be more than you know…. … resources: requests: memory: "64Mi" cpu: "20m" limits: memory: "2Gi" cpu: "4" ...
  • 17. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Your application must have a reliable metric for health ● readinessProbe ○ Is the app ready to start serving ● livenessProbe ○ Is the app good to continue serving ● Types ○ Exec - return 0 on success ○ Http - return < 400 on success ○ Tcp - succeed to open a socket on a given port ● For complex checks, write a script and use the exec probe Know your app’s health Application’s readiness and health … readinessProbe: httpGet: path: /api/system/health port: 8080 … livenessProbe: exec: command: - mongo - --eval - "db.adminCommand('ping')" … livenessProbe: tcpSocket: port: 5672 …
  • 18. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Init Containers - run before main container ○ Prepare storage ○ Setup configuration ● Sidecar containers - run alongside main container ○ Maintenance ○ Log collection ○ Monitoring ○ Proxy Multiple containers in a Pod When a single container is not enough Application pod example. Multiple artifactory logs forwarded by a Fluentbit container to a log aggregator. Pod Application container Fluentbit container Logs Log collector
  • 19. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Your application is made up of multiple components ○ Each represented as a yaml file or snippet ● Versioning of an application that’s made up of several yaml files is challenging ● Having all configuration in the yaml files is great, but ○ How can I use the same yaml for different environments? ■ Local (minikube) ■ Dev cluster ■ Production ● Rolling back to earlier versions of the application Managing an application’s lifecycle The static nature of the yaml descriptors is challenging
  • 20. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● https://helm.sh/ ● Helm is the package manager for Kubernetes. Like ‘yum’ for CentOS/RedHat ● Your whole application described in a single package - helm chart (template yamls) ● Default configuration values (values.yaml) ● Single version for every chart (Chart.yaml) Here comes Helm! Dynamic control over your application’s deployment
  • 21. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Use same chart for dev,staging and production! ○ Each environment’s config managed in its own copy of values.yaml that is version controlled (values-stg.yaml, values-prod.yaml) ○ The default values.yaml should be for dev or local, so a developer can use it locally without hassle ○ Everything is configurable! ● External charts as requirements (dependencies) ○ Databases ○ Other 3rd parties Helm - YES! Use same chart in all environments
  • 22. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Helm - YES! YES! Useful helm commands for understanding what the helm is going on... # Lint your chart for errors and recommendations $ helm lint <chart path> # Download a chart for local viewing $ helm fetch <chart> # Get a release (application already deployed with helm) actual configuration $ helm get <release> # Get the status of all the resources included in a release $ helm status <release> # Get the actual resolved configuration without deploying anything $ helm template <chart> $ helm install --debug --dry-run <chart> # Test your release (need to write test pods in your chart) $ helm test <release>
  • 23. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 More Helm charts Find existing charts https://hub.kubeapps.com/
  • 24. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● No more “ssh to the server and get me the logs”! ● Developers should not need kubectl access to debug their applications ● Provide your Dev and Ops easy and reliable data ○ Monitoring ○ Logging ● Managed solutions provide OOB tooling Visibility in Kubernetes? We are not in Kansas anymore...
  • 25. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Dashboard for nodes and pods * Prometheus * Grafana Visibility in Kubernetes? Monitoring
  • 26. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Logs from all pods EFK stack * Fluentd * ElasticSearch * Kibana Visibility in Kubernetes? Logging
  • 27. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Use with your CI Plug your CI/CD to a Kubernetes cluster for easy environment deployment
  • 28. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Development CI/CD our products to K8s for testing ○ Using our official Helm charts ○ On demand, fully isolated environment per branch per developer ○ 100’s of custom testing environments a week made up of ~50+ services ● Started moving our cloud based applications to K8s ○ Internal and external ● Official JFrog Helm charts for all our products JFrog and Kubernetes What are we doing with Kubernetes?
  • 29. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● You are not the first one to stumble on that particular problem ● It’s as if you have more developers in your team ● Fast turnaround ● Examples ○ RabbitMQ HA ○ MongoDB (Bitnami) The community Use already tested and managed helm charts
  • 30. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 ● Start small ● Get your application ready before jumping into Kubernetes ● Security - know what’s running in your cluster ● Limits ● Health probes ● Visibility - usable and accessible monitoring and logging system ● Work with the community! The (real) End What you should take from here
  • 31. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Smooth sailing... Copyright © 2018 JFrog. All Rights Reserved | www.swampup.jfrog.com
  • 32. Copyright @ 2018 JFrog - All rights reserved. CloudNative Israel 2018 Be Good! join.jfrog.com