Basic Notions and Tools for DevOps
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
