SlideShare a Scribd company logo
1 of 34
Download to read offline
v
Следете актуалните обяви за DevOps
Marian Marinov
How to successfully migrate to DevOps
mm@yuhu.biz
v
Следете актуалните обяви за DevOps
Disclaimer 1!
➢ For me DevOps is the new sysadmin...
➢ But with more responsibilities!
➢ I'm sharing my personal point of
view and my personal mistakes.
v
Следете актуалните обяви за DevOps
Disclaimer 2!
➢ This is not a HashiCorp presentation :)
➢ Its just simpler then presenting the
same thing with k8s
v
Следете актуалните обяви за DevOps
Is DevOps right for me?
➢ How big is my team?
v
Следете актуалните обяви за DevOps
Is DevOps right for me?
➢ How big is my team?
➢ What do I have at the moment:
v
Следете актуалните обяви за DevOps
Is DevOps right for me?
➢ How big is my team?
➢ What do I have at the moment:
➢ how many servers?
v
Следете актуалните обяви за DevOps
Is DevOps right for me?
➢ How big is my team?
➢ What do I have at the moment:
➢ how many servers?
➢ how many applications?
v
Следете актуалните обяви за DevOps
Is DevOps right for me?
➢ How big is my team?
➢ What do I have at the moment:
➢ how many servers?
➢ how many applications?
➢ how many data sources(SQL, NoSQL, FS Storage)
v
Следете актуалните обяви за DevOps
Dev: git push github master
Sys: ssh server
apt-get install git apach2 mysql php-common php7.4-common php7.4-mysql
php7.4-cgi php7.4-fpm iptables iptables-persistent
cd /home/app/
git clone github/repo
git checkout master
echo -e '$db_user=”app1”;n$db_pass=”secret”;' > app-config.php
vi /etc/apache2/conf.d/app.conf
vi /etc/php/7.4/fpm/pool.d/www.conf
systemctl start apache2
systemctl start php7.4-fpm.service
systemctl start mysql
mysql -e 'CREATE DATABASE app1'
mysql -e "GRANT USAGE *.* app1@localhost IDENTIFIED BY 'secret'"
mysql -e 'GRANT ALL ON app1.* TO app1@localhost'
# setup the firewall
The OLD WAY
v
Следете актуалните обяви за DevOps
Dev: git push github master
Ops:
1. Install terraform
2. Write the TF configuration for terraform
3. Configure your infrastructure with terraform
4. Deploy Nomad with Terraform
5. Write the Nomad configuration for the VMs/Containers and the
deployment of your app
6. Write a bash scripts that will:
6.1. Deploy your app
6.2. Deploy your DB and setup user
6.3. Deploy your web server setup
The NEW WAY
v
Следете актуалните обяви за DevOps
Pros:
OLD
- simpler
- faster
- requires knowledge only for the service(s)
Comparing the OLD vs. NEW ways
v
Следете актуалните обяви за DevOps
Pros:
OLD
- simpler
- faster
- requires knowledge only for the service(s)
NEW
- repeatable/reproducible
- scalable
- requires less scripting
- removes the requirement to know the actual service(s)
Comparing the OLD vs. NEW ways
v
Следете актуалните обяви за DevOps
Conns:
OLD
- requires understanding of the service configuration
- requires bash scripting
Comparing the OLD vs. NEW ways
v
Следете актуалните обяви за DevOps
Conns:
OLD
- requires understanding of the service configuration
- requires bash scripting
NEW
- requires a lot of knowledge for high level software
(terraform, nomad, ansible etc.)
- takes longer time to deliver initial setup
- removes the requirements to know the actual services
-
Comparing the OLD vs. NEW ways
v
Следете актуалните обяви за DevOps
Dive into the DevOps way
v
Следете актуалните обяви за DevOps
* Installing teraform
+ typical learning time 1-2 weeks
* Installing Nomad
+ with terraform, around a day
+ without terrafrom 2-3 days
* Choosing the infrastructure configuration
+ decide will we use VMs(KVM, Xen, Hyper-V, AWS, GCP, Azure, Alibaba) or
containers(Docker, LXD, runc)
+ decide how you will split the infra
- will we have web loadbalancers/proxies
- will we keep the DB on the same node as the web application
- will we have a replication for the DB
- will we have a separate node for the firewall
- result should be documented infrastructure and sometimes even a graph
depicting the connection between the nodes
* Decide if you are going to use a secret management system like Vault
* Prepare the deployment configuration
* Test the deployment configuration
* Sometimes... add CI/CD for the application
v
Следете актуалните обяви за DevOps
When to choose DevOps
over Sysadmin
v
Следете актуалните обяви за DevOps
➢ You are expecting rapid growth
➢ You are expecting to setup this infrastructure often
➢ You are expecting to re­provision this application often
➢ You need to implement complex CI/CD
v
Следете актуалните обяви за DevOps
Team considerations
v
Следете актуалните обяви за DevOps
➢ For DevOps teams of less then 5
➢ if only 2 or 3 people know the tools
➢ if the whole team knows the tools
➢ try to do a deployment with these tools at least 4
times a year and rotate the people doing these test
deployments
v
Следете актуалните обяви за DevOps
➢ For DevOps teams of more then 5
➢ make sure you have at least 4 persons that
know the tooling
➢ make sure your setup and infrastructure
configuration are well documented
➢ make sure you test frequently your deployments
➢ keep your infrastructure code in a separate repo
v
Следете актуалните обяви за DevOps
Documentation considerations
v
Следете актуалните обяви за DevOps
➢ Include links to specific topics from the
upstream documentation
➢ Provide specifics for your own environment
➢ If possible keep these comments within the
infrastructure configuration files, not separate
v
Следете актуалните обяви за DevOps
Technical considerations
v
Следете актуалните обяви за DevOps
➢ Scaling is not an automatic process, until you make it
➢ DBs don't scale easy horizontally
➢ replication is mandatory
➢ sharding is preferable, but also not easy
➢ read/write split is needed, but also not easy
➢ LB/Proxies add latency
➢ failure tolerance
➢ Session storage need to scale and be accessible to
all web nodes
➢ Communication between everything is now over TCP,
instead of Unix sockets
v
Следете актуалните обяви за DevOps
ABSTRACTION
ABSTRACTION
the devil is in the details
the devil is in the details
v
Следете актуалните обяви за DevOps
➢ Ansible
➢ just to configure the apache, php and mysql
➢ Terraform
➢ to be able to deploy on different clouds
➢ Nomad
➢ to be able to control the scale
v
Следете актуалните обяви за DevOps
➢ Ansible
➢ ready made examples
➢ limited functionality
➢ reducing your ability to provide specific configuration
➢ A lot of times resulting in DevOps needing to go around it
and just execute some commands
v
Следете актуалните обяви за DevOps
➢ Terraform
➢ can do what Ansible can, but it is not built for that :)
➢ abstracts Ansible and makes it harder to understand what
the end result would be
➢ declares the desired end result, not how to reach it
➢ almost entirely removes the resulting configuration from
the equation
➢ problems with terraform configuration may cause delays in
delivering a fixes to the live system
v
Следете актуалните обяви за DevOps
➢ Nomad
➢ requests a VM/container of a certain type
➢ the type is not defined within Nomad, other tools are used for that
➢ monitors the VMs/containers to decide if you need more or if
some resource needs to be restarted
v
Следете актуалните обяви за DevOps
Hiring
Hiring
the devil is in the details
the devil is in the details
v
Следете актуалните обяви за DevOps
➢ Candidates focus on the new tech
➢ Forgetting what these tools were build to manage
➢ Not understanding the services (hammer and nail issues)
➢ Learning the basics of system administration is harder
➢ If the provider does not support it, the candidate
does not know it exists/it is possible
v
Следете актуалните обяви за DevOps
Marian Marinov
Questions?
mm@yuhu.biz
v
Следете актуалните обяви за DevOps
Marian Marinov
mm@yuhu.biz
Contacts:
https://www.linkedin.com/in/mariandmarinov/
https://github.com/hackman
Thank
you!

