SlideShare a Scribd company logo
Introduction to
DevOps
&
Build Automation
Update
WAYI
27 February 2017
Introduction to
DevOps
How can we release on-time?
How can we have a stable
release?
How can we address the
problem before end users get
impacted?
Top Concerns
Embrace it.
DevOps = Dev + Ops
Bring Dev & Ops closer together
- Ideally, unified
Culture and Mindset
Set of practices centered on
automation
- Reliability
- Repeatability
- Traceability
- Minimal or no manual intervention
What is
happening in
software delivery
industry right
now?
DevOps adoption increased from 66
percent in 2015 to 74 percent in
2016.
DevOps adoption is strongest in the
enterprise (81 percent of enterprises
adopting DevOps compared to 70 percent
in SMBs).
Enterprises are adopting DevOps from the bottom
up: Adoption is by projects or teams (29 percent)
and business units or divisions (31 percent) vs.
company-wide (21 percent).
Based on a 2016 Puppet Labs study Highly effective
DevOps organizations have the following impact on the
business.
Source: 2016 State of DevOps Report, Puppet Labs
200X
Frequent
Deployments
24X
Return to
Normal
Operations
3X
Change
Failure
22X
Unplanned
Work and
Rework
50%
Security
Remediation
Time
High performing teams offer secure and reliable products, services and
capabilities quicker, faster.
2017?
This year, DevOps adoption is expected to
increase up to 85%.
Automation is a
part of DevOps
patterns
“Infrastructure as Code”
Standardize development, test and
production environments.
Effectively deploy and manage cloud
resources.
Eliminate error-prone, time-consuming
manual tasks.
Improve cooperation between
development and operations.
Implement automated release pipelines.
Benefits of automation
Automation enables velocity, scale, consistency and
feedback. All of these qualities are of a piece. Any one
depends on the other three – for example;-
 you can’t scale unless you are able to quickly add servers
with consistent configurations.
 you can’t get feedback automatically without being able to
support different real-time testing and monitoring
techniques.
 you can’t respond to feedback effectively unless you have a
high-velocity way to deliver incremental changes safely.
Why Should I
Automate?
Repeatability
Scripts can be repeated and unless your
computer is having a particularly bad
day, you can be reasonably certain that
the same instructions will be executed in
the same order each time the same
script is run.
Reliability
Scripts reduce changes for human error.
Efficiency
Automated tasks will often be faster than
the same task performed manually.
Testing
Scripted processes undergo testing
throughout the development cycle, in
much the same way the system code
does. This greatly improves changes for
successful process execution as the
project progresses. Automated scripts
eventually represent a mature, proven
set of repeatable processes.
Versioning
Scripts are artifacts that can be placed
under version control. With manual
processes, the only artifacts that can be
versioned and tracked are procedure
documents. Versioning of human beings
– the other factor in the manual process
equation – is unfortunately not
supported by typical source control
system.
Leverage
Another big benefit to automating is that
developers and testers can focus on the
areas where the add real value to a
project – developing and testing new
code and features – instead of worrying
about the underlying development
infrastructure issues.
What Should
I Automate?
 Build and deployment of the system
under design.
 Unit test execution and report
generation.
 Code coverage report generation
 Functional test execution and report
generation.
 Load test execution and report
generation.
 Code quality metrics report
generation.
 Coding conventions report
generation.
Importance of
Automated
Testing
With automated testing, we are
able to catch problem earlier,
before they impact our release
cycle. The earlier we catch a
problem, the easier and less
expensive it is to fix, and this is why
testing is such an important part of
DevOps practice.
Architecture
design
Component
design
Coding Unit
testing
Integration
testing
Acceptance
testing
The V-diagram, common in software engineering, illustrate this:
As you can see, each kind of testing activity (on the right side of the V)
checks a particular phase of development (shown on the left side). The
cost of rework rises as defects are discovered later in the project. It’s
better to begin testing at the vertex of the V, with unit tests. Catching a
defect during a unit test is much easier than trying to fix it when it’s
being tested with other components that might make it difficult to
discover where the actual problem lies.
DevOps
Toolchains
DevOps Toolchain
1. Code – Code development and review,
version control tools, code merging
2. Build – Continuous integration tool, build
status
3. Test – Test and results determine
performance
4. Package – Artifact repository, application
pre-deployment staging
5. Release – Change management, release
approvals, release automation
6. Configure – Infrastructure configuration
and management, Infrastructure as Code
tools
7. Monitor – Application performance
monitoring, end-user experience
Examples of DevOps Tools
Continuous Integration (CI)
- Jenkins, Travis, TeamCity
Configuration Management (CM)
- Puppet, Chef, Ansible, CFEngine
Continuous Inspection
- SonarCube, HP Fortify, Coverity
Containerization
- Vagrant, Docker
Virtualization
- Amazon EC2, VMWare, Microsoft Hyper-V
Build Automation
Update
Most modern development teams have set up some
form of build automation. At minimum, build
automation involves check out from source control,
compilation and linking, and packaging the resulting
binaries and other necessary files. These packages
can be then deployed and tested in downstream
processes. If done correctly, build automation
reduces manual labor by developers, ensures builds
are consistent and complete, and improves product
quality.
Critical Issues with Build Automation
1. Long Builds
2. Large Volume of Builds
3. Complex Builds
1. The Problem: Long Builds
Why it matters?
 Developer wait time
