0% found this document useful (0 votes)
70 views70 pages

Lecture 1

This document provides an overview of a DevOps for Cloud course taught by Dr. Shreyas Rao at BITS Pilani, including details about the instructor's background and experience, module structure and topics, tools that will be used, and types of labs and demonstrations. The course aims to help students understand DevOps principles and gain proficiency in practices like continuous integration, delivery, and deployment in a cloud environment.

Uploaded by

Lavanya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views70 pages

Lecture 1

This document provides an overview of a DevOps for Cloud course taught by Dr. Shreyas Rao at BITS Pilani, including details about the instructor's background and experience, module structure and topics, tools that will be used, and types of labs and demonstrations. The course aims to help students understand DevOps principles and gain proficiency in practices like continuous integration, delivery, and deployment in a cloud environment.

Uploaded by

Lavanya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 70

DevOps for Cloud

BITS Pilani Dr. Shreyas Rao


Pilani Campus Associate Prof. (Off Campus), CSIS, BITS-Pilani
BITS Pilani
Pilani Campus

Course Name - DevOps for Cloud


Course Number - CC ZG507
Units - 5
Instructor Profile
Dr. Shreyas Rao
•18+ Years of Experience in IT, Teaching and Research

•Working as Associate Professor (Off Campus), Dept. of CSIS, BITS-Pilani, WILP

•B.E from VTU, M.S in Software Systems from BITS (WILP) and PhD from MAHE

•Worked as Business Analyst and Team Lead at SLK Software Services for 7+
years
•Previously worked in Presidency University and Sahyadri College, Mangaluru as
R&D Head, CSE
•Executed 10+ Consultancy projects

•COE member in AI&ML and COE member in Data Science (Govt. Sponsored for
1.2 Cr)

BITS Pilani, Pilani Campus


Instructor Profile

Consultancy
•ISRO-SAC (Ahmedabad) funded research project titled “Ontology Enabled
Disaster Management Web Service using Data Integration” as Technical
Consultant. Deployed in ISRO.

Collaboration with Dept. of Health Innovation, Kasturba Hospital, MAHE


•Telemedicine effectiveness during Covid Wave-I at Kasturba Hospital, Manipal

•Study on psychological implications of COVID-19 on Nursing professionals

•Covid prediction using Patient Discharge Data

*Published papers can be viewed at https://scholar.google.com.tw/citations?user=MFNrrlcAAAAJ&hl=en&oi=ao

BITS Pilani, Pilani Campus


Instructor Profile
Application Development
•Design and Development of AI enabled tool for juvenile self-transformation (Mental
Health domain, App Development, Deep Learning & NLP) for Dept. of Psychology,
Montfort College.
•SEEC application for MAHE University (Applied patent)
•Grievance Management Portal
•Designed and Developed ‘Dhriti’, a mental health resource Chabot that caters to
mental health needs of people during Covid, from the COE in AI&ML, SCEM. Bot is
released in Dakshina Kannada region of Karnataka which answers user queries in
English, Kannada and Hindi languages. Deployed on the Web and Facebook
Messenger channels, used by 5000+ users.

BITS Pilani, Pilani Campus


Student Profile

• Name

• Role in Organization (Ex: Developer, Tester, Architect etc.)

• Exposure to DevOps? Yes / No (If yes, mention Tool used)

• Experience in any Cloud platform: Yes / No (If Yes, mention Cloud Provider)

• Did you attend “Scalable Services” course last semester?

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

CC ZG507 – DevOps for Cloud


Lecture No. 1
BITS Pilani
Pilani Campus

Walkthrough of Course Handout


Course Objectives
No Objective

CO1 Understand the DevOps landscape with dimensions such as people, process,
and tools

CO2 Explore the principles of Cloud Native DevOps

CO3 Gain proficiency in GitOps practices such as Continuous integration,


Continuous Delivery, and Continuous Deployment

CO4 Familiarize with the tools and technologies employed in implementing Cloud
DevOps for effective application deployment and management

CO5 Understand the principles and practices involved in DataOps and MLOps

BITS Pilani, Pilani Campus


Module Structure
[14 modules]

Module Description
0 Foundational Concepts

1 Introduction to DevOps

2 Cloud Native Application

3 Source Code Management

4 Continuous Integration

5 Continuous Integration and Continuous Delivery using GitOps

6 Kubernetes

7 Continuous Deployment

BITS Pilani, Pilani Campus


Module Structure (contd…)

Module Description
8 IaC and Serverless CI/CD

9 Security in the DevOps lifecycle

10 Observability and Continuous Monitoring

11 MLOps

12 DataOps

13 Future trends in Cloud DevOps and Course Review

BITS Pilani, Pilani Campus


Contact Session wise Coverage

