SlideShare a Scribd company logo
BETTER
OPERATIONS
INTO THE CLOUD
HOW DEVOPS SUPPORT YOUR TEAM
FABIO FERRARI
FABIO FERRARI
CLOUD ARCHITECT
DEVOPS
REMOTE WORKER
FREELANCER
FABIO FERRARI
CLOUD ARCHITECT
DEVOPS
REMOTE WORKER
FREELANCER
COST DESIGN
DEPLOY MONITOR
FABIO FERRARI
CLOUD ARCHITECT
DEVOPS
REMOTE WORKER
FREELANCER
DEV
OPS
DEV
FABIO FERRARI
CLOUD ARCHITECT
DEVOPS
REMOTE WORKER
FREELANCER
FABIO FERRARI
Better Operations into the Cloud
CLOUD ARCHITECT
DEVOPS
REMOTE WORKER
FREELANCER
WHAT IS UPWORK?
TOP FREELANCING WEBSITE
Upwork is a popular freelance platform that connects a database of
freelance professionals with jobs from around the world.
This global platform is a great way for remote worker to find work and
for companies or individuals to find talented freelancers.
SKILLED FREELANCER
BUILD A POOL OF TRUSTED EXPERTS FOR YOUR TEAM
EASILY FIND QUALITY FREELANCERS
FIND REWARDING PROJECTS
BUILD AND MANAGE REMOTE TEAMS
https://player.vimeo.com/video/292824871
WEEKLY PAYMENTS
All payments are made securely through Upwork licensed escrow service.
Receive funds via whatever payment methods work best for you:
Direct Deposit, PayPal, Wire Transfer, Payoneer, Skrill
UPWORK FEES
MEET
DEVOPS
WHAT IS DEVOPS?
SOFTWARE LIFECYCLE COLLABORATION
DevOps is a set of practices that automates the processes between
software development and IT teams, in order that they can build, test,
and release software faster and more reliably.
DevOps is the offspring of agile software development – born from
the need to keep up with the increased software velocity and
throughput agile methods.
DEVELOPERS
IT OPERATIONS
WHY DEVOPS IS IMPORTANT?
DELIVERY FAST, REDUCE STRESS
Companies that incorporate DevOps practices get more done, plain
and simple.
DEVELOPERS
STAGING PRODUCTION
Less complexity to manage
Faster resolution of problems
Faster delivery of features
Happier people, more productive teams
More stable operating environments
More time to innovate (rather than fix/maintain)
DEVOPS REQUIREMENTS
PEOPLE
IT OPERATIONS
DEVOPS REQUIREMENTS
PEOPLE
COMUNICATION
DEVOPS REQUIREMENTS
PEOPLE
COMUNICATION
TECHNOLOGIES
DEVOPS REQUIREMENTS
PEOPLE
COMUNICATION
TECHNOLOGIES
DOCUMENTATION
DEVOPS REQUIREMENTS
PEOPLE
COMUNICATION
TECHNOLOGIES
DOCUMENTATION
***SECURITY (DEVSECOPS)
PLAN
CODE
BUILD, TEST, RELEASE
DEPLOY
OPERATE
MONITOR
PRODUCT LIFECYCLE
WHAT'S DEVOPS USEFUL FOR?
AND WHY WE MUST INCLUDE DEVOPS IN OUR PROJECT
BUSINESS
AUTOMATION
DEPLOYMENT PIPELINE
REALTIME WORKFLOW PROCESSOR
An automated manifestation of your process for getting software from
version control into an useable solution for your users.
TOOLS
DOCKER
GET EVERYTHING DONE FASTER
Docker is a tool designed to make it easier to
create, deploy, and run applications by using
containers. Containers allow to package up an
application with all of the parts it needs and ship
it all out as one package.
Thanks to the container we can rest assured
that the application will run on any other Linux
machine regardless of any customized settings.
WHAT'S DOCKER USEFUL FOR?
WHOLE PIPELINE INTEGRATION
DEVELOPMENT BUILDTESTING DEPLOYMENT SERVICES
DOCKER
Micro Service
Docker Container
COMPOSE
Running multi-container
Docker applications
SWARM
Clustering and scheduling
Docker containers
KUBERNETES
Orchestrator for
deployment, scaling and
management
DOCKER TECHNOLOGIES
AN EXTENDED FAMILY
INFRASTRUCTURE
AS CODE
INFRASTRUCTURE DEVELOPMENT
IT DEVELOPMENT
Write infrastructure
provisioning and
deployment code
CI / CD
Build, test and deploy
the infrastructure
MERGING
Merge infrastructure code
with application code
RESOURCE PROVISIONING
Cloud Platform
services deployment
PRODUCT
ANSIBLE
ANSIBLE
AUTOMATION
Ansible is an IT automation engine that
automates cloud provisioning, configuration
management, application deployment, intra-
service orchestration, and many other IT needs.
Ansible works by connecting to your nodes and
pushing out "Ansible modules" to them. These
modules are written to be resource models of
the desired state of the system.
ANSIBLE
WHY
Agentless
No configuration on nodes
SSH Connection (Public Key)
YAML Syntax
Open Source Project (GitHub)
Lightweight (no daemon)
Written in Python
Active Community
ANSIBLE
WHAT
Orchestration
Resources Provisioning
Nodes configuration from scratch
Updates / Upgrades
Application Deployment
Continuous Delivery
And more...
ANSIBLE
HOW IT WORKS
Install Ansible in your Mac or Linux system or
use a Docker container.
Ansible Guide
https://docs.ansible.com
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
apt-get update
apt-get install ansible
Install Ansible on Debian 9
ANSIBLE
HOW IT WORKS
Set your hosts in the inventory file
and define the state of your resources
with Ansible Playbooks.
HOST 1
HOST 2
HOST 3
SSHCODE
DEFINE YOUR HOSTS
ANSIBLE INVENTORY
[webservers]
192.168.1.100 ansible_user=user ansible_ssh_private_key_file=/mnt/.ssh/webserver_key
192.168.1.101 ansible_user=user ansible_ssh_private_key_file=/mnt/.ssh/webserver_key
[mailservers]
192.168.2.100 ansible_user=user2 ansible_ssh_private_key_file=/mnt/.ssh/mailserver_key
192.168.2.101 ansible_user=user2 ansible_ssh_private_key_file=/mnt/.ssh/mailserver_key
192.168.2.102 ansible_user=user2 ansible_ssh_private_key_file=/mnt/.ssh/mailserver_key
[databases]
192.168.3.100 ansible_host=db.internal ansible_port=2222 ansible_python_interpreter=/usr/bin/python2.7
BUILD ANSIBLE IMAGE
RUN ANSIBLE IN A DOCKER CONTAINER
$> docker build -t debian-ansible -f docker/debian-ansible/Dockerfile .
RUN ANSIBLE ON DOCKER (PING)
$> docker run -t --rm -v $PWD/ansible:/ansible debian-ansible 
ansible webservers -m ping -i /ansible/inventory.ini
$> alias docker-ansible="docker run -t --rm -v $PWD/ansible:/ansible
debian-ansible ansible"
TIP: CREATE CONTAINERIZED COMMANDS
RUN ANSIBLE PLAYBOOK
RUN ANSIBLE PLAYBOOK
$> docker run -t --rm -v $PWD/ansible:/ansible debian-ansible 
ansible-playbook -i /ansible/inventory.ini ansible/playbook.yml
ANSIBLE PLAYBOOK FILE (YAML)
- name: Ansible Playbook example
hosts: webservers
become_user: root
become: yes
vars:
document_root: /var/www/html
web_user: www-data
index_file: src/index.php
RUN ANSIBLE PLAYBOOK
ANSIBLE PLAYBOOK TASKS
[...]
tasks:
# Show information about facts
- name: Get OS Distribution
debug: var=ansible_distribution
# Run first task
- name: Update apt cache.
apt: update_cache=yes cache_valid_time=600
changed_when: false
# Install packages
- name: Install Apache2 by apt
apt:
name:
- apache2
- php
RUN ANSIBLE PLAYBOOK
ANSIBLE PLAYBOOK TASKS
[...]
# Restart services
- name: Restart service apache2, in all cases
service:
name: apache2
state: restarted
# Copy file
- name: Copy index.php to www folder
copy:
src: "{{ index_file }}"
dest: "{{ document_root }}"
owner: "{{ web_user }}"
group: "{{ web_user }}"
mode: 0644
GITLAB
GITLAB
DEV+OPS AUTOMATION TOOL
GitLab is the first single application for the entire
DevOps lifecycle. Only GitLab enables
Concurrent DevOps, unlocking organizations
from the constraints of the toolchain.
GitLab provides unmatched visibility, higher
levels of efficiency, and comprehensive
governance. This makes the software lifecycle
200% faster, radically improving the speed of
business.
GITLAB
WHY
Self-hosted CE Solution
Fully remote and completely distributed Company [1]
CI / CD native integration
Full-featured Development Tool
Docker Containers Support
Based on Agile & DevOps requirements
Software Lifecycle Management
[1] GitLab Remote Maifesto
https://about.gitlab.com/company/culture/all-remote/#remote-manifesto
GITLAB
WHAT
Source Code Management
Issue Tracker
Pipelines definition
Automatic Deployments
Testing, Builds, Deployments stages
Distributed Workloads
Connect third-party applications
Integrated Wiki
GITLAB RUNNER
PIPELINE AUTOMATION
GitLab runner is a build instance which is used to
run the jobs over multiple machines and send the
results to GitLab and which can be placed on
separate users, servers and local machine.
You can register the runner as shared or
dedicated executor.
PUSH
All repository commits are
triggered by CI/CD Engine
BUILD
Complete all building
processes
TEST
Code analysis, unit and
integration tests
DEPLOY
Application is released in
an environment
DEPLOYMENT PIPELINE
APPLICATION RELEASE WORKFLOW
Pixelast | Design and Tech
START PASS PASS RESULT
PUSH
All repository commits are
triggered by CI/CD Engine
BUILD
Complete all building
processes
TEST
Code analysis, unit and
integration tests
DEPLOY
Application is released in
an environment
DEPLOYMENT PIPELINE
AVOID TIME-CONSUMING
Pixelast | Design and Tech
ERROR
CONTINUOUS INTEGRATION
REDUCE CODING ERRORS
Continuous Integration (CI) is a development
practice that requires developers to integrate
code into a shared repository several times a
day. Each check-in is then verified by an
automated build, allowing teams to detect
problems early.
By integrating regularly, you can detect errors
quickly, and locate them more easily.
CONTINUOUS DEPLOYMENT
IMPROVING PRODUCT TIME TO MARKET
Continuous deployment (CD) is a strategy
for software releases wherein any code commit
that passes the automated testing phase is
automatically released into the production
environment, making changes that are visible to
the application users.
CONTINUOUS
INTEGRATION
ENVIRONMENTS
RELEASE STRATEGY
CONTINUOUS
DELIVERY
CONTINUOUS
DEPLOYMENT
TESTING
ENVIRONMENT
STAGING
ENVIRONMENT
PRODUCTION
ENVIRONMENT
DEVELOPMENT Q/A CLIENT USERS
GITLAB CI/CD
HOW IT WORKS
GitLab CI/CD is a web application with an API
that stores its state in a database. It manages
projects/builds and provides a nice user
interface, besides all the features of GitLab.
GitLab Runner is an application which processes
builds. It can be deployed separately and works
with GitLab CI/CD through an API.
IMPLEMENT GITLAB CI/CD
ADD AND EDIT .gitlab-ci.yml FILE
stages:
- build
- test
- deploy
build-image:
image: docker:latest
services:
- docker:dind
stage: build
script:
- docker build -t debian-ansible .
# Send to Registry...
only:
refs:
- master
IMPLEMENT GITLAB CI/CD
ADD AND EDIT .gitlab-ci.yml FILE
stages:
- build
- test
- deploy
build-image:
image: docker:latest
services:
- docker:dind
stage: build
script:
- docker build -t debian-ansible .
# Send to Registry...
only:
refs:
- master
Source Code
https://github.com/fabio-particles/better-operations-into-the-cloud
Thanks You!
https://particles.io

