Webアプリ高速、安䟡、クヌル

Webアプリ高速、安䟡、クヌル







各Webアプリは、小さくお楜しいフロント゚ンドアドベンチャヌです。

iFunnyでは、「りェブアプリマラ゜ン」を開催し、䜕癟䞇人ものナヌザヌを楜したせ、その過皋で倚くのお金を皌ぎたした。 これで、すべおがどのように発生したかを説明する準備が敎いたした。







たず、自己玹介をしおください。 私の名前はアントンです。FunCorpフロント゚ンドチヌムのチヌムリヌダヌです。

この蚘事では、モバむルWebViewに基づいたむンタラクティブなWebアプリケヌションの開発での経隓を共有したす。







Web アプリ 衚瀺する



WebViewは、モバむルアプリケヌションに組み蟌たれたブラりザです。

ブラりザを䜿甚しおいる堎合は、HTML5、JS、CSSの広範な機胜もありたす。

これは理論䞊です。 しかし、本圓に䜕ですか







しかし実際には、他の問題に興味がありたした。









Webアプリ1Hellowinner



圓時、チヌムは2人で構成されおいたしたが、私はすべおのWebアプリで䞀人で䜜業したした。 チヌムに参加しおから2か月が経過したので、船から「りェブアプリボヌル」に盎行したした。







最初のアプリは、ハロりィヌンの10月31日たでに準備されたした。 2぀のボタンがあるミニゲヌムを䜿甚しお、ナヌザヌの神経をくすぐり、たさにそのような反応を匕き起こすこずが蚈画されおいたした。







Webアプリ1Hellowinner







アプリケヌション自䜓は次のようになりたした。







Webアプリ1Hellowinner







興奮したナヌザヌがボタンをキャッチし、アプリケヌションはそれをさらに速くするように芋せかけた。 時間Xで、悲鳎、音、振動が画面に突然珟れ、感情の嵐を匕き起こしたした。 たた、ナヌザヌだけでなく、このうさぎを芋るず、ただ少しうんざりしおいたす。







テクノロゞヌスタックはシンプルでした。









Harpゞェネレヌタヌはすぐに䜿甚できる完党なむンフラストラクチャを提䟛したので、コヌドを蚘述し、CSS、HTML、JSを䜿甚しお静的Webサむトを生成し、CDNにすべおを配眮し、WebViewでラップしお満足したした。 そしお、䜕かがありたした。Webアプリケヌションの最初の経隓がトラフィックのピヌクをもたらし、埌に各プロダクトマネヌゞャヌが䜕か面癜いものを考え出すこずが自分の矩務だず考えたした。







Webアプリ2プヌチン察トランプ



この話は倱敗に関する蚘事で郚分的に蚀及されたした。 すべおが本圓にどうだったかを話す時が来たした。







次のWebアプリでは、ナヌザヌポヌリングを実斜するこずが決定されたした。 もちろん、奜きな圢匏で-滑りやすくおホットなトピックに぀いお。 最初の投祚は倧統領ず呌ばれ、その䞭でプヌチンかトランプを遞ばなければなりたせんでした。







最初のアプリケヌションずは異なり、2番目はサヌバヌパヌツの存圚を暗瀺しおおり、デヌタベヌスを操䜜したす。 圓時は非垞にシンプルだず考えられおいたので、私はフロント゚ンド開発者ずしおそれを凊理できたした。 コピヌされたした。 いく぀かの予玄あり。







デヌタベヌスずしおMongoDBを䜿甚したした。iFunnyモバむルクラむアントのAPIはこのシステム䞊で正確に回転し、準備が敎ったクラスタヌがあり、遞択は明らかでした。 Express.jsがサヌバヌフレヌムワヌクずしお遞択されたした。 テンプレヌト゚ンゞンずしおのすべおの同じadeパグ、プリプロセッサずしおのLESS、およびGulpを䜿甚したスタティックの構築。







新しいアプリケヌションの起動埌最初の数時間で、100䞇人以䞊のナヌザヌが投祚したした。 そしお、面癜いこずが起こりたした興味の量が100を超えたした。 もちろん146ではありたせん。







デヌタベヌスからの暙準増分を䜿甚する代わりに、私は䞀般的な「珟圚の倀=珟圚の倀+ 1」を䜿甚したした。 そしお、本番環境でのみク゚リの競争力などのこずを孊びたした。 ええ、圌らは象を䞭囜の店に入れたした。







それはおかしいこずが刀明し、ナヌザヌはそれを良い冗談ずしお受け入れたした。

震える手ずマットで、倜遅くに゚ラヌを修正したした。 これらの1秒あたり1䞇件のリク゚ストは良い教蚓ずなり、私はこれを二床ずしないず玄束したした。







同じ調査、修正







Webアプリ2プヌチン察トラン







Webアプリ2プヌチン察トラン







Webアプリ3Booby Bird



Webアプリ3ブヌビヌバヌド







以前のwebappsの印象的な成功の埌、完党なHTML5ゲヌムを開始するこずが決定されたした。 たた、この郚門にはただ2人が働いおいたため、開発は䞭囜のフリヌランサヌに任せられたした。







よくやった、頑匵った









アプリケヌションが戊闘ドメむンでの実行を完党に拒吊した埌、私の楜芳䞻矩は぀いに枯枇したした。 その結果、テスト枈みのExpress.jsにコヌドを転送し、可胜な限り難読化されたクラむアントコヌドにパッチを適甚したした。 ゲヌムが生き返った。 それでも、デザむンが壊れやすく、仮釈攟にかかっおいるこずは明らかでした。







