TAMING THE MODERN DATA CENTER
A  Hybrid  Talk  for  a  Hybrid  World
SETH VARGO
@sethvargo
Atmosphere Conference 2015: Taming the Modern Datacenter
DC EVOLUTION
How  did  we  get  here?
RISING DATACENTER COMPLEXITY
DC
RISING DATACENTER COMPLEXITY
DC
RISING DATACENTER COMPLEXITY
DC
VM
VMVM
VM VM
VMVM
VM VM
VMVM
VM VM
VMVM
VM
RISING DATACENTER COMPLEXITY
DC
VM
VMVM
VM VM
VMVM
VM VM
VMVM
VM VM
VMVM
VM
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
RISING DATACENTER COMPLEXITY
DC DNS
Database
CDN
RISING DATACENTER COMPLEXITY
DC-01 DC-02
RISING DATACENTER COMPLEXITY
DC-01 DC-02
VM
VMVM
VM VM
VMVM
VM
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
C C
RISING DATACENTER COMPLEXITY
IaaS PaaS SaaS
RISING DATACENTER COMPLEXITY
TAMING THE DC
Deployment  +  Maintenance
PREVIOUSLY
The  APUD  cycle
ACQUIRE PROVISION UPDATE DESTROY
ACQUIRE PROVISION UPDATE DESTROY
G’
U
VENDOR
ACQUIRE PROVISION UPDATE DESTROY
G U
’
U
’
U
VENDOR DC OPS
ACQUIRE PROVISION UPDATE DESTROY
G U
’
U
’
U U
’
U
VENDOR DC OPS SYSADMIN
ACQUIRE PROVISION UPDATE DESTROY
G U
’
U
’
U U
’
U U
’
U
VENDOR DC OPS SYSADMIN DC OPS
ACQUIRE PROVISION UPDATE DESTROY
VENDOR DC OPS SYSADMIN DC OPS
WEEKS DAYS DAYS DAYS
c c c c
PRESENTLY
The  elasBc  compute  and  _aaS  era
ACQUIRE PROVISION UPDATE DESTROY
WEEKS DAYS DAYS DAYS
c c c c
ElasBc  Compute
ACQUIRE PROVISION UPDATE DESTROY
WEEKS DAYS DAYS DAYS
c c c c
ElasBc  Compute
ACQUIRE PROVISION UPDATE DESTROY
MINUTES DAYS DAYS SECONDS
c c c c
ElasBc  Compute
CapEx
#
OpEx
#
_aaS
ACQUIRE PROVISION UPDATE DESTROY
DAYS DAYS
c c
ConfiguraBon  Management
MINUTES SECONDS
c c
ACQUIRE PROVISION UPDATE DESTROY
DAYS DAYS
c c
ConfiguraBon  Management
MINUTES SECONDS
c c
ACQUIRE PROVISION UPDATE DESTROY
MINUTES SECONDS
c c
ConfiguraBon  Management
MINUTES SECONDS
c c
ACQUIRE PROVISION UPDATE DESTROY
SaaS  ProliferaBon
ACQUIRE PROVISION UPDATE DESTROY
https://specialized.com
RISING DATACENTER COMPLEXITY
DC DNS
Database
CDNVM
VMVM
VM VM
VMVM
VM
C C
C C
C C
C C
C C
C C
C C
C C
C C
Atmosphere Conference 2015: Taming the Modern Datacenter
WHY?
What  was  our  original  goal?
EFFECTIVELY  DELIVER
AND  MAINTAIN  
APPLICATIONS
MOVE  FAST AND  
DON’T  BREAK  THINGS
h-ps://
d250n10lsq5j8r.cloudfront.n
et/assets/atlas/runAme-­‐
develop-­‐icon-­‐color-­‐
ebf4ccf5f2ca3513e495bccb
e9320d45.png
Consistent
Shareable
Readily Available
High production 

