SlideShare une entreprise Scribd logo
1  sur  118
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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

Tendances (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
 

Similaire à 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
 

Similaire à 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
 
Configuration Management with Saltstack
Configuration Management with SaltstackConfiguration Management with Saltstack
Configuration Management with Saltstack
 
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...
 
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
 

Plus de William Yeh

Plus de 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)
 

Dernier

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Dernier (20)

WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 

Ansible 實戰:top down 觀點