Session Coverage
CS01 Foundational Concepts and Introduction to DevOps
CS02 Introduction to DevOps (contd…)
CS03 Cloud Native Application
CS04 Source Code Management
CS05 Continuous Integration (Traditional approach)
CS06 Continuous Integration and Continuous Delivery using GitOps
CS07 Kubernetes
CS08 Kubernetes (contd…)
CS09 Continuous Deployment (Traditional approach)
CS10 Continuous Deployment using GitOps
CS11 IaC and Serverless CI/CD
CS12 Security in the DevOps lifecycle
CS13 Observability and Continuous Monitoring
CS14 MLOps
CS15 DataOps
CS16 Future trends in Cloud DevOps & Course Review

BITS Pilani, Pilani Campus


Tools

Tool name Purpose

GitHub Source Code Repository


GitHub Actions Continuous Integration with GitOps
ArgoCD Continuous Deployment with GitOps
AWS DevOps CodeBuild, CodeDeploy, CodePipeline,
AWS SAM Serverless Application Model to demonstrate IaC and
Serverless continuous deployment
AWS CloudWatch Continuous Monitoring
Docker Desktop Docker Engine
MiniKube Creating Kubernetes clusters
AWS SageMaker MLOps demonstration
Docker Desktop Public registries for deploying docker images
ECR (Elastic Container Registry)

BITS Pilani, Pilani Campus


Lab Details (Demo / Hands-On)

1. Demonstrate source code management using GIT


2. Demonstrate Continuous Integration using GitHub Actions for a Microservice
3. Demonstrate Continuous Deployment using ArgoCD and Minikube
4. Demonstrate Continuous Deployment using AWS Serverless Application Model (SAM)
5. Demonstrate Cloud Monitoring (Metrics, Logs, Alerts, and Traces) using AWS CloudWatch
6. Demonstrate setting up an Alert for AWS API Gateway using AWS CloudWatch Alarm
7. Experiments using Docker Desktop, DockerHub and ECR (Elastic Container Registry)
8. Experiments on Kubernetes using Minikube
9. Setting up Cluster and CI/CD on ECS

BITS Pilani, Pilani Campus


Evaluation

BITS Pilani, Pilani Campus


Importance of the Course

BITS Pilani, Pilani Campus


Shift in the last 6-7 years

1. Shift from Monolith to Microservices Architecture


2. Shift from On-premise to Cloud (AWS, Azure, GCP) for hosting applications
3. Shift from Virtual Machine based deployment to Docker/ Kubernetes based
deployment
4. Shift from Traditional CI/CD approaches (Monolith, Cloud-based or Cloud
enabled apps, VM based deployment) To Cloud-native CI/CD
[Microservices, Docker/ Kubernetes]
5. Imperative to Declarative mode

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

Foundational Concepts
Agenda [Recap/ Review]

1. Software Development Life Cycle


2. Process Models (before Agile)
3. Agile Process Model
4. Agile Methodologies – Scrum
5. TDD and FDD in Agile context

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

Software Development Life Cycle


(SDLC)
Typical Project Life-Cycle
(4 Phases)

Stages (Phases) I II III IV

BITS Pilani, Pilani Campus


Software Development Life
Cycle (SDLC)

BITS Pilani, Pilani Campus


Requirement Analysis

• Capture the requirements / features of the application


• Encounter majority of problems
• Find common language between people outside of IT and people in IT
(through SRS – Software Requirement Specification)
• Leads to different problems around terminology (Domain terminologies)
• Phase to capture the Business flow
• Iterative approach

BITS Pilani, Pilani Campus


Requirement Analysis

BITS Pilani, Pilani Campus


Design

• Design our flows in language that IT crowd can understand straight away
[UML - Visio]
• Overlaps with requirement analysis
• Desirable as diagrams are perfect middle language that we are looking for
• Minimal Value Product
• May include Storytelling via Prototypes

BITS Pilani, Pilani Campus


Development

• Software is built

• Build technical artifacts according to specification and design

• “Deliver early and deliver often” is mantra followed to minimize impact of wrong
specification

• No matter what we do, our software has to be modular so we can plug and play
modules in order to accommodate new requirements

BITS Pilani, Pilani Campus


Testing

• Finding defects in the application

• Unit testing, Integration testing, System testing, User Acceptance testing

• Manual or Automated testing

BITS Pilani, Pilani Campus


Release / Deploy

• Deliver software to production environment

• Enables developers to execute build-test-deploy cycle very quickly

• Deploy = Release

BITS Pilani, Pilani Campus


Maintenance

• There are two types of maintenance - Evolutive and Corrective

• Evolutive maintenance – evolve software by adding new functionalities or


improving business flows to suit business needs

• Corrective maintenance – One where we fix bugs

• Minimize latter but we can not totally avoid

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

Process Models (before Agile)


Software Process Models