More Related Content

Similar to How to successfully migrate to DevOps .pdf

Symfony4 - Deep dive
Symfony4 - Deep diveSymfony4 - Deep dive
Symfony4 - Deep diveSalma Ghareeb
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Johan Mynhardt
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy Systemadrian_nye
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the UnknownJesse Houwing
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the Unknownssuser37f369
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Simon Boulet
 
The development environment
The development environmentThe development environment
The development environmentLee Pelser
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Docker, Inc.
 
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000'sDevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000'stechopsguru
 
Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014André Rømcke
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAkshaya Mahapatra
 
Devops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersDevops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersNuSpace
 
Successful DevOps implementation for small teams a true story
Successful DevOps implementation for small teams  a true storySuccessful DevOps implementation for small teams  a true story
Successful DevOps implementation for small teams a true storyJakub Paweł Głazik
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…Sergey Dzyuban
 
PaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpPaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpNathan Handler
 

Similar to How to successfully migrate to DevOps .pdf (20)

Symfony4 - Deep dive
Symfony4 - Deep diveSymfony4 - Deep dive
Symfony4 - Deep dive
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
 
Clouds presentation, aws meetup v2
Clouds presentation, aws meetup   v2Clouds presentation, aws meetup   v2
Clouds presentation, aws meetup v2
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the Unknown
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the Unknown
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
 