parity
h-ps://
d250n10lsq5j8r.cloudfront.n
et/assets/atlas/runAme-­‐
deploy-­‐icon-­‐
color-­‐1c39f618b3b5ead204
dda4646bb2410e.png
Start and configure
servers / services
Deploy and run
application
Update servers or
applications
Reconfigure, feature
flag
Monitor health
Orchestrate complex
changes
DEVELOP DEPLOY MAINTAIN
h-ps://
d250n10lsq5j8r.cloudfront.n
et/assets/atlas/runAme-­‐
develop-­‐icon-­‐color-­‐
ebf4ccf5f2ca3513e495bccb
e9320d45.png
h-ps://
d250n10lsq5j8r.cloudfront.n
et/assets/atlas/runAme-­‐
deploy-­‐icon-­‐
color-­‐1c39f618b3b5ead204
dda4646bb2410e.png
DEVELOP DEPLOY MAINTAIN
TERRAFORM
Build,  Combine,  and  Launch  Infrastructure
MOTIVATION
Why  Terraform?
How  do  I  provision  resources?  
            compute?  
            storage?  
            network?
How  do  I  manage  resource  lifecycles?
How  do  I  balance  service  providers  
providing  core  technology  for  my  
datacenter?
How  do  I  enforce  policy  across  all  
these  resources?
How  do  I  automate  and  share  those  
configuraBons?
TERRAFORM'S  GOAL
PROVIDE A SINGLE WORKFLOW
WITH A UNIFIED VIEW
USING INFRASTRUCTURE AS CODE
THAT CAN BE ITERATED
AND CHANGED SAFELY
CAPABLE OF COMPLEX N-TIER
APPLICATIONS
DIGITAL OCEAN DROPLET WITH DNS USING DNS SIMPLE
resource "digitalocean_droplet" "web" {
name = "tf-web"
size = "512mb"
image = "centos-5-8-x32"
region = "sfo1"
}
resource "dnsimple_record" "hello" {
domain = "example.com"
name = "test"
value = "${digitalocean_droplet.web.ipv4_address}"
type = "A"
}
DIGITAL OCEAN DROPLET WITH DNS USING DNS SIMPLE
resource "digitalocean_droplet" "web" {
name = "tf-web"
size = "512mb"
image = "centos-5-8-x32"
region = "sfo1"
}
resource "dnsimple_record" "hello" {
domain = "example.com"
name = "test"
value = "${digitalocean_droplet.web.ipv4_address}"
type = "A"
}
DIGITAL OCEAN DROPLET WITH DNS USING DNS SIMPLE
resource "digitalocean_droplet" "web" {
name = "tf-web"
size = "512mb"
image = "centos-5-8-x32"
region = "sfo1"
}
resource "dnsimple_record" "hello" {
domain = "example.com"
name = "test"
value = "${digitalocean_droplet.web.ipv4_address}"
type = "A"
}
DIGITAL OCEAN DROPLET WITH DNS USING DNS SIMPLE
resource "digitalocean_droplet" "web" {
name = "tf-web"
size = "512mb"
image = "centos-5-8-x32"
region = "sfo1"
}
resource "dnsimple_record" "hello" {
domain = "example.com"
name = "test"
value = "${digitalocean_droplet.web.ipv4_address}"
type = "A"
}
HUMAN-FRIENDLY CONFIG*
* JSON-COMPATIBLE FOR NON-HUMANS
VCS-FRIENDLY FORMAT
ENTIRE INFRASTRUCTURE...
IN A SINGLE TEXT FILE
TERRAFORM  GRAPH
COMPOSE N-TIERS / PROVIDERS
TERRAFORM  PROVIDERS
SINGLE INTEGRATION POINT
EXPOSE ("PROVIDE") A RESOURCE
EXPOSE ("PROVIDE") A RESOURCE
aws_instance
dnssimple_record
CRUD API
PLUGGABLE FOR INTEGRATIONS
C C C
C C C
VM VM VM
IAAS (OpenStack, etc)
PHYSICAL
"LAYER CAKE"
PROVIDER PER LAYER
UNIFIED CONFIGURATION
$ terraform apply
All logos and trademarks are copyright their respective owners
TERRAFORM  PLAN
$ terraform plan
+ digitalocean_droplet.web
backups: "" => "<computed>"
image: "" => "centos-5-8-x32"
ipv4_address: "" => "<computed>"
ipv4_address_private: "" => "<computed>"
name: "" => "tf-web"
private_networking: "" => "<computed>"
region: "" => "sfo1"
size: "" => "512mb"
status: "" => "<computed>"
+ dnsimple_record.hello
domain: "" => "example.com"
domain_id: "" => "<computed>"
hostname: "" => "<computed>"
name: "" => "test"
priority: "" => "<computed>"
$ terraform plan
+ digitalocean_droplet.web
backups: "" => "<computed>"
image: "" => "centos-5-8-x32"
ipv4_address: "" => "<computed>"
ipv4_address_private: "" => "<computed>"
name: "" => "tf-web"
private_networking: "" => "<computed>"
region: "" => "sfo1"
size: "" => "512mb"
status: "" => "<computed>"
+ dnsimple_record.hello
domain: "" => "example.com"
domain_id: "" => "<computed>"
hostname: "" => "<computed>"
name: "" => "test"
priority: "" => "<computed>"
$ terraform plan
+ digitalocean_droplet.web
backups: "" => "<computed>"
image: "" => "centos-5-8-x32"
ipv4_address: "" => "<computed>"
ipv4_address_private: "" => "<computed>"
name: "" => "tf-web"
private_networking: "" => "<computed>"
region: "" => "sfo1"
size: "" => "512mb"
status: "" => "<computed>"
+ dnsimple_record.hello
domain: "" => "example.com"
domain_id: "" => "<computed>"
hostname: "" => "<computed>"
name: "" => "test"
priority: "" => "<computed>"
$ terraform plan
+ digitalocean_droplet.web
backups: "" => "<computed>"
image: "" => "centos-5-8-x32"
ipv4_address: "" => "<computed>"
ipv4_address_private: "" => "<computed>"
name: "" => "tf-web"
private_networking: "" => "<computed>"
region: "" => "sfo1"
size: "" => "512mb"
status: "" => "<computed>"
+ dnsimple_record.hello
domain: "" => "example.com"
domain_id: "" => "<computed>"
hostname: "" => "<computed>"
name: "" => "test"
priority: "" => "<computed>"
backups: "" => "<computed>"
image: "" => "centos-5-8-x32"
ipv4_address: "" => "<computed>"
ipv4_address_private: "" => "<computed>"
name: "" => "tf-web"
private_networking: "" => "<computed>"
region: "" => "sfo1"
size: "" => "512mb"
status: "" => "<computed>"
+ dnsimple_record.hello
domain: "" => "example.com"
domain_id: "" => "<computed>"
hostname: "" => "<computed>"
name: "" => "test"
priority: "" => "<computed>"
ttl: "" => "<computed>"
type: "" => "A"
value: "" => "${digitalocean_droplet.web.ipv4_address}"
backups: "" => "<computed>"
image: "" => "centos-5-8-x32"
ipv4_address: "" => "<computed>"
ipv4_address_private: "" => "<computed>"
name: "" => "tf-web"
private_networking: "" => "<computed>"
region: "" => "sfo1"
size: "" => "512mb"
status: "" => "<computed>"
+ dnsimple_record.hello
domain: "" => "example.com"
domain_id: "" => "<computed>"
hostname: "" => "<computed>"
name: "" => "test"
priority: "" => "<computed>"
ttl: "" => "<computed>"
type: "" => "A"
value: "" => "${digitalocean_droplet.web.ipv4_address}"
SHOWS YOU WHAT WILL HAPPEN
EXPLAINS CERTAIN ACTIONS
PREVIOUSLY?
STILL UNCERTAINTY…
FUTURE OPS
Managing  tomorrow’s  infrastructure
DEPLOY  IMMUTABLE
INFRASTRUCTURE
CHANGES
CONFIDENCE Mutable  Infrastructure
INTERATIONS
CONSISTENCY Mutable  Infrastructure
INTERATIONS
CONSISTENCY Immutable  Infrastructure
IMMUTABLE
INFRASTRUCTURE  
IS FASTER
IMMUTABLE
INFRASTRUCTURE  
ALLOWS  FOR    
GREATER PARITY
IMMUTABLE
INFRASTRUCTURE  
NEEDS  AUTOMATION
PACKER
Automated  Golden  Images  (and  more)
MACHINE IMAGES
YUCK…  IMAGES?
WHY  HAVE  WE  BEEN  
GENERALLY AGAINST
MACHINE  IMAGES?
GOLDEN IMAGES
USED TO  BE  THE  WAY
QUARTERLY,
UNCHANGED,
AND  BLESSED
IMAGE
CHANGES WERE
SLOW AND
FRUSTRATING
TOOLING WAS
NOT MATURE
COMPARED TO TODAY
MODERN CONFIG
MANAGEMENT
CHANGED THAT
OPS WITHOUT
MACHINE IMAGES IS
LIKE APPLICATIONS
WITHOUT BINARIES
ApplicaBon  Lifecycle
Source Code Binary
ApplicaBon  Lifecycle
Source Code Binary
libA 1.0 libB 1.0 libC 1.0
ApplicaBon  Lifecycle
Source Code Binary
libA 2.0 libB 1.0 libC 1.0
ApplicaBon  Lifecycle
Source Code Failure
libA 2.0 libB 1.0 libC 1.0
ApplicaBon  Lifecycle
Mutable  Server  Lifecycle
New Server Ready Server
Mutable  Server  Lifecycle
New Server Ready Server
Packages Network CM Changes
Mutable  Server  Lifecycle
New Server
Network CM Changes
Package
Changes
Mutable  Server  Lifecycle
Ready Server
New Server
Network CM Changes
Package
Changes
Failure
Mutable  Server  Lifecycle
New Server
Packages CM Changes
Network
Unreliable
Failure
Mutable  Server  Lifecycle
New Server
Packages Network CM Changed
Failure
Mutable  Server  Lifecycle
Machine  Image  Lifecycle
New Server Ready Server
Machine  Image  Lifecycle
New Server Ready Server
Machine  Image  Lifecycle
PACKER  BUILD
EMBRACES CONFIG
MANAGEMENT
TRANSITIONS FAILURES FROM
RUN-TIME TO BUILD-TIME
ENFORCES PARITY WITH STAGING
… AND EVEN DE ELOPMENT
WHAT DOES THE
FUTURE LOOK LIKE?
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
M
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
MU
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
MU
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
MU
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
MU
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
MU
U
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
MU
U
AMI
DNS
Load Balancer
Deploy
OPERATORSDEVELOPERS
[]
PRODUCTION
MU
U
SETH VARGO
@sethvargo
QUESTIONS?

