- To Introduce DevOps culture, tools and processes to use practically for organization and encourage effective collaboration to help individual contributors from different back grounds to work together productively.
- To Study DevOps Tools to Manage source code, build code, Deployment of the code and Monitoring deployed code.
- To Study the architecture that have the largest effects on Continuous Delivery and DevOps.
- To get acquainted with DevOps Tools and Technologies that helps to automate the software development process.
Course Outcomes :
At the end of the course, students will be able to
- Describes key concepts, principles of DevOps and how DevOps fits in the wider world of Agile systems development.
- List and Illustrate the business benefits of DevOps, managing sourcecode, buildcode, Deploying the code, Monitoring deployed code and continuous delivery.
- Describes aspects of software architecture while working with DevOps.
- Use of DevOps tools for developing quality software and deploying that software’s easily, frequently, and reliably.
SECTION - I
Chapter 1 : Introduction to Devops(03)
Chapter 2 : Collaboration: Individuals Working Together and Hiring :Choosing Individuals(06)
Introduction, Individual Differences and Backgrounds, Individual Growth, Negotiation Styles, Communication, Trust and Empathy. Determining your Hiring Needs, Sourcing, Interviewing, Onboarding, Retention, Case Studies.
Chapter 3: Tools : Selection and Implementation(05)
Introduction and Audience, Why Tools Matter, Why Tools Don’t Matter, Tool Ecosystem Overview, Auditing your Tool Ecosystem, Optimization: Selection and Elimination of Tools
Chapter 4: How DevOps Affects Architecture(08)
Introducing software architecture, the monolithic scenario, Architecture rules of thumb, the separation of concerns, The principle of cohesion, Coupling, Back to the monolithic scenario, A practical example, Three-tier systems, The presentation tier, The logic tier, The data tier, Handling database migrations, Hello world in Liquibase, The change logfile, The pom.xmlfile, Manual installation, Micro services.
SECTION - II
Chapter 5 : Everything is Code(06)
The need for source code control, the history of source code management, Roles and code, which source code management system? source code management system migrations, choosing a branching strategy, branching problem areas, Artifact version naming, choosing a client, setting up a basic Git server, shared authentication, Hosted Git servers, Large binary files, Trying out different Git server implementations, Docker intermission, Gerrit, The pull request model, GitLab.
Chapter 6 : Building the Code(06)
Introduction to build code, many faces of build systems, The Jenkins build server, Managing build dependencies, The final artifact, Cheating with FPM, Continuous Integration, Continuous Delivery, Jenkins plugins, The host server, Build slaves, Software on the host, Triggers, Job chaining and build pipelines, A look at the Jenkins file system layout, Build servers and infrastructure as code, Build phases, Alternative build servers, Alternative build servers, Collating quality measures, About build status visualization,Taking build errors seriously, Robustness
Chapter 7 : Deploying the Code(06)
Introduction to deployment systems, Configuring the base OS, delivering packages to a system, Virtualization stacks, executing code on the client, The Puppet master and Puppet agents, Ansible, PalletOps, deploying with Chef, deploying with SaltStack, Deploying with Docker.
Chapter 8 : Monitoring the Code(05)
Nagios, Munin, Ganglia, Graphite, Log handling
Text Books :
- Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale, Jennifer Davis & Katherine Daniels, OREILLY.
- Practical Devops: Harness the power of DevOps to boost your skill set and make your IT organization perform better. Joakim Veronam PACKT publishing Open source community experienced is tilled, Mumbai.
- The DevOps2.1 ToolKit : Docker Swarm, Building, Testing, Deploying, and Monitoring services inside Docker Swarm clusters by Viktor Farcic Packt Birmingham, Mumbai.
- THE DEVOPS HANDBOOK : How to Create World-Class Agility, Reliability, &Security in Technology Organizations, By Gene Kim, Jez Humble, Patrick Debois, and John Wills
Internal Continuous Assessment (ICA):
ICA shall include the following :
Practical Assignments (minimum 10 to be implemented):
- Setup the HTTP Git Server for Private Projects.
- Implement GitHub operations.
- Create a Repository
- Create a Branch
- Make a commit
- Openand merge Pull request
- Install Gerrit and SetUp SSH Keysin Gerrit, Customize the configuration variables to add your personal information (name and email).
- Implement How to Submit a Patch Using Gerrit commands.
- Create a new project and Fork a Project using GitLab.
- Implement following operation using GitLab
- Create a Branch
- Add a File
- GitLab-Rebase Operation
- Squashing Commits
- Automate Deployment using Jenkins plugin "Deploy to container Plugin".
- Use Jenkins “Deploy to container Plugin” and "build pipeline plugin" to implement continuous deployment and delivery of a project.
- Create Puppet Master Server.
- Automate application using Ansible Deployment Tool.
- Build a Web server Docker image which can be used to build containers.
- Create Monitoring Service in Nagios.
- Install Ganglia Monitoring Server and Create Monitoring Service from the Ganglia dashboard.