The development environment
The development environmentThe development environment
The development environment
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?
 
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000'sDevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
 
Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Cloud Orchestration is Broken
Cloud Orchestration is BrokenCloud Orchestration is Broken
Cloud Orchestration is Broken
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Devops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersDevops CI-CD pipeline with Containers
Devops CI-CD pipeline with Containers
 
Successful DevOps implementation for small teams a true story
Successful DevOps implementation for small teams  a true storySuccessful DevOps implementation for small teams  a true story
Successful DevOps implementation for small teams a true story
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…
 
PaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpPaaSTA: Running applications at Yelp
PaaSTA: Running applications at Yelp
 

More from Marian Marinov

Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingMarian Marinov
 
Basic presentation of cryptography mechanisms
Basic presentation of cryptography mechanismsBasic presentation of cryptography mechanisms
Basic presentation of cryptography mechanismsMarian Marinov
 
Microservices: Benefits, drawbacks and are they for me?
Microservices: Benefits, drawbacks and are they for me?Microservices: Benefits, drawbacks and are they for me?
Microservices: Benefits, drawbacks and are they for me?Marian Marinov
 
Introduction and replication to DragonflyDB
Introduction and replication to DragonflyDBIntroduction and replication to DragonflyDB
Introduction and replication to DragonflyDBMarian Marinov
 
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQMessage Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQMarian Marinov
 
How to survive in the work from home era
How to survive in the work from home eraHow to survive in the work from home era
How to survive in the work from home eraMarian Marinov
 
Improve your storage with bcachefs
Improve your storage with bcachefsImprove your storage with bcachefs
Improve your storage with bcachefsMarian Marinov
 
Control your service resources with systemd
 Control your service resources with systemd  Control your service resources with systemd
Control your service resources with systemd Marian Marinov
 
Comparison of-foss-distributed-storage
Comparison of-foss-distributed-storageComparison of-foss-distributed-storage
Comparison of-foss-distributed-storageMarian Marinov
 
Защо и как да обогатяваме знанията си?
Защо и как да обогатяваме знанията си?Защо и как да обогатяваме знанията си?
Защо и как да обогатяваме знанията си?Marian Marinov
 
Securing your MySQL server
Securing your MySQL serverSecuring your MySQL server
Securing your MySQL serverMarian Marinov
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKMarian Marinov
 
Challenges with high density networks
Challenges with high density networksChallenges with high density networks
Challenges with high density networksMarian Marinov
 
SiteGround building automation
SiteGround building automationSiteGround building automation
SiteGround building automationMarian Marinov
 
Preventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingPreventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingMarian Marinov
 
Managing a lot of servers
Managing a lot of serversManaging a lot of servers
Managing a lot of serversMarian Marinov
 
Let's Encrypt failures
Let's Encrypt failuresLet's Encrypt failures
Let's Encrypt failuresMarian Marinov
 
Preventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingPreventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingMarian Marinov
 

More from Marian Marinov (20)

Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & Logging
 
Basic presentation of cryptography mechanisms
Basic presentation of cryptography mechanismsBasic presentation of cryptography mechanisms
Basic presentation of cryptography mechanisms
 
Microservices: Benefits, drawbacks and are they for me?
Microservices: Benefits, drawbacks and are they for me?Microservices: Benefits, drawbacks and are they for me?
Microservices: Benefits, drawbacks and are they for me?
 
Introduction and replication to DragonflyDB
Introduction and replication to DragonflyDBIntroduction and replication to DragonflyDB
Introduction and replication to DragonflyDB
 
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQMessage Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
 
How to survive in the work from home era
How to survive in the work from home eraHow to survive in the work from home era
How to survive in the work from home era
 
Managing sysadmins
Managing sysadminsManaging sysadmins
Managing sysadmins
 
Improve your storage with bcachefs
Improve your storage with bcachefsImprove your storage with bcachefs
Improve your storage with bcachefs
 
Control your service resources with systemd
 Control your service resources with systemd  Control your service resources with systemd
Control your service resources with systemd
 
Comparison of-foss-distributed-storage
Comparison of-foss-distributed-storageComparison of-foss-distributed-storage
Comparison of-foss-distributed-storage
 
