SlideShare a Scribd company logo
1 of 22
| |
Date: 24 Sep 2017 Presented by: Miloš Marčeta (marcetam@marcetam.net)
case study
telegraf.rs
One of the biggest news portals in Serbia and region
Started on WordPress
Project started ~5 years ago
900,000+ posts in wp_posts table
2M+ rows in wp_postmeta table
200+ Gb of images
1
telegraf.rs
One of the biggest news portals in Serbia and region
It was running on custom made WordPress theme
Using custom made WordPress plugins
Serving html pages for browsers and XML content for mobile applications
Running on multiple custom made server setup to improve performance and security
~ 95% of the traffic goes to www.telegraf.rs
~ 5% goes to other subdomains (topspeed.telegraf.rs, ljubimci.telegraf.rs etc.)
2
Data Pressure
3
Every time in history when technology evolved people saw new opportunity.
New opportunity generated new data.
Data pressure is measured by the efficiency of the systems that are available to process that
data.
When the amount of data exceed the ability of the system to process the data in reasonable
time or at reasonable cost that becomes opportunity for new technology and that cycle repeats
all the time.
What is Data Pressure ?
Database Evolution
4
Motivation ? cost & scale
5
Important tips
- Infinitely Scalable (Sharding key etc.)
- Microservices Architecture
- Instant Response (Heavy Lifting Queues)
- Time Complexity (Big O)
- Hot vs Cold data
- Write Complexity for Read Performance (activity stream, news timeline etc.)
- Read Complexity for Write Performance (vote, like etc.)
6
TimeComplexity
7
noSQL but which lang ?
8
Node.js and PHP differ in their approach to concurrency, with Node.js using a non-blocking
event loop (running in a single process) and the standard PHP Zend runtime using a blocking
process.
multiple PHP processes are often launched from the web server to be able to keep serving web
requests. In Apache, you can set the maximum number of PHP processes allowed to run, and
this works fine for many types of web applications.
When the work being done in these processes tends to be long(er)-running, the server can
quickly run out of available PHP processes. This will cause the HTTP request response times to
increase, perhaps even to the point of requests timing out.
Node.js or Go
9
Technology stack
10
Migration Requirements
11
Make similar dashboard so that people don't need training
Support WordPress shortcodes in NodeJS
Migrate existing MySQL database tables to noSQL collections (data aggregation)
Execute migration supporting dashboard and front site of the page
Replace XML with JSON for mobile applications
Application Architecture
12
Telegraf.rs vs Blic.rs
13
www.telegraf.rs response time (server side cached)
www.blic.rs response time
www.telegraf.rs response time (bypass server side cache)
www.blic.rs response time (bypass server side cache)
root# curl -so /dev/null -w '%{time_total}n' http://www.telegraf.rs
0.354
root# curl -so /dev/null -w '%{time_total}n' http://www.blic.rs
0.633
root# curl -so /dev/null -w '%{time_total}n' http://www.telegraf.rs?cache=skip
0.548
root# curl -so /dev/null -w '%{time_total}n‘ http://www.blic.rs?cache=skip
1.596
Telegraf.rs vs Blic.rs
14
SBB (over WiFi)
MTS (4G)
Telenor (4G)
Telegraf.rs vs Blic.rs
15
SBB (over WiFi)
MTS (4G)
Telenor (4G)
Telegraf.rs vs Blic.rs
16
SBB (over WiFi)
MTS (4G)
Telenor (4G)
WordPress & FURPS
From experience and our perspective
Functionality - Capability (Size & Generality of Feature Set), Reusability (Compatibility,
Interoperability, Portability), Security (Safety & Exploitability)
Usability (UX) - Human Factors, Aesthetics, Consistency, Documentation, Responsiveness
Reliability - Availability (Failure Frequency (Robustness/Durability/Resilience), Failure Extent &
Time-Length (Recoverability/Survivability)), Predictability (Stability), Accuracy
(Frequency/Severity of Error)
Performance - Speed, Efficiency, Resource Consumption (power, ram, cache, etc.), Throughput,
Capacity, Scalability
Supportability - Serviceability, Maintainability, Sustainability, Repair Speed)
17
Telegraf CMS & FURPS
From experience and our perspective
Functionality - Capability (Size & Generality of Feature Set), Reusability (Compatibility,
Interoperability, Portability), Security (Safety & Exploitability)
Usability (UX) - Human Factors, Aesthetics, Consistency, Documentation, Responsiveness
Reliability - Availability (Failure Frequency (Robustness/Durability/Resilience), Failure Extent &
Time-Length (Recoverability/Survivability)), Predictability (Stability), Accuracy
(Frequency/Severity of Error)
Performance - Speed, Efficiency, Resource Consumption (power, ram, cache, etc.), Throughput,
Capacity, Scalability
Supportability
18
Handling Images
Handling large number of images
Responsive themes demand multiple thumbnail sizes for every image position ( 3 x 5 )
300 images / posts per day x 15 is 4500 files per day.
Large number of files in a single directory is slowing down filesystem a lot
Changing theme becomes a very difficult task because of thumbnail regeneration
High-peformance and secure on demand thumbnail generation is the only choice
19
Telegraf CMS summary
Still in beta, getting stable soon.
Telegraf CMS is built for ourselves. In-House.
Once loaded , dashboard is fast like a hell
Still have to develop/finetune some functionalities
We don’t have the name … yet 
It’s not for sale – yet 
If you have less than 10.000 visitors in real-time you don’t need it.
20
Developers' mDay 2017. - Miloš Marčeta Telegraf.rs

