This spring we found ourselves in very fun conditions. Due to the pandemic, it became clear that our summer conferences need to be moved online. And in order to conduct them online with high quality, ready-made software solutions were not suitable for us, we had to write our own. And we had three months for this.
It is clear that these were an exciting three months. But from the outside it is not entirely obvious: what is a platform for online conferences? What parts does it consist of? Therefore, at the last of the summer DevOops conferences, I asked those who were in charge of this task:
- Nikolay Molchanov - Technical Director of JUG Ru Group;
- Vladimir Krasilshchik is a pragmatic Java programmer, who is involved in the backend (you may have also seen his talks at our Java conferences);
- Artyom Nikonov is responsible for all our video streaming.
By the way, at the autumn-winter conferences we will use an improved version of the same platform - so many hackers will still be its users.
The big picture
- What was the composition of the team?
Nikolay Molchanov: We have an analyst, designer, tester, three frontend developers, a backend. And of course the T-shaped specialist!
β ?
: . 15 . , , .
, , , , , , , , , . 6 TechTrain. 90 .
β , ?
: DevOops β , . : , .
: , .
, ( 30 ), 4 :
- ( ),
- ,
- ,
- - .
.
β , 600 JIRA-. 13 , , Java. , Kubernetes- 5 RTMP- Amazon.
.
β , -, - . , , ?
: : -> -> RTMP- -> Amazon -> . .
, : , . , . , .
( ), , .
, /, . , :
4-
4-
: . , β , β , β . .
, . . , /. , .
, : RTMP- . , . , SaaS-. MediaLive, S3, CloudFront.
: , ? -?
: , MediaLive. . , , . , HLS. , .
β 1080?
: 1080p β 1920 , , β .
β , , , . , , , , HLS?
: , .
, hls.js, . : , , . , , . ( HLS) .
, . .
, , , «».
β β¦
: , . , , . Full Pass : , .
, Β« Β» . .
β - ?
: , .
β , YouTube?
: . , , . .
: . , , , .
β , , ( , , , ), ?
: . , . , . , , , .
β .
. , NP- , - . , Contentful. , , β , β , . , , . .
, β , . , . , , Contentful, , . -, , .
: . -. ? , . . .
: , SPA-. , , SPA. Google HTML. SEO . 1,5 JavaScript, , , , . , .
β , . , 5 Amazon-, . bash-, , β¦
: API AWS, . , CloudFront, - - . , 4 .. , AWS.
β , . TypeScript, React, Next.JS. #, Java, Spring Boot Node.js. Kubernetes, ..
, , : GitLab, , , . .
-
β - 10 000 . -, . , . ?
: . β . β 1080, , - . 2x, «» . . 10 000 . 10 000 8 . 80 000 RPS/. .
β Β« Β» - ?
: , . 10 - , -. . , , .
β - . , Prometheus, : , ?
: /- , , . , ( ). -.
: . 152 .
, ( ), . , .
β ?
: . , . , . .
: , , . , .
β , , . ?
: , . - . Hazelcast. , . Hazelcast- , . , .
Mongo , . : ? Postgres, , id . , , .
: - Prometheus. Kubernetes-, Kubernetes. , Grafana .
: , OLAP. OLTP Prometheus, Grafana !
β , .
β , : 6 , ? ?
: . . β . Contentful. , Contentful, . websocket.
, : Contentful ( Telegram, ..) , .
: . . . , .
: . . , - , , . , , , , . . -, . , . , .
β . , , . , ?
: - . AWS Terraform- AWS-, , Azure- .. . - .
, . , Kubernetes β , - , . , Kubernetes, Docker, .
. . , . . -, -, , GitLab. GitLab, Elastic, Prometheus.
( 10 , 5 ) , , , , , .
β , , . : , ?
: . β . Testcontainers. -. . - . , , , , . .
, . , , . , , CloudFront, , , .
70 40 . 95%. , , . , , . , , . , , , round trip , .
: , - , .
: , , , , 4 1 websocket, . , 4 2 , , , .
: 140 : + , . , . UI- . , .
: , . , , , , Rabbit, JVM-, .
β , - , , , . ?
: . . 2300 JIRA-. , , . , (tolkkv).
, . CloudFront, β . , .
. . AV (-) β - Β«APIΒ» , . , , . , . 100 , , , , - .
β , .
: , , . 40 . β . . 40 , , , ..
β . , , .
: 20 . - , - , - , , β . , - .
β JUG Ru Group, , -, , Grafana. -, , - . , . , , .
β , , , , -, , , - OAuth 2.0, , . , , .
, , - . , , , - , ?
: , . . , .
3 , - ,
- , , , , , . TechTrain. 6 2 -, . , OAuth2.0. OAuth2.0, . , , 18 , , , , , Spring, , , .
: TechTrain .
. , -, . , Β« YouTubeΒ». , , , .
β , ? ?
: , , . , , β 1300 , Heisenbug.
β ? , ?
: .
. , , -, .
: , - , , (5 ), , , .
β , , . , , , , .
: .
β 3 .
β , .
: . , , . - , , . - - .
β , ?
: , . , . , , , . - , , , , , . .
, , . ( ), , , , , , (live.jugru.org).
β , !
, β . , , ?
Β« Β» β - . , .