Most developers spend between 2-10 hours per week waiting for builds to
complete – lost time
 Context switch
developers switch task, lose context related to the problem they were
working on – reduces productivity
 Build bottleneck
Developers sync changes into the main code line and frequent builds are
needed
 Product quality
The less frequent the build, the less issues can be fixed and verified befre the
release – hurting product quality
2. The Problem: Large Volume of Builds
Why it matters?
 Limited build resources
Limited access to build servers during specific time windows or the servers
are often overloaded and builds will take much longer – hurting productivity
(especially practicing Agile)
3. The Problem: Complex Builds
Why it matters?
 Complex builds are brittle
Interactions between many different components often lead to manual error,
broken builds and worse
 Extensive manual efforts
Executing a complex build and delivering its results requires a substantial
manual effort
 Incremental builds are difficult
An incremental run could break the build due to partially specified
dependencies
 Legacy components and fear of change
Complex builds tend to have legacy components written years ago by staff
members who are no longer at the organization
 Complex builds are long
As the complexity of the build increases, so the time it takes to run
What Can Be Done?
Solution: Improve build speed:
1. Upgrade our build server
2. Running builds in parallel on one machine
3. Build avoidance / incremental builds – running only those parts of the build
that have changed
4. Using a RAM disk – moving the entire build operation to RAM to eliminate
disk I/O
5. Precompiled headers – precompiling shared dependencies that changes less
frequently
Solution: Address long and complex build:
1. Distributed builds – parallelizing build across a cluster of build servers
2. Manually partitioning Makefiles – breaking the build into smaller components
3. Optimizing Makefiles – rewriting Makefiles to make them run more efficiently
4. Unity builds in C/C++ - combining source files into one file to reduce file
access
Solution: Installing free build acceleration tool – e.g. Huddle from Electric Cloud
Version Control
- Team Foundation Version Control (TFVC)
- Git
- Branching & Merging
Project Management
- Scrum, Agile
- Defect Tracking, Bugs
QA Testing / Test Case Management
Automated Builds
Automated Release Pipelines
Team
Foundation
Server
Source
Code
Build
automation
Executable
Code
Deployment
automation
Target
environment
Target
environment
Target
environment
Source
Code
Build
automation
Executable
Code
Deployment
automation
Target
environment
Target
environment
Target
environment
Team Foundation Server
 Maximize automation with scripts and custom tools.
 Include automated testing.
 Provide solid process and documentation in our
software delivery practices.
Advantages of build automation to
software development projects:-
 A necessary pre-condition for continuous
integration and continuous testing
 Improve product quality
 Accelerate the compile and link processing
 Eliminate redundant tasks
 Minimize “bad builds”
 Eliminate dependencies on key personnel
 Have history of builds and releases in order
to investigate issues
 Save time and money – because of the
