SlideShare a Scribd company logo
1 of 118
Download to read offline
Practical Ansible: A Top-down Introduction


Architect @ Gogolook
3
--no-provision
4
5
6
Modern Web 2015
Bottom-up Ansible
IT




Top-down
”
7
Modern Web 2015
Bottom-up Ansible
IT 



Top-down
”
8
9
☛ https://github.com/ansible/ansible
9
☛ https://github.com/ansible/ansible
9
☛ https://github.com/ansible/ansible
10
VPC
CloudFront ELB API servers MongoDB
11
11
12
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
13
ad-hoc commands

inventory

playbook - push

playbook - pull
13
ad-hoc commands

inventory

playbook - push

playbook - pull
roles

selective execution
13
ad-hoc commands

inventory

playbook - push

playbook - pull
roles

selective execution
13
ad-hoc commands

inventory

playbook - push

playbook - pull
roles

selective execution
Capistrano-style

zero-downtime

blue-green

rolling upgrade
13
ad-hoc commands

inventory

playbook - push

playbook - pull
roles

selective execution
Capistrano-style

zero-downtime

blue-green

rolling upgrade
roles

selective execution
Capistrano-style

zero-downtime

blue-green

rolling upgrade
14
ad-hoc commands

inventory

playbook - push

playbook - pull
15
16
control machine managed node
16
control machine managed node
Python ≥ 2.5
16
control machine managed node
Python ≥ 2.5
SSH
16
control machine managed node
Python ≥ 2.5
SSH
Ansible:

pip install ansible
yum install ansible
apt-get install ansible
brew install ansible
16
control machine managed node
Python ≥ 2.5Python ≥ 2.6/2.7
SSH
Ansible:

pip install ansible
yum install ansible
apt-get install ansible
brew install ansible
17
control machine managed node
SSH
SSH
SSH
host1
host2
host3
17
control machine managed node
SSH
SSH
SSH
host1
host2
host3
inventory file
host1
host2 ansible_ssh_host=10.0.0.10
host3 ansible_ssh_port=2222
18
inventory file
lb ansible_ssh_host=10.0.0.10
app1 ansible_ssh_host=10.0.0.20
app2 ansible_ssh_host=10.0.0.21
app3 ansible_ssh_host=10.0.0.22
db ansible_ssh_host=10.0.0.30
19
ansible 
--inventory-file=hosts-vagrant 
--user=vagrant --ask-pass 

all 
-a hostname
inventory file
19
ansible 
--inventory-file=hosts-vagrant 
--user=vagrant --ask-pass 

all 
-a hostname
inventory file
user account
19
ansible 
--inventory-file=hosts-vagrant 
--user=vagrant --ask-pass 

all 
-a hostname
inventory file
apply to “all” hosts
in the inventory file
user account
19
ansible 
--inventory-file=hosts-vagrant 
--user=vagrant --ask-pass 

all 
-a hostname
inventory file
ad-hoc command
apply to “all” hosts
in the inventory file
user account
20
inventory filedefault:
• /etc/ansible/hosts
• /usr/local/etc/ansible/hosts
20
inventory file
cp hosts-vagrant /usr/local/etc/ansible/hosts
ansible 
--user=vagrant --ask-pass 

all 
-a hostname
default:
• /etc/ansible/hosts
• /usr/local/etc/ansible/hosts
21
ansible 
--user=vagrant --ask-pass 

all 
-m setup
host information
22
22
23
24
ansible 
--user=vagrant --ask-pass 

lb 
-m yum 
-a "name=openssh"
apply to the “lb” host
in the inventory file
lb 10.0.0.10
CentOS 7.1
24
ansible 
--user=vagrant --ask-pass 

lb 
-m yum 
-a "name=openssh"
apply to the “lb” host
in the inventory file
invoke Ansible module “yum”
lb 10.0.0.10
CentOS 7.1
24
ansible 
--user=vagrant --ask-pass 