Защо и как да обогатяваме знанията си?
Защо и как да обогатяваме знанията си?Защо и как да обогатяваме знанията си?
Защо и как да обогатяваме знанията си?
 
Securing your MySQL server
Securing your MySQL serverSecuring your MySQL server
Securing your MySQL server
 
Sysadmin vs. dev ops
Sysadmin vs. dev opsSysadmin vs. dev ops
Sysadmin vs. dev ops
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 
Challenges with high density networks
Challenges with high density networksChallenges with high density networks
Challenges with high density networks
 
SiteGround building automation
SiteGround building automationSiteGround building automation
SiteGround building automation
 
Preventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingPreventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel tracking
 
Managing a lot of servers
Managing a lot of serversManaging a lot of servers
Managing a lot of servers
 
Let's Encrypt failures
Let's Encrypt failuresLet's Encrypt failures
Let's Encrypt failures
 
Preventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingPreventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel tracking
 

Recently uploaded

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 

Recently uploaded (20)

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 

How to successfully migrate to DevOps .pdf

  • 1. v Следете актуалните обяви за DevOps Marian Marinov How to successfully migrate to DevOps mm@yuhu.biz
  • 2. v Следете актуалните обяви за DevOps Disclaimer 1! ➢ For me DevOps is the new sysadmin... ➢ But with more responsibilities! ➢ I'm sharing my personal point of view and my personal mistakes.
  • 3. v Следете актуалните обяви за DevOps Disclaimer 2! ➢ This is not a HashiCorp presentation :) ➢ Its just simpler then presenting the same thing with k8s
  • 4. v Следете актуалните обяви за DevOps Is DevOps right for me? ➢ How big is my team?
  • 5. v Следете актуалните обяви за DevOps Is DevOps right for me? ➢ How big is my team? ➢ What do I have at the moment:
  • 6. v Следете актуалните обяви за DevOps Is DevOps right for me? ➢ How big is my team? ➢ What do I have at the moment: ➢ how many servers?
  • 7. v Следете актуалните обяви за DevOps Is DevOps right for me? ➢ How big is my team? ➢ What do I have at the moment: ➢ how many servers? ➢ how many applications?
  • 8. v Следете актуалните обяви за DevOps Is DevOps right for me? ➢ How big is my team? ➢ What do I have at the moment: ➢ how many servers? ➢ how many applications? ➢ how many data sources(SQL, NoSQL, FS Storage)
  • 9. v Следете актуалните обяви за DevOps Dev: git push github master Sys: ssh server apt-get install git apach2 mysql php-common php7.4-common php7.4-mysql php7.4-cgi php7.4-fpm iptables iptables-persistent cd /home/app/ git clone github/repo git checkout master echo -e '$db_user=”app1”;n$db_pass=”secret”;' > app-config.php vi /etc/apache2/conf.d/app.conf vi /etc/php/7.4/fpm/pool.d/www.conf systemctl start apache2 systemctl start php7.4-fpm.service systemctl start mysql mysql -e 'CREATE DATABASE app1' mysql -e "GRANT USAGE *.* app1@localhost IDENTIFIED BY 'secret'" mysql -e 'GRANT ALL ON app1.* TO app1@localhost' # setup the firewall The OLD WAY
  • 10. v Следете актуалните обяви за DevOps Dev: git push github master Ops: 1. Install terraform 2. Write the TF configuration for terraform 3. Configure your infrastructure with terraform 4. Deploy Nomad with Terraform 5. Write the Nomad configuration for the VMs/Containers and the deployment of your app 6. Write a bash scripts that will: 6.1. Deploy your app 6.2. Deploy your DB and setup user 6.3. Deploy your web server setup The NEW WAY
  • 11. v Следете актуалните обяви за DevOps Pros: OLD - simpler - faster - requires knowledge only for the service(s) Comparing the OLD vs. NEW ways
  • 12. v Следете актуалните обяви за DevOps Pros: OLD - simpler - faster - requires knowledge only for the service(s) NEW - repeatable/reproducible - scalable - requires less scripting - removes the requirement to know the actual service(s) Comparing the OLD vs. NEW ways
  • 13. v Следете актуалните обяви за DevOps Conns: OLD - requires understanding of the service configuration - requires bash scripting Comparing the OLD vs. NEW ways
  • 14. v Следете актуалните обяви за DevOps Conns: OLD - requires understanding of the service configuration - requires bash scripting NEW - requires a lot of knowledge for high level software (terraform, nomad, ansible etc.) - takes longer time to deliver initial setup - removes the requirements to know the actual services - Comparing the OLD vs. NEW ways
  • 15. v Следете актуалните обяви за DevOps Dive into the DevOps way
  • 16. v Следете актуалните обяви за DevOps * Installing teraform + typical learning time 1-2 weeks * Installing Nomad + with terraform, around a day + without terrafrom 2-3 days * Choosing the infrastructure configuration + decide will we use VMs(KVM, Xen, Hyper-V, AWS, GCP, Azure, Alibaba) or containers(Docker, LXD, runc) + decide how you will split the infra - will we have web loadbalancers/proxies - will we keep the DB on the same node as the web application - will we have a replication for the DB - will we have a separate node for the firewall - result should be documented infrastructure and sometimes even a graph depicting the connection between the nodes * Decide if you are going to use a secret management system like Vault * Prepare the deployment configuration * Test the deployment configuration * Sometimes... add CI/CD for the application
  • 17. v Следете актуалните обяви за DevOps When to choose DevOps over Sysadmin
  • 18. v Следете актуалните обяви за DevOps ➢ You are expecting rapid growth ➢ You are expecting to setup this infrastructure often ➢ You are expecting to re­provision this application often ➢ You need to implement complex CI/CD
  • 19. v Следете актуалните обяви за DevOps Team considerations
  • 20. v Следете актуалните обяви за DevOps ➢ For DevOps teams of less then 5 ➢ if only 2 or 3 people know the tools ➢ if the whole team knows the tools ➢ try to do a deployment with these tools at least 4 times a year and rotate the people doing these test deployments
  • 21. v Следете актуалните обяви за DevOps ➢ For DevOps teams of more then 5 ➢ make sure you have at least 4 persons that know the tooling ➢ make sure your setup and infrastructure configuration are well documented ➢ make sure you test frequently your deployments ➢ keep your infrastructure code in a separate repo
  • 22. v Следете актуалните обяви за DevOps Documentation considerations
  • 23. v Следете актуалните обяви за DevOps ➢ Include links to specific topics from the upstream documentation ➢ Provide specifics for your own environment ➢ If possible keep these comments within the infrastructure configuration files, not separate
  • 24. v Следете актуалните обяви за DevOps Technical considerations
  • 25. v Следете актуалните обяви за DevOps ➢ Scaling is not an automatic process, until you make it ➢ DBs don't scale easy horizontally ➢ replication is mandatory ➢ sharding is preferable, but also not easy ➢ read/write split is needed, but also not easy ➢ LB/Proxies add latency ➢ failure tolerance ➢ Session storage need to scale and be accessible to all web nodes ➢ Communication between everything is now over TCP, instead of Unix sockets
  • 26. v Следете актуалните обяви за DevOps ABSTRACTION ABSTRACTION the devil is in the details the devil is in the details
  • 27. v Следете актуалните обяви за DevOps ➢ Ansible ➢ just to configure the apache, php and mysql ➢ Terraform ➢ to be able to deploy on different clouds ➢ Nomad ➢ to be able to control the scale
  • 28. v Следете актуалните обяви за DevOps ➢ Ansible ➢ ready made examples ➢ limited functionality ➢ reducing your ability to provide specific configuration ➢ A lot of times resulting in DevOps needing to go around it and just execute some commands
  • 29. v Следете актуалните обяви за DevOps ➢ Terraform ➢ can do what Ansible can, but it is not built for that :) ➢ abstracts Ansible and makes it harder to understand what the end result would be ➢ declares the desired end result, not how to reach it ➢ almost entirely removes the resulting configuration from the equation ➢ problems with terraform configuration may cause delays in delivering a fixes to the live system
  • 30. v Следете актуалните обяви за DevOps ➢ Nomad ➢ requests a VM/container of a certain type ➢ the type is not defined within Nomad, other tools are used for that ➢ monitors the VMs/containers to decide if you need more or if some resource needs to be restarted
  • 31. v Следете актуалните обяви за DevOps Hiring Hiring the devil is in the details the devil is in the details
  • 32. v Следете актуалните обяви за DevOps ➢ Candidates focus on the new tech ➢ Forgetting what these tools were build to manage ➢ Not understanding the services (hammer and nail issues) ➢ Learning the basics of system administration is harder ➢ If the provider does not support it, the candidate does not know it exists/it is possible
  • 33. v Следете актуалните обяви за DevOps Marian Marinov Questions? mm@yuhu.biz
  • 34. v Следете актуалните обяви за DevOps Marian Marinov mm@yuhu.biz Contacts: https://www.linkedin.com/in/mariandmarinov/ https://github.com/hackman Thank you!