More Related Content

What's hot

DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and Architecture
Docker, Inc.
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
Docker, Inc.
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
Paul Czarkowski
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep DiveKubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Sanjeev Rampal
 
DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020
Andreas Landerer
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
Anthos Application Modernization Platform
Anthos Application Modernization PlatformAnthos Application Modernization Platform
Anthos Application Modernization Platform
GDG Cloud Bengaluru
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container Networking
Docker, Inc.
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
충섭 김
 
Fabio rapposelli pks-vmug
Fabio rapposelli   pks-vmugFabio rapposelli   pks-vmug
Fabio rapposelli pks-vmug
VMUG IT
 
Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
 Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo... Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
Lucas Jellema
 
Considerations for operating docker at scale
Considerations for operating docker at scaleConsiderations for operating docker at scale
Considerations for operating docker at scale
Docker, Inc.
 
DCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDCEU 18: State of the Docker Engine
DCEU 18: State of the Docker Engine
Docker, Inc.
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker Containers
Docker, Inc.
 
Intro to GKE and app deployment with Kubernetes
Intro to GKE and app deployment with KubernetesIntro to GKE and app deployment with Kubernetes
Intro to GKE and app deployment with Kubernetes
GDG Cloud Bengaluru
 
DCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and KubernetesDCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and Kubernetes
Docker, Inc.
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
Opsta
 
