Harokopio University
School: School of Digital Technology
Department: Informatics and Telematics
Program: Undergraduate Programme

Basic Notions and Tools for DevOps

Semester: 7 ECTS: 5.0 Elective Erasmus

General

Code: ΕΠ42

Language: Greek

Delivery: Face-to-face

Prerequisites: Operating Systems
Distributed Systems
Computer networks
Databases

Workload

  • Lectures: 39.0 hours
  • Lab: 0.0 hours
  • Study: 86.0 hours
  • Project: 0.0 hours

Course Content

Topic Unit 1: Refreshing prerequisite knowledge
-Remote connection and configuration (ssh)
- Basic linux commands and system administration (shell scripts and system administration) - service management
-Summary of python programming language

Topic Unit 2: Code Repositories

Thematic Unit 3: Automation
- Introduction to Ansible - environment preparation - inventory
-The most common ansible modules
- Ansible playbooks
-Conditions and error handling
-Vault
- Vagrant
-Ansible galaxy
-Example: installing a python web application using ansible

Thematic Unit 4: Virtualization and Containers
-Introduction to virtualization
-Containers and their management
-Creation of images
-Container filesystems
- Networking
-Volumes

Thematic Module 5: Automating the execution of containers
-Docker-compose
-Usage example: containerize a python application

Thematic Module 6: Continuous Integration
-Introduction to CI/CD
-Testing
-Installing and configuring jenkins
-Jenkins association with code repository
-Build and test python container image

Topic Unit 7: Continuous Delivery
-Deploy
-notifications/alerting

Topic Unit 8: Kubernetes
- Containers execution environments
-Basic entities in kubernetes
- Networking
-Deploy
-Monitoring

Thematic Unit 9: Microservices
-Advantages disadvantages
- Application gateways
-Identity Management

Thematic Unit 10: Security
-Oauth2
-Keycloak

Learning Outcomes

DevOps is the cornerstone of modern software development teams, but also the modern way of developing software in enterprise environments. It is an innovative process, which combines the skills of software development teams (developers) and operations (IT operations), with the aim of improving collaboration and productivity, through the automation of infrastructures (infrastructure), workflows (workflows) , and the continuous monitoring of the performance of the application under development. Unlike the monolithic and now obsolete software development model followed earlier, with the introduction of DevOps, software is programmed in small parts, which are integrated, tested, monitored and developed in parallel, saving time and money, but also ensuring their interoperability
Upon successful completion of the course, the student will be able to manage and automate several software installation/configuration processes as well as the preparation of the infrastructure and services that will support modern information systems.

Skills

- Adaptation to new situations, Teamwork, Promotion of free, creative and inductive thinking