reasons listed above.
Conclusion
Future GPMT
DevOps
Ecosystem
Workstations - On-Premises
DEV TEST QA
Environments - On-Premises
Build&Test
Build/CI
Test
Develop
Developer
Workstation
Team
Collaboration
Deploy
Release
Monitor&Learn
Monitor
ALMServices - On-Premises
TFS
Monitoring- On-Premises
DevOps Orchestration
Reduce costs and improve productivity and
predictability by standardizing Dev and Ops
toolchains
DevOps teams like to move fast, and ship
frequently. Individual teams often depend on
(and are sometimes fiercely loyal to) a unique,
curated toolchain to help them get things
done. But many organizations want to
consolidate tools to gain economies of scale
and allow cross-team sharing. How can they
orchestrate all of these tools in an efficient,
auditable way.
Deployment Automation
Automate deployments so App Support and
Ops teams can keep up with the page of Agile
delivery
Consistently deploying applications into
standardized environments is one of the best
ways to achieve application rollout success,
but most teams still rely on hard-coded scripts
and manual instructions. App Support and Ops
teams want to eliminate manual and error-
prone deployment processes to achieve the
velocity needed to deliver any software into
any environment – especially into production,
where value is delivered.
Release Management
Control and track applications as they are
promoted along the path to production
Shipping code is the killer feature. Until code is
deployed and accessible by users, no value has
been created. But coordinating release
activities and approvals for both traditional
and CD pipelines across multiple teams and
shared infrastructure is a logistical challenge.
Organizations want a way to manage their
enterprise traditional releases and CD
pipelines in a scalable, auditable and
predictable way.
Agile
Automate deployments so Ops teams can keep
up with the pace of Agile delivery
Iterate and integrate often. Time is money.
Requirements are always shifting. Agility is
hard to achieve if your builds and tests take a
long time or are not automated. Nimble,
iterative, and incremental sprints get bogged
down without a solid process automation
framework in place. Organizations want to
automate provisioning, build and release
activities and handoffs to eliminate manual
errors and wait times, shrinks cycle times and
accelerate the feedback loop.
print(“Thank You!”)

More Related Content

What's hot

DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
Sridhara T V
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
Hawkman Academy
 
Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
Siva Rama Krishna Chunduru
 
DEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journeyDEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journey
Jason Suttie
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
Amazon Web Services
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
Nishanth K Hydru
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
Amazon Web Services
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
Robert Sell
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
Micro Focus
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
DevOps.com
 
DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines
Abdul_Mujeeb
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
Mettje Heegstra
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps Sec
Rubal Jain
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
Shalu Ahuja
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
Sonatype
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
Abdullah al Mamun
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
Soumya De
 
Implementing DevSecOps
Implementing DevSecOpsImplementing DevSecOps
Implementing DevSecOps
Amazon Web Services
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
CodeOps Technologies LLP
 

What's hot (20)

DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
 
DEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journeyDEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journey
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
 
DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps Sec
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
 
Implementing DevSecOps
Implementing DevSecOpsImplementing DevSecOps
Implementing DevSecOps
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 

Similar to DevOps and Build Automation

Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operations
teekhesawaal
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
Jérôme Kehrli
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOps
Abdullah al Mamun
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
Adam Stephensen
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
cfry
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
Andrea Tino
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
Huda Alameen
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
Huda Alameen
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential tools
DBmaestro - Database DevOps
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
Jasmine Conseil
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
Mohammad Hossein Rimaz
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
ayoubbahaddouayoub
 
Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Rosalind Radcliffe
 
Dev ops culture and practices
Dev ops culture  and  practicesDev ops culture  and  practices
Dev ops culture and practices
AnkaraCloud
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
Ivan Porta
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
Jasmine Conseil
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
rupeshchanchal
 
#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx
Vincent Biret
 

Similar to DevOps and Build Automation (20)

Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operations
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOps
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential tools
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
 
Ch17
Ch17Ch17
Ch17
 
Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402
 
Dev ops culture and practices
Dev ops culture  and  practicesDev ops culture  and  practices
Dev ops culture and practices
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx
 

Recently uploaded

Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
ongomchris
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 

Recently uploaded (20)

Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 