Cloud Native Apps with GitOps
Cloud Native Apps with GitOps Cloud Native Apps with GitOps
Cloud Native Apps with GitOps
Weaveworks
 
Kubernetes 1.21 release
Kubernetes 1.21 releaseKubernetes 1.21 release
Kubernetes 1.21 release
LibbySchulze
 

What's hot (20)

DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and Architecture
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep DiveKubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
 
DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
Anthos Application Modernization Platform
Anthos Application Modernization PlatformAnthos Application Modernization Platform
Anthos Application Modernization Platform
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container Networking
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
 
Fabio rapposelli pks-vmug
Fabio rapposelli   pks-vmugFabio rapposelli   pks-vmug
Fabio rapposelli pks-vmug
 
Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
 Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo... Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
 
Considerations for operating docker at scale
Considerations for operating docker at scaleConsiderations for operating docker at scale
Considerations for operating docker at scale
 
DCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDCEU 18: State of the Docker Engine
DCEU 18: State of the Docker Engine
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker Containers
 
Intro to GKE and app deployment with Kubernetes
Intro to GKE and app deployment with KubernetesIntro to GKE and app deployment with Kubernetes
Intro to GKE and app deployment with Kubernetes
 
DCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and KubernetesDCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and Kubernetes
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
 
Cloud Native Apps with GitOps
Cloud Native Apps with GitOps Cloud Native Apps with GitOps
Cloud Native Apps with GitOps
 