lb 
-m yum 
-a "name=openssh"
apply to the “lb” host
in the inventory file
invoke Ansible module “yum”
inspect package status
lb 10.0.0.10
CentOS 7.1
25
ansible 
--user=vagrant --ask-pass 
--become 

lb 
-m yum 
-a "name=openssh state=latest"
install or update latest package
lb 10.0.0.10
CentOS 7.1
25
ansible 
--user=vagrant --ask-pass 
--become 

lb 
-m yum 
-a "name=openssh state=latest"
install or update latest package
become “sudo” privilege
lb 10.0.0.10
CentOS 7.1
26
ansible 
--user=vagrant --ask-pass 
--become 

lb:db 
-m yum 
-a "name=openssh state=latest"
apply to the “lb” and “db” hosts
in the inventory file
lb 10.0.0.10 db 10.0.0.30
CentOS 7.1 CentOS 7.1
27
ansible 
--user=vagrant --ask-pass 
--become 

'app*' 
-m apt 
-a "name=openssh-server state=latest"
apply to the “app*” hosts
in the inventory file
app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
Ubuntu 14.04
27
ansible 
--user=vagrant --ask-pass 
--become 

'app*' 
-m apt 
-a "name=openssh-server state=latest"
apply to the “app*” hosts
in the inventory file
app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
Ubuntu 14.04
invoke Ansible module
“apt”
28
[lbservers]
lb ansible_ssh_host=10.0.0.10
[appservers]
app1 ansible_ssh_host=10.0.0.20
app2 ansible_ssh_host=10.0.0.21
app3 ansible_ssh_host=10.0.0.22
[dbservers]
db ansible_ssh_host=10.0.0.30
29
inventory file
30
“push” mode
31
control machine managed node
SSH
SSH
SSH
host1
host2
host3
inventory
file
31
control machine managed node
SSH
SSH
SSH
host1
host2
host3
playbook
inventory
file
31
control machine managed node
SSH
SSH
SSH
host1
host2
host3
playbook
inventory
file
32
playbook
- hosts: lbservers:dbservers
tasks:
- name: update openssh
yum: name=openssh state=latest
- hosts: appservers
tasks:
- name: update openssh
apt: name=openssh-server state=latest
33
ansible-playbook 
--user=vagrant --ask-pass 
--become 

openssh.yml
apply Ansible playbook “openssh.yml”
to all hosts in the inventory
34
How about the “pull” mode?
35
36
managed node
host1
host2
playbook
❶
36
managed node
host1
host2
playbook
• git pull …

• sftp …

• rsync …

• wget …

• …
❶
36
managed node
host1
host2
playbook
• git pull …

• sftp …

• rsync …

• wget …

• …
❶ ansible-playbook 
--connection=local 

playbook.yml
apply locally
❷
37
managed node
host1
host2
playbook
❶
ansible-pull --url=xxxx
37
managed node
host1
host2
playbook
❶
ansible-pull --url=xxxx
❷
37
managed node
host1
host2
playbook
❶
ansible-pull --url=xxxx
❷
apply locally
❸
Capistrano-style

zero-downtime

blue-green

rolling upgrade
ad-hoc commands

inventory

playbook - push

playbook - pull
38
roles