DevOps and Build Automation

  • 3. How can we release on-time? How can we have a stable release? How can we address the problem before end users get impacted? Top Concerns
  • 5. DevOps = Dev + Ops Bring Dev & Ops closer together - Ideally, unified Culture and Mindset Set of practices centered on automation - Reliability - Repeatability - Traceability - Minimal or no manual intervention
  • 6.
  • 7. What is happening in software delivery industry right now?
  • 8. DevOps adoption increased from 66 percent in 2015 to 74 percent in 2016.
  • 9. DevOps adoption is strongest in the enterprise (81 percent of enterprises adopting DevOps compared to 70 percent in SMBs).
  • 10. Enterprises are adopting DevOps from the bottom up: Adoption is by projects or teams (29 percent) and business units or divisions (31 percent) vs. company-wide (21 percent).
  • 11. Based on a 2016 Puppet Labs study Highly effective DevOps organizations have the following impact on the business. Source: 2016 State of DevOps Report, Puppet Labs 200X Frequent Deployments 24X Return to Normal Operations 3X Change Failure 22X Unplanned Work and Rework 50% Security Remediation Time High performing teams offer secure and reliable products, services and capabilities quicker, faster.
  • 12. 2017? This year, DevOps adoption is expected to increase up to 85%.
  • 13. Automation is a part of DevOps patterns “Infrastructure as Code”
  • 14. Standardize development, test and production environments. Effectively deploy and manage cloud resources. Eliminate error-prone, time-consuming manual tasks. Improve cooperation between development and operations. Implement automated release pipelines.
  • 15.
  • 16. Benefits of automation Automation enables velocity, scale, consistency and feedback. All of these qualities are of a piece. Any one depends on the other three – for example;-  you can’t scale unless you are able to quickly add servers with consistent configurations.  you can’t get feedback automatically without being able to support different real-time testing and monitoring techniques.  you can’t respond to feedback effectively unless you have a high-velocity way to deliver incremental changes safely.
  • 18. Repeatability Scripts can be repeated and unless your computer is having a particularly bad day, you can be reasonably certain that the same instructions will be executed in the same order each time the same script is run.
  • 20. Efficiency Automated tasks will often be faster than the same task performed manually.
  • 21. Testing Scripted processes undergo testing throughout the development cycle, in much the same way the system code does. This greatly improves changes for successful process execution as the project progresses. Automated scripts eventually represent a mature, proven set of repeatable processes.
  • 22. Versioning Scripts are artifacts that can be placed under version control. With manual processes, the only artifacts that can be versioned and tracked are procedure documents. Versioning of human beings – the other factor in the manual process equation – is unfortunately not supported by typical source control system.
  • 23. Leverage Another big benefit to automating is that developers and testers can focus on the areas where the add real value to a project – developing and testing new code and features – instead of worrying about the underlying development infrastructure issues.
  • 25.  Build and deployment of the system under design.  Unit test execution and report generation.  Code coverage report generation  Functional test execution and report generation.  Load test execution and report generation.  Code quality metrics report generation.  Coding conventions report generation.
  • 27. With automated testing, we are able to catch problem earlier, before they impact our release cycle. The earlier we catch a problem, the easier and less expensive it is to fix, and this is why testing is such an important part of DevOps practice.
  • 28. Architecture design Component design Coding Unit testing Integration testing Acceptance testing The V-diagram, common in software engineering, illustrate this: As you can see, each kind of testing activity (on the right side of the V) checks a particular phase of development (shown on the left side). The cost of rework rises as defects are discovered later in the project. It’s better to begin testing at the vertex of the V, with unit tests. Catching a defect during a unit test is much easier than trying to fix it when it’s being tested with other components that might make it difficult to discover where the actual problem lies.
  • 31. 1. Code – Code development and review, version control tools, code merging 2. Build – Continuous integration tool, build status 3. Test – Test and results determine performance 4. Package – Artifact repository, application pre-deployment staging 5. Release – Change management, release approvals, release automation 6. Configure – Infrastructure configuration and management, Infrastructure as Code tools 7. Monitor – Application performance monitoring, end-user experience
  • 32. Examples of DevOps Tools Continuous Integration (CI) - Jenkins, Travis, TeamCity Configuration Management (CM) - Puppet, Chef, Ansible, CFEngine Continuous Inspection - SonarCube, HP Fortify, Coverity Containerization - Vagrant, Docker Virtualization - Amazon EC2, VMWare, Microsoft Hyper-V
  • 34. Most modern development teams have set up some form of build automation. At minimum, build automation involves check out from source control, compilation and linking, and packaging the resulting binaries and other necessary files. These packages can be then deployed and tested in downstream processes. If done correctly, build automation reduces manual labor by developers, ensures builds are consistent and complete, and improves product quality.
  • 35. Critical Issues with Build Automation 1. Long Builds 2. Large Volume of Builds 3. Complex Builds
  • 36. 1. The Problem: Long Builds Why it matters?  Developer wait time Most developers spend between 2-10 hours per week waiting for builds to complete – lost time  Context switch developers switch task, lose context related to the problem they were working on – reduces productivity  Build bottleneck Developers sync changes into the main code line and frequent builds are needed  Product quality The less frequent the build, the less issues can be fixed and verified befre the release – hurting product quality
  • 37. 2. The Problem: Large Volume of Builds Why it matters?  Limited build resources Limited access to build servers during specific time windows or the servers are often overloaded and builds will take much longer – hurting productivity (especially practicing Agile)
  • 38. 3. The Problem: Complex Builds Why it matters?  Complex builds are brittle Interactions between many different components often lead to manual error, broken builds and worse  Extensive manual efforts Executing a complex build and delivering its results requires a substantial manual effort  Incremental builds are difficult An incremental run could break the build due to partially specified dependencies  Legacy components and fear of change Complex builds tend to have legacy components written years ago by staff members who are no longer at the organization  Complex builds are long As the complexity of the build increases, so the time it takes to run
  • 39. What Can Be Done?
  • 40. Solution: Improve build speed: 1. Upgrade our build server 2. Running builds in parallel on one machine 3. Build avoidance / incremental builds – running only those parts of the build that have changed 4. Using a RAM disk – moving the entire build operation to RAM to eliminate disk I/O 5. Precompiled headers – precompiling shared dependencies that changes less frequently Solution: Address long and complex build: 1. Distributed builds – parallelizing build across a cluster of build servers 2. Manually partitioning Makefiles – breaking the build into smaller components 3. Optimizing Makefiles – rewriting Makefiles to make them run more efficiently 4. Unity builds in C/C++ - combining source files into one file to reduce file access Solution: Installing free build acceleration tool – e.g. Huddle from Electric Cloud
  • 41. Version Control - Team Foundation Version Control (TFVC) - Git - Branching & Merging Project Management - Scrum, Agile - Defect Tracking, Bugs QA Testing / Test Case Management Automated Builds Automated Release Pipelines Team Foundation Server
  • 43. Source Code Build automation Executable Code Deployment automation Target environment Target environment Target environment Team Foundation Server  Maximize automation with scripts and custom tools.  Include automated testing.  Provide solid process and documentation in our software delivery practices.
  • 44. Advantages of build automation to software development projects:-  A necessary pre-condition for continuous integration and continuous testing  Improve product quality  Accelerate the compile and link processing  Eliminate redundant tasks  Minimize “bad builds”  Eliminate dependencies on key personnel  Have history of builds and releases in order to investigate issues  Save time and money – because of the reasons listed above.
  • 46. Future GPMT DevOps Ecosystem Workstations - On-Premises DEV TEST QA Environments - On-Premises Build&Test Build/CI Test Develop Developer Workstation Team Collaboration Deploy Release Monitor&Learn Monitor ALMServices - On-Premises TFS Monitoring- On-Premises
  • 47. DevOps Orchestration Reduce costs and improve productivity and predictability by standardizing Dev and Ops toolchains DevOps teams like to move fast, and ship frequently. Individual teams often depend on (and are sometimes fiercely loyal to) a unique, curated toolchain to help them get things done. But many organizations want to consolidate tools to gain economies of scale and allow cross-team sharing. How can they orchestrate all of these tools in an efficient, auditable way.
  • 48. Deployment Automation Automate deployments so App Support and Ops teams can keep up with the page of Agile delivery Consistently deploying applications into standardized environments is one of the best ways to achieve application rollout success, but most teams still rely on hard-coded scripts and manual instructions. App Support and Ops teams want to eliminate manual and error- prone deployment processes to achieve the velocity needed to deliver any software into any environment – especially into production, where value is delivered.
  • 49. Release Management Control and track applications as they are promoted along the path to production Shipping code is the killer feature. Until code is deployed and accessible by users, no value has been created. But coordinating release activities and approvals for both traditional and CD pipelines across multiple teams and shared infrastructure is a logistical challenge. Organizations want a way to manage their enterprise traditional releases and CD pipelines in a scalable, auditable and predictable way.
  • 50. Agile Automate deployments so Ops teams can keep up with the pace of Agile delivery Iterate and integrate often. Time is money. Requirements are always shifting. Agility is hard to achieve if your builds and tests take a long time or are not automated. Nimble, iterative, and incremental sprints get bogged down without a solid process automation framework in place. Organizations want to automate provisioning, build and release activities and handoffs to eliminate manual errors and wait times, shrinks cycle times and accelerate the feedback loop.