Kubernetes 1.21 release
Kubernetes 1.21 releaseKubernetes 1.21 release
Kubernetes 1.21 release
 

Similar to Better Operations into the Cloud

Docker how to
Docker how toDocker how to
Docker how to
Patryk Omiotek
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
Ajeet Singh Raina
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
Cloud Native Bangalore
 
Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​
Pedro Sousa
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
Docker, Inc.
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016
Patrick Chanezon
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebration
Ramon Morales
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
Docker, Inc.
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
양재동 코드랩
 
Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016
Patrick Chanezon
 
0507 057 01 98 * Adana Klima Tamir Servisi
0507 057 01 98 * Adana Klima Tamir Servisi0507 057 01 98 * Adana Klima Tamir Servisi
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
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
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
Ulrich Krause
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
Docker Platform and Ecosystem
Docker Platform and EcosystemDocker Platform and Ecosystem
Docker Platform and Ecosystem
Patrick Chanezon
 
presentation @ docker meetup
presentation @ docker meetuppresentation @ docker meetup
presentation @ docker meetup
Daniël van Gils
 
TechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefern
TechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefernTechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefern
TechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefern
Marc Müller
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
Patrick Chanezon
 
Docker Deep Dive Understanding Docker Engine Docker for DevOps
Docker Deep Dive Understanding Docker Engine Docker for DevOpsDocker Deep Dive Understanding Docker Engine Docker for DevOps
Docker Deep Dive Understanding Docker Engine Docker for DevOps
MehwishHayat3
 