More Related Content

PDF
OSDC 2017 - Seth Vargo - Taming the modern data center
PDF
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
PDF
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Rac...
KEY
Railsconf2011 deployment tips_for_slideshare
PDF
VUG5: Varnish at Opera Software
ODP
Otimizando seu projeto Rails
PDF
How we use and deploy Varnish at Opera
PDF
Plone 5 and machine learning
OSDC 2017 - Seth Vargo - Taming the modern data center
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Rac...
Railsconf2011 deployment tips_for_slideshare
VUG5: Varnish at Opera Software
Otimizando seu projeto Rails
How we use and deploy Varnish at Opera
Plone 5 and machine learning

What's hot (16)

PPTX
Building cloud stack at scale
PDF
Challenges of container configuration
PPTX
Streamline Hadoop DevOps with Apache Ambari
PDF
Apache and PHP: Why httpd.conf is your new BFF!
PDF
Into The Box 2018 Going live with commandbox and docker
PDF
Composer, putting dependencies on the score
PDF
Resource registries plone conf 2014
KEY
Usando o Cloud
PDF
Php version 7
PDF
MeaNstack on Docker
PDF
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
PDF
Deploying configurable frontend web application containers
PDF
php & performance
PDF
Deployment Tactics
PPTX
AutoScaling WordPress with Docker & AWS - WordPress Meetup Karlsruhe - Plesk
PPTX
Migrating to a Bazel-based CI System: 6 Learnings - Or Shachar
Building cloud stack at scale
Challenges of container configuration
Streamline Hadoop DevOps with Apache Ambari
Apache and PHP: Why httpd.conf is your new BFF!
Into The Box 2018 Going live with commandbox and docker
Composer, putting dependencies on the score
Resource registries plone conf 2014
Usando o Cloud
Php version 7
MeaNstack on Docker
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
Deploying configurable frontend web application containers
php & performance
Deployment Tactics
AutoScaling WordPress with Docker & AWS - WordPress Meetup Karlsruhe - Plesk
Migrating to a Bazel-based CI System: 6 Learnings - Or Shachar
Ad

