SlideShare a Scribd company logo
- 1 -
Infrastructure
as-a-Code
How can DevOps automation help you
boosting your startup
By : Ahmed Mekkawy
- 2 -
The presenter
● Ahmed Mekkawy AKA linuxawy.
● CEO | Founder of Spirula Systems.
● Co-founder of OpenEgypt.
● Free Software Foundation (FSF) member.
● Independent consultant at MCIT.
● Advisory board member at Mushtarak.
● One of the authors of the Egyptian government's FOSS 
adoption strategy.
Intro
BG
Ansible
Docker
- 3 -
Who is this for ?
● Entrepreneur with a technical background, to take wise 
decision.
● Developers, to get closer to operations and DevOps.
● SysAdmins/SysOps, to get closer to developers and 
DevOps.
● Entry level DevOps.
Intro
BG
Ansible
Docker
- 4 -
prerequisites
● A background of development or system administration.
● Linux systems awareness.
● Familiarity with Linux command line.
Intro
BG
Ansible
Docker
- 5 -
Infrastructure as a code
● Definition
● Unlocked potentials :
● Dynamic infrastructure
● Minimizing cycle
● Environment versioning – through source control
● Testing your code/environment
Intro
BG
Ansible
Docker
- 6 -
Devops ?
● DevOps (a clipped compound of "development" and 
"operations") is a culture, movement or practice that 
emphasizes the collaboration and communication of both 
software developers and other information-technology (IT) 
professionals while automating the process of software 
delivery and infrastructure changes. It aims at establishing 
a culture and environment where building, testing, and 
releasing software, can happen rapidly, frequently, and 
more reliably. - Wikipedia
Intro
BG
Ansible
Docker
- 7 -
DevOps Culture
● The opposite of DevOps is despair — Gene Kim
● Technology has became more reliable than our 
management and our process.
● People > Process > Tools.
● DevOps is not a job title, nor a product, but rather a culture 
and practices.
● It's an extension to « You operate what you build » to « 
everyone's involved ». Everyone includes more than devs 
and SysOps. Business guys are in, too.
● Everyone involved knows how the entire system works, and 
is clear about the underlying business value they bring to 
the table. Availability becomes the problem for the entire 
organization, not just for the SysOps.
Intro
BG
Ansible
Docker
- 8 -
DevOps Culture
● DevOps is not a technology problem. DevOps is a business 
problem.
● Waterfall 
● Complete isolation between Devs, SysOps, Business 
department.
● Each new release has destabilizing influence.
● DevOps
● Devs and Ops are a single team.
● « us » instead of « them ».
● Emphasizing people and process over tools.
● Allows tight alignment of operations with business needs 
and thus with customer needs.
Intro
BG
Ansible
Docker
- 9 -
DevOps Automation
● Why automation? 
● SysAdmin POV :
● Handle growing scale
● Counter increasing failures
● Ensuring servers consistency
● Stop repeating tasks
● Design for failure
● No more server documentation (yaaay!)
● Developers POV :
● Automation is fun
● Environment versioning
● You understand how production environment impact your 
code, hence you write more efficient code.
Intro
BG
Ansible
Docker
- 10 -
DevOps Automation
● Entrepreneur POV :
● Decrease operation overhead with scale
● Move among infrastructure providers
● Be agile on the infrastructure level
● Disaster Recovery
● Rapid Growth
● Slashdot Effect / Reddit Hug of Death
Intro
BG
Ansible
Docker
- 11 -
Intro
BG
Ansible
Docker
- 12 -
DevOps Automation
● Why not ?
● Oopses here are bad, really bad.
● It can be tempting to do risky things.
● Knowing how to automate doesn't mean that you know
what to automate.
● Knowing what to operate doesn't mean that you know
how to automate.
● With great power comes great responsibility.
Intro
BG
Ansible
Docker
- 13 -
I. backgroundIntro
BG
Ansible
Docker
- 14 -
Cloud
● On-demand computing: (I|P|S)aaS, the aaS part is what
matters.
● Why? Too late to ask that now.
● Its impact from the infrastructure POV: resulting IT systems
become more complex and scalable
Intro
BG
Ansible
Docker
- 15 -
Configuration management
● Concept
● Since when
● Push vs. Pull
Intro
BG
Ansible
Docker
- 16 -
conf. Management tools
● Ansible
● Chef
● Puppet
● Saltstack
● Fabric
● CFEngine
Intro
BG
Ansible
Docker
- 17 -
Containers
● OS level virtualization
● Containers vs. Virtualization
● Most known container engines:
● FreeBSD jails
● Solaris Zones
● Virtuozzo / OpenVZ
● LXC
● Docker
Intro
BG
Ansible
Docker
- 18 -
Microservices
● A software architecture style
● Application is broken down to lots of tiny services.
● The service does a single function.
● Each service is elastic, resilient, composable, minimal,
and complete.
● Services can be implemented using different
programming langages and environments.
● Services communicate using APIs
● Unix philosophy : Do one thing and do it well.
Intro
BG
Ansible
Docker
- 19 -
II. ansible
Intro
BG
Ansible
Docker
- 20 -
What is ansible ?
● named after the fictional
instantaneous hyperspace communication system
featured in Ender's Game.
● Feb 2012, Michael DeHaan – author of cobbler -
started Ansible project, after working in puppet labs.
● Design goals:
● Minimal
● Consistent
● Secure
● Highly reliable
● Low learning curve
● Commercially supported (Ansible Tower - GUI).
Intro
BG
Ansible
Docker
- 21 -
Why ansible ?
● Agentless : uses plain SSH.
● Idempotent : safe to re-run.
● Modular : large number of contributed modules.
● Simple
● Easy to use :
● YAML syntax
● JSON output
● It's python :)
● FOSS, naturally.
Intro
BG
Ansible
Docker
- 22 -
First look : ad-hoc command
● pip install ansible
● Echo “localhost” > hosts
● ansible all -i hosts -m ping
● ansible all -i hosts -m setup
Intro
BG
Ansible
Docker
- 23 -
Modules
● ansible all -i hosts -s -m shell -a 'apt-
get install nginx'
● ansible all -i hosts -s -m apt -a
'pkg=nginx state=installed
update_cache=true'
● Note : 'state' not 'change'
● You can write your own on any language, but please 
use python.
● https://docs.ansible.com/ansible/modules_by_category.html
Intro
BG
Ansible
Docker
- 24 -
task
● The basic unit of ansible code
● Playbook => roles => tasks
tasks:
- name: Install Nginx
apt: pkg=nginx state=installed
update_cache=true
Intro
BG
Ansible
Docker
- 25 -
Inventory file
● Usually named « hosts »
[loadbalancers]
lb1 server_role= « lb »
ansible_ssh_port=22
ansible_ssh_host=xx.xx.xx.xx
[app:children]
user_app
admin_app
[user_app]
app1 server_role « app »
ansible_ssh_port=22 ansible_ssh_host=xxxx
Intro
BG
Ansible
Docker
- 26 -
Dynamic InvEntory
● Getting the inventory file from another system :
● LDAP
● Cobbler
● OpenStack
● EC2
● … etc
● https://docs.ansible.com/ansible/intro_dynamic_inventory.html
Intro
BG
Ansible
Docker
- 27 -
roles
● Organized set of tasks with their needs
rolename
- defaults
- files
- handlers
- meta
- templates
- tasks
- vars
● Each of those directories include main.yml, except files 
and templates.
Intro
BG
Ansible
Docker
- 28 -
Files
● Files to be copied to the servers as is.
● No main.yml here.
● Example : startup scripts.
Intro
BG
Ansible
Docker
- 29 -
Templates
● Files to be copied to the server after substituting the 
variables, or doing some minor logic (i.e. loops)
● Python's Jinja2 template engine.
● No main.yml here too.
● Simple use :
echo {{ ip_forward }} >
/proc/sys/net/ipv4/ip_forward
Intro
BG
Ansible
Docker
- 30 -
Templates
● Adbanced use :
{% for service in outgoing %}
{{'##'|e }} {{ service.name }}
{{'##'|e }} {{'=' * service.name|length }}
iptables -A OUTPUT -p {{ service.protocol |
default('tcp') }} {{ '-d '+service.destination if
service.destination is defined else '' }} --dport
{{ service.port }} -j ACCEPT
iptables -A INPUT -p {{ service.protocol |
default('tcp') }} {{ '-s '+service.destination if
service.destination is defined else '' }} --sport
{{ service.port }} {{ '' if service.protocol is
defined and service.protocol == 'udp' else '! --syn
' }} -j ACCEPT
{% endfor %}
Intro
BG
Ansible
Docker
- 31 -
handler
● Just as a task, but triggered from within another task.
● Notifiers are only run if the Task is run. Think Event
tasks:
- name: Install Nginx
apt: pkg=nginx state=installed
update_cache=true
notify:
- Start Nginx
handlers:
- name: Start Nginx
service: name=nginx state=started
Intro
BG
Ansible
Docker
- 32 -
Meta
● Role meta data, including dependencies on other roles.
---
author: your name
description: what this role does
company: your_company
licence: GPLv2
min_ansible_version: 1.2
dependencies:
- { role: ssl }
Intro
BG
Ansible
Docker
- 33 -
playbook
● A complete project
playbook
- group_vars
- group1.yml
- all.yml
- hosts
- playbook.yml
- roles
- role1
- role2
Intro
BG
Ansible
Docker
- 34 -
variables
● declaration (in override order):
● command line
● playbook file
● group_vars
● role (vars)
● role (defaults)
● facts.
● https://docs.ansible.com/ansible/playbooks_variables.html
Intro
BG
Ansible
Docker
- 35 -
Spirula's practices
● Treat your CM code as code :
● Use version control.
● Comment on commits.
● Code reuse.
● Have a testing procedure.
● Keep your /etc/ansible/hosts empty, so you have to
define inventory file on each run.
● Keep your variable definition clean:
● Don't define vars in playbook file.
● Keep your project vars in playbook's group_vars, in
all.yml, or in the group if needed.
Intro
BG
Ansible
Docker
- 36 -
Ansible Galaxy
● Community hub for contributing, downloading, and reviewing
ansible roles.
ansible-galaxy install Spirula.common
● https://galaxy.ansible.com
Intro
BG
Ansible
Docker
- 37 -
III. dockerIntro
BG
Ansible
Docker
- 38 -
Docker Architecture
Intro
BG
Ansible
Docker
- 39 -
Containerization soln
Intro
BG
Ansible
Docker
- 40 -
Build Ship Run
● Build images using Dockerfiles.
● Ship images to different environments (testing, staging,
production).
● Run and scale your containers on different platform.
Intro
BG
Ansible
Docker
- 41 -
Docker 'Hello world'
● Install Docker engine on your Linux platform.
● Run :
$ docker run -it ubuntu:14.04 /bin/bash
● Docker will run a /bin/bash process inside a container and
give you control of this process.
Intro
BG
Ansible
Docker
- 42 -
Discussion
- 43 -
Resources
● Ansible:
● https://docs.ansible.com/ansible/
● https://serversforhackers.com/an-ansible-tutorial
● http://slash4.net/blog/deployment-automation/howto-use-ansible-to
● https://www.spirulasystems.com/blog/tech
● Book : Ansible for DevOps
● Book: The Practice of Cloud System Administration
● Docker
● https://the.binbashtheory.com/before-you-start-with-lxc-and-docke
● https://serversforhackers.com/getting-started-with-docker
- 44 -
Thank you
Ahmed Mekkawy
mekkawy@spiru.la
www.spirulasystems.com

More Related Content

What's hot

Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
Codefresh
 
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Codefresh
 
Okteto For Kubernetes Developer :- Container Camp 2020
Okteto For Kubernetes Developer :- Container Camp 2020 Okteto For Kubernetes Developer :- Container Camp 2020
Okteto For Kubernetes Developer :- Container Camp 2020
sangam biradar
 
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-ComposeTales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Docker, Inc.
 
Docker at MoneyBird
Docker at MoneyBirdDocker at MoneyBird
Docker at MoneyBird
Edwin Vlieg
 
The Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the UnikernalThe Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the Unikernal
All Things Open
 
How to Achieve more through Collaboration
How to Achieve more through Collaboration How to Achieve more through Collaboration
How to Achieve more through Collaboration
Damien Garros
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on Serverless
Daniel Oh
 
Node.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and OpsNode.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and Ops
Bret Fisher
 
Building Cloud Virtual Topologies with Ravello and Ansible
Building Cloud Virtual Topologies with Ravello and AnsibleBuilding Cloud Virtual Topologies with Ravello and Ansible
Building Cloud Virtual Topologies with Ravello and Ansible
Damien Garros
 
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Docker, Inc.
 
Docker
DockerDocker
Docker
Knoldus Inc.
 
DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy  DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy
Docker, Inc.
 
Back to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy ApplicationsBack to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy Applications
Docker, Inc.
 
Terratest with Terraform
Terratest with TerraformTerratest with Terraform
Terratest with Terraform
Knoldus Inc.
 
Building CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and KubernetesBuilding CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and Kubernetes
Janakiram MSV
 
Deploying containers on Heterogeneous IOT devices by Daniel Bruzual
Deploying containers on Heterogeneous IOT devices by Daniel Bruzual Deploying containers on Heterogeneous IOT devices by Daniel Bruzual
Deploying containers on Heterogeneous IOT devices by Daniel Bruzual
Docker, Inc.
 
Living with microservices at Pipedrive
Living with microservices at PipedriveLiving with microservices at Pipedrive
Living with microservices at Pipedrive
Renno Reinurm
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
Yshay Yaacobi
 
Disruption from within
Disruption from withinDisruption from within
Disruption from within
Docker, Inc.
 

What's hot (20)

Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
 
Okteto For Kubernetes Developer :- Container Camp 2020
Okteto For Kubernetes Developer :- Container Camp 2020 Okteto For Kubernetes Developer :- Container Camp 2020
Okteto For Kubernetes Developer :- Container Camp 2020
 
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-ComposeTales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
 
Docker at MoneyBird
Docker at MoneyBirdDocker at MoneyBird
Docker at MoneyBird
 
The Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the UnikernalThe Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the Unikernal
 
How to Achieve more through Collaboration
How to Achieve more through Collaboration How to Achieve more through Collaboration
How to Achieve more through Collaboration
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on Serverless
 
Node.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and OpsNode.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and Ops
 
Building Cloud Virtual Topologies with Ravello and Ansible
Building Cloud Virtual Topologies with Ravello and AnsibleBuilding Cloud Virtual Topologies with Ravello and Ansible
Building Cloud Virtual Topologies with Ravello and Ansible
 
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
 
Docker
DockerDocker
Docker
 
DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy  DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy
 
Back to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy ApplicationsBack to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy Applications
 
Terratest with Terraform
Terratest with TerraformTerratest with Terraform
Terratest with Terraform
 
Building CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and KubernetesBuilding CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and Kubernetes
 
Deploying containers on Heterogeneous IOT devices by Daniel Bruzual
Deploying containers on Heterogeneous IOT devices by Daniel Bruzual Deploying containers on Heterogeneous IOT devices by Daniel Bruzual
Deploying containers on Heterogeneous IOT devices by Daniel Bruzual
 
Living with microservices at Pipedrive
Living with microservices at PipedriveLiving with microservices at Pipedrive
Living with microservices at Pipedrive
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
Disruption from within
Disruption from withinDisruption from within
Disruption from within
 

Viewers also liked

MoCDA Bylaws
MoCDA BylawsMoCDA Bylaws
MoCDA Bylaws
MoCDA
 
Lewis Recommendation
Lewis Recommendation Lewis Recommendation
Lewis Recommendation Andrew Kriek
 
What is Sinusitis?
What is Sinusitis?What is Sinusitis?
What is Sinusitis?
Rande Lazar MD
 
CertainTeed Proposal
CertainTeed ProposalCertainTeed Proposal
CertainTeed ProposalLara Carson
 
Preguntas de la prueba 2
Preguntas de la prueba 2Preguntas de la prueba 2
Preguntas de la prueba 2
NiocoleZambrano27
 
Brand journalism 1.0
Brand journalism 1.0Brand journalism 1.0
Brand journalism 1.0
John Gregory Olson
 
Geo.ii. imagenes. t.p. n °2
Geo.ii. imagenes. t.p. n °2Geo.ii. imagenes. t.p. n °2
Geo.ii. imagenes. t.p. n °2Sol Gomez
 
KIM JUNSANG 取り組みと実績
KIM JUNSANG 取り組みと実績KIM JUNSANG 取り組みと実績
KIM JUNSANG 取り組みと実績
Junsang0819
 
autoevaluación
 autoevaluación autoevaluación
autoevaluación
Katy Saula
 
Tarjeta de felicitación
Tarjeta de felicitación Tarjeta de felicitación
Tarjeta de felicitación
Jorge Bernilla
 
Goal setting worksheet
Goal setting worksheetGoal setting worksheet
Goal setting worksheet
Lisa Drafall
 
"Πάμε θέατρο;", project Α' Λυκείου, εργασία
"Πάμε θέατρο;", project Α' Λυκείου, εργασία"Πάμε θέατρο;", project Α' Λυκείου, εργασία
"Πάμε θέατρο;", project Α' Λυκείου, εργασία
gina zaza
 
Internet marketing proposal from ETS
Internet marketing proposal from ETSInternet marketing proposal from ETS
Internet marketing proposal from ETS
Eclipse Techno Consulting Global (P) Ltd
 
Dskp pendidikan muzik kssr tahun 5
Dskp pendidikan muzik kssr tahun 5Dskp pendidikan muzik kssr tahun 5
Dskp pendidikan muzik kssr tahun 5
amos2810
 
Abn 4 años1
Abn 4 años1Abn 4 años1
Abn 4 años1
Eva Sanz
 

Viewers also liked (16)

MoCDA Bylaws
MoCDA BylawsMoCDA Bylaws
MoCDA Bylaws
 
Emily Huddleston Resume 1
Emily Huddleston Resume 1Emily Huddleston Resume 1
Emily Huddleston Resume 1
 
Lewis Recommendation
Lewis Recommendation Lewis Recommendation
Lewis Recommendation
 
What is Sinusitis?
What is Sinusitis?What is Sinusitis?
What is Sinusitis?
 
CertainTeed Proposal
CertainTeed ProposalCertainTeed Proposal
CertainTeed Proposal
 
Preguntas de la prueba 2
Preguntas de la prueba 2Preguntas de la prueba 2
Preguntas de la prueba 2
 
Brand journalism 1.0
Brand journalism 1.0Brand journalism 1.0
Brand journalism 1.0
 
Geo.ii. imagenes. t.p. n °2
Geo.ii. imagenes. t.p. n °2Geo.ii. imagenes. t.p. n °2
Geo.ii. imagenes. t.p. n °2
 
KIM JUNSANG 取り組みと実績
KIM JUNSANG 取り組みと実績KIM JUNSANG 取り組みと実績
KIM JUNSANG 取り組みと実績
 
autoevaluación
 autoevaluación autoevaluación
autoevaluación
 
Tarjeta de felicitación
Tarjeta de felicitación Tarjeta de felicitación
Tarjeta de felicitación
 
Goal setting worksheet
Goal setting worksheetGoal setting worksheet
Goal setting worksheet
 
"Πάμε θέατρο;", project Α' Λυκείου, εργασία
"Πάμε θέατρο;", project Α' Λυκείου, εργασία"Πάμε θέατρο;", project Α' Λυκείου, εργασία
"Πάμε θέατρο;", project Α' Λυκείου, εργασία
 
Internet marketing proposal from ETS
Internet marketing proposal from ETSInternet marketing proposal from ETS
Internet marketing proposal from ETS
 
Dskp pendidikan muzik kssr tahun 5
Dskp pendidikan muzik kssr tahun 5Dskp pendidikan muzik kssr tahun 5
Dskp pendidikan muzik kssr tahun 5
 
Abn 4 años1
Abn 4 años1Abn 4 años1
Abn 4 años1
 

Similar to Infrastructure as a Code

Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
Yaniv cohen
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Stanislav Pogrebnyak
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3s
Haggai Philip Zagury
 
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
[HKOSCON][20200613][ Ansible: From VM to Kubernetes][HKOSCON][20200613][ Ansible: From VM to Kubernetes]
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
Wong Hoi Sing Edison
 
OpenDataPlane Testing in Travis
OpenDataPlane Testing in TravisOpenDataPlane Testing in Travis
OpenDataPlane Testing in Travis
Dmitry Baryshkov
 
Truemotion Adventures in Containerization
Truemotion Adventures in ContainerizationTruemotion Adventures in Containerization
Truemotion Adventures in Containerization
Ryan Hunter
 
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes][HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
Wong Hoi Sing Edison
 
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
Puppet
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
Jérôme Petazzoni
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Ambassador Labs
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
oholiab
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
Annie Huang
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
NETWAYS
 
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
NETWAYS
 
Docker - Dicas ninjas - MolaTech Talks
Docker - Dicas ninjas -  MolaTech TalksDocker - Dicas ninjas -  MolaTech Talks
Docker - Dicas ninjas - MolaTech Talks
matheuscmpm
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Samsul Ma'arif
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
Stanislav Osipov
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
Piotr Perzyna
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
Juraj Hantak
 

Similar to Infrastructure as a Code (20)

Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3s
 
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
[HKOSCON][20200613][ Ansible: From VM to Kubernetes][HKOSCON][20200613][ Ansible: From VM to Kubernetes]
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
 
OpenDataPlane Testing in Travis
OpenDataPlane Testing in TravisOpenDataPlane Testing in Travis
OpenDataPlane Testing in Travis
 
Truemotion Adventures in Containerization
Truemotion Adventures in ContainerizationTruemotion Adventures in Containerization
Truemotion Adventures in Containerization
 
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes][HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
 
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
 
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
 
Docker - Dicas ninjas - MolaTech Talks
Docker - Dicas ninjas -  MolaTech TalksDocker - Dicas ninjas -  MolaTech Talks
Docker - Dicas ninjas - MolaTech Talks
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
 

More from Ahmed Mekkawy

Encrypted Traffic in Egypt - an attempt to understand
Encrypted Traffic in Egypt - an attempt to understandEncrypted Traffic in Egypt - an attempt to understand
Encrypted Traffic in Egypt - an attempt to understand
Ahmed Mekkawy
 
Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...
Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...
Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...
Ahmed Mekkawy
 
OpenData for governments
OpenData for governmentsOpenData for governments
OpenData for governments
Ahmed Mekkawy
 
شركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحة
شركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحةشركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحة
شركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحة
Ahmed Mekkawy
 
Everything is a Game
Everything is a GameEverything is a Game
Everything is a Game
Ahmed Mekkawy
 
Why Cloud Computing has to go the FOSS way
Why Cloud Computing has to go the FOSS wayWhy Cloud Computing has to go the FOSS way
Why Cloud Computing has to go the FOSS way
Ahmed Mekkawy
 
FOSS Enterpreneurship
FOSS EnterpreneurshipFOSS Enterpreneurship
FOSS Enterpreneurship
Ahmed Mekkawy
 
Intro to FOSS & using it in development
Intro to FOSS & using it in developmentIntro to FOSS & using it in development
Intro to FOSS & using it in development
Ahmed Mekkawy
 
FOSS, history and philosophy
FOSS, history and philosophyFOSS, history and philosophy
FOSS, history and philosophy
Ahmed Mekkawy
 
Virtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud ComptingVirtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud ComptingAhmed Mekkawy
 
A look at computer security
A look at computer securityA look at computer security
A look at computer securityAhmed Mekkawy
 
Networking in Gnu/Linux
Networking in Gnu/LinuxNetworking in Gnu/Linux
Networking in Gnu/LinuxAhmed Mekkawy
 
Foss Movement In Egypt
Foss Movement In EgyptFoss Movement In Egypt
Foss Movement In Egypt
Ahmed Mekkawy
 
Sysprog17
Sysprog17Sysprog17
Sysprog17
Ahmed Mekkawy
 

More from Ahmed Mekkawy (20)

Encrypted Traffic in Egypt - an attempt to understand
Encrypted Traffic in Egypt - an attempt to understandEncrypted Traffic in Egypt - an attempt to understand
Encrypted Traffic in Egypt - an attempt to understand
 
Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...
Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...
Securing Governmental Public Services with Free/Open Source Tools - Egyptian ...
 
OpenData for governments
OpenData for governmentsOpenData for governments
OpenData for governments
 
شركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحة
شركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحةشركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحة
شركة سبيرولا للأنظمة والجمعية المصرية للمصادر المفتوحة
 
Everything is a Game
Everything is a GameEverything is a Game
Everything is a Game
 
Why Cloud Computing has to go the FOSS way
Why Cloud Computing has to go the FOSS wayWhy Cloud Computing has to go the FOSS way
Why Cloud Computing has to go the FOSS way
 
FOSS Enterpreneurship
FOSS EnterpreneurshipFOSS Enterpreneurship
FOSS Enterpreneurship
 
Intro to FOSS & using it in development
Intro to FOSS & using it in developmentIntro to FOSS & using it in development
Intro to FOSS & using it in development
 
FOSS, history and philosophy
FOSS, history and philosophyFOSS, history and philosophy
FOSS, history and philosophy
 
Virtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud ComptingVirtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud Compting
 
A look at computer security
A look at computer securityA look at computer security
A look at computer security
 
Networking in Gnu/Linux
Networking in Gnu/LinuxNetworking in Gnu/Linux
Networking in Gnu/Linux
 
Foss Movement In Egypt
Foss Movement In EgyptFoss Movement In Egypt
Foss Movement In Egypt
 
Sysprog17
Sysprog17Sysprog17
Sysprog17
 
Sysprog 15
Sysprog 15Sysprog 15
Sysprog 15
 
Sysprog 9
Sysprog 9Sysprog 9
Sysprog 9
 
Sysprog 12
Sysprog 12Sysprog 12
Sysprog 12
 
Sysprog 14
Sysprog 14Sysprog 14
Sysprog 14
 
Sysprog 11
Sysprog 11Sysprog 11
Sysprog 11
 
Sysprog 7
Sysprog 7Sysprog 7
Sysprog 7
 

Recently uploaded

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

Infrastructure as a Code

  • 1. - 1 - Infrastructure as-a-Code How can DevOps automation help you boosting your startup By : Ahmed Mekkawy
  • 2. - 2 - The presenter ● Ahmed Mekkawy AKA linuxawy. ● CEO | Founder of Spirula Systems. ● Co-founder of OpenEgypt. ● Free Software Foundation (FSF) member. ● Independent consultant at MCIT. ● Advisory board member at Mushtarak. ● One of the authors of the Egyptian government's FOSS  adoption strategy. Intro BG Ansible Docker
  • 3. - 3 - Who is this for ? ● Entrepreneur with a technical background, to take wise  decision. ● Developers, to get closer to operations and DevOps. ● SysAdmins/SysOps, to get closer to developers and  DevOps. ● Entry level DevOps. Intro BG Ansible Docker
  • 4. - 4 - prerequisites ● A background of development or system administration. ● Linux systems awareness. ● Familiarity with Linux command line. Intro BG Ansible Docker
  • 5. - 5 - Infrastructure as a code ● Definition ● Unlocked potentials : ● Dynamic infrastructure ● Minimizing cycle ● Environment versioning – through source control ● Testing your code/environment Intro BG Ansible Docker
  • 6. - 6 - Devops ? ● DevOps (a clipped compound of "development" and  "operations") is a culture, movement or practice that  emphasizes the collaboration and communication of both  software developers and other information-technology (IT)  professionals while automating the process of software  delivery and infrastructure changes. It aims at establishing  a culture and environment where building, testing, and  releasing software, can happen rapidly, frequently, and  more reliably. - Wikipedia Intro BG Ansible Docker
  • 7. - 7 - DevOps Culture ● The opposite of DevOps is despair — Gene Kim ● Technology has became more reliable than our  management and our process. ● People > Process > Tools. ● DevOps is not a job title, nor a product, but rather a culture  and practices. ● It's an extension to « You operate what you build » to «  everyone's involved ». Everyone includes more than devs  and SysOps. Business guys are in, too. ● Everyone involved knows how the entire system works, and  is clear about the underlying business value they bring to  the table. Availability becomes the problem for the entire  organization, not just for the SysOps. Intro BG Ansible Docker
  • 8. - 8 - DevOps Culture ● DevOps is not a technology problem. DevOps is a business  problem. ● Waterfall  ● Complete isolation between Devs, SysOps, Business  department. ● Each new release has destabilizing influence. ● DevOps ● Devs and Ops are a single team. ● « us » instead of « them ». ● Emphasizing people and process over tools. ● Allows tight alignment of operations with business needs  and thus with customer needs. Intro BG Ansible Docker
  • 9. - 9 - DevOps Automation ● Why automation?  ● SysAdmin POV : ● Handle growing scale ● Counter increasing failures ● Ensuring servers consistency ● Stop repeating tasks ● Design for failure ● No more server documentation (yaaay!) ● Developers POV : ● Automation is fun ● Environment versioning ● You understand how production environment impact your  code, hence you write more efficient code. Intro BG Ansible Docker
  • 10. - 10 - DevOps Automation ● Entrepreneur POV : ● Decrease operation overhead with scale ● Move among infrastructure providers ● Be agile on the infrastructure level ● Disaster Recovery ● Rapid Growth ● Slashdot Effect / Reddit Hug of Death Intro BG Ansible Docker
  • 12. - 12 - DevOps Automation ● Why not ? ● Oopses here are bad, really bad. ● It can be tempting to do risky things. ● Knowing how to automate doesn't mean that you know what to automate. ● Knowing what to operate doesn't mean that you know how to automate. ● With great power comes great responsibility. Intro BG Ansible Docker
  • 13. - 13 - I. backgroundIntro BG Ansible Docker
  • 14. - 14 - Cloud ● On-demand computing: (I|P|S)aaS, the aaS part is what matters. ● Why? Too late to ask that now. ● Its impact from the infrastructure POV: resulting IT systems become more complex and scalable Intro BG Ansible Docker
  • 15. - 15 - Configuration management ● Concept ● Since when ● Push vs. Pull Intro BG Ansible Docker
  • 16. - 16 - conf. Management tools ● Ansible ● Chef ● Puppet ● Saltstack ● Fabric ● CFEngine Intro BG Ansible Docker
  • 17. - 17 - Containers ● OS level virtualization ● Containers vs. Virtualization ● Most known container engines: ● FreeBSD jails ● Solaris Zones ● Virtuozzo / OpenVZ ● LXC ● Docker Intro BG Ansible Docker
  • 18. - 18 - Microservices ● A software architecture style ● Application is broken down to lots of tiny services. ● The service does a single function. ● Each service is elastic, resilient, composable, minimal, and complete. ● Services can be implemented using different programming langages and environments. ● Services communicate using APIs ● Unix philosophy : Do one thing and do it well. Intro BG Ansible Docker
  • 19. - 19 - II. ansible Intro BG Ansible Docker
  • 20. - 20 - What is ansible ? ● named after the fictional instantaneous hyperspace communication system featured in Ender's Game. ● Feb 2012, Michael DeHaan – author of cobbler - started Ansible project, after working in puppet labs. ● Design goals: ● Minimal ● Consistent ● Secure ● Highly reliable ● Low learning curve ● Commercially supported (Ansible Tower - GUI). Intro BG Ansible Docker
  • 21. - 21 - Why ansible ? ● Agentless : uses plain SSH. ● Idempotent : safe to re-run. ● Modular : large number of contributed modules. ● Simple ● Easy to use : ● YAML syntax ● JSON output ● It's python :) ● FOSS, naturally. Intro BG Ansible Docker
  • 22. - 22 - First look : ad-hoc command ● pip install ansible ● Echo “localhost” > hosts ● ansible all -i hosts -m ping ● ansible all -i hosts -m setup Intro BG Ansible Docker
  • 23. - 23 - Modules ● ansible all -i hosts -s -m shell -a 'apt- get install nginx' ● ansible all -i hosts -s -m apt -a 'pkg=nginx state=installed update_cache=true' ● Note : 'state' not 'change' ● You can write your own on any language, but please  use python. ● https://docs.ansible.com/ansible/modules_by_category.html Intro BG Ansible Docker
  • 24. - 24 - task ● The basic unit of ansible code ● Playbook => roles => tasks tasks: - name: Install Nginx apt: pkg=nginx state=installed update_cache=true Intro BG Ansible Docker
  • 25. - 25 - Inventory file ● Usually named « hosts » [loadbalancers] lb1 server_role= « lb » ansible_ssh_port=22 ansible_ssh_host=xx.xx.xx.xx [app:children] user_app admin_app [user_app] app1 server_role « app » ansible_ssh_port=22 ansible_ssh_host=xxxx Intro BG Ansible Docker
  • 26. - 26 - Dynamic InvEntory ● Getting the inventory file from another system : ● LDAP ● Cobbler ● OpenStack ● EC2 ● … etc ● https://docs.ansible.com/ansible/intro_dynamic_inventory.html Intro BG Ansible Docker
  • 27. - 27 - roles ● Organized set of tasks with their needs rolename - defaults - files - handlers - meta - templates - tasks - vars ● Each of those directories include main.yml, except files  and templates. Intro BG Ansible Docker
  • 28. - 28 - Files ● Files to be copied to the servers as is. ● No main.yml here. ● Example : startup scripts. Intro BG Ansible Docker
  • 29. - 29 - Templates ● Files to be copied to the server after substituting the  variables, or doing some minor logic (i.e. loops) ● Python's Jinja2 template engine. ● No main.yml here too. ● Simple use : echo {{ ip_forward }} > /proc/sys/net/ipv4/ip_forward Intro BG Ansible Docker
  • 30. - 30 - Templates ● Adbanced use : {% for service in outgoing %} {{'##'|e }} {{ service.name }} {{'##'|e }} {{'=' * service.name|length }} iptables -A OUTPUT -p {{ service.protocol | default('tcp') }} {{ '-d '+service.destination if service.destination is defined else '' }} --dport {{ service.port }} -j ACCEPT iptables -A INPUT -p {{ service.protocol | default('tcp') }} {{ '-s '+service.destination if service.destination is defined else '' }} --sport {{ service.port }} {{ '' if service.protocol is defined and service.protocol == 'udp' else '! --syn ' }} -j ACCEPT {% endfor %} Intro BG Ansible Docker
  • 31. - 31 - handler ● Just as a task, but triggered from within another task. ● Notifiers are only run if the Task is run. Think Event tasks: - name: Install Nginx apt: pkg=nginx state=installed update_cache=true notify: - Start Nginx handlers: - name: Start Nginx service: name=nginx state=started Intro BG Ansible Docker
  • 32. - 32 - Meta ● Role meta data, including dependencies on other roles. --- author: your name description: what this role does company: your_company licence: GPLv2 min_ansible_version: 1.2 dependencies: - { role: ssl } Intro BG Ansible Docker
  • 33. - 33 - playbook ● A complete project playbook - group_vars - group1.yml - all.yml - hosts - playbook.yml - roles - role1 - role2 Intro BG Ansible Docker
  • 34. - 34 - variables ● declaration (in override order): ● command line ● playbook file ● group_vars ● role (vars) ● role (defaults) ● facts. ● https://docs.ansible.com/ansible/playbooks_variables.html Intro BG Ansible Docker
  • 35. - 35 - Spirula's practices ● Treat your CM code as code : ● Use version control. ● Comment on commits. ● Code reuse. ● Have a testing procedure. ● Keep your /etc/ansible/hosts empty, so you have to define inventory file on each run. ● Keep your variable definition clean: ● Don't define vars in playbook file. ● Keep your project vars in playbook's group_vars, in all.yml, or in the group if needed. Intro BG Ansible Docker
  • 36. - 36 - Ansible Galaxy ● Community hub for contributing, downloading, and reviewing ansible roles. ansible-galaxy install Spirula.common ● https://galaxy.ansible.com Intro BG Ansible Docker
  • 37. - 37 - III. dockerIntro BG Ansible Docker
  • 38. - 38 - Docker Architecture Intro BG Ansible Docker
  • 39. - 39 - Containerization soln Intro BG Ansible Docker
  • 40. - 40 - Build Ship Run ● Build images using Dockerfiles. ● Ship images to different environments (testing, staging, production). ● Run and scale your containers on different platform. Intro BG Ansible Docker
  • 41. - 41 - Docker 'Hello world' ● Install Docker engine on your Linux platform. ● Run : $ docker run -it ubuntu:14.04 /bin/bash ● Docker will run a /bin/bash process inside a container and give you control of this process. Intro BG Ansible Docker
  • 43. - 43 - Resources ● Ansible: ● https://docs.ansible.com/ansible/ ● https://serversforhackers.com/an-ansible-tutorial ● http://slash4.net/blog/deployment-automation/howto-use-ansible-to ● https://www.spirulasystems.com/blog/tech ● Book : Ansible for DevOps ● Book: The Practice of Cloud System Administration ● Docker ● https://the.binbashtheory.com/before-you-start-with-lxc-and-docke ● https://serversforhackers.com/getting-started-with-docker
  • 44. - 44 - Thank you Ahmed Mekkawy mekkawy@spiru.la www.spirulasystems.com