SlideShare una empresa de Scribd logo
1 de 109
Descargar para leer sin conexión
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Airbnb가 직접 들려주는 Kubernetes 환경구축 이야기
Developing Kubernetes Services
at Airbnb Scale
Melanie Cebula, Software Engineer, Airbnb
DevelopingKubernetesServices
@MELANIECEBULA / APRIL 2019 / AWS SUMMIT SEOUL
at Airbnb Scale
Whatiskubernetes?
@MELANIECEBULA
WhoamI?
@MELANIECEBULA
A BRIEF HISTORY
MONOLITH LOC
0
1000000
2000000
3000000
4000000
2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
😳
@MELANIECEBULA
WhyMicroservices?
ENGINEERING TEAM
0
250
500
750
1000
2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
😲
@MELANIECEBULA
WhyMicroservices?
SCALING CONTINUOUS DELIVERY
@MELANIECEBULA
WhyMicroservices?
Deploys per week (all apps, all environments)
@MELANIECEBULA
WhyMicroservices?
Monolith production deploys per week
@MELANIECEBULA
WhyMicroservices?
125,000
production deploys
per year
@MELANIECEBULA
WhyMicroservices?
Manually configuring
boxes
Automate
configuration of
applications with Chef
Automate
configuration and
orchestration of
containerized
applications with
Kubernetes
@MELANIECEBULA
Whykubernetes?
EVOLUTION OF CONFIGURATION MANAGEMENT
@MELANIECEBULA
Whykubernetes?
• portable
• immutable
• reproducible
• declarative
• efficient scheduling
• extensible API
• human-friendly data
• standard format
TODAY
50%ofservices
in kubernetes
@MELANIECEBULA
migrationprogress
250+criticalservices
in kubernetes
@MELANIECEBULA
migrationprogress
• complex configuration
• complex tooling
• integrating with your current infrastructure
• open issues
• scaling
• … and more!
@MELANIECEBULA
Challengeswithkubernetes?
• complex configuration
• complex tooling
• integrating with your current infrastructure
• open issues
• scaling
• … and more!
@MELANIECEBULA
Challengeswithkubernetes?
solvable problems!
1. abstract away k8s configuration
2. generate service boilerplate
3. version + refactor configuration
4. opinionated kubectl
5. custom ci/cd + validation
@MELANIECEBULA
Solutions?
ABSTRACT AWAY
CONFIGURATION
P
kubernetes
@MELANIECEBULA
kubectl
apply
Production
Deployment
Canary
Deployment
Production
ConfigMap
Canary
ConfigMap
Production
Service
Canary
Service
kubernetes cluster
Dev
Deployment
Dev
ConfigMap
Dev
Service
kubernetes config files
P
kubernetes
@MELANIECEBULA
kubectl
apply
Production
Deployment
Canary
Deployment
Production
ConfigMap
Canary
ConfigMap
Production
Service
Canary
Service
kubernetes cluster
Dev
Deployment
Dev
ConfigMap
Dev
Service
kubernetes config files
lots of boilerplate
repetitive by
environment
resources
environments
Reducingk8s
boilerplate
OUR REQUIREMENTS
• Prefertemplatingover file inheritance
• Input should be templatedYAML files
• Make it easier to migrate100soflegacyservices
• Make it easier toretrain1000engineers
@MELANIECEBULA
Project
Apps
Containers
Files
Volumes
Dockerfile
kube-gen
generate
kubectl
apply
kubernetes cluster
@MELANIECEBULA
kubectl
apply
Production
Deployment
Canary
Deployment
Production
ConfigMap
Canary
ConfigMap
Production
Service
Canary
Service
Dev
Deployment
Dev
ConfigMap
Dev
Service
kubernetes config files
generatingk8sconfigs
Project
Apps
Containers
Files
Volumes
Dockerfile
kube-gen
generate
kubectl
apply
kubernetes cluster
@MELANIECEBULA
kubectl
apply
Production
Deployment
Canary
Deployment
Production
ConfigMap
Canary
ConfigMap
Production
Service
Canary
Service
Dev
Deployment
Dev
ConfigMap
Dev
Service
kubernetes config files
kube-gen!
generatingk8sconfigs
Reducingk8s
boilerplate
WHAT WE WENT WITH
@MELANIECEBULA
Project
Apps
Containers
Files
Volumes
Dockerfile
sets
params per
environment
other files
access params
@MELANIECEBULA
Project
Apps
Containers
Files
Volumes
Dockerfile
kube-gen
generate
generatingk8sconfigs
@MELANIECEBULA
Project
Apps
Containers
Files
Volumes
Dockerfile
kube-gen
generate
standardized
namespaces based on
environments!
generatingk8sconfigs
kube-gen
COMPONENTS
@MELANIECEBULA
Project
Apps
Containers
Files
Volumes
Dockerfile
Which shared components
to use?
nginx logging statsd
example components
kube-gen
COMPONENTS
@MELANIECEBULA
Main
Container
Containers
Main App
Volumes
Files
Dockerfile
nginx component
• abstract away common configuration
• component yaml is merged into project yaml
• components can set default params
Reducingk8s
boilerplate
OPEN SOURCE OPTIONS
@MELANIECEBULA
1. Combine with package management (ex: helm)
2. Override configuration via file inheritance (ex: kustomize)
3. Override configuration via templating (ex: kapitan)
•Reducekubernetesboilerplate
•Standardizeonenvironmentsand
namespaces
Takeaways
GENERATE SERVICE
BOILERPLATE
Everythingaboutaserviceisinone
placeingit,andmanagedwithone
process.
Everything about a service is in one place in git
• All configuration lives in _infra alongside project code
• Edit code and configuration with one pull request
• Easy to add new configuration
• Statically validated in CI/CD
Configuration
LIVES IN ONE PLACE
@MELANIECEBULA
What we support:
• kube-gen files
• framework boilerplate
• API boilerplate
• CI/CD
• docs
• AWS IAM roles
• project ownership
• storage
• .. and more!
Configuration
LIVES IN ONE PLACE
@MELANIECEBULA
Configuration
LIVES IN ONE PLACE
@MELANIECEBULA
this “hello world”
service was created
in one command
Configuration
LIVES IN ONE PLACE
@MELANIECEBULA
collection of config
generators (ex: docs,
ci)
Configuration
LIVES IN ONE PLACE
@MELANIECEBULA
collection of
framework-specific
generators (ex: Rails,
Dropwizard)
• make best practices the default (ex: deploy pipeline,
autoscaling, docs)
• run generators individually or as a group
• support for review, update, commit
Configuration
CAN BE GENERATED
@MELANIECEBULA
•Everythingaboutaserviceshould
beinoneplaceingit
•Makebestpracticesthedefaultby
generatingconfiguration
Takeaways
VERSION CONFIGURATION
Why do we version our kube configuration?
@MELANIECEBULA
• add support for something
new (ex: k8s version)
• want to change something
(ex: deployment strategy)
• want to drop support for
something (breaking
change)
• know which versions are
bad when we make a
regression 😅
• support release cycle and
cadence
kube.yml
v1
kubev1
deploy
kubev2
deploy
kubernetes cluster
kube.yml
v2
How do we version our kube configuration?
@MELANIECEBULA
1. version field
2. publish binaries for each
version
3. channels point to binaries
(ex: stable)
4. generate and apply using
the appropriate binary
bonk kube-gen.yml
Why do we version our generated configuration?
@MELANIECEBULA
• what our project generators
generate changes over
time
• best practices change
• and bugs in the generators
are found! 😅
kube.yml
generated by
sha1
kubev1
deploy
kubernetes cluster
kube.yml
generated by
sha2
generator at
sha2 has a bug
How do we version our generated configuration?
@MELANIECEBULA
generator tags
generated files with
version, sha, and
timestamp
REFACTOR CONFIGURATION
• services should be up-to-date with latest best practices
• update configuration to the latest supported versions
• apply security patches to images
• configuration migrations should be automated
Whydowerefactorconfiguration?
FOR HUNDREDS OF SERVICES
250+criticalservices
in kubernetes
@MELANIECEBULA
(wedon’twanttomanuallyrefactor)
How do we refactor configuration?
@MELANIECEBULA
• collection of general
purpose scripts
• scripts are modular
• scripts cover the lifecycle of
a refactor
list-pr-urls.py
get-repos.py
update-
prs.py
refactor.py
close.py
status.py
refactorator
The lifecycle of a refactor
Checks out repo, finds
project, runs refactor
job, tags owners,
creates PR
Comments on the PR,
reminding owners to
verify, edit, and merge
the PR
Merges the PR with
different levels of force
RunRefactor MergeUpdate
@MELANIECEBULA
How do we refactor configuration?
@MELANIECEBULA
• refactorator will run a
refactor for all services
given a refactor job
• refactor job updates _infra
file(s)
• ex: upgrade kube version to
stable
refactorator
upgrade-
kube.py
refactor job
Bumping stable version
@MELANIECEBULA
• bump stable version
• cron job calls refactorator
with the upgrade-kube.py
refactor job to create PRs
• another cron job handling
updating and merging PRs
runs daily on
weekdays
k8s cron job
refactorator
upgrade-
kube.py
refactor job
•Configurationshouldbeversioned
andrefactoredautomatically.
Takeaways
OPINIONATED KUBECTL
P
kubernetes
@MELANIECEBULA
kubectl
apply
Production
Deployment
Canary
Deployment
Production
ConfigMap
Canary
ConfigMap
Production
Service
Canary
Service
kubernetes cluster
Dev
Deployment
Dev
ConfigMap
Dev
Service
kubernetes config files
lots of boilerplate
repetitive by
environment
resources
environments
P
kubernetes
@MELANIECEBULA
kubectl
apply
Production
Deployment
Canary
Deployment
Production
ConfigMap
Canary
ConfigMap
Production
Service
Canary
Service
kubernetes cluster
Dev
Deployment
Dev
ConfigMap
Dev
Service
kubernetes config files
verbose
repetitive by
namespace
ktool
KUBECTL WRAPPER
kubernetes cluster
kubectl
apply
Production
Deployment
Canary
Deployment
Production
ConfigMap
Canary
ConfigMap
Production
Service
Canary
Service
Dev
Deployment
Dev
ConfigMap
Dev
Service
@MELANIECEBULA
calls kubectl
commands
ktool
OPINIONATED KUBECTL
@MELANIECEBULA
ktool
USES ENV VARS
• Runs in the project home directory:

$ cd /path/to/bonk
• Environment variables for arguments:
$ k status ENV=staging
• Prints the command that it will execute:

$ k status ENV=staging
kubectl get pods --namespace=bonk-staging
@MELANIECEBULA
standardized
namespaces!
ktool
SIMPLIFIES BUILDS AND
DEPLOYS
• k generate generates kubernetes files
• k build performs project build, docker build and
docker push with tags
• k deploy creates namespace, applies/replaces
kubernetes files, sleeps and checks deployment status
• can chain commands; ex: k all
@MELANIECEBULA
ktool
A DEBUGGING TOOL
• defaults to random pod, main container:
$ k ssh ENV=staging
• specify particular pod, specific container:
$ k logs ENV=staging POD=… CONTAINER=bonk
• automates debugging with k diagnose ENV=staging
@MELANIECEBULA
ktool
A DEBUGGING TOOL
• defaults to random pod, main container:
$ k ssh ENV=staging
• specify particular pod, specific container:
$ k logs ENV=staging POD=… CONTAINER=bonk
• automates debugging with k diagnose ENV=staging
@MELANIECEBULA
call kubectl diagnose
Whatarekubectlplugins?
@MELANIECEBULA
Whatarekubectlplugins?
@MELANIECEBULA
kdiagnose
SETUP
@MELANIECEBULA
deploy bonk
service with failing
command
new pod in
CrashLoopBackoff
kubectldiagnose
GO KUBECTL PLUGIN
@MELANIECEBULA
kubectldiagnose
GO KUBECTL PLUGIN
@MELANIECEBULA
1. unready
container info
kubectldiagnose
GO KUBECTL PLUGIN
@MELANIECEBULA
1. unready
container info
2. kubectl pod
events
kubectldiagnose
GO KUBECTL PLUGIN
@MELANIECEBULA
1. unready
container info
2. kubectl pod
events
3. pod logs for
unready containers
DISTRIBUTING OPIONATED
KUBECTL
kubectlplugins
PACKAGE MANAGER
• find, install, and manage kubectl plugins
• package and distribute plugins on multiple platforms
• share your plugins with others!
@MELANIECEBULA
kubectlplugins
KREW
@MELANIECEBULA
kubectlplugins
KREW
• unofficial Google open source project
• similar to tools like “brew”
• is itself a plugin! (ex: kubectl krew help)
@MELANIECEBULA
•Createanopinionatedkubectlwrapper
•Automatecommonk8sworkflowswith
kubectlplugins
•Distributeanddiscoverotherplugins
with apackagemanager
Takeaways
CI/CD
Each step in our CI /CD jobs are
RUN steps in a build Dockerfile
runs k commands
DEPLOY PROCESS
A single deploy process for every change
Write code and config
under your project
Open a PR and merge
your code to master
Deploy all code and
config changes
Develop DeployMerge
@MELANIECEBULA
A single deploy process for every change
Deployment
ConfigMap
Service
AWS
Alerts
Dashboards
Project
ownership
Docs
Secrets
kubectl
apply
kubernetes cluster
kubectl
apply
Storage
Service
Discovery
API Gateway
Routes
@MELANIECEBULA
How do we apply k8s configuration?
Deployment
ConfigMap
Service
“kubectl
apply”
kubernetes cluster
• kubectl apply all files
• in some cases where apply
fails, replace files without
force
• always restart pods on
deploy to pick up changes
• return atomic success or
failure state by sleeping and
checking status
@MELANIECEBULA
How do you always restart pods on deploy?
Deployment
ConfigMap
Service
kubectl
apply
kubernetes cluster
kubectl
apply
We add a date label
to the pod spec,
which convinces k8s
to relaunch all pods
@MELANIECEBULA
How do we apply custom configuration?
@MELANIECEBULA
How do we apply custom configuration?
aws.yml
kubectl
apply
kubernetes cluster
kubectl
apply
AWS CRD
AWS
Controller
AWS
webhook
@MELANIECEBULA
How do we apply custom configuration?
aws.yml
kubectl
apply
kubernetes cluster
kubectl
apply
AWS CRD
AWS
Controller
AWS
webhook
1. Create a custom
resource definition
for aws.yml
@MELANIECEBULA
How do we apply custom configuration?
aws.yml
kubectl
apply
kubernetes cluster
kubectl
apply
AWS CRD
AWS
Controller
AWS
webhook
2. Create a controller
that calls a web hook
when aws.yml is
applied
@MELANIECEBULA
How do we apply custom configuration?
aws.yml
kubectl
apply
kubernetes cluster
kubectl
apply
AWS CRD
AWS
Controller
AWS
webhook
3. Create a web hook
that updates a
custom resource
@MELANIECEBULA
How do we apply custom configuration?
AWS CRD
AWS
Controller
AWS
webhook
@MELANIECEBULA
AWS lambda
4. AWS lambda
exposes web hook to
be called
•Codeandconfigurationshouldbe
deployedwiththesameprocess
•Usecustomresourcesandcustom
controllerstointegratek8swithyour
infra
Takeaways
VALIDATION
• enforce best practices
• at build time with validation scripts
• at deploy time with admission controllerConfiguration
SHOULD BE VALIDATED
@MELANIECEBULA
How do we validate configuration at build time?
@MELANIECEBULA
How do we validate configuration at build time?
@MELANIECEBULA
kube
validation
script
job dispatcher
project.yml
validation
script
aws .yml
validation
script
global jobs repo
project
build
global
validation
jobs
docs
build
bonk CI jobs
How do we validate configuration at build time?
@MELANIECEBULA
kube
validation
script
job dispatcher
project.yml
validation
script
aws .yml
validation
script
global jobs repo
project
build
global
validation
jobs
docs
build
bonk CI jobs1. Define global job in
global jobs repo
How do we validate configuration at build time?
@MELANIECEBULA
kube
validation
script
job dispatcher
project.yml
validation
script
aws .yml
validation
script
global jobs repo
project
build
global
validation
jobs
docs
build
bonk CI jobs
2. job dispatcher
always dispatches
global jobs to
projects
How do we validate configuration at build time?
@MELANIECEBULA
kube
validation
script
job dispatcher
project.yml
validation
script
aws .yml
validation
script
global jobs repo
project
build
global
validation
jobs
docs
build
bonk CI jobs
3. global job runs
alongside project
jobs
What do we validate at build time?
@MELANIECEBULA
• invalid yaml
• invalid k8s configuration
• bad configuration versions
• max namespace length (63
chars)
• valid project name
• valid team owner in
project.yml
kube
validation
script
job dispatcher
project.yml
validation
script
aws .yml
validation
script
global jobs repo
How do we validate configuration at deploy time?
project.yml
kubectl
apply
kubernetes cluster
kubectl
apply
@MELANIECEBULA
admission
controller
admission controller
intercepts requests
to the k8s api server
prior to persistence
of the object
How do we validate configuration at deploy time?
project.yml
@MELANIECEBULA
admission
controller
• metadata is encoded as
annotations at generate
time
• admissioncontroller
checks for required
annotations
• reject any update to
resources that are missing
required annotations
• reject any update that
violates specified conditions
v
What do we validate with admission controller?
project.yml
@MELANIECEBULA
admission
controller • project ownership
annotations
• configuration stored in git
• configuration uses
minimally supported version
What do we validate with admission controller?
project.yml
@MELANIECEBULA
admission
controller
• production images must be
uploaded to production
ECR
• prevent deployment of
unsafe workloads
• prevent deployment of
development namespaces
to production clusters
What do we validate with admission controller?
project.yml
@MELANIECEBULA
admission
controller
• production images must be
uploaded to production
ECR
• prevent deployment of
unsafe workloads
• prevent deployment of
development namespaces
to production clusters
standardized
namespaces!
•CI/CDshouldrunthesame
commandsthatengineersrunlocally
•CI/CDshouldruninacontainer
•ValidateconfigurationaspartofCI/
CD
Takeaways
1. Abstractaway complex kubernetes configuration
2. Standardize on environments and namespaces
3. Everything about a service should be in oneplaceingit
4. Makebestpracticesthedefault bygenerating configuration
5. Configuration should be versionedand refactoredautomatically.
6. Createanopinionatedkubectlwrapper that automates common workflows and distribute custom
commands as kubectlplugins
7. CI/CDshouldrunthesamecommands that engineers run locally, in a containerized environment
8. Validateconfiguration as part of CI/CD
9. Code and configuration should bedeployedwiththesameprocess
10.Usecustomresourcesandcustomcontrollers to integrate with your infrastructure
10Takeaways
@MELANIECEBULA
keno
• thousands of services running in k8s
• moving all configuration to gitops workflow w/ custom controllers (dashboards, alerts, etc)
• scaling the cluster / scaling etcd / multi cluster support
• stateful services / high memory requirements
• tighter integration with kubectl plugins
• better paved road language support
• better k8s developer environment
• envoy migration
• better security defaults
• better support for other workloads
• … and more!
2019Challenges
@MELANIECEBULA
• learn more @ medium.com/airbnb-engineering
• jobs @ airbnb.com/careers
• reach me @melaniecebula
Thanks!
@MELANIECEBULA
Airbnb가 직접 들려주는 Kubernetes 환경 구축 이야기 - Melanie Cebula 소프트웨어 엔지니어, Airbnb :: AWS Summit Seoul 2019