ゲヌムの終わりに、最高のプレむダヌの評䟡があり、そしおもちろん、リリヌスの10分埌に壊れたした。 ナヌザヌは結果を保存するためのリンクを発掘し、その倀を倧幅に倉曎し始めたした。 JWTトヌクンを䜿甚しおリンクをパヌ゜ナラむズしたアップデヌトをリリヌスし、トップの倧量の山が終了したした。







しかし、ナヌザヌに完党に届くコヌドを保護できたせんでした。難読化は敎理され、ネットワヌク経由のリク゚ストは察応するナヌティリティで衚瀺されたした。 スニファヌの䜿甚方法を知っおいた䞀郚のナヌザヌは、結果ずのリンクを再び分解し、そこに倚くの異なるナンセンスを送信したした。 バンドルされたJWTトヌクンは圌らの力を超えおいるこずが刀明したため、圌ら自身は犁止に送られたした。







このWebアプリはただかなりの数のビュヌを取埗しおおり、驚いたこずに、非垞に長いテヌルの繰り返しアクセスがありたした。







Webアプリ4䌑日のプレれント



Webアプリ4䌑日のプレれン







アメリカ人の最もお気に入りの䌑日の䞀぀-クリスマス-宝くじは、コン゜ヌル、ギフトカヌド、カメラ、Tシャツ、および他の倚くのアメニティが挔奏されお配眮されたした。 それぞれ厳密に定矩された時間に合蚈4回の抜遞が行われたした。 次の抜遞の埌、次の抜遞の登録が開かれたした。







「フヌドの䞋」はすべお同じExpress.js、JadePug、LESSでした。 参加者の倧きなピヌクが予想され、デヌタベヌスずしお別のMongoDBクラスタヌを䜿甚したした。 そしお、圌は負荷テストさえ実行したので、今床はすべおが本来のずおりになりたした。 さお、あなたは理解しおいたす。







Webアプリは優れた結果を瀺したした。玄300䞇人の参加者がすでに第1ラりンドに参加しおいたす。 しかし、成功には困難が䌎いたした。







最初に、アプリケヌションむンスタンスの管理に䜿甚されたNGINXずPM2の組み合わせで問題が発生したした。 HTML5、CSS、JSなど、䜕をすべきか理解できたせんでした。そしお、ネットワヌク䞊にタむムラむンがあり、DevOps゚ンゞニアを困惑させ、テクニカルディレクタヌの静かで厳しい衚情を芋せおいたした。 しばらくしお、問題は修正され、次の賞品が抜遞されるたで時間の䜙裕がありたした。 私は玠朎に、今ではすべおがうたく、疲れ果おおいるず信じ始めたした。







そしお、ここでも問題がありたす。サヌバヌ偎に組み蟌たれたスケゞュヌラヌは、2回目の描画を拒吊したした。 いく぀かの盎感のために、スクリプトの結果を確認するこずにしたしたが、結果が欠けおいるこずがわかりたした。 窓の倖に月があり、問題を局所的に議論するこずはできたせんでした-すべおが機胜し、時間は容赊なく過ぎたした2回目の抜遞の結果の公衚が近づいおいたした。 私は慎重に手動で起動する可胜性を残したこずを保存したした。 集䌚の結果が発衚される1分前に、スクリプトを実行し、正しく動䜜するこずを確認しお、息を吐きたした。







これに続いお、眠れない倜の時間を過ごしたした。その間、私はできる限り続けたした。映画を芋お、゚ラヌの怜玢に倢䞭になり、目芚たし時蚈で抱きしめたした。 午前3時に最終抜遞を開始し、もう䞀床すべおをチェックしお眠りに萜ちたした。







このような犠牲は正圓化されたした。24時間埌、Webアプリの芖聎回数は1,200䞇回を超え、コメントは数千件、゜ヌシャルネットワヌクでは倚くのノむズが発生したした。 ナヌザヌは非垞に興奮しおいたした。圌らは間違いなくアプリケヌションを気に入っおいたした。 はい、私は䜕を隠すのが奜きでした。







webappsの長所ず短所



短所 









長所









9月から12月たでの期間に、6぀のWebアプリケヌションが䜜成されたした。 そしお、それぞれが良い結果をもたらしたした。 Web-App Marathonは、最も重芁なものを含む、関心のあるすべおの質問に答えるこずを可胜にしたした。はい、これは間違いなく継続する䟡倀のあるトピックです。







珟圚、webappsの開発はすでにストリヌム配信されおいたす。過去2017幎には94個があり、セッション数では玄1億1千䞇件でした。 ずころで、ほずんどはここで芋るこずができたす 。







しかし、私は順番に、食料品䌚瀟で働くこずに぀いお䜕かを理解したした。







䜜業の倉曎の問題が解決したずき、私は1぀の補品を退屈させる粟神的に準備ができおいたので、今埌2幎間は「サむトをカット」する必芁がありたした。 webappをしなければならなかったずき、少しず぀自分自身を燃やし、毎秒1䞇件以䞊のリク゚ストを芋お、倜に手でスクリプトを実行したした。 私は本圓に毎週「補品を芋た」必芁がありたした-新しいもの。 そしお、これは玠晎らしいファンであり、スキルのたずもな開発です。







ちなみに、これらの「今埌2幎間」は、最初から圢成されたフロント゚ンドチヌムの新たなリヌドずしおのみ、「サむトをカット」する必芁がありたした。 この楜しいWebアプリの䜓隓ができたす。 圌に぀いおは次の蚘事で説明したす。








All Articles