More Related Content

Similar to Developers' mDay 2017. - Miloš Marčeta Telegraf.rs

Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)Ajibola Aiyedogbon
 
Tuenti teams - Php Conference
Tuenti teams - Php ConferenceTuenti teams - Php Conference
Tuenti teams - Php ConferenceGuille -bisho-
 
Monitoring_and_Managing_Peopelsoft_Resources-Namrata Zalewski
Monitoring_and_Managing_Peopelsoft_Resources-Namrata ZalewskiMonitoring_and_Managing_Peopelsoft_Resources-Namrata Zalewski
Monitoring_and_Managing_Peopelsoft_Resources-Namrata ZalewskiNamrata Zalewski
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsRick Hightower
 
Scalable Apache for Beginners
Scalable Apache for BeginnersScalable Apache for Beginners
Scalable Apache for Beginnerswebhostingguy
 
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...GeeksLab Odessa
 
Alfresco WCM For High Scalability
Alfresco WCM For High ScalabilityAlfresco WCM For High Scalability
Alfresco WCM For High ScalabilityAlfresco Software
 
Mis college over cloud
Mis college over cloudMis college over cloud
Mis college over cloudSantosh Pawar
 
Fast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAXFast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAXIJERA Editor
 
Bodleian Library's DAMS system
Bodleian Library's DAMS systemBodleian Library's DAMS system
Bodleian Library's DAMS systembenosteen
 
grid mining
grid mininggrid mining
grid miningARNOLD
 
Azure Serrvices Platform Pro Dev Partners
Azure Serrvices Platform Pro Dev PartnersAzure Serrvices Platform Pro Dev Partners
Azure Serrvices Platform Pro Dev PartnersJohn Stame
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseCecile Le Pape
 
Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systemshyun soomyung
 
CHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOURCHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOURcsk selva
 
Tuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working togetherTuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working togetherTuenti
 
Ease of full Stack Development
Ease of full Stack DevelopmentEase of full Stack Development
Ease of full Stack DevelopmentIRJET Journal
 
HTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_ENHTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_ENBernd Thomsen
 

Similar to Developers' mDay 2017. - Miloš Marčeta Telegraf.rs (20)

Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)
 
Tuenti teams - Php Conference
Tuenti teams - Php ConferenceTuenti teams - Php Conference
Tuenti teams - Php Conference
 
Monitoring_and_Managing_Peopelsoft_Resources-Namrata Zalewski
Monitoring_and_Managing_Peopelsoft_Resources-Namrata ZalewskiMonitoring_and_Managing_Peopelsoft_Resources-Namrata Zalewski
Monitoring_and_Managing_Peopelsoft_Resources-Namrata Zalewski
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulations
 
