Presentation on
SCALABLE CONTINUOUS INTEGRATION AND
CONTINUOUS DEPLOYMENT : DevOps
GR VISHAL(1EE16CS011) POORNIMA YO(1EE16CS022)
HARSHITHA S(1EE16CS015) SUBRAMANYA DATTA S(1EE16CS044)
BY
Is DevOps???
• DevOps is the practice of operations and development engineers
participating together in the entire service lifecycle, from design
through the development process to production support.
• Quality and Time-To-Market (TTM) are crucial factors for the success of any
software product.
• CI-CD is an emerging field in the industry where many companies lack this
implementation. Only renowned organizations like Google, Microsoft and other
major players are having full-fledged CI-CD setup at place.
• The DevOps framework we are proposing is capable of plug-and-play with any new
or legacy source archive with little configuration. This is intended to bring down the
typical product delivery timeline from 7 days to 1 day, with utmost quality and
reliable system at place.
Introduction
Literature Survey
SL No. Title Investigator Remarks
01. Devops, A new Approach
to cloud development
and testing
Prashant Agrawal
02. A Survey of DevOps tools
for Networking
Shah This describes only tools
used to construct CI-CD
pipeline
03. Continuous and
Integrated Software
Development using
DevOps
Aayush Agarwal Communication gap
between Dev and Ops for
manual code review
• Current industry is lacking full-fledged DevOps setup. Below statistics are collected
based researches conducted by “2nd Watch” in the year 2018.
• Though 60% of the organizations embraced the DevOps, not all of them are
utilizing the full potential of the DevOps. Among the 60% organization, DevOps
utilization is as below:
• 38% are still managing their infrastructure manually.
• 75% are having manual way of getting feedback on application failure from the
production.
• 25% are having little or no test infrastructure at place.
• 30% are still doing manual deployment.
• 75% of the test environments are not identical to production system.
Existing System
• With the above statics, a typical source code archive of 1GB size and a dedicated human
resource to handle all the product delivery related activities since committing check-in can
be estimated as below. This estimation was concluded after talking to industrial experts.
Task Time in day(s)
Installing different software set on 100
different machines.
2
Bringing production server up when it
goes down
1
Checking the quality of the software
- Scan the deliverables like docker
images via different tools.
- Manual verification of the results.
1
Running the tests on 100 machines
without autoscale
2
Get product statistics from various
sources, collect all test results and
consolidate all this information into
one.
1
In practice, any human error leads to further delay, which is omitted from the above
estimation chart.
• Existing systems either did not adapted DevOps or not using DevOps framework to
its full potential. Above statistics leads to:
1. Delay in the Time To Market of the product.
2. Quality of the product.
3. Product security.
4. Vulnerabilities
5. Prone to human errors.
Disadvantages of Existing System
1
The above pipeline is a logical demonstration of how software will move along the various
stages in this lifecycle before it is delivered to the customer or before it is live in production.
CI-CD Pipeline
2
3
4
5
6
7
Journey Of DevOps
CI-CD
Bringing 7 days of labor to 1 day is possible with the best use of various DevOps
technologies and tools available in the industry under one umbrella. Our ‘Scalable
CI-CD using Devops’ addresses different stages of problem statement is described
below:
Proposed solution
CI CD
How To Overcome
It?
Problem Statement Proposed solution
Deliver the features developed into source
archive, from different teams across the globe.
Use ‘Git’ as source archive, where teams across
the globe can deliver the changes at any time.
Test the quality of the code via unit tests,
integration and automated tests. (Testability,
maintainability, scalability and security aspects
to be covered).
Use Nunit, Mstest, Jmeter to run
unit/automated tests. Use ShoScar and FxCop
to check for maintainability and vulnerability of
the code being developed.
Test across different environments (different
Operating systems, browsers and software set
combination).
Use Virtual machines (VMs) with AWS-cloud
combination to pull various operating systems
along with the Docker-Container technology to
host different sets. This technology is new to
the industry. This is scalable on need basis,
automatically pulls as many VM’s are required
to complete activities in stipulated time.
Deploy it in test servers and do sanity check. Use Ansible to perform product deployment in
bulk (like 500 machines with one click) into
different VM’s.
Promote to the production servers Check the quality history of the product and
automatically push to the production.
In abstract view the CI-CD pipeline setup with DevOps tools brings in below
into the development practices.
1. Infrastructure as a code: Treat infrastructure the same way developer
treats the code with all best practices and tests.
2. Continuous deployment: Core concept of a DevOps strategy. Its primary
goal is to enable the automated deployment of production-ready
application code.
3. Automation: Focuses on setup, configuration, deployment, and support of
infrastructure and applications.
4. Monitoring and Visibility: Communication and collaboration is
fundamental in a DevOps strategy. To facilitate this, feedback is critical.
5. Security: Focus on security is still of paramount importance. Infrastructure
and company assets need to be protected, and when issues arises, they
need to be rapidly and effectively addressed.
Advantages of Proposed System
• Hardware Requirement:
Hard disk size availability: Minimum 20GB
• Software Requirement:
Operating system: Windows 10
Docker for windows v 2.0.2
Visual Studio 2015
Dotnet v2.0
Requirement
Git
• Git is a free and open source distributed version control system designed
to handle everything from small to very large projects with speed and
efficiency.
Advantages of Git
1. Free and open source
2. Fast and small
3. Implicit backup
4. Security
5. No need of powerful hardware
6. Easier branching
• Jenkins is a free and open source automation server. Jenkins helps to automate the
non-human part of the software development process, with continuous
integration and facilitating technical aspects of continuous delivery.
Advantages of Jenkins
1. Jenkins is open source and free
2. Jenkins comes with a wide range of plugins
3. Jenkins integrates and works with all major tools
4. Jenkins is flexible
5. Jenkins comes with a decent API suite
6. Jenkins is easy to use
Jenkins
• Ansible is simple open source IT engine which automates application deployment,
intra service orchestration, cloud provisioning and many other IT tools.
Advantages of Ansible
1. Free
2. Very simple to set up and use
3. Powerful
4. Flexible
5. Agentless
6. Efficient.
Ansible
• Docker is computer software used for Virtualization in order to have multiple Operating
systems running on the same host. Unlike Hypervisors which are used for creating VM
(Virtual machines), virtualization in Docker is performed on system-level in so-called Docker
containers.
• As you can see the difference in the image below, Docker containers run on top of the host's
Operation system. This helps you to improves efficiency. Moreover, we can run more
containers on the same infrastructure than we can run Virtual machines because containers
use fewer resources.
DOCKER
• It enables users to define and provision a datacenter infrastructure
using a high-level configuration language known as Hashicorp
Configuration Language, or optionally JSON.
Advantages of Terraform:
1. Immutable infrastructure
2. Declarative code style
3. Client-only architecture
Terraform
• Amazon Web Services (AWS) is a secure cloud services platform,
offering compute power, database storage, content delivery and
other functionality to help businesses scale and grow.
Advantages of AWS:
1. Zero CapEx
2. No-Commitment
3. Get Rid of Negotiations
4. Procurement
5. Pay Per Use
6. Security
AWS
Devops phase-1
Devops phase-1