Más contenido relacionado

La actualidad más candente

Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Simplilearn
 

La actualidad más candente (20)

Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networking
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
 

Similar a Airbnb가 직접 들려주는 Kubernetes 환경 구축 이야기 - Melanie Cebula 소프트웨어 엔지니어, Airbnb :: AWS Summit Seoul 2019

Similar a Airbnb가 직접 들려주는 Kubernetes 환경 구축 이야기 - Melanie Cebula 소프트웨어 엔지니어, Airbnb :: AWS Summit Seoul 2019 (20)

Cloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CDCloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CD
 
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Into the cloud
Into the cloudInto the cloud
Into the cloud
 
Netflix MSA and Pivotal
Netflix MSA and PivotalNetflix MSA and Pivotal
Netflix MSA and Pivotal
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 Workshop
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
Amazon ECS
Amazon ECSAmazon ECS
Amazon ECS
 
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 
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
 
Extension de Service Cloud Foundry
Extension de Service Cloud FoundryExtension de Service Cloud Foundry
Extension de Service Cloud Foundry
 
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation NightKubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
 
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
 

Más de Amazon Web Services Korea

Más de Amazon Web Services Korea (20)

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
 

Último

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[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
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Airbnb가 직접 들려주는 Kubernetes 환경 구축 이야기 - Melanie Cebula 소프트웨어 엔지니어, Airbnb :: AWS Summit Seoul 2019