Scalable Apache for Beginners
Scalable Apache for BeginnersScalable Apache for Beginners
Scalable Apache for Beginners
 
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
 
Alfresco WCM For High Scalability
Alfresco WCM For High ScalabilityAlfresco WCM For High Scalability
Alfresco WCM For High Scalability
 
Mis college over cloud
Mis college over cloudMis college over cloud
Mis college over cloud
 
Fast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAXFast Synchronization In IVR Using REST API For HTML5 And AJAX
Fast Synchronization In IVR Using REST API For HTML5 And AJAX
 
Bodleian Library's DAMS system
Bodleian Library's DAMS systemBodleian Library's DAMS system
Bodleian Library's DAMS system
 
grid mining
grid mininggrid mining
grid mining
 
The C10k Problem
The C10k ProblemThe C10k Problem
The C10k Problem
 
Azure Serrvices Platform Pro Dev Partners
Azure Serrvices Platform Pro Dev PartnersAzure Serrvices Platform Pro Dev Partners
Azure Serrvices Platform Pro Dev Partners
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and Couchbase
 
Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systems
 
CHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOURCHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOUR
 
Tuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working togetherTuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working together
 
Intro to web dev
Intro to web devIntro to web dev
Intro to web dev
 
Ease of full Stack Development
Ease of full Stack DevelopmentEase of full Stack Development
Ease of full Stack Development
 
HTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_ENHTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_EN
 

More from mCloud

Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...mCloud
 
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...mCloud
 
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...mCloud
 
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source pričaDevelopers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source pričamCloud
 
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel AwesomeDevelopers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel AwesomemCloud
 
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta daljeDevelopers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta daljemCloud
 
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQLDevelopers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQLmCloud
 
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sadDevelopers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sadmCloud
 
Developers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – DobrodošlicamCloud
 
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...mCloud
 
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domenDevelopers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domenmCloud
 
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgradeDevelopers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrademCloud
 
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...mCloud
 
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivityDevelopers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivitymCloud
 
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...mCloud
 
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...mCloud
 
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3mCloud
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...mCloud
 
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – DobrodošlicamCloud
 
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...mCloud
 

More from mCloud (20)

Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...
 
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
 
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
 
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source pričaDevelopers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
 
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel AwesomeDevelopers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
 
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta daljeDevelopers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
 
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQLDevelopers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
 
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sadDevelopers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
 
Developers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
 
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
 
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domenDevelopers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domen
 
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgradeDevelopers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
 
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
 
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivityDevelopers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
 
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
 
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
 
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
 
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
 