Devops phase-1

  • 1.
    Presentation on SCALABLE CONTINUOUSINTEGRATION AND CONTINUOUS DEPLOYMENT : DevOps GR VISHAL(1EE16CS011) POORNIMA YO(1EE16CS022) HARSHITHA S(1EE16CS015) SUBRAMANYA DATTA S(1EE16CS044) BY
  • 2.
    Is DevOps??? • DevOpsis the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.
  • 3.
    • Quality andTime-To-Market (TTM) are crucial factors for the success of any software product. • CI-CD is an emerging field in the industry where many companies lack this implementation. Only renowned organizations like Google, Microsoft and other major players are having full-fledged CI-CD setup at place. • The DevOps framework we are proposing is capable of plug-and-play with any new or legacy source archive with little configuration. This is intended to bring down the typical product delivery timeline from 7 days to 1 day, with utmost quality and reliable system at place. Introduction
  • 4.
    Literature Survey SL No.Title Investigator Remarks 01. Devops, A new Approach to cloud development and testing Prashant Agrawal 02. A Survey of DevOps tools for Networking Shah This describes only tools used to construct CI-CD pipeline 03. Continuous and Integrated Software Development using DevOps Aayush Agarwal Communication gap between Dev and Ops for manual code review
  • 5.
    • Current industryis lacking full-fledged DevOps setup. Below statistics are collected based researches conducted by “2nd Watch” in the year 2018. • Though 60% of the organizations embraced the DevOps, not all of them are utilizing the full potential of the DevOps. Among the 60% organization, DevOps utilization is as below: • 38% are still managing their infrastructure manually. • 75% are having manual way of getting feedback on application failure from the production. • 25% are having little or no test infrastructure at place. • 30% are still doing manual deployment. • 75% of the test environments are not identical to production system. Existing System
  • 6.
    • With theabove statics, a typical source code archive of 1GB size and a dedicated human resource to handle all the product delivery related activities since committing check-in can be estimated as below. This estimation was concluded after talking to industrial experts. Task Time in day(s) Installing different software set on 100 different machines. 2 Bringing production server up when it goes down 1 Checking the quality of the software - Scan the deliverables like docker images via different tools. - Manual verification of the results. 1 Running the tests on 100 machines without autoscale 2 Get product statistics from various sources, collect all test results and consolidate all this information into one. 1 In practice, any human error leads to further delay, which is omitted from the above estimation chart.
  • 7.
    • Existing systemseither did not adapted DevOps or not using DevOps framework to its full potential. Above statistics leads to: 1. Delay in the Time To Market of the product. 2. Quality of the product. 3. Product security. 4. Vulnerabilities 5. Prone to human errors. Disadvantages of Existing System
  • 8.
    1 The above pipelineis a logical demonstration of how software will move along the various stages in this lifecycle before it is delivered to the customer or before it is live in production. CI-CD Pipeline
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    Bringing 7 daysof labor to 1 day is possible with the best use of various DevOps technologies and tools available in the industry under one umbrella. Our ‘Scalable CI-CD using Devops’ addresses different stages of problem statement is described below: Proposed solution CI CD
  • 14.
  • 15.
    Problem Statement Proposedsolution Deliver the features developed into source archive, from different teams across the globe. Use ‘Git’ as source archive, where teams across the globe can deliver the changes at any time. Test the quality of the code via unit tests, integration and automated tests. (Testability, maintainability, scalability and security aspects to be covered). Use Nunit, Mstest, Jmeter to run unit/automated tests. Use ShoScar and FxCop to check for maintainability and vulnerability of the code being developed. Test across different environments (different Operating systems, browsers and software set combination). Use Virtual machines (VMs) with AWS-cloud combination to pull various operating systems along with the Docker-Container technology to host different sets. This technology is new to the industry. This is scalable on need basis, automatically pulls as many VM’s are required to complete activities in stipulated time. Deploy it in test servers and do sanity check. Use Ansible to perform product deployment in bulk (like 500 machines with one click) into different VM’s. Promote to the production servers Check the quality history of the product and automatically push to the production.
  • 17.
    In abstract viewthe CI-CD pipeline setup with DevOps tools brings in below into the development practices. 1. Infrastructure as a code: Treat infrastructure the same way developer treats the code with all best practices and tests. 2. Continuous deployment: Core concept of a DevOps strategy. Its primary goal is to enable the automated deployment of production-ready application code. 3. Automation: Focuses on setup, configuration, deployment, and support of infrastructure and applications. 4. Monitoring and Visibility: Communication and collaboration is fundamental in a DevOps strategy. To facilitate this, feedback is critical. 5. Security: Focus on security is still of paramount importance. Infrastructure and company assets need to be protected, and when issues arises, they need to be rapidly and effectively addressed. Advantages of Proposed System
  • 18.
    • Hardware Requirement: Harddisk size availability: Minimum 20GB • Software Requirement: Operating system: Windows 10 Docker for windows v 2.0.2 Visual Studio 2015 Dotnet v2.0 Requirement
  • 19.
    Git • Git isa free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Advantages of Git 1. Free and open source 2. Fast and small 3. Implicit backup 4. Security 5. No need of powerful hardware 6. Easier branching
  • 20.
    • Jenkins isa free and open source automation server. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. Advantages of Jenkins 1. Jenkins is open source and free 2. Jenkins comes with a wide range of plugins 3. Jenkins integrates and works with all major tools 4. Jenkins is flexible 5. Jenkins comes with a decent API suite 6. Jenkins is easy to use Jenkins
  • 21.
    • Ansible issimple open source IT engine which automates application deployment, intra service orchestration, cloud provisioning and many other IT tools. Advantages of Ansible 1. Free 2. Very simple to set up and use 3. Powerful 4. Flexible 5. Agentless 6. Efficient. Ansible
  • 22.
    • Docker iscomputer software used for Virtualization in order to have multiple Operating systems running on the same host. Unlike Hypervisors which are used for creating VM (Virtual machines), virtualization in Docker is performed on system-level in so-called Docker containers. • As you can see the difference in the image below, Docker containers run on top of the host's Operation system. This helps you to improves efficiency. Moreover, we can run more containers on the same infrastructure than we can run Virtual machines because containers use fewer resources. DOCKER
  • 23.
    • It enablesusers to define and provision a datacenter infrastructure using a high-level configuration language known as Hashicorp Configuration Language, or optionally JSON. Advantages of Terraform: 1. Immutable infrastructure 2. Declarative code style 3. Client-only architecture Terraform
  • 24.
    • Amazon WebServices (AWS) is a secure cloud services platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow. Advantages of AWS: 1. Zero CapEx 2. No-Commitment 3. Get Rid of Negotiations 4. Procurement 5. Pay Per Use 6. Security AWS