Talk in TechParty 2019.
DevOps word in itself is a combination of two words;
One is Development and other is Operations. It is neither
an application nor a tool; instead, it is just a culture to
promote development and Operation process
collaboratively.
In other words, we can say that DevOps is the process of
alignment of IT and development operations with better
and improved communication
2. Who am I
ABOUT ME (JUAN VICENTE HERRERA)
• 14 years working in IT world
• Currently working at X by Orange
• Madrid DevOps organizer
• Gamer y runner.
Contact
@jvicenteherrera
juan.vicente.herrera@gmail.com
https://madrid.devops.es
@madriddevops
3. DevOps 101
DevOps word in itself is a combination of two words;
One is Development and other is Operations. It is neither
an application nor a tool; instead, it is just a culture to
promote development and Operation process
collaboratively.
In other words, we can say that DevOps is the process of
alignment of IT and development operations with better
and improved communication.
6. DevOps 101
What problems led to the creation of DevOps?
DevOps implementation has increased the rate of
software delivery and the revenue for business
stakeholders.
Following listed reasons are the most considerable
ones that led to the creation of DevOps.
7. DevOps 101
• Before DevOps, operation and development teams were working
in an isolated environment.
• Testing and Deployment activities mostly were performed in an
isolated manner after design-build step, and they took more
time than actual project completion time.
• Team members usually spend a large amount of time in
deploying, testing, designing, and building the projects
• Human production errors were deployed during manual code
conduction.
• Operations and coding teams generally had different timelines
and did not have proper synchronization that results in further
delay.
8.
9. DevOps 101
Traditional IT DevOps
Once the order for new servers is
placed, the development team starts
working on testing. The development
team has to continue with heavy
paperwork as required by enterprises to
deploy the infrastructure.
Once the order for new servers is
placed, the development team and
operations team start the paperwork to
set up new servers that result in better
visibility of infrastructure equipment.
Projections about failover, data center
locations, redundancy, and storage
requirements are not clear as no inputs
are available from the development
team even if they have the depth
knowledge of the application.
Projections about failover, data center
locations, redundancy, and storage
requirements are 100 percent clear
because of accurate inputs given from
the development team.
10. DevOps 101
Traditional IT DevOps
In old software development processes,
the operations team has no idea of the
progress of the development team.
Operation team has to prepare a
monitoring plan as per their own
understanding.
In DevOps, the operations team have a
complete idea of the progress of
development. Operations team and
development team work together to
develop a monitoring plan that caters to
the current business, and IT needs.
Before go-live, the load testing may
crash the application, and the release
may get delayed. It affects the overall
cost of the project and project delivery
deadline.
Before go-live, the load testing makes
the application a little slow. The
development team quickly fixes
bottlenecks, and the application is
released on time.
11. Growing pains
When you are responsible for large distributed applications the
operations complexity grows quickly.
– How do you provision virtual machines?
– How do you configure network devices and servers?
– How do you deploy applications?
– How do you collect and aggregate logs?
– How do you monitor services?
– How do you monitor network performance?
– How do you monitor application performance?
– How do you alert and remediate when there are problems?
12. 7 Signs that Show You Need DevOps
1. The development team is not able to detect software defects at the early
age of its development
2. Agile methods are used to speed up the software development process,
but as soon as the application goes to production department all
methods become ineffective
3. Testing and development team members are not able to access resources
timely and so the development process delays
4. You are not able to identify the exact problems of development, testing,
and production department
5. Simple human errors are often creating hurdles during the development
and deployment process.
6. Once the app is in production, developers think that their job is over.
7. At the time of the problem, both development and operation teams start
blaming each other.
13. What are the Features of DevOps
Implementation?
• Predictability: DevOps decreases the failure rate of new product releases.
• Maintainability: The process improves the overall recovery rate at the time
of the release event.
• Improved Quality: DevOps improves the quality of product development by
incorporating infrastructure issues.
• Lower Risk: Security aspects are incorporated in SDLC, and the number of
defects gets decreased across the product
• Cost Efficient: Cost efficiency is improved due to DevOps that is always an
aspiration of every business organization.
• Stability: DevOps implementation offers a stable and secure operational
state.
• Streamlined Delivery Process: As DevOps provides streamlined software
delivery, so marketing effort is reduced up to 50%. It happens due to the
mobile application and digital platform.
14. DevOps 101
“DevOps is truly not just the unicorns of
big IT hubs like Amazon, Google,
Facebook, etc. but it can be adopted by
almost any organization today instead of
their sizes.”
15. How DevOps Improved the
Development and Operation Process?
DevOps solves development challenges in the following
ways:
• Code deployment time is reduced because of the faster
testing process and speedy feedback mechanism.
• Developers do not feel work pressure and can build new
code in less time.
16. How DevOps Improved the
Development and Operation Process?
As far as operation process execution is concerned, then implementation
of DevOps improves the operational processes in the following ways:
• Configuration management helps the organization to execute and
organize the configuration plans, and they become able to manage
their infrastructure in an effective
• Containers and virtualization concepts provide a simulated
environment to increase software reliability and maintain uptime of
the production environment.
• Effective and improved server monitoring is offered. As a result of
this, proper feedback can be provided, and effective administration is
assured.
17. Lifecycle
i). Development
This is the first stage of DevOps lifecycle in which development
of application takes place constantly. The entire development
process is broken down into small steps or development cycles.
As a result of this, the speed of software development and
delivery is increased.
ii). Testing
Selenium like testing tools is used to speed up the overall testing
process by quick identification of errors and fixing the bugs.
18. Lifecycle
iii). Integration
New functionalities are integrated with the prevailing code, and testing of new
code takes place. Continuous integration and testing help in the continuous
development process.
iv). Deployment
Continuous deployment is the part of DevOps lifecycle. When it is performed in
the right way, then it can affect the overall functioning of a high traffic website.
v). Monitoring
Inappropriate system behavior is managed by monitoring. Through proper
monitoring, the bugs are found and fixed in a hassle-free way.
19. Configuration Management
• Configuration management solves the problem of having to
manually install and configure packages once the hardware is in
place.
• The benefit of using configuration automation solutions is that
servers are deployed exactly the same way every time.
• If you need to make a change across ten thousand servers you
only need to make the change in one place.
• Chef
• Puppet
• Ansible
• Salt Stack
20. Deployment automation
Deployment automation solves the problem of
deploying an application with an automated and
repeatable process.
– Jenkins
– Fabric
– Capistrano
– Gradle
– Travis
21. Log management
Log management solves the problem of
aggregating, storing, and analyzing all logs in one
place.
– Splunk
– SumoLogic
– Loggly
– LogStash
– EFK + Grafana
22. Performance Management
Performance management is about ensuring your
network and application are performing as
expected and providing intelligence when you
encounter problems.
– AppDynamics
– New Relic
– Boundary
– Cloudweaver
23. Monitoring
Monitoring and alerting are a crucial piece to managing
operations and making sure people are notified when
infrastructure and related services go down.
– Prometheus
– Nagios
– Ganglia
– Sensu
– Icinga
– Zabbix
– PagerDuty
24. Infrastructure as code
"IS THE PROCESS OF MANAGING AND PROVISIONING
COMPUTER DATA CENTERS THROUGH MACHINE-READABLE
DEFINITION FILES, RATHER THAN PHYSICAL HARDWARE
CONFIGURATION OR INTERACTIVE CONFIGURATION TOOLS"
“DevOps is simply
operations working
together with engineers
to get things done faster
in an automated and
repeatable way.”
• Versioning
• Auditable
• Repetible
• Collaborative
25. Infrastructure Automation
Infrastructure automation solves the problem of having to be
physically present in a data center to provision hardware and make
network changes.
The benefits of using cloud services is that costs scale linearly with
demand and you can provision automatically as needed without
having to pay for hardware up front.
– Amazon Web Services
– Windows Azure
– RackSpace Cloud
– Google Compute Cloud
– OpenShift by Red Hat
– IBM Cloud
32. Containers
• Containers make it easier to host and manage life-
cycle of web applications inside the portable
environment.
• It packages up application code other
dependencies into building blocks to deliver
consistency, efficiency, and productivity.
• Docker is a tool to deploy containers inside the
cluster and treat it all as a single unit.
33. Containers
But, the real challenge is deploying the multi-container
application as multiple applications can’t just live in one
container.
• And what if there is a need to scale out service as per the
business needs?
• What to do to provide services across multiple machines
without dealing with cumbersome network and storage
settings?
That’s how Kubernetes came into play!
34. Kubernetes
• Kubernetes is an open source container orchestration
platform, enabling multiple numbers of containers to work
together in harmony, reducing operational burden.
• It manages application containers across multiple hosts.
• Features like auto-scaling, rolling deployment, computer
resource, volume storage to the name of few are some of
the exceptional weapons of Kubernetes.
• Similar to containers, it is designed to run on bare metal, in
the data center, public cloud or even a hybrid cloud.
35. Kubernetes
Developer: Build once run everywhere
QA/Testing: Reliable and coordinated
environments between test and production
Sys-admin: Config once, run anything
Operational team: Unified solution for building,
shipping, and scaling software. Enables to focus
on features, bugs and shipping better software
rather than setting up and maintaining
environment and tools.
39. Validation
• Time testing the product?
• Time to go from development to deploy?
• Time to deploy the product?
• Downtime for the update?
• Deploys per week/month?
• Time to notice an error?
• Time to roll back an update?
• Configuration issues in production?
40. If you embrace the devops
culture ... you will sleep like this
adorable couple