Recently uploaded

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Developers' mDay 2017. - Miloš Marčeta Telegraf.rs

  • 1. | | Date: 24 Sep 2017 Presented by: Miloš Marčeta (marcetam@marcetam.net) case study
  • 2. telegraf.rs One of the biggest news portals in Serbia and region Started on WordPress Project started ~5 years ago 900,000+ posts in wp_posts table 2M+ rows in wp_postmeta table 200+ Gb of images 1
  • 3. telegraf.rs One of the biggest news portals in Serbia and region It was running on custom made WordPress theme Using custom made WordPress plugins Serving html pages for browsers and XML content for mobile applications Running on multiple custom made server setup to improve performance and security ~ 95% of the traffic goes to www.telegraf.rs ~ 5% goes to other subdomains (topspeed.telegraf.rs, ljubimci.telegraf.rs etc.) 2
  • 4. Data Pressure 3 Every time in history when technology evolved people saw new opportunity. New opportunity generated new data. Data pressure is measured by the efficiency of the systems that are available to process that data. When the amount of data exceed the ability of the system to process the data in reasonable time or at reasonable cost that becomes opportunity for new technology and that cycle repeats all the time. What is Data Pressure ?
  • 6. Motivation ? cost & scale 5
  • 7. Important tips - Infinitely Scalable (Sharding key etc.) - Microservices Architecture - Instant Response (Heavy Lifting Queues) - Time Complexity (Big O) - Hot vs Cold data - Write Complexity for Read Performance (activity stream, news timeline etc.) - Read Complexity for Write Performance (vote, like etc.) 6
  • 9. noSQL but which lang ? 8 Node.js and PHP differ in their approach to concurrency, with Node.js using a non-blocking event loop (running in a single process) and the standard PHP Zend runtime using a blocking process. multiple PHP processes are often launched from the web server to be able to keep serving web requests. In Apache, you can set the maximum number of PHP processes allowed to run, and this works fine for many types of web applications. When the work being done in these processes tends to be long(er)-running, the server can quickly run out of available PHP processes. This will cause the HTTP request response times to increase, perhaps even to the point of requests timing out.
  • 12. Migration Requirements 11 Make similar dashboard so that people don't need training Support WordPress shortcodes in NodeJS Migrate existing MySQL database tables to noSQL collections (data aggregation) Execute migration supporting dashboard and front site of the page Replace XML with JSON for mobile applications
  • 14. Telegraf.rs vs Blic.rs 13 www.telegraf.rs response time (server side cached) www.blic.rs response time www.telegraf.rs response time (bypass server side cache) www.blic.rs response time (bypass server side cache) root# curl -so /dev/null -w '%{time_total}n' http://www.telegraf.rs 0.354 root# curl -so /dev/null -w '%{time_total}n' http://www.blic.rs 0.633 root# curl -so /dev/null -w '%{time_total}n' http://www.telegraf.rs?cache=skip 0.548 root# curl -so /dev/null -w '%{time_total}n‘ http://www.blic.rs?cache=skip 1.596
  • 15. Telegraf.rs vs Blic.rs 14 SBB (over WiFi) MTS (4G) Telenor (4G)
  • 16. Telegraf.rs vs Blic.rs 15 SBB (over WiFi) MTS (4G) Telenor (4G)
  • 17. Telegraf.rs vs Blic.rs 16 SBB (over WiFi) MTS (4G) Telenor (4G)
  • 18. WordPress & FURPS From experience and our perspective Functionality - Capability (Size & Generality of Feature Set), Reusability (Compatibility, Interoperability, Portability), Security (Safety & Exploitability) Usability (UX) - Human Factors, Aesthetics, Consistency, Documentation, Responsiveness Reliability - Availability (Failure Frequency (Robustness/Durability/Resilience), Failure Extent & Time-Length (Recoverability/Survivability)), Predictability (Stability), Accuracy (Frequency/Severity of Error) Performance - Speed, Efficiency, Resource Consumption (power, ram, cache, etc.), Throughput, Capacity, Scalability Supportability - Serviceability, Maintainability, Sustainability, Repair Speed) 17
  • 19. Telegraf CMS & FURPS From experience and our perspective Functionality - Capability (Size & Generality of Feature Set), Reusability (Compatibility, Interoperability, Portability), Security (Safety & Exploitability) Usability (UX) - Human Factors, Aesthetics, Consistency, Documentation, Responsiveness Reliability - Availability (Failure Frequency (Robustness/Durability/Resilience), Failure Extent & Time-Length (Recoverability/Survivability)), Predictability (Stability), Accuracy (Frequency/Severity of Error) Performance - Speed, Efficiency, Resource Consumption (power, ram, cache, etc.), Throughput, Capacity, Scalability Supportability 18
  • 20. Handling Images Handling large number of images Responsive themes demand multiple thumbnail sizes for every image position ( 3 x 5 ) 300 images / posts per day x 15 is 4500 files per day. Large number of files in a single directory is slowing down filesystem a lot Changing theme becomes a very difficult task because of thumbnail regeneration High-peformance and secure on demand thumbnail generation is the only choice 19
  • 21. Telegraf CMS summary Still in beta, getting stable soon. Telegraf CMS is built for ourselves. In-House. Once loaded , dashboard is fast like a hell Still have to develop/finetune some functionalities We don’t have the name … yet  It’s not for sale – yet  If you have less than 10.000 visitors in real-time you don’t need it. 20