მიმართულება – DevOps
ხელმძღვანელი: ერეკლე მაღრაძე
სასწავლო კურსის მოცულობა:(ხანგრძლივობა, დღე, საათი) – 5 თვე, შაბათი 16:00 საათი
სასწავლო კურსის მოთხოვნები:
- Java-ზე ან პითონზე პროგრამირების პრაქტიკული გამოცდილება;
- ლინუქსის საწყისების ცოდნა: სერვისების კონფიგურაცია და მარტივი სკრიპტები;
- ქსელებისა და განაწილებული სისტემებისა და გამოთვლების საფუძვლების ცოდნა.
კურსი განკუთვნილია დამწყები დეველოპერებისთვის, ვისაც აქვს პროგრამირების გარკვეული გამოცდილება და სურს უახლესი ტექნოლოგიების შესწავლა პროცესებისა და მონაცემთა მართვის ავტომატიზაციის მიმართულებით.
სწავლების ფორმატი (სწავლების მეთოდი): სალექციო მეცადინეობა (თეორიული მასალის გაცნობა); პრაქტიკული მეცადინეობა
ასაკობრივი კატეგორია: 18 წელს ზემოთ
კურსის ძირითადი თემები:
- DevOps–ის მნიშვნელობა თანამედროვე საინფორმაციო ტექნოლოგიებში, პროცესების ავტომატიზაცია;
- პითონის საფუძვლები, შესავალი Flask-სა და FastAPI პაკეტებში;
- Git-ზე დაფუძნებული სისტემების გამოყენება;
- აპლიკაციის კონტეინერიზაცია Docker-ისა და Podman-ის გამოყენებით;
- DevOps მონაცემთა ბაზებისთვის (Liquibase);
- კონტეინერების მართვის ინსტრუმენტები (Docker Swarm, K8S);
- K8S ოპერაციები;
- პროგრამული უზრუნველყოფის მონიტორინგი, უწყვეტი ინტეგრაცია და ტესტირება.
მეცადინეობების განრიგი და თემატიკა:
[Dev, Cloud, Data]Ops კულტურა და კონცეფციები
საერთო ლექცია (3სთ)
კოდის ვერსიის კონტროლის სისტემა
სასურველია თუ პერსონალურ კომპიუტერზე გამართავთ კოდის ვერსიონირების სისტემა git-ს https://git-scm.com
საერთო ლექცია (3სთ)
კონტეინერიზაციის ტექნოლოგიები
სასურველია თუ პერსონალურ კომპიუტერზე გამართავთ დოკერ კონტეინერიზაციის პლატფორმას https://www.docker.com/products/personal
საერთო ლექცია (3სთ)
ლინუქს ოპერაციული სისტემის ძირითადი ბრძანებები
- Digital Ocean-ზე ანგარიშის შექმნა და ლინუქს გარემოსთან მუშაობა, https://www.katacoda.com/ თან მუშაობა
საერთო ლექცია (3სთ)
პითონის ენის საფუძვლები (ცვლადის ტიპები, ძირითადი ოპერაციები და ოპერატორები)
1 ლექცია (3სთ)
მონაცემთა სტრუქტურები პითონში
1 ლექცია (3სთ)
ობიექტზე ორიენტირებული პითონი 1
1 ლექცია (3სთ)
ცოდნის შუალედური შემოწმება. ობიექტზე ორიენტირებული პითონი 2
1 ლექცია (3სთ)
პითონის კოდის კომპონენტების ტესტირება და პაკეტირება
1 ლექცია (3სთ)
API კონცეფცია და Flask ფრეიმვორქი 1
1 ლექცია (3სთ)
API კონცეფცია და Flask ფრეიმვორქი 2
1 ლექცია (3სთ)
API კონცეფცია და Flask ფრეიმვორქი 3
1 ლექცია (3სთ)
- რა არის ტესტირება;
- ტესტირების ძირითადი მიზნები;ტესტირება და დებაგინგი;
- რატომ არის ტესტირება მნიშვნელოვანი
- ხარვეზები და მათი გამომწვევი მიზეზები;
- ტესტირების პროცესი და აქტივობები;
- ტესტირების ფსიქოლოგია (ტესტერისა და დეველოპერის აზროვნება/mindsets);
- პროგრამული უზრუნველყოფის შემუშავების სასიცოცხლო ციკლის მოდელები(SDLC) და ტესტირება ამ მოდელებში,ტესტირების დონეები და ტიპები, მათი განხორციელება SDLC -ში
1 ლექცია (3სთ)
- Black-Box ტესტირება და მისი ტექნიკები;
- White-Box ტესტირება და მისი ტექნიკები;
- Independent Testing, ტესტის მონიტორინგი და კონტროლი, კონფიგურაციის მენეჯმენტი;
- Entry Criteria and Exit Criteria (Definition of Ready and Definition of Done), რისკები და ტესტირება (პროდუქტის და პროექტის რისკები);
- ტესტირების ხელსაწყოები და მათი კლასიფიკაცია
1 ლექცია (3სთ)
- არტიფაქტების რეპოზიტორია OSS Nexus, მისი გამართვა და არტიფაქტების მართვა, გაცნობა გიტლაბთან.
- სატესტო Pipeline-ის შექმნა და გაშვება გიტლაბის და OSS Nexus-ის გამოყენებით
1 ლექცია (3სთ)
მრავალ კონტეინერიანი სისტემებთან მუშაობა (docker-compose)
1 ლექცია (3სთ)
ცოდნის შუალედური შეფასება/SonarQube
1 ლექცია (3სთ)
- K8S, პოდები, რეპლიკაცია და სხვა კონტროლერები,
- სერვისები, მონაცემთა სანახები, ConfigMap-ები და Secret-ები,
- წვდომა პოდებზე, აპლიკაციების განახლება IaC პრინციპების გამოყენებთ,
- StatefulSets, კუბერნეტესის კლასტერები ღრუბლოვან სისტემებში
1 ლექცია (3სთ)
- K8S-ის უსაფრთხოება (API, კლასტერის ნოდებისა და ქსელის);
- პოდების გამოთვლითი რესურსების მართვა,
- კლასტერის ნოდებისა და პოდების ავტომატურის მასშტაბირება;
- აპლიკაციების დანერგვის საუკეთესო მიდგომები, მონიტორინგის სისტემები
1 ლექცია (3სთ)
- DevOps სრული Pipeline-ის გამართვა Python (Flask) აპლიკაციის გამოყენებთ, GitLab-ის, OSS Nexus-ის და კუბერნეტესის გამოყენებით;
- აპლიკაციის სტრეს ტესტირება და ავტომატური მასშტაბირების დაკვირვება
1 ლექცია (3სთ)