Software Process (SP) is a framework for the activities, actions, and tasks that are
required to build high-quality software.

Typical activities include: Communication, Planning, Modelling, Construction and


Deployment

Prescriptive models are used as guidelines to organize and structure how software
developmental activities should be performed, and in what order.

The name 'prescriptive' is given because the model prescribes a set of activities,
actions, tasks, quality assurance and change the mechanism for every project.

BITS Pilani, Pilani Campus


The Waterfall Model

BITS Pilani, Pilani Campus


The Waterfall Model

• The waterfall model is also called as 'Linear sequential model'.


• In this model, each phase is fully completed before the beginning of the
next phase.
• This model is used for small projects.
• Assumes that requirements are defined and reasonably stable.
• Testing part starts only after the development is complete.

BITS Pilani, Pilani Campus


Incremental Model

BITS Pilani, Pilani Campus


Unified Process Model

• The Unified Approach (UA) is a methodology for software development that is


proposed by the author Ali Bahrami (1999).
• The UA, based on methodologies by Booch, Rumbaugh, and Jacobson, tries
to combine the best practices, processed, and guidelines along with the
Object Management Group's Unified Modeling Language (UML).

BITS Pilani, Pilani Campus


Unified Process Model

BITS Pilani, Pilani Campus


UP phases

October 10, 2020 SEWI ZG512 Object Oriented Analysis and Design
BITS Pilani, Pilani Campus
BITS Pilani
Pilani Campus

Agile Process Model


Why Agile?

• The project will produce the wrong product [after long months / year effort]
• The project will produce a product of inferior quality [not meeting expectations]
• The project will be late
• We’ll have to work 80 hour weeks
• We’ll have to break commitments

Storm called Agile

According to VersionOne's State of Agile Report in 2017 says 94% of organizations


practice Agile, and in 2018 it reported 97% organizations practice agile development
methods

BITS Pilani, Pilani Campus


Agile Background
• Agile was formally launched in 2001
• 17 technologists drafted the Agile Manifesto

BITS Pilani, Pilani Campus


The Manifesto for
Agile Software Development
“We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
That is, while there is value in the items on the right, we value the
items on the left more.”

Kent Beck et al

BITS Pilani, Pilani Campus


12 Principles of Agile Methodology

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software
2. Welcome changing requirements, even late in development. Agile processes harness change for the
customer's competitive advantage
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference
to the shorter timescale
4. Business people and developers must work together daily throughout the project
5. Build projects around motivated individuals. Give them the environment and support they need, and
trust them to get the job done
6. The most efficient and effective method of conveying information to and within a development team is
face-to-face conversation
7. Working software is the primary measure of progress
8. Agile processes promote sustainable development. The sponsors, developers, and users should be
able to maintain a constant pace indefinitely
9. Continuous attention to technical excellence and good design enhances agility
10. Simplicity--the art of maximizing the amount of work not done--is essential
11. The best architectures, requirements, and designs emerge from self-organizing teams
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly

*self-organizing team -> cross-functional team, collaboration (dev, test, ops), ownership, focus on
continuous delivery

BITS Pilani, Pilani Campus


Importance of Agile

Being Agile
•Effective (rapid and
adaptive) response to
change
•Effective
communication among
all stakeholders
•Drawing the customer
onto the team
•Organizing a team so
that it is in control of
the work performed

BITS Pilani, Pilani Campus


How Agile actually works

https://
www.youtube.com/watch?v=1iccpf2eN1Q

BITS Pilani, Pilani Campus


Agile Methodologies

• Scrum
• Extreme Programming [XP]
• Test driven Development [TDD]
• Feature Driven Development [FDD]
• Behavior-driven development [BDD]

BITS Pilani, Pilani Campus


SCRUM

BITS Pilani, Pilani Campus


Scrum Terminologies
1. Product Backlog
– Prioritized list of features – enhancements or bug fixes

2. Sprint Planning
– Product Owner and Scrum Master select subset of items from product backlog to work for the
sprint (~2-4 weeks).
– Team commits to deliver the potentially shippable product increment

3. Sprint Backlog
– Tasks / Timelines for the current sprint are estimated and team commits

4. Daily Stand-ups
– Discuss progress, challenges and plans for the day
– Answer three qns -> What did I do yesterday, What will I do today. Any impediments for my
progress?

5. Sprint Review
– At the end of sprint, team will showcase work to stakeholders and feedback is gathered

BITS Pilani, Pilani Campus


Scrum Team
1. Product Owner
– Prioritizes product backlog
– Represents interest of stakeholders
– Decides what features are developed in Sprint

2. Scrum Master
– Facilitates the scrum process
– Helps team remove impediments
– Ensures that scrum practices are followed

3. Development Team
– Cross- functional and self-organizing
– Usually consists of developers, testers, designers
– Commits to completing tasks in the Sprint Backlog

