Faktori razvoja web aplikacija
doc. dr. sc. Vedran Miletić, vmiletic@inf.uniri.hr, vedran.miletic.net
Fakultet informatike i digitalnih tehnologija Sveučilišta u Rijeci, akademska 2021./2022. godina
Svakodnevne isprike
Izvor: Everyday Excuses (MonkeyUser, 22nd October 2019)
Web sjedište The Twelve-Factor App
- skup pravila za razvoj web aplikacija namijenjenih za izvođenje u oblaku
- knjiga na engleskom jeziku namijenjena za čitanje online
- autor izvorne verzije Adam Wiggins
- sadržaj danas održava Heroku (pružatelj platformi kao usluga u oblaku)
- sadržaj preveden na brojne jezike, ali ne i na hrvatski
- ima 180k pogleda mjesečno
1. faktor: Baza izvornog koda (Codebase)
🙋 Pitanje: Slijede li ovaj faktor:
- Moodle (MoodleNet, Merlin, loomen itd.)
- WordPress (WordPress.com, Sveučilište u Rijeci, Njuškalo blog, Novi list itd.)
- SofaScore
- IonicaBizau/react-todo-app
- Turris OS (How to try future releases of Turris OS?)
- Facebook (Facebook, Facebook Beta)
- studentski projekti
2. faktor: Zavisnosti (Dependencies, 1/2)
Sustavi upravljanja zavisnostima:
- cpanminus za Perl
- RubyGems za Ruby
- pip za Python
- Composer za PHP
- npm i Yarn za Node.js
- Maven za Javu
- NuGet za C#
- Hex za Elixir
- Cargo za Rust
- itd.
2. faktor: Zavisnosti (2/2)
🙋 Pitanje: Slijede li ovaj faktor:
- Flarum (composer.json)
- D3 (package.json)
- Electron (package.json)
- Elixir Companies (mix.exs)
- alexurquhart/flask-webapp (requirements.txt)
- studentski projekti
3. faktor: Konfiguracija (Configuration)
🙋 Pitanje: Slijede li ovaj faktor:
- Moodle (konfiguracija i primjer konfiguracijske datoteke)
- Odoo (konfiguracija)
- Trac (konfiguracija)
- Django (konfiguracija)
- Laravel (primjer konfiguracijske datoteke)
- Ruby on Rails (konfiguracija)
- studentski projekti
4. faktor: Prateće usluge (Backing services)
🙋 Pitanje: Slijede li ovaj faktor:
- Moodle (konfiguracija i primjer konfiguracijske datoteke)
- Odoo (konfiguracija)
- Trac (konfiguracija)
- Django (konfiguracija)
- Laravel (primjer konfiguracijske datoteke)
- Ruby on Rails (konfiguracija)
- studentski projekti
5. faktor: Izgradnja, objava, pokretanje (Build, release, run)
🙋 Pitanje: Slijede li ovaj faktor:
6. faktor: Procesi (Processes)
🙋 Pitanje: Slijede li ovaj faktor:
- neke od ranije spomenutih web aplikacija (što biste gledali?)
- studentski projekti
7. faktor: Povezivanje na vrata (Port binding)
🙋 Pitanje: Slijede li ovaj faktor:
- Canvas LMS (Production Start)
- Joomla! (Installing Joomla)
- Ghost (How to install Ghost)
- studentski projekti
8. faktor: Konkurentnost (Concurrency)
🙋 Pitanje: Slijede li ovaj faktor:
- Jitsi Meet (Using Jitsi Meet for self-hosted video conferencing)
- MediaWiki (Wikipedia webrequest flow)
- OpenStreetMap (Component overview)
- studentski projekti
9. faktor: Jednokratna upotreba (Disposability)
🙋 Pitanje: Slijede li ovaj faktor:
- WordPress (Where Does WordPress Store Images on Your Site?)
- Moodle (File Storage Plugintype)
- studentski projekti
Mjeri dvaput, reži jednom
Izvor: Measure Twice, Cut Once (MonkeyUser, 15th June 2021)
10. faktor: Paritet razvoja/produkcije (Dev/prod parity)
🙋 Pitanje: Slijede li ovaj faktor:
- phpBB (phpBB Demo)
- Discourse (Demo)
- Facebook (Facebook Beta)
- studentski projekti
11. faktor: Zapisnici (Logs)
🙋 Pitanje: Slijede li ovaj faktor:
- Moodle (Moodle)
- Odoo (CLI: odoo-bin)
- studentski projekti
12. faktor: Administrativni procesi (Administrativni procesi)
🙋 Pitanje: Slijede li ovaj faktor:
- Phabricator
- Canvas LMS
- studentski projekti
Umjesto zaključka
- za samostalno istraživanje: Kevin Hoffman, Beyond the Twelve-Factor App: Exploring the DNA of Highly Scalable, Resilient Cloud Applications, O'Reilly, 2016.
- dvanaestofaktorske aplikacije => oblaku urođene aplikacije (Cloud Native Computing Foundation (CNCF))
Author: Vedran Miletić