Similar to Better Operations into the Cloud (20)

Docker how to
Docker how toDocker how to
Docker how to
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebration
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016
 
0507 057 01 98 * Adana Klima Tamir Servisi
0507 057 01 98 * Adana Klima Tamir Servisi0507 057 01 98 * Adana Klima Tamir Servisi
0507 057 01 98 * Adana Klima Tamir Servisi
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
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
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Docker Platform and Ecosystem
Docker Platform and EcosystemDocker Platform and Ecosystem
Docker Platform and Ecosystem
 
presentation @ docker meetup
presentation @ docker meetuppresentation @ docker meetup
presentation @ docker meetup
 
TechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefern
TechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefernTechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefern
TechDays 2017 - Asp.NET Core Anwendungen automatisiert als Container ausliefern
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
 
Docker Deep Dive Understanding Docker Engine Docker for DevOps
Docker Deep Dive Understanding Docker Engine Docker for DevOpsDocker Deep Dive Understanding Docker Engine Docker for DevOps
Docker Deep Dive Understanding Docker Engine Docker for DevOps
 

Recently uploaded

GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 

Recently uploaded (20)

GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 

Better Operations into the Cloud

  • 1. BETTER OPERATIONS INTO THE CLOUD HOW DEVOPS SUPPORT YOUR TEAM FABIO FERRARI
  • 3. FABIO FERRARI CLOUD ARCHITECT DEVOPS REMOTE WORKER FREELANCER COST DESIGN DEPLOY MONITOR
  • 4. FABIO FERRARI CLOUD ARCHITECT DEVOPS REMOTE WORKER FREELANCER DEV OPS DEV
  • 6. FABIO FERRARI Better Operations into the Cloud CLOUD ARCHITECT DEVOPS REMOTE WORKER FREELANCER
  • 7. WHAT IS UPWORK? TOP FREELANCING WEBSITE Upwork is a popular freelance platform that connects a database of freelance professionals with jobs from around the world. This global platform is a great way for remote worker to find work and for companies or individuals to find talented freelancers.
  • 8. SKILLED FREELANCER BUILD A POOL OF TRUSTED EXPERTS FOR YOUR TEAM
  • 9. EASILY FIND QUALITY FREELANCERS
  • 11. BUILD AND MANAGE REMOTE TEAMS https://player.vimeo.com/video/292824871
  • 12. WEEKLY PAYMENTS All payments are made securely through Upwork licensed escrow service. Receive funds via whatever payment methods work best for you: Direct Deposit, PayPal, Wire Transfer, Payoneer, Skrill
  • 15. WHAT IS DEVOPS? SOFTWARE LIFECYCLE COLLABORATION DevOps is a set of practices that automates the processes between software development and IT teams, in order that they can build, test, and release software faster and more reliably. DevOps is the offspring of agile software development – born from the need to keep up with the increased software velocity and throughput agile methods. DEVELOPERS IT OPERATIONS
  • 16. WHY DEVOPS IS IMPORTANT? DELIVERY FAST, REDUCE STRESS Companies that incorporate DevOps practices get more done, plain and simple. DEVELOPERS STAGING PRODUCTION Less complexity to manage Faster resolution of problems Faster delivery of features Happier people, more productive teams More stable operating environments More time to innovate (rather than fix/maintain)
  • 23. WHAT'S DEVOPS USEFUL FOR? AND WHY WE MUST INCLUDE DEVOPS IN OUR PROJECT
  • 25. DEPLOYMENT PIPELINE REALTIME WORKFLOW PROCESSOR An automated manifestation of your process for getting software from version control into an useable solution for your users.
  • 26. TOOLS
  • 27. DOCKER GET EVERYTHING DONE FASTER Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow to package up an application with all of the parts it needs and ship it all out as one package. Thanks to the container we can rest assured that the application will run on any other Linux machine regardless of any customized settings.
  • 28. WHAT'S DOCKER USEFUL FOR? WHOLE PIPELINE INTEGRATION DEVELOPMENT BUILDTESTING DEPLOYMENT SERVICES
  • 29. DOCKER Micro Service Docker Container COMPOSE Running multi-container Docker applications SWARM Clustering and scheduling Docker containers KUBERNETES Orchestrator for deployment, scaling and management DOCKER TECHNOLOGIES AN EXTENDED FAMILY
  • 31. INFRASTRUCTURE DEVELOPMENT IT DEVELOPMENT Write infrastructure provisioning and deployment code CI / CD Build, test and deploy the infrastructure MERGING Merge infrastructure code with application code RESOURCE PROVISIONING Cloud Platform services deployment PRODUCT
  • 33. ANSIBLE AUTOMATION Ansible is an IT automation engine that automates cloud provisioning, configuration management, application deployment, intra- service orchestration, and many other IT needs. Ansible works by connecting to your nodes and pushing out "Ansible modules" to them. These modules are written to be resource models of the desired state of the system.
  • 34. ANSIBLE WHY Agentless No configuration on nodes SSH Connection (Public Key) YAML Syntax Open Source Project (GitHub) Lightweight (no daemon) Written in Python Active Community
  • 35. ANSIBLE WHAT Orchestration Resources Provisioning Nodes configuration from scratch Updates / Upgrades Application Deployment Continuous Delivery And more...
  • 36. ANSIBLE HOW IT WORKS Install Ansible in your Mac or Linux system or use a Docker container. Ansible Guide https://docs.ansible.com deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 apt-get update apt-get install ansible Install Ansible on Debian 9
  • 37. ANSIBLE HOW IT WORKS Set your hosts in the inventory file and define the state of your resources with Ansible Playbooks. HOST 1 HOST 2 HOST 3 SSHCODE
  • 38. DEFINE YOUR HOSTS ANSIBLE INVENTORY [webservers] 192.168.1.100 ansible_user=user ansible_ssh_private_key_file=/mnt/.ssh/webserver_key 192.168.1.101 ansible_user=user ansible_ssh_private_key_file=/mnt/.ssh/webserver_key [mailservers] 192.168.2.100 ansible_user=user2 ansible_ssh_private_key_file=/mnt/.ssh/mailserver_key 192.168.2.101 ansible_user=user2 ansible_ssh_private_key_file=/mnt/.ssh/mailserver_key 192.168.2.102 ansible_user=user2 ansible_ssh_private_key_file=/mnt/.ssh/mailserver_key [databases] 192.168.3.100 ansible_host=db.internal ansible_port=2222 ansible_python_interpreter=/usr/bin/python2.7
  • 39. BUILD ANSIBLE IMAGE RUN ANSIBLE IN A DOCKER CONTAINER $> docker build -t debian-ansible -f docker/debian-ansible/Dockerfile . RUN ANSIBLE ON DOCKER (PING) $> docker run -t --rm -v $PWD/ansible:/ansible debian-ansible ansible webservers -m ping -i /ansible/inventory.ini $> alias docker-ansible="docker run -t --rm -v $PWD/ansible:/ansible debian-ansible ansible" TIP: CREATE CONTAINERIZED COMMANDS
  • 40. RUN ANSIBLE PLAYBOOK RUN ANSIBLE PLAYBOOK $> docker run -t --rm -v $PWD/ansible:/ansible debian-ansible ansible-playbook -i /ansible/inventory.ini ansible/playbook.yml ANSIBLE PLAYBOOK FILE (YAML) - name: Ansible Playbook example hosts: webservers become_user: root become: yes vars: document_root: /var/www/html web_user: www-data index_file: src/index.php
  • 41. RUN ANSIBLE PLAYBOOK ANSIBLE PLAYBOOK TASKS [...] tasks: # Show information about facts - name: Get OS Distribution debug: var=ansible_distribution # Run first task - name: Update apt cache. apt: update_cache=yes cache_valid_time=600 changed_when: false # Install packages - name: Install Apache2 by apt apt: name: - apache2 - php
  • 42. RUN ANSIBLE PLAYBOOK ANSIBLE PLAYBOOK TASKS [...] # Restart services - name: Restart service apache2, in all cases service: name: apache2 state: restarted # Copy file - name: Copy index.php to www folder copy: src: "{{ index_file }}" dest: "{{ document_root }}" owner: "{{ web_user }}" group: "{{ web_user }}" mode: 0644
  • 44. GITLAB DEV+OPS AUTOMATION TOOL GitLab is the first single application for the entire DevOps lifecycle. Only GitLab enables Concurrent DevOps, unlocking organizations from the constraints of the toolchain. GitLab provides unmatched visibility, higher levels of efficiency, and comprehensive governance. This makes the software lifecycle 200% faster, radically improving the speed of business.
  • 45. GITLAB WHY Self-hosted CE Solution Fully remote and completely distributed Company [1] CI / CD native integration Full-featured Development Tool Docker Containers Support Based on Agile & DevOps requirements Software Lifecycle Management [1] GitLab Remote Maifesto https://about.gitlab.com/company/culture/all-remote/#remote-manifesto
  • 46. GITLAB WHAT Source Code Management Issue Tracker Pipelines definition Automatic Deployments Testing, Builds, Deployments stages Distributed Workloads Connect third-party applications Integrated Wiki
  • 47. GITLAB RUNNER PIPELINE AUTOMATION GitLab runner is a build instance which is used to run the jobs over multiple machines and send the results to GitLab and which can be placed on separate users, servers and local machine. You can register the runner as shared or dedicated executor.
  • 48. PUSH All repository commits are triggered by CI/CD Engine BUILD Complete all building processes TEST Code analysis, unit and integration tests DEPLOY Application is released in an environment DEPLOYMENT PIPELINE APPLICATION RELEASE WORKFLOW Pixelast | Design and Tech START PASS PASS RESULT
  • 49. PUSH All repository commits are triggered by CI/CD Engine BUILD Complete all building processes TEST Code analysis, unit and integration tests DEPLOY Application is released in an environment DEPLOYMENT PIPELINE AVOID TIME-CONSUMING Pixelast | Design and Tech ERROR
  • 50. CONTINUOUS INTEGRATION REDUCE CODING ERRORS Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. By integrating regularly, you can detect errors quickly, and locate them more easily.
  • 51. CONTINUOUS DEPLOYMENT IMPROVING PRODUCT TIME TO MARKET Continuous deployment (CD) is a strategy for software releases wherein any code commit that passes the automated testing phase is automatically released into the production environment, making changes that are visible to the application users.
  • 53. GITLAB CI/CD HOW IT WORKS GitLab CI/CD is a web application with an API that stores its state in a database. It manages projects/builds and provides a nice user interface, besides all the features of GitLab. GitLab Runner is an application which processes builds. It can be deployed separately and works with GitLab CI/CD through an API.
  • 54. IMPLEMENT GITLAB CI/CD ADD AND EDIT .gitlab-ci.yml FILE stages: - build - test - deploy build-image: image: docker:latest services: - docker:dind stage: build script: - docker build -t debian-ansible . # Send to Registry... only: refs: - master
  • 55. IMPLEMENT GITLAB CI/CD ADD AND EDIT .gitlab-ci.yml FILE stages: - build - test - deploy build-image: image: docker:latest services: - docker:dind stage: build script: - docker build -t debian-ansible . # Send to Registry... only: refs: - master