selective execution
39
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
40
41
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
timezone
ntp
All nodes will need these…
42
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
haproxy
43
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
repo-epel
redis
44
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
nodejs
git
project_deploy
45
playbook
- hosts: all
tasks: ...
- hosts: lbservers
tasks: ...
- hosts: appservers
tasks: ...
- hosts: dbservers
tasks: ...
timezone, ntp
haproxy
repo-epel, redis
nodejs, git, project_deploy
46
ansible galaxy [pic]
is your friend…
46
ansible galaxy [pic]
is your friend…
Ansible Galaxy is your friend…
47
playbook
- hosts: all
tasks: ...
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
47
playbook
- hosts: all
tasks: ...
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
47
playbook
- hosts: all
tasks: ...
roles:
- yatesr.timezone
- geerlingguy.ntp
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
47
playbook
- hosts: all
tasks: ...
roles:
- yatesr.timezone
- geerlingguy.ntp
vars:
timezone: Asia/Taipei
ntp_timezone: Asia/Taipei
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
48
playbook
- hosts: appservers
roles:
- williamyeh.nodejs
- geerlingguy.git
- project_deploy
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
48
playbook
- hosts: appservers
roles:
- williamyeh.nodejs
- geerlingguy.git
- project_deploy
vars:
project_git_repo: "https://github.com/..."
project_version: "master"
project_has_npm: true
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
49
50
ansible-playbook 
--user=vagrant --ask-pass 
--become 
--limit=appservers 
playbook.yml
apply to all “appservers” hosts in the inventory
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
51
playbook
- hosts: appservers
roles:
- williamyeh.nodejs
- geerlingguy.git
- project_deploy
vars:
project_git_repo: "https://github.com/..."
project_version: "master"
project_has_npm: true
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
51
playbook
- hosts: appservers
roles:
- williamyeh.nodejs
- geerlingguy.git
- project_deploy
vars:
project_git_repo: "https://github.com/..."
project_version: "master"
project_has_npm: true
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
51
playbook
- hosts: appservers
roles:
- williamyeh.nodejs
- geerlingguy.git
- project_deploy
vars:
project_git_repo: "https://github.com/..."
project_version: "master"
project_has_npm: true
- { role: project_deploy, tags: ['deploy'] }
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
52
ansible-playbook 
--user=vagrant --ask-pass 
--become 

--tags=deploy 
playbook.yml
apply only the roles/tasks with a “deploy” tag
to all hosts in the inventory
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
ad-hoc commands

inventory

playbook - push

playbook - pull
roles

selective execution
53
Capistrano-style

zero-downtime

blue-green

rolling upgrade
54
54
55
56
https://galaxy.ansible.com/list#/roles/732
57
57
Deploy software projects (Capistrano-like)
58
git source
58
git source
older build
58
git source
older build
newer build
58
git source
older build
newer build
current active build
59
60
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
60
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
shutdown this on purpose!
60
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
shutdown this on purpose!
visible downtime?
61
62
playbook
- hosts: appservers
roles:
- williamyeh.nodejs
- geerlingguy.git
vars:
project_git_repo: "https://github.com/..."
project_version: "master"
project_has_npm: true
- { role: project_deploy, tags: ['deploy'] }
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
63
ansible-playbook 
--user=vagrant --ask-pass 
--become 
--extra-vars='project_version=green' 

--limit=app1 
--tags=deploy 
playbook.yml
apply only the roles/tasks with a “deploy” tag
lb 10.0.0.10 app1 10.0.0.20
app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
apply to the “app1” host
63
ansible-playbook 
--user=vagrant --ask-pass 
--become 
--extra-vars='project_version=green' 

--limit=app1 
--tags=deploy 
playbook.yml
apply only the roles/tasks with a “deploy” tag
lb 10.0.0.10 app1 10.0.0.20
app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
apply to the “app1” host
checkout “green” branch
64
65
playbook
- hosts: appservers
serial: 1
roles:
- williamyeh.nodejs
- geerlingguy.git
- { role: project_deploy, tags: ['deploy'] }
vars:
project_git_repo: "https://github.com/..."
project_version: "master"
project_has_npm: true
lb 10.0.0.10 app1 10.0.0.20

app2 10.0.0.21

app3 10.0.0.22
db 10.0.0.30
CentOS 7.1 CentOS 7.1Ubuntu 14.04
ad-hoc commands

inventory

playbook - push

playbook - pull
roles

selective execution
Capistrano-style

zero-downtime

blue-green

rolling upgrade
66
67
•
67
•
•
67
•
•
•
67
68
69
70
☛ https://github.com/ansible/ansible
70
☛ https://github.com/ansible/ansible
70
☛ https://github.com/ansible/ansible
71
ad-hoc commands