Viewers also liked (20)

PDF
PLNOG15: Network Migration and Service Assurance using Smart SFP Modules - To...
PDF
PLNOG 13: Piotr Szolkowski: 100G Ethernet – Case Study
PPTX
PLNOG 13: Adam Obszyński: DNSSEC – Cryptography in the service of the secure DNS
PPT
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
PDF
4Developers 2015: Continuous Security in DevOps - Maciej Lasyk
PPTX
PLNOG 13: Michał Dubiel: OpenContrail software architecture
PDF
PLNOG15: Network Automation and Programmability Abstraction Layer with Multiv...
PDF
JDD2014/ 4Developers 2015: Błędy uwierzytelniania i zarządzania sesją w JEE -...
PDF
JDD2014: Enforcing architecture patterns with static code analysis - Pablo Ba...
PDF
JDD2014: JAVA.util.concurrent czyli wielowątkowość z różnych perspektyw, tych...
PPTX
PLNOG15: 10 questions before you deploy Cisco ACI (or any other programmable ...
PDF
PLNOG15: What about latency? - Piotr Jabłoński
PDF
PLNOG15: Find the location of your superhero with 802.11 - Sebastian Pasternacki
PPTX
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
PPTX
CONFidence 2015: Polska cyber armia ochotnikow
PDF
4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
PDF
JDD2014: REST API versioning practice: from header to model - Łukasz Wierzbicki
PPTX
PLNOG15: Session Border Controller – cost effective virtualized and cloud dep...
PDF
Emergenza pianeta
PDF
4Developers 2015: Parę słów o odpowiedzialności projektanta UX - Igor Farafonow
PLNOG15: Network Migration and Service Assurance using Smart SFP Modules - To...
PLNOG 13: Piotr Szolkowski: 100G Ethernet – Case Study
PLNOG 13: Adam Obszyński: DNSSEC – Cryptography in the service of the secure DNS
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
4Developers 2015: Continuous Security in DevOps - Maciej Lasyk
PLNOG 13: Michał Dubiel: OpenContrail software architecture
PLNOG15: Network Automation and Programmability Abstraction Layer with Multiv...
JDD2014/ 4Developers 2015: Błędy uwierzytelniania i zarządzania sesją w JEE -...
JDD2014: Enforcing architecture patterns with static code analysis - Pablo Ba...
JDD2014: JAVA.util.concurrent czyli wielowątkowość z różnych perspektyw, tych...
PLNOG15: 10 questions before you deploy Cisco ACI (or any other programmable ...
PLNOG15: What about latency? - Piotr Jabłoński
PLNOG15: Find the location of your superhero with 802.11 - Sebastian Pasternacki
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
CONFidence 2015: Polska cyber armia ochotnikow
4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
JDD2014: REST API versioning practice: from header to model - Łukasz Wierzbicki
PLNOG15: Session Border Controller – cost effective virtualized and cloud dep...
Emergenza pianeta
4Developers 2015: Parę słów o odpowiedzialności projektanta UX - Igor Farafonow
Ad

Similar to Atmosphere Conference 2015: Taming the Modern Datacenter (20)

PDF
OSDC 2017 | Modern Secrets Management with Vault by Seth Vargo
PDF
OSDC 2017 | Taming the Modern Data Center by Seth Vargo
PDF
TIAD : Automating the modern datacenter
PDF
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
PPTX
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
PDF
56k.cloud training
PPTX
Arista Piston Webinar
PDF
Modern Elastic Datacenter Architecture
PDF
OpenStack Operations Guide 1st Edition Tom Fifield
PDF
AWS re:Invnet Highlights for VCs
PDF
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
PDF
Terraform In Action Meap V10 Meap Scott Winkler
PDF
Oracle Cloud - Infrastruktura jako kód
PPTX
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
PDF
Bridging The Cloud and Application Security Gaps Meetup 15102024
PDF
Microservices with Terraform, Docker and the Cloud. Chicago Coders Conference...
PPTX
AWS re:Invent 2017 re:Cap
PDF
Who Needs Network Management in a Cloud Native Environment?
PPTX
Cloud Native Summit 2019 Summary
PDF
The Cloud Computing Book The Future Of Computing Explained Douglas Comer
OSDC 2017 | Modern Secrets Management with Vault by Seth Vargo
OSDC 2017 | Taming the Modern Data Center by Seth Vargo
TIAD : Automating the modern datacenter
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
56k.cloud training
Arista Piston Webinar
Modern Elastic Datacenter Architecture
OpenStack Operations Guide 1st Edition Tom Fifield
AWS re:Invnet Highlights for VCs
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Terraform In Action Meap V10 Meap Scott Winkler
Oracle Cloud - Infrastruktura jako kód
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Bridging The Cloud and Application Security Gaps Meetup 15102024
Microservices with Terraform, Docker and the Cloud. Chicago Coders Conference...
AWS re:Invent 2017 re:Cap
Who Needs Network Management in a Cloud Native Environment?
Cloud Native Summit 2019 Summary
The Cloud Computing Book The Future Of Computing Explained Douglas Comer

Recently uploaded (20)

PPTX
Concepts of Object Oriented Programming.
PPTX
Introduction: Living in the IT ERA.pptx
DOCX
MLS 113 Medical Parasitology (LECTURE).docx
DOCX
Audio to Video AI Technology Revolutiona
PDF
JuanConnect E-Wallet Guide for new users.pdf
PDF
KEY COB2 UNIT 1: The Business of businessĐH KInh tế TP.HCM
PDF
Slides World Games Great Redesign Eco Economic Epochs.pdf
PDF
How Technology Shapes Our Information Age
PDF
Lesson.-Reporting-and-Sharing-of-Findings.pdf
PDF
ilide.info-huawei-odn-solution-introduction-pdf-pr_a17152ead66ea2617ffbd01e8c...
PPTX
ECO SAFE AI - SUSTAINABLE SAFE AND HOME HUB
PPTX
using the citation of Research to create a research
PPTX
COPD_Management_Exacerbation_Detailed_Placeholders.pptx
PPTX
最新版美国埃默里大学毕业证(Emory毕业证书)原版定制文凭学历认证
PDF
Virtual Guard Technology Provider_ Remote Security Service Solutions.pdf
PPTX
WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx
PPTX
北安普顿大学毕业证UoN成绩单GPA修改北安普顿大学i20学历认证文凭
PPTX
在线订购名古屋艺术大学毕业证, buy NUA diploma学历认证失败怎么办
PPTX
Slides World Games Great Redesign Eco Economic Epochs.pptx
PPTX
Introduction to networking local area networking
Concepts of Object Oriented Programming.
Introduction: Living in the IT ERA.pptx
MLS 113 Medical Parasitology (LECTURE).docx
Audio to Video AI Technology Revolutiona
JuanConnect E-Wallet Guide for new users.pdf
KEY COB2 UNIT 1: The Business of businessĐH KInh tế TP.HCM
Slides World Games Great Redesign Eco Economic Epochs.pdf
How Technology Shapes Our Information Age
Lesson.-Reporting-and-Sharing-of-Findings.pdf
ilide.info-huawei-odn-solution-introduction-pdf-pr_a17152ead66ea2617ffbd01e8c...
ECO SAFE AI - SUSTAINABLE SAFE AND HOME HUB
using the citation of Research to create a research
COPD_Management_Exacerbation_Detailed_Placeholders.pptx
最新版美国埃默里大学毕业证(Emory毕业证书)原版定制文凭学历认证
Virtual Guard Technology Provider_ Remote Security Service Solutions.pdf
WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx
北安普顿大学毕业证UoN成绩单GPA修改北安普顿大学i20学历认证文凭
在线订购名古屋艺术大学毕业证, buy NUA diploma学历认证失败怎么办
Slides World Games Great Redesign Eco Economic Epochs.pptx
Introduction to networking local area networking

Atmosphere Conference 2015: Taming the Modern Datacenter