4. Stakeholders
– Anyone with an interest in the project, including customers, end-users, and managers
– Provides feedback during Sprint Review

BITS Pilani, Pilani Campus


Scrum - Team

https://jessefewell.com/wp-content/uploads/2014/07/scrum-responsibilities-raci.png

BITS Pilani, Pilani Campus


Test Driven Development

• Test-Driven Development (TDD) is a software development


approach where tests are written before the actual code.
• The process involves a cycle of writing a test, writing the minimum
amount of code to pass the test, and then refactoring the code to
improve its structure without changing its behavior.

BITS Pilani, Pilani Campus


Test Driven Development

BITS Pilani, Pilani Campus


Feature Driven
Development
• FDD shares some common principles with Agile methodologies, such as
- Iterative development
- Incremental delivery
- Adaptability to change
• FDD can be considered as a framework that is compatible with Agile
principles.

BITS Pilani, Pilani Campus


Feature Driven
Development
• Originally proposed by Peter Coad et al
• FDD - distinguishing features
• Emphasis is on defining “features”
• a feature “is a client-valued function that can be implemented in
two weeks or less.”
• Feature is a small block of deliverable functionality
• Uses a feature template
<action> the <result> <by | for | of | to> a(n) <object>
Ex 1: Add the Product to shopping cart
Ex 2: Display the technical specifications of the product
Ex 3: Store the shipping information for the customer

BITS Pilani, Pilani Campus


Feature Driven
Development
Design walkthrough, Design Inspection,
Code walkthrough, Code inspection

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

Introduction to DevOps
Need for DevOps

Achieve Faster Deployment Cycles


(Average 500+ micro deployments per day)

BITS Pilani, Pilani Campus


Need for DevOps
• Development and Deployment Needs of Latest Software Apps
• Enable Concurrent Development Activities (Across the Globe)
Facebook Live Video Center (20k+ developers work on
FB)
Facebook Live Video Center (20k+ developers
work on FB)

BITS Pilani, Pilani Campus


Need for DevOps
Accommodate diverse Developer Languages, Tools and Technologies
(Ex: Instagram is built using Python, React Native, JavaScript, Django,
PostGreSQL, Objective-C, Nginx Web Server, Redis in-memory database etc.)

BITS Pilani, Pilani Campus


Need for DevOps

Blame Game

BITS Pilani, Pilani Campus


Need for DevOps
Where is Operations?
•Development is All Well (Waterfall, Agile)
•Where is Operations?

BITS Pilani, Pilani Campus


Traditional Software Development
Life Cycle (SDLC)

BITS Pilani, Pilani Campus


Traditional SDLC - Problems

 Operation and Development teams were working in an isolated environment


 Not suitable for modern Web and Mobile App needs
 Doesn’t support concurrent development and operations (production)
 Doesn’t support multiple languages, tools and technologies to co-exist
 Doesn’t support faster deployment cycles

BITS Pilani, Pilani Campus


Common Release Antipatterns

Deploying Software Manually


•Extensive and detailed documentation
•Reliance on manual testing
•Frequent calls to the development team to explain
•Frequent corrections to the release process
•Sitting bleary-eyed in front of a monitor at 2 A.M

BITS Pilani, Pilani Campus


Common Release Antipatterns

Deploying to a Production-like Environment Only after


Development Is Complete
•Tester tested the system on development machines
•Releasing into staging is the first time that operations people interact with the new
release
•Who Assembles? The Development Team
•Collaboration between Development and Operations?

BITS Pilani, Pilani Campus


Common Release Antipatterns

Manual Configuration Management of Production


Environments
•Difference in Deployment to Stage and Production
•Different host behave differently
•Long time to prepare an environment
•Cannot step back to an earlier configuration of your system
•Modification to Configuration Directly

BITS Pilani, Pilani Campus


DevOps - Definition

1. DevOps is the process of alignment of IT Development and Maintenance


Operations with better and improved communication.

2. Microsoft defines DevOps as “Union of People, Process and Products to enable


continuous delivery of value to the customers”
People -> Culture
Process -> DevOps Methodology
Products -> Tools

BITS Pilani, Pilani Campus


Evolution of DevOps
History
•Back in 2007
•Patrick Debois [Belgian Engineer]
•Initially it was “Agile Infrastructure” but later coined the phrase DevOps
•Velocity conference in 2008
•Many tangential DevOps Initiative
• WinOps (implement DevOps for Windows centric ecosystem)
• DevSecOps (integrates security practices in DevOps pipeline)
• BizDevOps (Automation of business processes + Dev + Ops integration)
• ….

BITS Pilani, Pilani Campus


DevOps – Generic Methodology

BITS Pilani, Pilani Campus


Team Formation

BITS Pilani, Pilani Campus


Thank
You!

You might also like