inventory

playbook - push

playbook - pull
roles

selective execution
Capistrano-style

zero-downtime

blue-green

rolling upgrade
72

More Related Content

What's hot

Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabric
andymccurdy
 

What's hot (19)

DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
 
Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)
 
Ansible, best practices
Ansible, best practicesAnsible, best practices
Ansible, best practices
 
Making environment for_infrastructure_as_code
Making environment for_infrastructure_as_codeMaking environment for_infrastructure_as_code
Making environment for_infrastructure_as_code
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
 
DevOps(2) : Vagrant - (MOSG)
DevOps(2) : Vagrant  -  (MOSG)DevOps(2) : Vagrant  -  (MOSG)
DevOps(2) : Vagrant - (MOSG)
 
Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with Ansible
 
Instruction: dev environment
Instruction: dev environmentInstruction: dev environment
Instruction: dev environment
 
Automation and Ansible
Automation and AnsibleAutomation and Ansible
Automation and Ansible
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
 
Configuration Surgery with Augeas
Configuration Surgery with AugeasConfiguration Surgery with Augeas
Configuration Surgery with Augeas
 
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test EverythingPortland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet tree
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
Continuous infrastructure testing
Continuous infrastructure testingContinuous infrastructure testing
Continuous infrastructure testing
 
Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabric
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 

Similar to Ansible 實戰:top down 觀點

Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdfKubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Srinivasa Rao
 
kubernetes - minikube - getting started
kubernetes - minikube - getting startedkubernetes - minikube - getting started
kubernetes - minikube - getting started
Munish Mehta
 
glance replicator
glance replicatorglance replicator
glance replicator
irix_jp
 

Similar to Ansible 實戰:top down 觀點 (20)

Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
 
aptly: Debian repository management tool
aptly: Debian repository management toolaptly: Debian repository management tool
aptly: Debian repository management tool
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
 
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdfKubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptx
 
(WEB307) Scalable Site Management Using AWS OpsWorks | AWS re:Invent 2014
(WEB307) Scalable Site Management Using AWS OpsWorks | AWS re:Invent 2014(WEB307) Scalable Site Management Using AWS OpsWorks | AWS re:Invent 2014
(WEB307) Scalable Site Management Using AWS OpsWorks | AWS re:Invent 2014
 
Docker practice
Docker practiceDocker practice
Docker practice
 
kubernetes - minikube - getting started
kubernetes - minikube - getting startedkubernetes - minikube - getting started
kubernetes - minikube - getting started
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
Hands-On Session Docker
Hands-On Session DockerHands-On Session Docker
Hands-On Session Docker
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
glance replicator
glance replicatorglance replicator
glance replicator
 
PHP on Heroku: Deploying and Scaling Apps in the Cloud
PHP on Heroku: Deploying and Scaling Apps in the CloudPHP on Heroku: Deploying and Scaling Apps in the Cloud
PHP on Heroku: Deploying and Scaling Apps in the Cloud
 
Capistrano
CapistranoCapistrano
Capistrano
 
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
 
Configuration Management with Saltstack
Configuration Management with SaltstackConfiguration Management with Saltstack
Configuration Management with Saltstack
 
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitetKubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
 

More from William Yeh

More from William Yeh (20)

敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊
 
gRPC:更高效的微服務介面
gRPC:更高效的微服務介面gRPC:更高效的微服務介面
gRPC:更高效的微服務介面
 
給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
 
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version) 給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
 
Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗
 
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
 
為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?
 
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
 
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
 
軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)
 
瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)
 
Docker 導入:障礙與對策
Docker 導入:障礙與對策Docker 導入:障礙與對策
Docker 導入:障礙與對策
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
 
從限制理論看 DevOps
從限制理論看 DevOps從限制理論看 DevOps
從限制理論看 DevOps
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?
 
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Ansible 實戰:top down 觀點