Editor's Notes

  1. Infrastructure as code - Allows to automate deployments in different environments (dev, test, staging, prod)
  2. DevOps practitioners rely on automation. An automation platform gives us the ability to describe our entire technology stack as executable code.
  3. Some people might question whether gains in efficiency are typical, noting that they have worked on projects where, in their view, trying to automate tasks actually cost the project more time than it saved. Depending on the situation, this may be a real concern. In addition, automation might have been implemented poorly or carried too far on some projects – but keep reading for on what to automate and when.
  4. Because DevOps is a cultural shift and collaboration (between dev, ops and testing), there is no single “DevOps tool” – it is rather a set, consisting of multiple tools (DevOps toolchain). Generally, DevOps tools fit into one or more of these categories, which is reflective of key aspects of the software dev and delivery process.
  5. The more components you add to your software, the more lines of code you maintain, and the more tests and routines you run as part of your build process- the longer the build will take to run. Also, some development environments and technologies, like C/C++, tend to be correlated with longer builds. In Agile work environments, builds are expected to be run frequently and the organization depends on build output to guide development work. Long builds can be a big problem, and one that can “creep up” on a development team. Why it matters? Some builds are so long they can only be ran nightly. But even if your “normal” build takes just 20 or 30 minutes more than it should – there are significant costs to your organization: Developer wait time – as we shown in a survey we conducted last year, most developers spend between 2-10 hours per week waiting for builds to complete – more often than not, this is lost time. Context switch – while the build runs, developers switch away from the current task to other ones. If the build is long, developers lose context related to the problem they were working on, which reduces productivity. In other words, if builds are supremely fast, developers never have to stop thinking about the problem they are working on right now. Build bottleneck – during intensive development phases such as “integration storms”, developers sync changes into the main code line and frequent builds are needed to get everything working. The less frequent the build, the less problems dev can solve every workday. Product quality – when a developer commits changes that break something, it will only be discovered after the build runs. When the bug is fixed, again there is a lag waiting for the next build before QA can verify the fix. The less frequent the build, the less issues can be fixed and verified before the release – hurting product quality.
  6. Sometimes, individual builds run relatively quickly. But in some organizations, there could be dozens or hundreds of builds run in each dev/test cycle. This could be because numerous teams (sometimes thousands of developers) developing different software components, and each running its own build. Or, the dev team might need to deliver numerous versions of the software for different platforms, customized builds for different customers, etc. Some organizations have relatively short builds– but find themselves needing to support dozens, if not hundreds, of these builds at any given time. Why it matters: If you’re a build engineer responsible for running 500 builds, you’ll feel the pain even if each of them is 10 minutes long (=~83 hours build time without parallelization). While builds may be short, cumulatively they take very long to run. But if you’re a developer or QA engineer using such as build system, and your build takes only 10 minutes, why should you care? Limited build resources – because the organization is running large numbers of builds, you’ll find you have limited access to build servers during specific time windows, or the servers are often overloaded and builds will take much longer.When you rely on running builds often to get fast feedback and fix bugs, you’ll notice that having to “wait in line” for your builds to run hurts your productivity (particularly if you’re practicing Agile), and that you can’t move development fast enough because your waiting for a build server.
  7. Software projects use a large number of modular components: different frameworks, components developed by different teams or by 3rd-party partners, open source libraries, and so on. As your product evolves, there are multiple versions of your own code, and also multiple versions of these many components, creating a many-dimensional matrix of dependencies and supported behaviors. That’s where things get complex to build. Why it matters: Complex builds reduce the flexibility of the build process and makes it much more difficult to manage and run the build: Complex builds are brittle – interactions between many different components often lead to manual error, broken builds and worse – builds that run correctly but introduce bugs due to partial or incorrect sources. Extensive manual efforts – executing a complex build and delivering its results requires a substantial manual effort. Even if the build is automated, it is typically automated in small pieces/components, and there is no orchestration of the entire process. Incremental builds are difficult– often you’ll want to run a partial build and re-purpose items that haven’t changed and were previously compiled. With complex builds – due to partially specified dependencies – an incremental run could break the build and teams are forced to run the entire build in all scenarios. Legacy components and fear of change – complex builds tend to have legacy components written years ago by staff members who are no longer at the organization. This impedes changes or optimizations to the build, for fear of possibly breaking legacy components that are not well understood. Complex builds are long – there is a correlation between the complexity of the build and the time it takes to run, which introduces additional issues as described above.