SlideShare a Scribd company logo
Infrastructure-as-Code
bridging the gap between Devs and Ops
April 6th, 2019 - DevOps Fest 2019 - Kyiv, Ukraine
Who am I?
Mykyta Protsenko
Software developer @ Netflix
(Edge Developer Productivity)
Twitter: @mykyta_p
How long does it take
you to provision
infrastructure?
How many resources
do you need for one
microservice?
How many resources
do you need for one
microservice?
...and how many do you
need for all of them?
Do it now and
automate later?
Too much stuff for OPS
to handle
Bridging the gap
Empowering devs
Ensuring safety
What is
infrastructure?
Computing
Storage
Networking
Everything is software
Writing
Testing
Maintaining
12 factor apps
Codebase
Dependencies
Configuration
Backing services
Build, release, run
Processes
Port binding
Concurrency
Disposability
Dev/prod parity
Logs
Admin processes
12 factor apps
Codebase
Dependencies
Configuration
Backing services
Build, release, run
Processes
Port binding
Concurrency
Disposability
Logs
Dev/prod parity
Admin processes
12 factor apps Codebase
Configuration
Logs
Dev/Prod Parity
12 factor apps Codebase
Configuration
Logs
Dev/Prod Parity
12 factor apps Codebase
Configuration
Logs
Dev/Prod Parity
12 factor apps Codebase
Configuration
Logs
Dev/Prod Parity
12 factor apps Codebase
Configuration
Logs
Dev/Prod Parity
12 factor apps Codebase
Configuration
Logs
Dev/Prod Parity
Ansible
Chef
Puppet
Ansible
Chef
Puppet
Immutable
infrastructure
What tools do we need?
aws elb create-load-balancer
--load-balancer-name myELB
--listeners
"Protocol=HTTP,
LoadBalancerPort=80,
InstanceProtocol=HTTP,
InstancePort=80"
--subnets subnet-15aaab61
--security-groups sg-a61988c3
Imperative tools?
aws elb create-load-balancer
--load-balancer-name myELB
--listeners
"Protocol=HTTP,
LoadBalancerPort=80,
InstanceProtocol=HTTP,
InstancePort=80"
--subnets subnet-15aaab61
--security-groups sg-a61988c3
Declarative tools FTW!
Cloudformation?
"MyDNSRecord": {
"Type": "AWS::Route53::RecordSet",
"Properties": { "HostedZoneName":
{"Fn::Join":
["", [{"Ref":"HostedZone"},
"."]]},
"Comment" : "DNS for inst.",
"Name" : {"Fn::Join":
["",[{"Ref":"EC2Instance"},
".",{"Ref": "AWS::Region"},
".", {"Ref:"HostedZone"},"."]]},
"Type" : "A",
"TTL" : "300",
"ResourceRecords":
[{"Fn::GetAtt" :
["EC2Instance", PublicIp"]}]}
}
Infrastructure-as-code: bridging the gap between Devs and Ops
resource "aws_route53_record" "www"
{
zone_id = "${...}"
name = "www.example.com"
type = "A"
ttl = "300"
records =
["${aws_eip.lb.public_ip}"]
}
Terraform
Terraform
Simple
Human-friendly
What else?
@RestController
public class HelloWorld {
@GetMapping("/")
public String hello() {
return "Hello World!n";
}
}
https://github.com/iac-demo
Terraform FTW!
resource "aws_ecs_task_definition"
"hello-world" {
...
family = "hello-world"
cpu = "256" // 0.25 vCPU
memory = "512" // 512 MB
container_definitions = <<DEF
[
{
...
"image": "helloworld:latest",
...
}
]
DEF
}
https://github.com/iac-demo
Terraform FTW!
resource "aws_ecs_task_definition"
"hello-world" {
...
family = "hello-world"
cpu = "256" // 0.25 vCPU
memory = "512" // 512 MB
container_definitions = <<DEF
[
{
...
"image": "helloworld:latest",
...
}
]
DEF
}
https://github.com/iac-demo
Terraform FTW!
resource "aws_ecs_service" "hello-world" {
cluster = "${aws_ecs_cluster.main.id}"
task_definition =
"${aws_ecs_task_definition.hello-world.arn}"
desired_count = "2"
network_configuration {
subnets = ["${aws_subnet.sb_a.id}",...]
security_groups =
["${aws_security_group.web_ecs.id}"]
}
load_balancer {
target_group_arn =
"${aws_alb_target_group.hello-world.id}"
container_name = "helloworld"
container_port = "8080"
}
...
https://github.com/iac-demo
Terraform FTW!
resource "aws_ecs_service" "hello-world" {
cluster = "${aws_ecs_cluster.main.id}"
task_definition =
"${aws_ecs_task_definition.hello-world.arn}"
desired_count = "2"
network_configuration {
subnets = ["${aws_subnet.sb_a.id}",...]
security_groups =
["${aws_security_group.web_ecs.id}"]
}
load_balancer {
target_group_arn =
"${aws_alb_target_group.hello-world.id}"
container_name = "helloworld"
container_port = "8080"
}
...
https://github.com/iac-demo
Terraform FTW!
resource "aws_ecs_service" "hello-world" {
cluster = "${aws_ecs_cluster.main.id}"
task_definition =
"${aws_ecs_task_definition.hello-world.arn}"
desired_count = "2"
network_configuration {
subnets = ["${aws_subnet.sb_a.id}",...]
security_groups =
["${aws_security_group.web_ecs.id}"]
}
load_balancer {
target_group_arn =
"${aws_alb_target_group.hello-world.id}"
container_name = "helloworld"
container_port = "8080"
}
...
https://github.com/iac-demo
Terraform FTW!
resource "aws_alb" "hello-world" {
name = "hello-world"
subnets = [...]
security_groups = [...]
vpc_id = "${aws_vpc.iacdemo_vpc.id}"
}
https://github.com/iac-demo
Core Infrastructure
vs
Project Infrastructure
Core Infrastructure
resource "aws_vpc" "iacdemo_vpc" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
}
resource "aws_internet_gateway"
"default" {
vpc_id = "${aws_vpc.iacdemo_vpc.id}"
}
...
https://github.com/iac-demo
Core Infrastructure
output "vpc_id" {
value = "${aws_vpc.iacdemo_vpc.id}"
}
terraform {
backend "s3" {
key = "iacdemo.tfstate"
region = "us-west-2"
bucket = "demobucket"
}
}
https://github.com/iac-demo
Project Infrastructuredata "terraform_remote_state" "core" {
backend = "s3"
config {
key = "iacdemo.tfstate"
region = "us-west-2"
bucket = "demobucket"
}
}
resource "aws_alb" "hello-world" {
name = "hello-world"
...
vpc_id =
"${data.
terraform_remote_state.core.vpc_id}"
}
https://github.com/iac-demo
Project Infrastructuredata "terraform_remote_state" "core" {
backend = "s3"
config {
key = "iacdemo.tfstate"
region = "us-west-2"
bucket = "demobucket"
}
}
resource "aws_alb" "hello-world" {
name = "hello-world"
...
vpc_id =
"${data.
terraform_remote_state.core.vpc_id}"
}
https://github.com/iac-demo
https://github.com/iac-demo
Infrastructure-as-code: bridging the gap between Devs and Ops
CELEBRATE!
CELEBRATE?
State of the world
local terraform.tfstate
State of the world
remote S3
local terraform.tfstate
State of the world
terraform {
backend "s3" {
key = "iacdemo.tfstate"
region = "us-west-2"
bucket = "demobucket"
}
State of the world
terraform init
Automated Pipeline
git clone git@github.com:my/repo.git
Automated Pipeline
git clone git@github.com:my/repo.git
terraform init
Automated Pipeline
git clone git@github.com:my/repo.git
terraform init
export TF_VAR_foo="bar"
terraform plan
Automated Pipeline
git clone git@github.com:my/repo.git
terraform init
export TF_VAR_foo="bar"
terraform plan
terraform apply
COPY-PASTE
Encapsulation
Hiding Complexity
Reusing Code
Terraform modules
variable "service_name" {}
variable "docker_image" {}
Terraform modules
variable "service_name" {}
variable "docker_image" {}
resource "aws_ecs_task_definition"
"service" {
family = "${var.service_name}"
container_definitions = <<DEF
[{
...
"image": "${var.docker_image}",
"name": "${var.service_name}"
...
}]DEF
}
Terraform modulesmodule "hello_world" {
source = "./microservice_module"
service_name = "helloworld1"
docker_image= "helloworld:latest"
}
Terraform modulesmodule "hello_world" {
source = "./microservice_module"
service_name = "helloworld1"
docker_image= "helloworld:latest"
}
module "another_hello_world" {
source = "./microservice_module"
service_name = "helloworld2"
docker_image= "helloworld:latest"
}
Terraform modulesmodule "hello_world" {
source = ...
service_name = "helloworld"
docker_image= "helloworld:latest"
}
Breaking Changes?
...While Running 24/7?
Create Before Destroy
resource "aws_alb" "hello-world" {
...
lifecycle {
create_before_destroy = "true"
}
}
Create Before Destroy
resource "aws_alb" "hello-world" {
...
lifecycle {
create_before_destroy = "true"
}
}
resource "aws_ecs_service" "hello-world" {
...
lifecycle {
create_before_destroy = "true"
}
}
Green/Blue Deployments
V1
Green/Blue Deployments
V1
V2
Green/Blue Deployments
V1
V2
Safety
vs
Complexity/Cost
Life after Terraform
Kubernetes! And More!
Declarative K8S
k8s_template.yaml.sh
#!/bin/bash
cat <<YAML
apiVersion: apps/v1beta1
kind: Deployment
...
spec:
replicas: 1
template:
spec:
containers:
- name: $SERVICE_NAME
image: $DOCKER_IMAGE
imagePullPolicy: Always
ports:
- containerPort: 8090
...
YAML
Declarative K8S
k8s_template.yaml.sh
#!/bin/bash
cat <<YAML
apiVersion: apps/v1beta1
kind: Deployment
...
spec:
replicas: 1
template:
spec:
containers:
- name: $SERVICE_NAME
image: $DOCKER_IMAGE
imagePullPolicy: Always
ports:
- containerPort: 8090
...
YAML
Declarative K8S
$ export DOCKER_IMAGE=hello:latest
$ export SERVICE_NAME=helloworld
$ k8s_template.yaml.sh | 
kubectl apply -f -
Still Need Core Infra
provider "google" {
project = "breakme-europe"
region = "europe-west1"
}
resource "google_container_cluster"
"main" {
name = "k8s-cluster"
zone = "europe-west1-d"
initial_node_count = 4
node_config {
machine_type = "n1-standard-2"
...
}
...
}
Fear of Changes
Show, Don’t Tell
30-40 mins vs 3-4 mins
10x better!
Evolution
Small Changes
Learning Curve?
Show, Don’t Tell
Be Patient
Tooling Issues?
Centralize?
Centralize?
Centralize?
Vagrant?
Centralize?
Vagrant?
Package Repository?
Leverage Build System
build.gradle
buildscript {
dependencies {
classpath "com.roku:henka:1.0.0-RELEASE"
}
}
task terraformPlan(type: TerraformTask) {
description "Runs a terraform script"
tfDir = "${projectDir}/terraform"
tfAction = "plan -input=false"
terraformBaseDir = "/opt/terraform"
terraformVersion = "0.11.11"
}
// ...
Leverage Build System
$ ./gradlew build
$ ./gradlew terraformPlan
Best Practices
Unified Build Logic
Best Practices
Unified Build Logic
Unified Monitoring
Best Practices
Unified Build Logic
Unified Monitoring
Code Reviews
Best Practices
Unified Build Logic
Unified Monitoring
Code Reviews
CI/CD
Best Practices
Unified Build Logic
Unified Monitoring
Code Reviews
CI/CD
No Documentation
Deploy Faster!
Terraform https://www.terraform.io
12 factor app https://12factor.net/
Kubernetes https://kubernetes.io/
Gradle https://gradle.org/
Henka https://github.com/roku-oss/henka
Infrastructure-as-code: bridging the gap between Devs and Ops
Twitter @mykyta_p
Slides http://devopsfest2019.protsenko.com
Sources https://github.com/iac-demo
Ad

More Related Content

What's hot (18)

NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
wallyqs
 
Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly - Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly -
Giulio Vian
 
Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
Jerry Jalava
 
Kraken Front-Trends
Kraken Front-TrendsKraken Front-Trends
Kraken Front-Trends
PayPal
 
TIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by stepTIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by step
The Incredible Automation Day
 
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Datadog
 
Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3
aspyker
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioning
buildacloud
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
Minku Lee
 
TIAD : Automating the modern datacenter
TIAD : Automating the modern datacenterTIAD : Automating the modern datacenter
TIAD : Automating the modern datacenter
The Incredible Automation Day
 
DevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codeDevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as code
sriram_rajan
 
Hardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiaHardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoia
zznate
 
Unity Makes Strength
Unity Makes StrengthUnity Makes Strength
Unity Makes Strength
Xavier Mertens
 
Microservices with docker swarm and consul
Microservices with docker swarm and consulMicroservices with docker swarm and consul
Microservices with docker swarm and consul
Nguyen Sy Thanh Son
 
Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014
Puppet
 
Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)
Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)
Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)
VMware Tanzu
 
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 PordenoneSecuring an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Marco Obinu
 
Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...
Red Hat Developers
 
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
wallyqs
 
Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly - Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly -
Giulio Vian
 
Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
Jerry Jalava
 
Kraken Front-Trends
Kraken Front-TrendsKraken Front-Trends
Kraken Front-Trends
PayPal
 
TIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by stepTIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by step
The Incredible Automation Day
 
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Datadog
 
Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3
aspyker
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioning
buildacloud
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
Minku Lee
 
DevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codeDevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as code
sriram_rajan
 
Hardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiaHardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoia
zznate
 
Microservices with docker swarm and consul
Microservices with docker swarm and consulMicroservices with docker swarm and consul
Microservices with docker swarm and consul
Nguyen Sy Thanh Son
 
Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014
Puppet
 
Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)
Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)
Cloud Foundry Summit 2015: Building a Robust Cloud Foundry (HA, Security and DR)
VMware Tanzu
 
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 PordenoneSecuring an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Marco Obinu
 
Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...
Red Hat Developers
 

Similar to Infrastructure-as-code: bridging the gap between Devs and Ops (20)

Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
NETWAYS
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
Achieve Internet
 
London HUG 12/4
London HUG 12/4London HUG 12/4
London HUG 12/4
London HashiCorp User Group
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
GR8Conf
 
Play framework
Play frameworkPlay framework
Play framework
Andrew Skiba
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
Daniel Cukier
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
Alive Kuo
 
Bootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stackBootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bram Vogelaar
 
Docker in Production - IPC 15 München
Docker in Production - IPC 15 MünchenDocker in Production - IPC 15 München
Docker in Production - IPC 15 München
Robert Lemke
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
Tom Croucher
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
Puppet
 
Terraform at Scale
Terraform at ScaleTerraform at Scale
Terraform at Scale
Calvin French-Owen
 
Deploying configurable frontend web application containers
Deploying configurable frontend web application containersDeploying configurable frontend web application containers
Deploying configurable frontend web application containers
José Moreira
 
Declarative & workflow based infrastructure with Terraform
Declarative & workflow based infrastructure with TerraformDeclarative & workflow based infrastructure with Terraform
Declarative & workflow based infrastructure with Terraform
Radek Simko
 
OpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudOpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid Cloud
Isaac Christoffersen
 
Web Components With Rails
Web Components With RailsWeb Components With Rails
Web Components With Rails
Boris Nadion
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
Daniel Spector
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
Yevgeniy Brikman
 
Multiplatformní aplikace: jak vyvíjet pro web i Electron?
Multiplatformní aplikace: jak vyvíjet pro web i Electron?Multiplatformní aplikace: jak vyvíjet pro web i Electron?
Multiplatformní aplikace: jak vyvíjet pro web i Electron?
jirizbytovsky
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
NETWAYS
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
Achieve Internet
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
GR8Conf
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
Alive Kuo
 
Bootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stackBootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bram Vogelaar
 
Docker in Production - IPC 15 München
Docker in Production - IPC 15 MünchenDocker in Production - IPC 15 München
Docker in Production - IPC 15 München
Robert Lemke
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
Tom Croucher
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
Puppet
 
Deploying configurable frontend web application containers
Deploying configurable frontend web application containersDeploying configurable frontend web application containers
Deploying configurable frontend web application containers
José Moreira
 
Declarative & workflow based infrastructure with Terraform
Declarative & workflow based infrastructure with TerraformDeclarative & workflow based infrastructure with Terraform
Declarative & workflow based infrastructure with Terraform
Radek Simko
 
OpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudOpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid Cloud
Isaac Christoffersen
 
Web Components With Rails
Web Components With RailsWeb Components With Rails
Web Components With Rails
Boris Nadion
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
Daniel Spector
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
Yevgeniy Brikman
 
Multiplatformní aplikace: jak vyvíjet pro web i Electron?
Multiplatformní aplikace: jak vyvíjet pro web i Electron?Multiplatformní aplikace: jak vyvíjet pro web i Electron?
Multiplatformní aplikace: jak vyvíjet pro web i Electron?
jirizbytovsky
 
Ad

Recently uploaded (20)

Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Ad

Infrastructure-as-code: bridging the gap between Devs and Ops