CROOZ.incのブログ - TECH PLAY

TECH PLAY

CROOZ.inc

CROOZ.inc の技術ブログ

å…š55ä»¶

こんにちは。新卒2幎目のKEN☆YAMAGUCHIです 今回は「コヌディングがくそ過ぎお人栌吊定された」ずいう話をしたいず思いたす。 コヌディングずは、プログラムを曞くこずでありたすが、このコヌディングにもいろいろな䜜法的なものがありたす。今回はそんな䜜法やコヌドの芋易さを深く考えずに開発しおいたら痛い目を芋た経隓をお話させおいただきたす。 駆け出し゚ンゞニアの方はもちろん、゚ンゞニアを目指しおいる方にずっおもためになるのではないかず思うので、最埌たで読んでいただければ幞いです 【心躍】初めおの開発経隓 入瀟埌の開発研修を終え、いよいよ配属されるこずになりたした。こちらの開発研修の内容に぀いお、 こちらの蚘事 が公開されおいるので気になる方がいらっしゃいたしたら是非そちらも読んでいただければず思いたす。 さお、僕の配属先は、バック゚ンドず呌ばれる瀟内の管理画面や察ブランド向けの管理画面を開発する郚眲でした。この時期にちょうど、察ブランド向けの管理画面のリプレむスするずいうプロゞェクトが進行しおおりたした。そのためこのプロゞェクトに アサむ ンするこずずなりたした。 僕が担圓するこずずなったタスクは、新芏で開発が必芁なものであり、䞀からプログラムを䜜るこずずなりたした。 圓時、新芏の開発ずもあり 心を躍らせながら 開発䜜業を行っおいたした。 【倱態】コヌディングがくそ過ぎた、、、 箄2か月ほど、色々ず壁にぶ぀かりながら、そしおトレヌナヌの方の力を借り぀぀開発を進めおいた矢先、組織倉曎が行われ、圓時行っおいた担圓案件を開発の途䞭で同期の゚ンゞニアに匕き継ぐこずになりたした。 圓時粛々ず開発を進めおいく䞭で、恥ずかしながら、芁件さえ満たせればいいずいう考えでいたため、 ゜ヌスコヌド の共 通化 や可読性などの考えを軜んじおいたした。 匕継ぎが終わり、匕継ぎ盞手にプログラムを芋おもらうず、共 通化 や可読性などの考えが党く反映されおいないコヌドだず気づかれ、「倉数名も分かりづらいし、共 通化 もされおない(怒)」ず激しく詰められおしたした。 【教蚓】コヌディングで意識すべきこず このように、芁件を満たせばいいず勝手に考え開発進めた結果、詰められ、倱笑されるずいったしくじり経隓をしおしたいたした。 そんな僕から良いコヌドを曞くためのコヌディングで意識すべきこずを3぀ほどお䌝えさせおいただきたす。 ①䜕か月埌かの自分が芋おも理解できるか ②倉数名の 呜名 は、我が子に名前を付けるのず同等 ③コヌドを曞き始める前にプログラムの完成圢をむメヌゞをする 䞊げたらきりがないくらい意識すべきこずはあるず思いたすし、熟緎の゚ンゞニアさんにずっおは圓たり前だず怒られおしたいそうですが、枩かい目で芋おいただければず思いたす(笑) ①䜕か月埌かの自分が芋おも理解できるか 1぀目は、未来の自分が芋おも理解できるかです。プログラムを曞いおいるずきは、自分で理解できおいるず思いたすが、䜕か月埌かの自分はほずんど他人であるずいわれたこずがありたす。圓時は理解できおいおも䜕か月埌かにコヌドを芋おみたら理解できない、たたはずおも分かりづらいなんおこずになっおしたいたす。そのためにも未来の自分でも読みやすいかを軞にコヌドを曞くこずを意識すべきだず考えおいたす ②倉数名の 呜名 は、我が子に名前を付けるのず同等 2぀目は、少し倧げさですが、我が子に名前を付けるのず同じくらいの気持ちで倉数名を 呜名 すべきだずいう事です。倉数名を考えるのに時間をかけすぎおしたうのはよくないず思いたすが、その倉数がどんな圹割りなのか、䜕を栌玍しおいるのかを倉数を芋ただけで分かるように 呜名 するこずで、読みやすいコヌドになるず思いたす。 実際にしくじり経隓をした埌から、倉数名の 呜名 にはずおも気を遣っおいたす(笑) ③コヌドを曞き始める前にプログラムの完成圢をむメヌゞをする 3぀目も僕は重芁だず考えおおり、完成圢やある皋床のむメヌゞを持ったうえでコヌドを曞き始めるこずで、ここは共 通化 できるなずかを考えながらコヌドを曞き進めるこずができるず思いたす。 しくじり経隓をしたずきはずりあえずコヌディングしながら考えようずいう意識でいたので、行き詰っおしたっおいたリ、共 通化 の意識を軜んじおしたいたした。 【掚薊】コヌディングを孊べる本 前章でお䌝えしたものは、自分が考えるものであり、意識すべきこずのほんの䞀握りでしかありたせん。なので本章では、駆け出し゚ンゞニアの方や、゚ンゞニアを目指しおいる方、僕ず同じようにコヌディングがくそだずいわれおしたった方におすすめの本を玹介させおいただきたす。 1぀目は「 リヌダブルコヌド―より良いコヌドを曞くためのシンプルで実践的なテクニック 」ずいう本です。こちらは先茩゚ンゞニアの方にお勧めされ僕自身も読みたした。 こちらの本は、特定の プログラミング蚀語 に特化したものではなく、プログラムを曞く際に意識すべきこずや、良いコヌドを曞くためにはどのようにすればいいかが曞かれおいたす。 ゚ンゞニアになったばかりの人でも読みやすいものだず思いたす 2぀目は「 良いコヌド悪いコヌドで孊ぶ蚭蚈入門 」ずいう本です。 こちらの本は オブゞェクト指向 型の蚀語を元に曞かれおおり、 オブゞェクト指向 プログラミング蚀語 の基瀎知識があっお、蚭蚈を孊びじめようず考えおいる方向けになっおいたす。どんな構造が良いものなのかを理解するために、蚭蚈の基本的な考え方や、クラス蚭蚈などに぀いおコヌドを元に解説しおくれたす。 1぀目の本より少し難しいかもしれたせんが、蚭蚈の基本的は考え方を孊べるのでお勧めです 【たずめ】 今回はコヌディングがくそ過ぎおしくじっおしたった話をさせおいただきたした。倱敗を経隓したこずで意識的にコヌドを曞くこずができるようになったので、今ずなっおはいい経隓でした。 実際、先茩゚ンゞニアの方はかなり现かいずころたでコヌドを芋おいるなず実感しおいたす。なので、人栌吊定をされおしたう前に最䜎限のコヌディングの基瀎を身に付けおおく必芁があるず思いたす 本を読んで完璧に身に぀けるのは難しいず思いたす。なので僕も先茩゚ンゞニアにコヌドをレビュヌしおもらいながら孊んでいるずころですので䞀緒に頑匵りたしょう。 それではたた次回お䌚いしたしょう
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 以前の投皿で「 フロント゚ンドの゚ラヌ監芖Sentyを導入した話 」でSentry導入の話をしたしたが、コアりェブバむタルの監芖に぀いおもSentryで最近行うようになったため事䟋共有をしたいず思いたす。 Core Web Vitalsの重芁性 2021幎に Google は、Webペヌゞのナヌザヌ䜓隓UXの向䞊を目指しお、Web Vitalsずいう抂念を導入するこずを発衚し、特に怜玢の衚瀺順䜍に圱響を䞎える指暙ずしおCore Web Vitals を定矩しおいたす。 Core Web Vitals のビゞネス むンパク トに぀いおは以䞋の蚘事をを参考にしおください。 developers-jp.googleblog.com パフォヌマンス蚈枬䞊の課題 Core Web Vitalsを可芖化するツヌルは Google Search Console をはじめずしお様々ありたすが、JS゚ラヌず同様に特定のブラりザや特定の条件でしか発生しない課題に぀いお網矅的に把握が困難であり、単玔に開発者や SEO 担圓者が自分のPC䞊で蚈枬を行うだけでは圧倒的に情報が䞍足しおいたした。 たたペヌゞ衚瀺が遅い理由の把握も、遅いペヌゞの特定ができれば開発者ツヌルなどで調査可胜ですが、具䜓的に問題のあるペヌゞがなんなのかに぀いおは、Webサヌバのログや Google Analytics の情報 からし か刀断できず、効果的な原因究明が十分に行えおおりたせんでした。 䞊蚘の問題の解決手段ずしおSentry のPerfomace Monitoringでの監芖を実斜しおいたす。 導入背景ずしおは 既にJS゚ラヌ監芖やLaravelの゚ラヌ監芖で瀟内で掻甚実瞟があるこず 端末・回線・ブラりザずいったような利甚環境に関連する情報が取埗できるこず Slack連携が可胜で即時通知ができるこず がありたす。 運甹 Core Web Vitals  LCPに぀いお、以䞋の 閟倀 を蚭けお監芖し、匕っかかったものは改善するよう運甚そしおいたす Warning Good ずNeeds Imprrovement の 閟倀 の80以䞊 Critical.  Good ずNeeds Imprrovement の 閟倀 越え 運甚する䞭で技術的にハマったこず CORSの蚭定が必芁であるずいうこずに導入埌しばらく気づかず蚈枬が正しくできない、たた䞀郚倖郚サヌビスずの連携が正垞にできない状況になっおしたっおいたした。   特にSentryは日本語の文献が少ないため導入圓初党く気づかず、原因の特定にそれなりに時間がかかっおしたったこずが反省点です。 docs.sentry.io 運甚しおいく䞭で芋えおきたこず 倧きなずころでいうず 実は実行埅ちになっおいる スクリプト もあり、䞭には非同期で呌び出せるものも含たれおいた。 䜿われおいない スクリプト も読み蟌んでいた。正確にはどのペヌゞでも共通にも芋蟌んでいたが、そのペヌゞでは䜿っおいなかった 倖郚連携で䜿甚しおいるJSファむルの実行に時間がかかっおいたものがあった 開発者が意図しない海倖 CDN を呌び出しおいる箇所があった䜿甚しおいるJSラむブラリが海倖 CDN を参照しおいたこずがわかった です。なので今の時点だずほずんどが Google Developer Toolでわかる内容が有益な情報でしたずいう状態です。 これだけだず Google Developer Toolで十分じゃないずいう結論にはなっおしたうのですが、Core Web Vitalsの芖点で芋お課題があるペヌゞが発芋できるこずず、フロント゚ンド゚ンゞニアだけではなく、゚ンゞニア職皮党員がSentryずいうツヌルを利甚するこずで、問題のある トランザクション のCore Web Vitalsの数倀や、各 トランザクション 䞭のタむムラむン䞊での各リ゜ヌスファむルの読み蟌み・実行状況を把握できるようになったこずは導入の効果ずしお倧きかったず考えおいたす。 特に、この SDK JSファむルっおっおいるのずか、この凊理っおサヌバ偎でやった方が実行速床短瞮できないずかこのJS、 CSS ファむルは自瀟契玄の CDN 䞊から呌んだ方が早くないそもそも API が遅すぎるから結果ずしお党䜓が遅くなるんじゃないなどのディスカッションを様々な技術職皮のメンバヌず行えるようになったこずは極めお重芁だず思っおいたす。 ただ運甚を始めお間もないですが、Sentryを掻甚しおWebペヌゞのナヌザヌ䜓隓を向䞊させおいきたす。
こんにちは。新卒2幎目のRYOBALです。 僕は入瀟埌サヌバヌサむド゚ンゞニアずしお配属され、䞀幎埌にあたる今幎4月から マヌケティング 郚に異動したした。 元々、 マヌケティング 郚の業務には興味を持っおおり、タむミングよくこの機䌚に垌望した郚眲に異動ずなりたした。 今回は マヌケティング 郚に移動しお1か月が経ったので、゚ンゞニアから マヌケティング 郚に移動しお気づいた゚ンゞニア経隓をしお良かったこずをお䌝えしたす。 マヌケティング 郚っおどんな仕事をしおいるの゚ンゞニアの経隓っお䜕に圹立぀のず気になる方に参考ずなる蚘事なので、ぜひ最埌たでご芧ください。 そもそも゚ンゞニアずしおどんなこずしおたの マヌケティング 郚に移動しお気づいた゚ンゞニアずしお良かったこずを語る前にこれたで僕が゚ンゞニアずしおどんな業務を経隓したのかお䌝えしたす。 入瀟埌3か月間の開発研修埌、サヌバヌサむド゚ンゞニアずしお配属され、 PHP やLaravelを䜿っお瀟内管理画面の改修、Metabaseを䜿っお管理画面の移行詳しくは こちら の蚘事を行っおきたした。 実際に瀟内で䜿われおいる管理画面の改修など実際に ゜ヌスコヌド を觊っおの開発、デヌタベヌスの操䜜をするなど基瀎的な゚ンゞニアずしおの業務を行っおきたした。 このような開発経隓を通しお、僕は マヌケティング 郚に移動したした。 マヌケティング 郚に移動しお䞀番最初に驚いたこずが、、、 マヌケティング 郚でも開発の知識がないず話にならない マヌケティング 郚に移動しお䞀番最初に驚いたこずは「開発の知識がないず぀いおいけない」ずいうこずです。 僕が行っおいる マヌケティング 郚での業務内容はBigQueryを䜿った斜策の分析です。䟋えば、このキャンペヌンは䜕人の利甚者がいお、どのくらい効果があったのかなどBigQueryを䜿っお集蚈し、斜策を分析したす。BigQueryを扱うので、 SQL は曞けお圓然の珟堎です。 開発郚の経隓があったので倚少 SQL の知識はありたしたが、それでも倧倉な内容でした。 1,000行近くになるク゚リを曞くなどこれたで経隓したこずのない長いク゚リを曞くこずになり、頭が远い぀きたせん笑 今思うず、゚ンゞニアだからずいっお、0からク゚リを曞く機䌚っおあたりないのかなず思っおいたす。 新芏プロダクトの堎合は別ですが、既にプロダクトが存圚しおいる堎合はデヌタの取埗はすでに完成されたク゚リでできおいる状態です。なので、デヌタの取埗方法を倉えるなど修正がある時にしかク゚リには觊れたせん。 そんなこずもあり、開発郚でガッツリ SQL に觊れおいなかった僕はBigQuery䞊のデヌタベヌスのルヌルやク゚リを曞くこずに慣れるこずが倧倉でした。 ゚ンゞニア時代に経隓しおいお良かったこず マヌケティング 郚での業務を通しお゚ンゞニア時代に経隓しおいお良かったず思うこずは䞻に2぀です。 1. SQL ・デヌタベヌスの知識 2.開発経隓 たず1぀目の SQL ・デヌタベヌスの知識ですが、前述したずおり、業務内容がBigQueryを䜿っお分析するずいうこずもあり、この知識がなければ仕事になりたせん。 「 SQL っおなに」ずいう党くの未経隓の状態からだず盞圓倧倉だったず思いたす。そう思うず、゚ンゞニア時代に少しでも孊んでいたこずが今の仕事に繋がっおいるんだず実感しおいたす。 2぀目の開発経隓ですが、これぱンゞニア芖点で物事を考える意味で圹立っおいたす。 マヌケティング 郚から開発郚に察しお新機胜の実装など䟝頌をする機䌚は倚々ありたす。その際に、ここの ゜ヌスコヌド をいじるず実装できそうだなず開発者でなくずも䜕ずなく想像するこずができたす。そうするず、開発郚のメンバヌに䟝頌がしやすくなり、リリヌスたでどのくらい 工数 がかかるのもむメヌゞができたす。 どの郚眲の人でも開発の知識があるのずないのずでは、開発者ずの仕事の進め方に雲泥の差が生たれたす。 「マヌケタヌはプロモヌションができれば良いからプログラミングの知識なんかいらない」ず思う人もいるかもしれたせん。ただ、 マヌケティング を考えられる プログラマヌ が仕事ができるようにプログラミングができるマヌケタヌも匷いです。 マヌケティング だけやプログラミング、営業だけなど䞀぀のこずができればよいずいう時代終わり぀぀あるかなず思いたす。 たずめ 今回は新卒゚ンゞニアから マヌケティング 郚に移動しお気づいた゚ンゞニアずしお経隓しお良かったこずに぀いおお䌝えしたした。 2぀の郚眲を経隓しお、改めお開発の知識はどの郚眲でも必芁なものだず感じたした。特にIT業界で勀めおいる人であれば、ITスキルは必芁䞍可欠です。 自分は営業だからずいっお、ITの知識を無芖できるわけではありたせん。 これからの時代に掻躍するためにも開発経隓やITの知識は重芁になっおくるでしょう。 今埌も業務を通しお経隓したこずや圹に立ったこずを蚘事にしお発信しおいくので楜しみにしおください。たた、他にも面癜い蚘事を発信しおいるので是非別蚘事も読んでみおください。それでは、たた次回のブログで。 BYE☆
こんにちは。新卒2幎目のKEN☆YAMAGUCHIです 今回は「リモヌトワヌク䞋におけるコミュニケヌションの難しさず解決方法」に぀いおのお話をしたいず思いたす。 昚今、 新型コロナりむルス 感染症 拡倧に䌎いリモヌトワヌクを導入する䌁業が増えおいるず思いたす。そんなリモヌトワヌクを配属盎埌から経隓し、リモヌトだからこそ感じた難しさずいかに解決したのかを玹介したいず思いたす。 たた、察面だろうが非察面だろうが、コミュニケヌションを取る䞊で倧事だず感じたこずをお話できればず思いたすので、最埌たで読んでいただければ嬉しいです 【配属】配属された瞬間にリモヌトワヌク 僕が入瀟するタむミングは新型コロナが流行し、䞖の䞭的にもリモヌトワヌクするこずが䞀般的になっおきおいる状況でした。匊瀟でももちろん、リモヌトワヌク制床を導入しおいお、僕も配属されおからリモヌトワヌクをするこずが倚くなりたした。 読んでくださっおいる方の䞭には、新入瀟員はなるべく出瀟した方が良いず思われる方もいるかず思いたす。ただ、出瀟したずしおもトレヌナヌをしおくださっおいた先茩瀟員がリモヌトワヌクなので、出瀟しようがしたいが非察面でのコミュニケヌションが䜙儀なくされる状況でした。 そんな状況の䞭でリモヌトワヌクを始めたわけですが、圓初は「リモヌトで働いおいる自分スマヌト」ず思っおいたした笑。 意気揚々ずリモヌトワヌクをしおいたわけですが、埐々にリモヌトワヌクにおけるコミュニケヌションの壁にぶち圓たるこずになりたす、、、。 【衝突】リモヌトワヌクにおけるコミュニケヌションの壁 リモヌトワヌクにおけるコミュニケヌションのほずんどは、チャットで行うわけですが、口頭であれば難なく䌝えられる内容を、文字に起こすこずに難さず時間がかかるこずを感じたした。 盎接であれば、困っおいる珟象や分からない郚分を芋せながら聞くこずができたりしたすが、チャットだず画像を添付しお䌝えるこずが限界な気がしたす(動画で䌝えるこずもできたすがあたり珟実的ではない)。そのため、チャット䞊でのコミュニケヌションでは 蚀語化 する胜力が䜎いず䌝えたいこずが党然䌝わらないずいったこずが起きおしたいたす。 配属圓初は分からない事ばかりで、質問するこずが倚かったのですが、そもそも開発知識が乏しかったり、コミュニケヌション時に意識すべきこず(埌述したす)を意識しおおらず、うたく 蚀語化 するこずができたせんでした。そのため、正しく䌝わるたでに耇数回のラリヌが必芁になるこずもありたした。 本栌的に開発䜜業を行うようになり、いよいよチャットだけのコミュニケヌションでは倪刀打ちできなくなりたした。 なので、プログラムがうたく動かない時や、実装方法が分からない時は画面共有を行い ゜ヌスコヌド を芋おもらいながら、教えおもらっおいたした。これでだいぶコミュニケヌションを楜に取れるようになりたした。 ゜ヌスコヌド の画面共有をしながら「どこどこのの〇〇を〇〇に修正しお」などの指瀺をもずに実装や修正をするわけですが、少しラグがあったり、 PHP 構文の曞き方が分からない堎合はプラスでもらう必芁があり、ただただ時間がかかっおしたいたす。 【発芋】たさかの解決方法 画面共有で ゜ヌスコヌド を芋せながらのコミュニケヌションでもただただ時間がかかっおしたっおいたず述べおいたすが、この ゜ヌスコヌド を芋せながらの実装や修正するこずは所謂 ペアプログラミング のようなものに近いかなず思いたす。特に未経隓の゚ンゞニアの方は実際に ゜ヌスコヌド を芋おもらいながら修正等を行うこずがあるのかなず思いたす。 ここで玹介するのはそんな䜜業を効率的にできる機胜です。 それは、 Microsoft 補コヌド゚ディタヌ「 Visual Studio Code 」の機胜の䞀぀である「Live Share」ずいうものです。これは、䞀぀の゜ヌドコヌドを耇数人で閲芧・線集するこずが可胜で、 デバッグ 操䜜等も可胜なので ペアプログラミング やコヌドレビュヌに䟿利な機胜ずなっおいたす。 ぀たり、この機胜のおかげでわざわざ画面共有をせずずも、お互い ゜ヌスコヌド を芋ながらコミュケヌションが取れるわけです。この機胜を発芋し䜿甚しおみるず、ずおもスムヌズに開発や修正を行うこずができるようになりたしたし、教える偎にずっおも教えやすいずいう声も頂きたした。 さらに、その堎でざっくりずしたプログラムだけ䜜っおもらい、詳现なプログラムは自分で考えるずいったような進め方もできるので、ずおも有効な機胜かず思いたす。 【自戒】コミュケヌションで気を付けるべきこずずは 前章で述べたような、䟿利な機胜に頌った解決方法もいいかず思いたすが、本質的な解決策はコミュニケヌション胜力を向䞊させるこずではないかず思いたす。 僕自身、幎目は特に、質問や助けを求めるこずが倚かったですし、うたく䌝えるこずができないこずも倚々ありたした。 そんな䞭で、どんなこずを意識すれば盞手に䌝わりやすく円滑なコミュニケヌションが取れるのか自分なりに考えおいたした。 そこで、僕が質問や助けを求めるずきに、どんな意識をしたらうたく䌝えられようになったのかを3぀ほど玹介させおいただきたす。 ①結論から述べる ②どこたで分かっおいお、どこで詰たっおいるのか明確に ③分からないなりの仮説を持぀ 䞊蚘の3぀を意識すべき理由ずしお、質問される偎は、その人は「①䜕が分からないのか・②どこたで分かっおいるのか・③どのように考えおいるのか」が分からなければ、そこの確認から始めなければなりたせん。 かなり圓たり前のこずですが、ここをしっかり 蚀語化 で来おいないず無駄なラリヌが生たれおしたいたす。 【たずめ】 今回はリモヌトワヌクの䞭でいかにコミュニケヌションコストを䞋げたのかに぀いおお話させおいただきたした。 新卒で入瀟しおから自立するたでは、倚くのコミュニケヌションを取る必芁があるず思いたす。そのため、コミュニケヌションコストを䞋げるこずは自分にずっおも、コミュニケヌションを取る盞手にずっおも倧事なこずだず思いたす。 瀟䌚人2幎目になり、自ら発信するこずも増えおくるず思いたす。そんな時に意識するこずはもっず増えおいきたす。たた、物事を正しくわかりやすく盞手に䌝えるこずはビゞネスマンにずっお非垞に重芁なスキルの1぀だず思おいたす。 コミュニケヌションの蚓緎をしっかり行い、コミュニケヌション胜力激高の゚ンゞニアになれるように頑匵りたす 今回はこれくらいにしお、たた次回の蚘事でお䌚いしたしょう
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 2021幎の10月ごろからフロン゚ンドの゚ラヌ監芖ずしおSentryを導入しおしおいたす。 導入から6ヶ月が経ち、運甚にも乗っおきたので事䟋ずしお共有したいず思いたす。 JSの゚ラヌが原因で立お続けに問題が起こった 圓時、特定ブラりザだけボタンを抌しおも動䜜しない問題や、サヌビスずしおは正垞に動くんだけど効果枬定甚に送っおいるむベントが発火しない問題が立お続けに起き、原因の特定ず修正に長いものだず営業日かかっおしたうこずがありたした。 この件で問題だず感じた点は以䞋です。 サヌバず違っお、ブラりザ䞊で動䜜するものは明瀺的にログをどこかに送っおやらない限り実行しおいるブラりザ䞊でしか゚ラヌに気づけない。 特定ブラりザのみで発生する堎合、問題が発芚しおも開発者がその問題を特定するたで時間がかかる。再珟条件の特定に時間がかかる 衚瀺に圱響しない蚈枬系のむベント発火は芋萜ずされやすい。衚瀺䞊は正垞なため 䞊蚘問題を解決する方法の䞀぀ずしお、以前に AWS Fargate䞊に構築したコンテナ䞊で動䜜するLaravelの゚ラヌ送信で䜿っおいるSentryでJSの゚ラヌ監芖を行うこずにしたした。 Sentryの導入 導入はドキュメントの通りに行い、非垞に容易に出来たした。 怜知された゚ラヌはIssuesずいう圢でチケットずしお䞊がっおくるので、運甚ずしおは 怜知された゚ラヌはフロント゚ンドの専門職皮長が察凊が必芁かどうかをたず刀断する。 察凊が必芁なものは担圓者を アサむ ンしお、 リファクタリング タスク化する アサむ ンされた担圓者は修正し、盎近のリリヌスに混ぜ蟌んで修正リリヌスする。 ずいう圢で行っおいたす。 たた゚ラヌ内容や件数ずいった情報は、゚ンゞニア党員の参加する䌚議䜓の䞭で共有し、今どのような問題は発生しおいるかに぀いお゚ンゞニア党員が知るこずができるようにしおいたす。興味のある人はSenty䞊から詳现レポヌトを芋れるよう、アカりントも゚ンゞニア党員に配垃しおいたす。 Sentry以倖で実斜しおいるこず 実際にサヌビス偎で発生しおいた゚ラヌの䞭では、開発環境でも起こっおいたけど気づかずにリリヌスされおしたったものも含たれおいたため、eslintも合わせお導入しおいたす。 これは各個人の開発環境ず、GitLabに連携したJenkinsのCI/CD環境で動䜜しおおり、前者はデプロむ前に゚ラヌが出おいないこずの確認に、埌者ぱンゞニア党䜓に共有するためノレポヌティングずしお掻甚しおいたす。 なので、リリヌス前に゚ラヌを最小にするサヌビス䞊で発生しおいた゚ラヌを早期怜知できるようにするずいう段構えでJS゚ラヌぞの察応を行なっおいたす 運甚しおいおよかったこず・課題感 ざっくりずですが、 よかったこず 品質メトリクスずしお゚ラヌ件数が可芖化ができるこず共通の品質目暙ずしお゚ラヌ0件を目指すんだず蚀えるこずず、実際に件数が芋えるこず 発生しおいるデ バむス ・ブラりザの情報が取れるため、原因の特定にかかる調査時間が短瞮できるこず 課題感 動䜜保蚌ブラりザで発生以倖からの゚ラヌレポヌトが雑音になる タグマネヌゞャによっお ゜ヌスコヌド 管理倖でHTML内に挿入されるJSの゚ラヌの堎合、怜知しおも問題の特定に時間がかかるケヌスがある ゜ヌスコヌド から远えないため ダッシュ ボヌドなどただ効果的に掻甚しきれおいない郚分がある。 です。 自分自身がサヌバの経隓の方が長く、フロント゚ンド分野に぀いお党おが把握できおいるわけではないため、技術寄り芖点ずいうよりは管理寄りな芖点での感想ずなっおしたいたしたが䞊蚘のように感じおいたす。 その他、゚ラヌ怜知だけでなくパフォヌマンス蚈枬にもSentryを掻甚すべく、Performance Monitoring の運甚も䞊行しお進めおいおその内容に぀いおも改めお共有したす。
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 今回は、ブラりザベヌスの IDE の AWS Cloud9の話です。 先日に「 クルヌズで5幎ぶりに新入瀟員向けにプログラミング研修を再開した話 」でも觊れたずおり、圓瀟では、新入瀟員向けの研修の䞀環で職皮に関係なくIT リテラシヌ の教育の䞀環ずしおプログラミングスキルに関する研修も実斜しおいたす。 その䞭で、今幎の内定者向けの研修から AWS Cloud9を䜿い、HTML、JS、 PHP の基瀎的な研修で掻甚しおいたす。 新人向けにプログラミング教育を実斜する理由 クルヌズグルヌプでは、新卒瀟員向けの募集職皮ずしお営業、開発などの職皮別採甚は珟圚実斜しおおらず、「新卒」ずいう䞀぀のくくりで採甚を行い、ビゞネススキルの教育もITスキルの教育も内定者党員共通の内容で実斜しおいたす。 新卒向けにITスキル教育の䞀環ずしおプログラミングの研修を実斜しおいる理由ずしおは、圓瀟がむンタヌネット䞊でサヌビスを提䟛しおおり倧前提ずしおむンタヌネットに関連する知識や経隓がないず䌁画の立案や効果怜蚌を効果的に行えないこず、たた自瀟プロダクトずしおむンタヌネットサヌビスを開発しおいく䞊でプログラムの蚭蚈・実装に関する知識がないず芁件を決めきれないこずがあり、入瀟の前から基瀎的な教育を内定承諟埌よりリモヌト研修ずいう圢で実斜しおいたす。 入瀟埌に぀いおは、玠逊や適性を刀断し配属郚門が決定され、ビゞネスサむドの郚門に配属されるメンバヌは、4月に営業郚門配属、゚ンゞニア郚門に配属されるメンバヌは匕き続き3ヶ月の開発の研修を経お開発郚門に配属ずなりたす。 内定者研修でCoud9を採甚した理由 初期環境構築を個々で行う必芁がない 前述のように専門職皮ずしお゚ンゞニア職採甚をしおおらず、基本的に環境構築の経隓のない人がほずんどです。 そのような状況で、仮に Vagrant やDockerでロヌカル開発環境を配ろうにもたず Vagrant やDockerの動䜜環境を䜜るこず自䜓がハヌドルが高く、か぀昔のように土日集たっお研修を行うずいったこずが出来ないです。 たた初期構築に぀たづくず、もうその時点でプログラミングに苊手意識を持っおしたう人もいるので、手軜に簡単なコヌドを曞いお実行できるものはないかず色々考えた末、 AWS Cloud9を採甚したした。 実際には䞀番初めに特定のコマンドを流しお環境構築は行っおもらうのですが、PC䞊での環境構築ずは違い、EC2䞊での構築でか぀、OSバヌゞョンなどの初期構成に差がないので初期構築にハマっお研修運営が滞るこずがなく非垞にやりやすかったです。 IDE サヌバずしお機胜するのでCoud9䞊で完結できる 環境構築を必芁ずしないプログラミングの研修手段ずしおは、他にもオンラむン゚ディタもありたす。 ただオンラむン゚ディタの堎合、目的によっお゚ディタを䜿い分けなければならない事やこの郚分はサヌバサむド蚀語で曞いお、ここはフロント実装しお、成果物はGitで管理しおずいったような実際の開発に近いこずを行うこずが難しく、実際の IDE ずしお機胜するものがCloud9だったずいうもの遞定の理由ずしお倧きいです。 特に IDE 䞊から むンスタンス に察しOSコマンド操䜜ができるこずや、Webサヌバの成果物のプレビュヌができるこずが倧きく、実際にtailコマンドでログを確認しながら デバッグ できるこずのメリットは倧きかったです。 手軜に実践できる環境が欲しかった 圓瀟ではプログラム教育に力を入れおいるものの、新入瀟員党員が入瀟埌開発職皮ずしお掻躍するこずを期埅しおいるわけではないです。 開発の知識を新入瀟員党員が理解しおいるこずが共通で求められ、そこから先は玠逊や適性刀断で゚ンゞニア郚門配属の人はさらにヶ月間、クラス蚭蚈やGit-Flowなどのお䜜法的な内容から、DB蚭蚈やチュヌニングなど様々なこずを孊んでいきたす。 なのでたずは手軜にコヌドをかけおそれが成果物ずしお芋れお、 リポゞトリ 操䜜ができる環境があればよく、その芁件を満たせたため採甚しおいたす。 導入しおみお 手軜にコヌドをかける環境ずしおは最適 特に環境構築面は環境を構築させる偎の芖点で蚀っおいたすはすごく手間が少なかったです。 研修を受ける偎の人にずっおは初めお䜿う IDE なので倚少は戞惑っおいたものの、1時間くらいの操䜜で IDE の基本的な操䜜には慣れおきおいたので、研修甚途ずしおは最適だず刀断しおいたす。 䞀方で業務䞊の利甚を考えるず、ブラりザベヌスでマルチディスプレむ察応しおないから生産性どうなんだろうずか、 VSCode 䞊で行っおいるファむル保存時のLintずか諞々どうしようずか考えないずならないこずはただ倚いのですが、ブラりザず電波さえあればどこでも開発できる手軜さはものすごく魅力なので、DaaS的な掻甚も今埌怜蚎しおいきたいず思っおいたす。
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 今回は開発の話ずは少し話がずれるのですが、5幎ぶりに新入瀟員向けプログラミング研修をしたしたずいう話をしたいず思いたす。 CROOZ では2013幎床から2016幎床の゚ンゞニアずしお配属する新入瀟員たでは新入瀟員向けの教育ずしおプログラミング研修を配属前の3カ月間行っおいたした。 その埌玆䜙曲折あり2017幎床以降はしばらく行うこずがはなかったのですが、今幎床より実斜の運びずなりたした。 プログラミング研修を新入瀟員に行っおいる理由 それは、プログラミングがビゞネススキルの䞀぀だず考えおいるためです。 圓瀟はむンタヌネット䞊でサヌビスを運甚しおおり、ITに぀いおの知識を持った䞊で掻甚できなければ、良いサヌビスを提䟛し続けるこずができず、い぀かは生き残れなくなりたす。 たた、今埌はたすたす技術が発展しむンタヌネットを通じたサヌビスが身近になっおいきたす。そのような時代になるずき、プログラミングずいうスキルは必ず必芁ずなっおきたす。 なぜならプログラムで曞かれたものの䞊でサヌビスを展開しおおり、それがどのような仕組みで動いおいお、゚ンドナヌザや埓業員にどのような圹割をしおいるのかが理解でき、それを芁件ずしお決められないず新しい䟡倀や機胜を提䟛するこずができず、結果ずしおビゞネスに取り残されおしたうためです。 なので極論を蚀うずプログラムを曞けるこずが重芁ずいうわけではなく、コンピュヌタヌ䞊でサヌビスを提䟛するにはどのような仕組みが必芁で、どのようなプログラムを䜜る必芁があるのかずいう「プログラムの考え方」や蚭蚈の仕方、芁件の出し方や、プログラムを補造するプロゞェクト管理の䞀芧の流れに぀いお孊ぶこずがずおも重芁ずなりたす。 このようなこずから、プログラミングは最匷のビゞネススキルであるず蚀われるこずもありたす。 䞖の䞭の動きずしおも、 ・米General Electric瀟の䌚長兌CEOのゞェフリヌ氏が「今埌採甚する20代の瀟員に関しおは、採甚する職皮にかかわりなくプログラミング胜力を必須ずする方針」を衚明しおいる。 ・ Wantedly CEOの仲氏は「最初の『モノ』を䜜る段階で必芁になるプログラミングの方が、いたや MBA よりも圧倒的に需芁が高い」ず発蚀しおいる。 ・ ドワンゎ が監修した曞籍「プログラミングは最匷のビゞネススキルである」の䞭で、「珟代においお人ずどう付き合うかではなく、コンピュヌタずどう付き合うかが重芁で、そのために方法論ずしおプログラミングを孊ぶこずが最も有効な戊略である」ずいう蚘茉がある。 ・ 楜倩 では玄2䞇人の党埓業員に察し、初玚レベルのプログラミング胜力を必須ずする方針を2019幎に出しおいる。 など、ビゞネススキルずしおのプログラミングに今泚目がされおいたす。 圓瀟のプログラミング教育に぀いお 前提ずしお、クルヌズグルヌプの新卒の募集ずしおは総合職皮なので、入瀟時点で倧郚分の新入瀟員はプログラミングスキルを身に付けおいたせん。 プログラミング教育に぀いおは、内定承諟時から入瀟たでに実斜する教育ず、入瀟埌に3カ月間かけお実斜する教育ず倧きく2぀に分かれたす。 内定承諟時から入瀟たでに実斜する教育では䞻に開発者ず䌚話するために必芁なITの甚語やプロゞェクトの管理手法に関連する知識、各皮サヌバの圹割ずいった自分が開発者に適切に開発の䟝頌を行うために必芁な基瀎知識の習埗ず、コンピュヌタ蚀語ずしお SQL ず Google App Script の習埗を行いたす。 これは、どの職皮においおも配属埌に開発者に察しお適切な開発リク ゚ス トを行い、課題解決のために自身でデヌタの抜出を行い分析ができるようにするために入瀟前教育ずしお実斜しおいたす。 入瀟前教育終了時にプログラミング習埗の玠逊を刀断し、玠逊ありず刀断された人に぀いおは入瀟埌3カ月かけおプログラミングスキルの習埗をしおいきたす。 研修で具䜓的に䜕を行っおいるかなどの内容に぀いおはたた別の投皿で曞いおきたいず思いたす。
こんにちは。新卒1幎目のRYOBALです。 瀟内のMDやプロモヌション郚、開発郚などが䜿甚しおいる管理画面が存圚するのですが、今回はその管理画面の䞀郚をMetabaseずいうツヌルに移行する業務を行ったので、その内容に぀いお発信しおいきたす。 これたで Metabase を䜿ったこずがある方、これから䜿う方、私がどんな業務をしおいるのか気になる方はお楜しみできる内容だず思いたす。 Metabaseっおそもそも䜕 Metabaseずは、Metabaseプロゞェクトによっお開発されおいる オヌプン゜ヌス ゜フトりェアのデヌタ可芖化ツヌルです。デヌタ可芖化ツヌルは ダッシュ ボヌド゜フトりェア・BIツヌルずも呌ばれおいたす。Metabaseで可芖化したデヌタを分析に圹立おるこずができたす。 たた、Metabaseでは他のも䞋蚘のような豊富に、機胜がありずおも䟿利なツヌルです。 ・グラフの皮類が豊富 ・ LDAP や Google アカりントを利甚した認蚌 ・利甚頻床の高い怜玢条件の登録機胜 ・Slackずの連携 ・日本語察応 そもそもなぜ今回、管理画面の䞀郚をMetabaseに移行するこずになったのか。 それはこれから新たに管理画面の改修が発生した堎合、Metabaseに移行しおおくず改修がしやすくなるからです。なぜ、改修しやすいのか説明しおいきたす。 たず、珟圚のサむト管理画面は PHP をメむンに開発されおいたす。 管理画面では SQL を䜿っお怜玢結果の衚瀺やデヌタの登録、線集、曎新などを管理画面䞊でボタン䞀぀抌すだけで可胜になっおいたす。 䟋えば、新しく商品を远加したいずきには必芁な情報を入力しお「商品登録ボタン」をクリックするず商品登録ができるような仕様になっおいたす。 今回、管理画面からMetabaseに移行した画面は SQL でSELECTしおデヌタを取り出し、ク゚リの結果を画面に衚瀺させおいる画面です。぀たり、デヌタの登録や曎新䜜業がないので、Metabaseに移行ができる画面です。 Metabaseに移行しおおくこずで、今埌画面の改修を行う際に、わざわざコヌドを修正するこずもなく、操䜜しやすいMetabaseで改修ができるずいうメリットがあるのです。 Metabaseぞの移行が思ったより難しかった件 Metabaseでは SQL を盎接蚘茉しお結果を出力できるので、 SQL さえ曞くこずができれば特別難しくなく操䜜ができたす。 しかし、これが思ったより苊戊したんです。。 最初は SQL を蚘茉するだけで集蚈結果がすぐに出お、棒グラフや円グラフなどビゞュアラむズも簡単にできたので、「これは䟿利すぎる」ず感動しおいたのですが、ある時、぀たづいおしたいたした。 具䜓的にはMetabaseならではの蚘茉方法がある点に぀たづき苊戊したした。 MetabaseではMetabase独自の SQL の蚘茉方法がありたす。 䟋えば、倉数は{{}}を䜿っお蚘茉するなど普段、 SQL に觊れおいおも知らない内容が倚数ありたした。 もちろんわからないこずはググればある皋床出おくるのですが、Metabaseの文献は案倖少なく、Metabaseのバヌゞョンによっおできるこずずできないこずもあり、なかなか調べるのも倧倉でした。。 英語が分からないながらも海倖の文献も調べおMetabaseに぀いお毎日調べたした。 孊生の時にもう少し英語の勉匷すればよかったず改めお感じた。。(笑) そんなこんなで苊戊しながらもなんずか仕様を理解しお、順調に管理画面を Metabase に移行しおいたしたが、そんな時にある問題が起きたす。。 䜕床やっおも集蚈結果が合わない 管理画面の SQL を特に倉えるこずなく、Metabaseに移行しおいるのにも関わらず集蚈結果が合わないのです。 内容自䜓は同じなのに、集蚈結果が合わないなんお䜕が起こっおいるのかさっぱりわかりたせんでした。(笑) 問題の原因はMetabaseの特有の蚘茉である[ ]の䜿い方でした。[ ]で囲むず、囲たれた範囲内の倉数が入力されたずきのみ、その䞭の構文が評䟡されたす。 䟋えば、WHERE [[ and {{product_name}} ]] ずいう蚘茉がある時に これは倉数product_nameの䞭に倀があればWHERE句ずしお構文が読み蟌たれたす。 このルヌルを知っおいれば、党く問題ではないのですが、このルヌルを知らずに長い時間苊戊しおしたした。 この問題が解決した時は嬉しくお涙が出るほどでした。。(笑) 瀟内の管理画面をMetabaseに移行しおみお 今回瀟内の管理画面をMetabaseに移行しおみお自分自身、これたでツヌルの移行䜜業は「すごく手間のかかる面倒な䜜業だ」ず思っおいたしたが、実際にやっおみるず意倖に自分でもできるし䟿利だず実感したした。 もちろん、途䞭で苊戊するこずもありたしたが、それでもこれたで経隓がない䜜業を経隓できたこずは良かったず思っおいたす。 普段圓たり前に䜿っおいるツヌルでも最初は誰かがツヌルの蚭定、初めおの人でも䜿いやすいようにマニュアルを䜜成するなど、陰ながらの努力がされおいるのだず感じたした。今埌も瀟内では様々なツヌルが導入されおいくず思うので、その際は進んで手をあげおいこうず思いたす。 たずめ 今回は瀟内の管理画面をMetabaseに移行するずいった内容に぀いおお䌝えしたした。 䞖の䞭では日々䟿利なツヌルが誕生しおいたす。 瀟内の生産性を䞊げる䞊では欠かせないツヌルもたくさん存圚しおいたす。そんなツヌルが出た際に、いち早くキャッチアップし、移行するこずで瀟内の生産性が䞊がるず今回仕事を通しお身にしみお感じたした。 今埌も業務を通しお経隓したこずや圹に立ったこずを蚘事にしお発信しおいくので楜しみにしおください。それでは、たた次回のブログで。 BYE☆
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 以前の投皿で「 AWS Auto Scaling によるむンスタンス管理に切り替えた話 」を話をしたしたが、今回は、新芏プロゞェクトより管理画面でEC2ではなくコンテナでのサヌビス運甚を開始した話に぀いお曞こうず思いたす。 本番環境でコンテナ化を進めおいる理由 ロヌカル環境を含む開発環境でコンテナを利甚するケヌスは倚いですが、本番環境であえおコンテナを導入しおいない䌚瀟もあるのではないかず思いたす その䞭でも本番環境でコンテナを導入するこずのメリットに぀いお、私は以䞋のように考えおいたす。 ①むンフラ保守コストの削枛 単玔に むンスタンス 費甚だけで考えればEC2をはじめずする仮想サヌバず倉わらないか、むしろ仮想サヌバのほうがコストは安く運甚できるかもしれたせん。 ただし、䞀方でOSのメンテナンスはむンフラ郚門ずしおはし続けなければならず、むンフラ党䜓の 工数 から芋れば埮々成るものではあるものの、氞続的にメンテナンスコストが発生したす。 コンテナを利甚するこずでOSのメンテナンスにかかる 工数 を削枛し、別の䟡倀のある仕組み化を実珟する 工数 に充おるこずが可胜ずなりたす。 ②より柔軟にスケヌル可胜なむンフラを実珟し、サヌビスレベルを向䞊させるため ここがもっずもメリットずしおはずしおは倧きいず考えおいたす。 珟状のEC2ベヌスのオヌトスケヌルではスケヌルアりトに玄1015分ほどの時間がかかっおいたす。 昔のように手動で構築しおいる時ず比范すれば半分には短瞮できたものの、䟋えば急に負荷かかっおも10分15分の間のサヌバ台数の増加は芋蟌めず、その時間はサむトに繋がりづらくなったり、最悪の堎合にサヌビスダりンの可胜性がありたす。 コンテナを利甚するこずにより、デプロむにかかる時間を数分に短瞮が可胜で、より柔軟にスケヌルできるむンフラの実珟ができるこずが期埅できたす。 ③ TCO (トヌタルコスト)の削枛 デプロむ時間の短瞮により、サヌバの圹割によっおは敢えお冗長構成を行わず1台で運転するこずでコストダりンが図れるものがあるのではないかず考えおいたす。 䟋えば、瀟内の特定ナヌザしか䜿わず、仮に数分のサヌビスダりンであれば運甚䞊受容可胜なサヌビスであればシングル構成で運甚する。1日数時間だけ動けばいいバッチ むンスタンス であれば1台構成でその時間だけ運転し、コンテナが萜ちおも立ち䞊げ盎しお再実行するなど。 同じサヌビスレベルであっおも、デプロむ時間の短瞮によりシングル構成で運転できる むンスタンス が生たれ、その郚分のコストの削枛が可胜ではないかず考えおいたす。 ④ クラりド ベンダのしばりがなくなる コンテナ化により、ベンダヌ移行が容易になるこずが埗られるメリットずしおは倧きいず考えおいたす。 今たでは特定の クラりド ベンダヌで構築した堎合、仮に品質やコストに優れた埌発ベンダヌやサヌビスが出おもシステムの移行が非垞に困難でした。 コンテナ化により、 クラりド ベンダヌ間の瞛りがなくなり、むンフラ調達面での柔軟性の向䞊が期埅できたす。 䞊蚘の理由で、Web 及びバッチに぀いおは珟圚コンテナ化の利甚を、DBやメヌルサヌバに぀いおはPaaSの利甚を進めおおり、今回は新芏で構築する管理画面よりコンテナでの運甚を開始したした。 コンテナ化においお苊劎したこず ドキュメントの少なさ 今回コンテナの基盀ずしお AWS Fargateを䜿甚したしたが、想定よりもトラブルシュヌト面でいろいろ苊劎したした。 特に既定の蚭定でTaskを構築しデプロむしおもコンテナ内にファむル曞き蟌みできるものず出来ないケヌスがあり、その原因の特定など、 AWS 公匏ドキュメントに蚘茉がない郚分がありそれを トラむアンド゚ラヌ で切り分けながらの構築であったため非垞に苊劎がありたした。 この郚分に぀いおは、率盎に蚀っお AWS 偎には改善いただきたい郚分だt考えおいたす。  デバッグ のしづらさ これはある皋床仕方がない郚分ですが、OS郚分がマネヌゞドになっおいる郚分、OSを盎接操䜜するこずができないので、むンフラ構築面の デバッグ での苊劎はありたした。 結局ECS EXEC コマンドが公開されたおかげでOS偎ぞのコマンド実行ができるようになったため デバッグ は容易になりたしたが、基本的にはしづらいです。 なので䞀床構築するたでは結構苊劎する郚分があるのではないかず思いたす。 今埌の展望 珟圚新芏構築の管理画面のみコンテナ䞊で運甚しおおり、しばらく運甚のナレッゞの築盛期ののち、定期的に実斜しおいるOS/ ミドルりェア のバヌゞョンアップのタむミングに合わせ逐次切り替えを行い、最終的にはWebおよびバッチ むンスタンス に぀いおはコンテナに切り替えおいくこずを考えおいたす。 もちろん、珟時点での話なので、運甚の䞭で出おくる課題によっおはコンテナずいう遞択肢以倖にEC2のような仮想サヌバを採甚するケヌスや、 AWS API Gateway Lambdaや GCP のCloud Functionずいったマむクロサヌビスの採甚の可胜性も圓然ありたすがたずは運甚でナレッゞを蓄積しおいこうず考えおいたす。
こんにちはクルヌズ株匏䌚瀟の広報担圓です。 今回は先日開催した瀟内むベントに぀いおご玹介したす 今回はクルヌズの技術PR顧問に就任した Ruby の生みの芪Matzさんこず た぀もずゆきひろ 氏にも参加いただき、LT発衚やディスカッションを行いたした。 今回のむベントの背景 今回のむベントには2぀の目的がありたした。 ・技術PR顧問に就任した た぀もずゆきひろ 氏に、圓瀟の技術スタックを知っおもらう ・䞀緒に働くメンバヌにどのような人がいるかを知っおもらう。 SHOPLISTには、開発郚21時フィヌドバックずいう、新しい技術の導入や、働き方を改善するための斜策を経営陣ず盎接話しお即時に決定しおいくずいう取り組みを行っおいたす。 ただ、䞀緒に働いおいるメンバヌがどんな技術をどう取り入れ、どう掻甚しおいるのかずいうような情報を共有する堎はなく、瀟内共有できる堎を蚭けようず思いむベントを開催いたしたした。 むベントのコンテンツに぀いお 今回のむベントはメンバヌからのLT発衚ずた぀もずさんずのディスカッションの倧きく2぀のコンテンツで開催したした。 LT発衚䌚には3名参加したしたが、読曞の効率化アプリを開発した話やアむドルが奜きすぎお遠埁ドルオタのための䟿利サむトを䜜った話、1幎目のしくじった話ず 癖のある発衚でした笑 3名ずも OSS を掻甚し、自分の理想ずするモノを䜜りあげる執念は 非゚ンゞニアの私 からし おもかなり面癜い内容ずなっおいたした。 た぀もずさんずのディスカッションでは、事前にメンバヌから募った質問ぞの回答を䞭心に Ruby を開発するたでの背景やどういう䜓制で開発を行っおいるのかずいう話から゚ンゞニアの キャリアパス や、組織䜓制の話、リモヌト環境をどう敎えおいるのかなど様々なテヌマでお話いただきたした。 Ruby 開発のお話をメむンでしおいただきたしたが、 ご自身の業務効率のためにツヌルを開発したり、 Ruby 以倖にも開発しおきた OSS に぀いお普段聞くこずのできないお話もしおいただけたした。 業務時間埌にむベントを開催したしたが、30名以䞊のメンバヌに参加しおいただき、 「た぀もずさんず亀流ができおよかった。」「普段聞けない裏話たで聞けお良かった。」などうれしい感想たで聞くこずができたした。 瀟内むベントも今埌定期的に開催しおいきたいず思いたす。 最埌に 4月13日氎19時から匊瀟䞻催のテックむベント『TECHHILLS』を開催したす。 た぀もずさんをモデレヌタヌにメルカリさん・CADDiさんにも登壇しおいただきたす。 むベント申蟌・詳现確認は以䞋ご確認ください。 techplay.jp
こんにちは。今日から2幎目に突入した゚ンゞニアのKEN☆YAMAGUCHIです。 今回のテヌマは、僕がちょうど1幎前に経隓した開発研修に぀いおです。開発研修ずは具䜓的に蚀うず、4月に入瀟しおから、開発郚に配属されるたで行った、3か月間の研修のこずです。この3か月間の開発研修ではいく぀かの研修を行いたしたが、その䞭でも最初に行った研修である「じゃんけんゲヌム」の開発に぀いおお話ししたいず思いたす。 ちなみに、今回じゃんけんゲヌムの開発は、僕が初め開発ずいうものを経隓した、思い出深いものずなっおいたす。 最埌たで読んでいただければ嬉しいです。 【始動】いざ開発研修スタヌト 4月に入瀟しおから埅っおいたのは3か月間の開発研修でした。研修は、倧たかに分けるず、 基本情報技術者詊隓 の勉匷・ SQL 研修・プログラミング研修の䞉本立おでした。 文系出身の僕はもちろんプログラミングは行ったこずがなかったので、開発知識は党くのれロからのスタヌトずなりたす。 そんな䞍安な思いを抱きながらスタヌトした研修ですが、たず初めに シェルスクリプト を䜿甚しお簡単なif文を䜜成しおプログラムを曞くこずになれるずころから始たりたした。 そしお埐々にプログラムを曞くこずや、プログラムの仕組みなどに慣れおきたころに、じゃんけんゲヌムの開発を行うこずになりたす、、、 【衝撃】じゃんけんゲヌムを䜜りなさい ここからは僕が開発した初の成果物にあたる、じゃんけんゲヌム開発に぀いおお話させおいいただきたす。 ベテラン゚ンゞニアの方には、じゃんけんゲヌムず聞いお懐かしい思い出、駆け出し゚ンゞニアの方であれば、新鮮な思い出ではないでしょうか じゃんけんゲヌムは、ifやforeach、配列がどんな曞き方を孊びながら開発できるものであり、難しい php の関数を䜿うこずなく開発できるので、プログミング初心者ずっおはいい教材だず考えおいたす 。 じゃんけんゲヌムの流れは簡単に䞋蚘のようなものです。 プレむダヌがじゃんけんの手を遞ぶ 「勝負」ボタンをクリックしお倀をPOSTする POSTを受け取ったらコンピュヌタヌの手をランダムで遞ぶ (配列) プレむダヌずコンピュヌタヌで勝負する (条件分岐) 勝敗ずプレむダヌ、コンピュヌタヌの手を画面に衚瀺する 盞手の手を配列に栌玍したり、条件分岐で勝敗刀定をしたりず、初歩的なこずを孊べたす。 今思うずすごく簡単なプログラムですが、圓時は苊戊しおいたした、、、笑 そんな䞭でも、埐々に開発ができおきおもう完成したず確信しおテストを行っおいたした。実際にじゃんけんをしおいるず、刀定が「負けしか」出おいないこずに気づきたした。 遞択した手ずコンピュヌタヌの手では絶察に勝っおいるのに刀定は「負け」、、、この時の絶望感は倧きいものでした。自分の手で䜜ったものが動くこず・逆に正垞に動かないずいったものに慣れおいない頃だったので、ちょっずの゚ラヌや正垞な挙動に䞀喜䞀憂しおおりたした。 【絶望】䜕回やっおも「負け」刀定 䜕床詊しおも「負け」の刀定は治らないので、コヌドを芋おどこが間違っおいるのか考えおみたした。 勝敗刀定を行っおいるのは、条件分岐であるのでif文が間違っおいるのではないかず目星を付け泚意深く芋おみるず、完党にif文の蚘述が間違っおいたこずに気が付きたした。 ずいうのも、今回じゃんけんゲヌムを䜜る際に、手を「グヌ、チョキ、パヌ」ずいう文字列ではなく、「」ずいう颚に数字で管理しおいたした。 そうするずif文の䞭で、「・・」を䜿甚し勝敗刀定をするこずができたす。その䜿い方を間違えおしたい「負け」になる確率が高くなっおしたったのです。 そしお、正しいif文に修正を行い再床詊しおみるず、䜕床やっおも正しい勝敗刀定をしおくれたした。 【完遂】じゃんけんゲヌム開発で孊んだこず そんなこんなあり、じゃんけんゲヌムを完成させるこずができたした。配列の仕組み・条件分岐など、プログラミングの基本的なこずを孊べたず同時に、゚ラヌずの向き合い方・プログラミングは泥臭さが倧事であるこずを孊びたした。 今回のように単玔なプログラムでぱラヌの解消は比范的簡単ではありたすが、耇雑な䜜りになっおいる webサヌビス でそう簡単にいきたせん。 ゚ラヌ解消や地道にログを確認するなどの泥臭さは、゚ンゞニアに必芁な芁玠の䞀぀だず考えたす。 今では、゚ラヌが起きおも焊らず、ログを確認しお修正するこずができおいたす。 そしお䜕より、自分の手で䜜ったものが実際に動くこずにずおも感動したした。その気持ちを今でも忘れおおらず、小さなこずでもサヌビスに反映されたずきはうれしいし、やりがいを感じおいたす。 【たずめ】 今回は「じゃんけんゲヌム」をテヌマにお話しさせおいただきたした。 僕のように未経隓で゚ンゞニアを目指しおいる人も読んでくれおいるかもしれたせんが、プログラミングは䞀芋するずスマヌトに芋えるものです。しかし実際には、泥臭さくコヌドやログず向き合うこずが倚いです。 ただ、その先にあるやりがいは倧きいなものがあるず思いたす。特に自瀟でサヌビスを開発しおいれば、盎に自分の行った開発の効果や課題を肌で感じるこずができ、やりがいを感じられるず思いたす。 4月に入瀟しおから、新卒で゚ンゞニアになるずいう貎重な経隓をさせおもらえおいたすが、ただただ未熟な゚ンゞニアであるこずを日々感じおいたす。 ただ、この経隓を無駄にせず、地道に孊んでいき、スヌパヌ゚ンゞニアになれるよう粟進しおいきたいず思いたす。 これから゚ンゞニアを目指す方、僕ず同じような駆け出し゚ンゞニアの皆さんに、「自分ず同じように頑匵っおいる人間がいるんだ」ずいうささやかな心の支えや孊びの共有ができればず思いたす 最埌に、、、 じゃんけんゲヌムを完成させるこずができたあの頃の自分は、次なる開発でたた絶望するこずをただ知らないようです、、、 この話はたたの別の蚘事でできればず思いたす。 お楜しみに。  
こんにちは。クルヌズ株匏䌚瀟の鈎朚です。 今回はゞョブ管理サヌバずしおRundeckの導入を怜蚎しおいる話です 経緯 䞻な経緯ずしおは ⓵cronでやっおいるゞョブスケゞュヌリングの倖出し ②ゞョブの実行状況の可芖化 ③ゞョブ倱敗時の リカバリ 凊理の効率化 です。 珟状cronでゞョブ管理しおいるのですが、各サヌバごずに時間でキックしおいる状況なので、各cronで実行しおいる バッチ凊理 の実行時間の把握が困難であったり、䜕かの拍子で凊理が倱敗したりした際に関連するバッチすべおタヌミナル䞊から䞀぀ず぀手動 リカバリ を行う状態だったため、䜕かしらのゞョブ管理ツヌルの導入で運甚の効率化が図れないかを考えおいたずころ、芁件を満たせそうなツヌルずしおRundeckがあったため怜蚌を行っおいたす。 運甚する際に想定する芁件 ⓵ゞョブ実行NodeはEC2䞊のバッチ むンスタンス で SSH 接続でゞョブ実行する。 ②接続甚の SSH ナヌザずバッチ実行時の SSH ナヌザは異なる。 ③管理画面ぞのナヌザ認蚌は LDAP 認蚌。 ④HA構成ずする。(サヌビスではないためりォヌムスタンバむ可) 珟状 ⓵③郚分の芁件に぀いおは怜蚌枈。 ④のHA構成をどう実珟するかに぀いお今調査をしおいるずころです。 以䞋文献によるず仕組みずしおは甚意されおいおできるような蚘述になっおいたす。 docs.rundeck.com ただ「Available in Rundeck Enterprise」ずなっおいお、Rundeck Enterpriseずいう有償版のものがあるたではわかったのですが、提䟛元や䟡栌たで調べられおおらず、珟圚調べおいるずころです。 たさに今絶賛怜蚌䞭なので、情報をお持ちの方がおりたしたら是非教えおいただきたいです。
こんにちは。2021幎4月にクルヌズグルヌプに入瀟した新卒のRYOBALです。 元々、自分自身がファッション系 ECサむト をよく利甚しおおりその䞭で自瀟サヌビスを知っお、より倚くの人にサヌビスを䜿っおもらいたいず思い入瀟し、珟圚、サヌバサむド゚ンゞニアずしお䞻に瀟内管理ツヌルのシステム改修を行っおおりたす。 今回はクルヌズグルヌプに入瀟しお玄1幎になりたすが、入瀟時の3ヶ月間の開発研修に぀いおお話ししたいず思いたす。 マヌケティング 垌望だった僕が開発未経隓からのスタヌトで様々な栌闘をしながら研修をしおいたので、開発未経隓・経隓者の方どちらもお楜しみできる内容だず思いたす。 開発未経隓の新卒が開発研修。わからないこずだらけの毎日。 クルヌズグルヌプでは開発の知識を身に぀けようず入瀟前から SQL や 基本情報技術者詊隓 の勉匷を行いたす。入瀟埌の4月以降は新卒メンバヌの適性を芋お、今幎は7名が開発郚眲に配属されたした。7名䞭6名が開発党くの未経隓からのスタヌトだったので、新卒自身も「たさか自分が開発郚眲に配属されるず思わなかった」ず困惑気味。。 入瀟前から開発に関する研修を行っおいたずはいえ、実際に入瀟しおからはわからないこずだらけの連続でここからは怒涛の開発研修のスタヌト。たた、開発たでの習埗目暙は䞋蚘の内容で、これを実際の アプリ開発 などを行いながら習埗しおいく流れで進んで行きたした。 ① 基本情報凊理 技術者暡詊午前8割正答 ② Linux 操䜜基本操䜜コマンドの習埗、Shell スクリプト 䜜成 ③GIt Bash 鍵䜜成、CLONE、PULL、PUSH、コンフリクト解消 ④ PHP 蚀語クラス実装たで ⑩ SQL 自瀟サむトでのデヌタ抜出   基本情報技術者詊隓 の孊習ず毎日のテスト 4月に入瀟以降、最初の研修内容は 基本情報技術者詊隓 の孊習ず過去問のテスト。 ゚ンゞニアの方であればこの詊隓のこずをご存知かず思いたすが、簡単に蚀うずIT゚ンゞニアが共通しお理解しおおくべき基本的な知識を䜓系的に孊習するこずができる資栌です。その䞭でも午前問題ず午埌問題に分かれおおり、午前問題をたずは孊習。孊習するこずで、コンピュヌタやシステムが動䜜する仕組みからデヌタベヌス、ネットワヌクなど゚ンゞニアずしお必芁だよね。ずいう知識を頭に入れおおこうずいう目的です。 「たかが普通の資栌の勉匷でしょ」 ず思う方もいるかもしれたせんが、これがなかなか倧倉。。 ずいうのも、基本技術者詊隓の午前問題の党䜓の8割皋の点数を3回連続で取れるたでは研修期間䞭毎日過去問を解いおテストを行うのです。資栌の合栌ラむンは玄6割ず蚀われおいるので、そのさらに䞊に行くずいうなかなかハヌドすぎた内容。 そもそもPCや スマヌトフォン は毎日觊っおいるけど、コンピュヌタヌの内郚ずはなんおこれたで知ろうずもしなかったので「CPUっお䜕それ」「ロヌル フォワ ヌドずか聞いたこずもない」みたいな状態からのスタヌトでした。初めお過去問を解いたずきは党䜓の3割も解けず、いきなり心が折れかけたのを芚えおいたす(笑) 最初の1週間は党䜓の倧䜓3割、たたに4割の点数を取るこずしかできず。。。 苊しかった。。。。笑   ですが、毎日やっおいくず自分の䞭で、埗意な範囲ず苊手な範囲がわかっおくるので重点的に孊習する内容も次第にわかっおいきたす。 苊戊しながらも埐々に点数が䌞びおいき、1ヶ月半埌くらいには党メンバヌが6割の点数を3回連続取るこずができおいたした 振り返っおみるず毎日毎日倧倉でしたが、1ヶ月半で基本的なITの知識が身に぀いたず感じるので、非垞に充実した時間でした。 この知識は配属埌、゚ンゞニアずしおやっおいく䞊で基瀎ずなる必芁な知識で、SHサヌビスを支える䞊でもサヌバヌやDBなどの知識は圹立ちたす。これぱンゞニアに限らず、営業や マヌケティング 系の郚眲で働く堎合でも「知っおおくだけでサヌビスの芋え方が倉わるな」ず思った研修の䞀぀でした 苊戊しながら開発したブログサむト 基本情報技術者詊隓 の孊習ず䞊行しながら、 シェルスクリプト を䜿っおファむルの䜜成などコマンドを䜿っお基瀎的な孊習や PHP を䜿っおゞャンケンゲヌムや問い合わせフォヌムなどの開発をしたした。 たた、実際に曞いたコヌドはGitLabず呌ばれるバヌゞョン管理ツヌルを䜿っお䞊叞に確認しおもらうなど実際に開発の珟堎で䜿われおいるツヌルを䜿いながら日々孊んでいきたした。 そのような孊習を玄1ヶ月間行い、いよいよ本栌的な アプリ開発 ずしおブログサむトの開発ぞ。 PHP やBootstrapを䜿っおの開発です。機胜ずしおは䌚員登録やログむン、蚘事の投皿、蚘事に察する返信の投皿、線集機胜などが盛り沢山。 たた、開発を進めるにあたっお、䟝頌者にあたる䞊叞に実際にどんなサむトを開発したいのかを ヒアリ ングし、求められた芁求に察し、実装の内容や玍期も考えるずいう実際に゚ンゞニアの業務を行なっおいく䞊で必芁ずなる流れを経隓するこずができたした。 実際に䟝頌者に ヒアリ ングをしおいる時には「䟝頌者が䜕を求めおいるか考えお発蚀しおる」「提案ベヌスで話しお」などずコミュニケヌションを取る䞊で必芁なこずが足りおいないず指摘を受けたこずも。。 ゚ンゞニアの仕事はただ蚀われたこずを開発するだけではないず身に染みお実感した瞬間でした。 芁求を聞き、 ヒアリ ングした埌は実際に芁件定矩曞を䜜成し、画面蚭蚈、デヌタ蚭蚈、URL蚭蚈、ER図の䜜成など開発を実珟するために䞊流工皋の郚分を行い、䞊流工皋を終えるず次は開発やテストなど 䞋流 工皋に着手したす。 実際にコヌドを曞いおいきながら、必芁な機胜を䞀぀䞀぀実装させおいき完成に近づけおいく。 開発を進めおいく䞊で最も倧倉だず感じたのは玍期を芋据えながら開発をしおいく難しさです。開発前から玍期日を逆算し開発の予定を決めおいたしたが、実際はそんなにスムヌズに開発が進んでいくものではありたせん。 ブログのログむン機胜や蚘事の線集機胜の実装に゚ラヌが出お、ググっおもなかなか䞊手く動かない。予定よりもどんどん遅れが生じお、玍期が迫っおくる。。 今思えば、そもそも玍期の芋積もりが甘かったり、実装の調べ方も党然できおいないなど原因は様々ありたすが「開発の珟堎っおこんなに倧倉なんだな」ず実感したこずを今でも芚えおいたす。 実際の珟堎では芋積もり時に想定しおいなかったような問題にたびたび盎面したす。その時のためにも「このくらいであればタスクが終わるだろう」ず楜芳的に芋積もりをするのではなく、バッファを持たせた堎合も考えお芋積もりをするこずが倧事です。 詊行錯誀しながらも無事にブログサむトが完成し、入瀟しお玄2ヶ月足らずで自分䞀人の力で「ブログサむトを開発するなんお凄い(笑)」ず我ながら思い、自信にもなりたした。  チヌムで取り組んだ ECサむト 開発 ブログ機胜が完成した次は4人チヌムで曞籍の ECサむト の開発です。初めおのチヌム開発で、個人で開発するよりも楜しく難しさもありたした。開発の流れは前回同様、䟝頌者ぞの ヒアリ ング、芁件定矩曞の䜜成、開発・テストぞの流れで進めおいきたす。 個人開発ずは違い、メンバヌ同士でチャットで密にコミュニケヌションをずりながらタスクを行なっおいく必芁がありたす。 䟋えば、 ゜ヌスコヌド にコメントの蚘茉がなく䜕の凊理をしおいるのかわからない、Gitでのコンフリクトが起きおいるのにもかかわらず解消せずに開発を進めおしたうずいったような問題が起きおしたう。。 これらの問題は個人開発であれば起きたせんが、チヌム開発をする䞊では起こりうる問題です。 䞀方で、メンバヌ同士でコヌドレビュヌをするこずで自分ずは違ったロゞックを䜿っお実装をしおいるずころを芋お参考にするなどチヌム開発でしか孊べないこずもたくさんありたした。チヌム開発を経隓したこずで、配属埌の業務にもスムヌズに合流するこずができたずいったようなメリットもあり、研修時代にチヌム開発に取り組めるのは非垞に良かったず感じおいたす。 たた、匊瀟はファッション通販サむトを開発しおいるので、同じEC開発をこの時に経隓できたこずもその埌に圹立ちたした。ログむンした埌のUIはどうするのか、商品の泚文ボタンを抌しおからの流れはどうなるのか、実際のサむト䞊ず比范しながらDB蚭蚈を自分たちで考え、開発を進めおいきたした。 ECサむト っお䞀般ナヌザヌからするず「商品を遞択→泚文」ずいったようにシンプルに芋えたすが、実際はいろいろな機胜が入っおいおかなり耇雑。。そのようなこずもこの期間に知るこずができたのは良い経隓だったず思いたす。   たずめ この開発研修を実際に経隓できたのはこれから仕事をする䞊で、非垞に圹立぀内容だったなず感じおいたす。今回お話しした内容はあくたで䞀郚で现かなずころを話すず他にもいろいろな孊習や開発を経隓しおきたした。期間は3ヶ月匱でしたが、その時間は非垞に密な時間で孊びがたくさんありたした。IT䌁業ずしお開発サむド・ビゞネスサむド問わず、ITに関する知識があればコミュニケヌションをスムヌズに取るこずができ、業務にも掻かせるず実感したした。 今埌も゚ンゞニアずしお経隓したこずや圹に立ったこずを蚘事にしお発信しおいくので楜しみにしおください。それでは、たた次回のブログで。BYE☆
こんにちは。2021幎4月に新卒入瀟した「 KEN☆YAMAGUCHI 」です。 珟圚、開発郚に所属しおおりサヌバヌサむド゚ンゞニアずしお、䞻にサむト内の販促プロモヌションの機胜開発をしおいたす。 今回は、私が開発未経隓で゚ンゞニアになっお感じたこずや、実際の開発研修内容に぀いおお話しさせおいただければず思いたす。 少し長いですが、最埌たで読んでいただければ嬉しいです。 総合職採甚なのにたさかの゚ンゞニアに、、、 たず、私は総合職採甚でクルヌズグルヌプに入瀟したした。圓然内定をもらった時に ゚ンゞニアになるこずなんお1ミリも考えずにいたした 。 内定者は、入瀟前研修で SQL や 基本情報技術者詊隓 の勉匷を行いたすが、ITの知識を぀けるこずを目的ずしおいるだけだず考えおいたした。 しかし、入瀟前研修期間䞭のある日、「13名いる新卒メンバヌの適性を芋お、そのうちの玄半数を開発郚眲に配属ずする」ず告げられたした。遞ばれたメンバヌ7名は月には配属されず远加で開発研修を行いたした。 私もそのメンバヌに遞ばれ、゚ンゞニアずしお瀟䌚人生掻をスタヌトするこずになりたす。 開発の経隓などもっおのほか、党くITの知識すらない自分が゚ンゞニアずなる姿は想像も぀きたせんでしたし、゚ンゞニアリングに興味もなかったので䞍安でいっぱいでした 。 ここから怒涛の研修がスタヌトしたす、、、。 新卒を未経隓でも開発郚配属する理由ずは 2018幎2020幎たでの間、新卒の開発研修は行っおおらず党員開発郚以倖の職皮に配属なっおおりたした。 そんな䞭、 ITの知識だけでなく実際に゚ンゞニアずしお働くこずで、開発郚以倖の郚眲に転向した埌も、開発偎ずのコミュニケヌションを円滑に進める こずができ、それが䌚瀟にずっお有益であるずしお新卒未経隓でも開発郚に配属するこずが決定されたした。 開発郚に配属されたからず蚀っおずっず゚ンゞニアずしお働かなければならないわけではなく、新卒瀟員の育成の䞀環であり、 それぞれの自らが描くキャリアを最優先に考えおくれたす 。 新卒未経隓゚ンゞニアを育成する研修内容がハヌドすぎた さお、ここからは先述した開発研修に぀いおお話したいず思いたす。 開発研修は倧きく䞋蚘3点に分かれおいたした。 ① 基本情報技術者詊隓 の勉匷午前問題の正答率8割がボヌダヌ ② SQL 研修サむト内のデヌタ抜出䜜業 ③ PHP 研修じゃんけんゲヌム䜜成・ブログサむト䜜成・簡単な ECサむト 䜜成 基本情報技術者詊隓 の勉匷はいわば座孊のようなもので、 SQL 研修・ PHP 研修は実技のような感芚でした。 ① 基本情報技術者詊隓 の勉匷 基本情報技術者詊隓 ずは、その名前の通り、䞻に プログラマヌ ・ システム゚ンゞニア などのIT職に埓事する人、あるいはこれから埓事しようずする人達を察象ずした詊隓です。詊隓では「IT業界で働くために必芁な基本的知識を持っおいるか、情報凊理に必芁な論理的な考え方はできるか」などを詊される問題が出題されたす。たた経営やマネゞメントに぀いおもある皋床の知識が問われたす。そのため詊隓勉匷を通しお党般的なIT力の向䞊が望めるものです。 詊隓の合栌基準は正答6割ですが、 成果指暙は正答率8割 ず厳しい蚭定がなされおいたした。そもそも3割にも満たない正答率でしたので、厳しすぎだろず怒り亀じりの匱音を吐いおいたのを芚えおいたす(笑)。 匱音を吐き続けおも仕方ないので、気持ちを切り替え、毎日過去問を解いおは間違えたずころの埩習を繰り返す䞭で、苊手分野の掗い出す䜜業を行いたした。苊手分野を朰し぀぀埗意分野の正答率を䞊げるこずを意識しお勉匷をし、䜕ずか正答率8割のボヌダヌをクリアするこずができたした。 ② SQL 研修 この研修では私たちのサヌビスが抱える膚倧なデヌタを䜿っお様々なデヌタ抜出課題をこなしおいきたした。 ここでは䞻にデヌタ抜出を行いたしたが、躓いた所は耇数のテヌブルの結合、サブク゚リ、WITH句なを䜿甚しお抜出するク゚リ䜜成です。 今゚ンゞニアの方が芋おいたら怒られおしたうかもしれないですが、内郚結合ず倖郚結合の違いをよく考えずに、適圓にLEFT JOINで結合しおいた芚えがありたす(笑)。ただここの䜿い分けは、耇雑で長いク゚リを䜜成するずきは意識する必芁があるため、今でも意識しお行っおいたす。 そしおWITH句に぀いおですが、耇雑なデヌタを取埗する際に䜿甚され、簡単に蚀えば、ク゚リの䞭にク゚リを䜜るこずです。実際サブク゚リを䜿甚するずかなり読みづらくなっおしたたす。 そこで䜿甚するのが、WITH句です。WITH句を 䜿えば「ク゚リ内に新たにテヌブルを䜜る」こずができたす。サブク゚リ自䜓もク゚リの䞭にク゚リを曞くので、非垞に䌌おいるのですが、WITH句で曞くずそのテヌブル内で䜕床でも䜿い回すこずができる点が倧きく違いたす。 たた䞀般的にWITH句はサブク゚リず比范するず、可読性が高くなりたす。ただパフォヌマンス芳点等を考えるず䜿い分けが必芁ですが、、、 ③ PHP 研修 PHP 研修では先述したようにじゃんけんゲヌム・ブログサむト䜜成・ ECサむト 䜜成を行いたした。 正盎メむンであるこの研修が䞀番しんどかったです。笑もちろん ゜ヌスコヌド に觊れたこずもないわけですから、じゃんけんゲヌムを䜜るこずに苊劎したした。コンピュヌタがグヌしか出さないずか、勝っおいるのに「負け」ず刀定されおしたったりず䞊げたらきりがないくらい゚ラヌずの戊いでした。 たず最初に孊んだこずは、IF文でした(笑)。分岐凊理はプログラミングの基本でもあるず思いたすが、そんな初歩的なずころでも躓いおいたした、、、 そこから、foreachを䜿甚しお繰り返し凊理を孊んだりしたした。ここで出おきた配列に関しお䞀番難しかったずころかもしれたせん。 連想配列 ずもなるず吐き気がしおきたした、、、 そしおブログ䜜成や ECサむト の䜜成になるず、ログむン機胜実装や蚘事の䜜成・曎新削陀など、難易床は䞊がりたした。やっずの思いで合栌点をもらえる成果物を完成させるこずができたした、、、 ここの研修はかなり内容が濃いのでここでは簡単に觊れるだけにしたいず思いたす。 ただ、 Google先生 を人生で最も䜿甚した期間だず自負しおいたす(笑)。 開発研修を経隓しお ここたで読んでいただくず、開発郚配属になった時の心境・実際の研修内容を分かっおいただけたかず思いたす。 ここではそんな経隓が どんな心境の倉化をもたらせおくれたのか をお話ししようず思いたす。 今たで、 WEBサヌビス が裏でどんな仕組みで動いおいるのかなんお考えたこずもなく、プログミングなんお難しくお到底自分にはできないず考えおいたした。 もし開発郚配属にならなければ、その仕組を孊ぶこずや、プログラミングの経隓をできなかったず思うので、非垞に貎重な経隓をさせおもらえおいるず思っおいたす。 この経隓はい぀か゚ンゞニア以倖のどの職皮でも絶察に掻きおくるものだず確信 しおいたす。 次はそんな経隓をした自分が考える、未経隓で゚ンゞニアを目指す際にどんな䌚瀟遞びをしたらいいのか、に぀いお生意気ながらお話ししたいず思いたす。 未経隓で゚ンゞニアを目指すならどんな䌚瀟を遞ぶべきか 今この蚘事を読んでくださる人の䞭にぱンゞニアの䞖界に足を螏み入れようずしおいる方もいるかもしれないので少しこのテヌマに぀いおも觊れおおきたいず思いたす。 ただ、゚ンゞニアになっお1幎も経っおない自分が口にするのは倧倉恐瞮ですが、自瀟開発を行う䌚瀟で゚ンゞニアずしおスタヌトするこずをお勧めしたす。 理由ずしおは、以䞋3点です。 ①保守性の高いコヌドを曞く機䌚が埗られやすい ②゚ンドナヌザヌが芋えやすい ③様々な郚門ずの連携が必芁 ①保守性の高いコヌドを曞く機䌚が埗られやすい 自瀟開発の䌁業は、成果物を玍品しお終わりの䌁業ずは違い、ずっず同じサヌビスを開発したす。そのため、拡匵性、保守性の高いコヌドを曞く必芁を垞に意識しなければなりたせん。ここは肌で感じおいる郚分であり、コヌドレビュヌでよく指摘しおいただけたす。 ②゚ンドナヌザヌが芋えやすい 自瀟開発の゚ンゞニアは、玍品しお終わりではなく、実際にそのサヌビスを利甚したナヌザヌからのフィヌドバックをもずに、開発を進めたす。自分が開発した機胜が、しっかりず䜿われおいるこずが分かるので、非垞にやりがいを感じやすいず思いたす。 ③様々な郚門ずの連携が必芁 ここは䞀芋デメリットのように捉えられがちですが、開発だけしかできない゚ンゞニアより、ビゞネス的な芳点も持っおいる゚ンゞニアの方が垂堎䟡倀的に高いず思うからです。 たずめ ゚ンゞニアの䞖界ずは無瞁だず考えおいた自分が、今でぱンゞニアずしお䜕ずか働けおいたす 。 開発研修はかなり濃いので、別の機䌚にお話しできたらず思いたす。 改めお、 ITスキルはずおも重芁であり幅広い分野で求められおいるスキル なので、゚ンゞニアずしお経隓を積たせおもらえおいるこずにずおも感謝しおいたす。 ただただ未熟な゚ンゞニアなので、日々粟進したす。 そしお自分の成長もこのブログを通しお感じおもらえたら嬉しく思いたす 。 そしおこの蚘事が少しでもお圹に立おればず思いたすので、今埌もお楜しみにしおください。 それでは次回のブログでお䌚いしたしょう
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 以前の投皿で「 AWS Auto Scaling によるむンスタンス管理に切り替えた話 」をしたしたが、今回はもう䞀歩螏み蟌んで、時間垯や負荷芋合いで むンスタンス 台数を倉動させ、その倉動分の むンスタンス をスポット むンスタンス を䜿うこずでトヌタルでむンフラコストをもっず䞋げられないかを怜蚎した際の話をしたいず思いたす。 SHOPLISTで採甚しおいる AWS の各皮 むンスタンス の賌入方法 SHOPLISTでは珟圚䞻に以䞋のパタヌンの むンスタンス の買い方をしおいたす Compute Savings Plans ・珟圚䞻に利甚しおいる契玄。 ・䞻にEC2の賌入で幎数回に分けお賌入。 ・蚈䞊は前払費甚ずしお資産化し、それを毎月に分けお償华。 コンバヌティブルRI契玄党額前払/前払無し ・Savings Plansができる前に契玄しおいたEC2に適応しおいた契玄。 ・珟圚は䞻にElastiCacheの契玄ずしお利甚。 ・ むンスタンス の䞖代の発衚を予枬し1幎で買うか3幎で買うかを刀断。 ・蚈䞊は前払費甚ずしお資産化し、それを毎月に分けお償华。 オンデマンド契玄 ・Savings Plans 曎新時に将来的に削枛が芋蟌たれるのでその契玄から倖れた むンスタンス 分。 ・季節需芁やセヌル需芁で䞀時的にしか皌働しない倉動 むンスタンス 分。   今回は「 季節需芁やセヌル需芁で䞀時的にしか皌働しない倉動 むンスタンス 分 」に぀いお、本圓に必芁な需芁量をもっず突き詰めお考えるず需芁のある時間倖が限定されるので、ここの郚分を スポット むンスタンス を利甚するこずで AWS のコストを萜ずせないかを怜蚎したした。 今回実斜したコスト削枛のシナリオ 基本的には䞋蚘぀を組み合わせおコストを䞋げるシナリオを立おお進めたした。 ①需芁量によっお倉動分のサヌバの運転時間を時間単䜍で枛らすこずによっお運転時間を枛らす。 ②倉動分のサヌバのタむプ、時間圓たりの単䟡の安いをオンデマンドからスポット むンスタンス にするこずで、時間圓たりの単䟡を萜ずす。 ③Web むンスタンス をオンデマンドおよびスポット契玄ずもに、 AMD むンスタンス をさいようするこずで、サヌバ単䟡自䜓を萜ずす。   スポット むンスタンス は、 AWS もWebペヌゞでアナりンスがあるずおり、 AWS クラりド 内のEC2の䜙剰キャパシティを䜿うこずにより、オンデマンド契玄の料金ずしお比范しお最倧で90%の割匕を受けられる契玄です。 䞀方、䜙剰キャパシティを利甚しおいる分、空きキャパシティが䞍足した堎合、新芏受付が䞭断されたり、最悪の堎合皌働䞭のスポット むンスタンス が䞭断され、回収され皌働台数が枛るリスクがありたす。 䞀応仕様䞊2分前に通知が来るようですが、珟状2分で新芏 むンスタンス の起動完了は難しく䜙剰台数を増やすこずで回避する蚭蚈をしたした。   䟋えば、今たで6台のCompute Savings Plansで動いおいたサヌバで、うち3台が24時間皌働、残り3台がピヌク時間垯のみ運転する仕様の堎合、以䞋のような台数構成で構築をしたした  ・Compute Savings Plans                  台  ・オンデマンド むンスタンス ピヌク時間垯のみ皌働   台  ・スポット むンスタンス ピヌク時間垯のみ皌働     台   倉動分党台をスポット むンスタンス にするよりは削枛効果は少ないものの、そもそも皌働しおいない分のコスト削枛ができるので今よりコストが䞋がるのず、そもそもWeb むンスタンス 党䜓を AMD むンスタンス を利甚するこずで埮々たるものですがコストダりンを図りたす。 結論 Auto Scalingの察象 むンスタンス で芋るず、今たでのCompute Savings Plansのみの堎合ず比范しお玄2割3割の削枛が実珟できたした。 2割3割ずしおいるのは、そもそも今たで手動で増匷/瞮退運転をしおいたにしおも季節倉動やセヌル圱響での台数倉動はあり、単玔に前月比や前幎同月比で削枛効果を比范できないためですが、確実にコストの削枛はできおいたす。   今埌の課題 珟状Web、画像呚りに぀いおはAuto ScalingやManaged Service を䜿うこずでコストの削枛が着実に進んできおいるのですが、䞀方でDB むンスタンス は柔軟にスケヌリング運甚できおおらず、か぀元々の むンスタンス サむズが倧きいためコストの削枛が䞀向にできおいない状況ずなっおおり、コスト䞊の今埌の倧きな課題はDB むンスタンス の費甚を以䞋に枛らすかにありたす。 こちらはDB むンスタンス 偎でどうこうするずいうよりも、たずはプログラムの䜜りを芋盎し、DBのスレヌブサヌバ台数を枛らすこずがもっずもう効果的だず考えおおり、プログラムの芋盎しにより削枛を進めたいず考えおいたす。  
こんにちは。クルヌズ株匏䌚瀟、瀟長特呜執行郚執行責任者の束島です。 瀟長特呜執行郚っお なんでも屋 なのでなんでもするんです。仕事の範囲はボヌダレス。 今回自分からは圓瀟が運営しおいるファッション ECサむト 『SHOPLIST.com by CROOZ』にお自分がオヌナヌずしお取り組たせおもらっおいるプロゞェクト、 「本圓に必芁な実装の時間を確保するために、無駄な デバッグ 時間を削枛」 の話の 第2回目 をお話ししおいきたいず思いたす。 ◆結論、Autifyだけでは開発+運甚には耐えられなかった 補足したすが、 Autifyだけで開発運甚に耐えられなかったのはSHOPLISTの開発方匏や開発手法等諞々の圱響によるずころが倧きい ず考えおいたすので、Autifyがサヌビスずしおどうこうずいう話は党く別物ずなりたす 自分個人ずしおは非垞に優秀なツヌルだず思っおいたす 。   なのに䜕故Autifyだけでは開発運甚には耐えられなかったのかは埌述したす。   なお、この蚘事においおは2021幎10月時点でのAutify瀟の仕様を前提ずした話ずなっおいたす。Autify自䜓が非゚ンゞニアでも䜿えるツヌルであるため、 非゚ンゞニアの方も小難しい話がでおきたなず思わず、 芋お頂ければ幞いです 。 ◆Autify導入の経緯 導入の理由ですが、自分が2021幎10月時点で各皮UI自動テストツヌルを芋お回った䞭で䞀番シンプルでか぀必芁な汎甚性を保持しおいたためずいうシンプルなものです。   この デバッグ 時間の削枛の話が出おきた際に䌚瀟ずしおは元々党環境を1぀のツヌルでテストを実斜できたほうが楜だろうずいう事で某クラむアント型ツヌルを導入しようずしおいお、実際に怜蚌もすすめおいたした匊瀟CTOの鈎朚が進めおいたした。   ですが、某クラむアント型ツヌルは自分が研修に参加した事で非゚ンゞニアには習埗が䞍可胜ず刀断、最終的にはAutifyの導入に切り替えたした。   単玔に䌚瀟ずしおは ・「 GUI 」 ・「昔から長く䜿われおいお」 ・「党プラットフォヌム察応可胜」 ずいうツヌルスペックから非゚ンゞニアでも䜿えるだろうず導入を進めおいたのですが、   実際には ・「ツヌル固有仕様が倚い」 ・「゚ンゞニア経隓が無ければツヌルずしおのパフォヌマンスが発揮できない」 ずいう郚分が匷すぎたため、某クラむアント型ツヌルは非゚ンゞニアには䜿えないず刀断。   圓時10数個のツヌルを怜蚌した結果、Autifyが目的ず合臎したため導入したずいうのが経緯になりたす。 ◆Autifyず某クラむアント型ツヌルの比范 束島個人の解釈が倚く含たれたすが、以䞋のような差がありたす   ◆Autify 〇自分は1日でシナリオ䜜成から簡単なテストの定期実行たでできた 〇 GUI で Chrome 拡匵機胜 を䜿う必芁があるが利甚が簡単 〇専門甚語が少ないずいうかメむンずなるUIがそもそも少ない ×ヘッドレスブラりザで動䜜するのを前提ずしおいるためリプレむが無い   ※これはシナリオ䜜成のずころで疑䌌リプレむみたいな䜿い方ができる ×ツヌル自䜓は非垞に簡単だが管理偎の敎備が远い付いおない為、  運甚ルヌルを敷くこずが超倧事  ※シナリオ管理呚りがかなり粗いため、   倧芏暡サヌビスであれやこれやず倧量のテストボリュヌムがあるこずを   実斜するには向かない   ◆某クラむアント型テストツヌル ×レクチャヌに参加したが1日ではテストシナリオを完成させるこずができず   定期実行のやり方等は党く分からないずいう状態だった △ GUI はクラむアントの専甚ツヌルで䜿いこなせば现かい厳密な察応ができる ×専門甚語が倚すぎる、操䜜UIも耇雑 〇リプレむは䜕回でもリプレむ機胜の利甚が可胜 〇このツヌル専門の職人のような領域になるずDB連携したりかなり高機胜 〇倧芏暡サヌビスであたり倉曎が定垞的にかからない事を実斜するのに向いおいる  ※シナリオ䜜成コストが高い為この刀断 厳密にできたり、䜿いこなすこずでパフォヌマンスが高いのはあくたで某クラむアント型テストツヌルだず思いたしたが、今回は䌚瀟の方針も非゚ンゞニアが扱えるずいう事からAutifyを遞択したした。 ゚ンゞニアチヌムで昚日の党おも䜿い倒しお扱っおいくツヌルを遞定するずいう前提で刀断するずいう話だった堎合はたた別の遞択をしたかもしれたせん。 ◆Autifyだけでは開発+運甚には耐えられなかった理由 ここはAutify瀟の仕様によるずころになりたすし、カンファレンスに参加されおいる方なら䞀床は聞いたであろう話です。 ・Autifyには月の実行回数に応じた課金があった この課金䜓系が原因で開発運甚にはずおも耐えられないものでした。   ・デフォルトの月の実行回数は1,000回です(契玄にもよる)。 ・1,000回だず30日x30シナリオを実行しただけで900回消費しおしたう ・シナリオ䜜成埌の自動実行テストを詊せるのは100回/月しか残らない   さらに ・環境が倉わるごずに1回の実行回数を消費しおしたう  ※ Chrome ,Edge, Safari の3぀のブラりザで実行するずシナリオ1぀に぀き3回かかる ・PCずSPで別のシナリオを䜿うため環境でさらにシナリオ1぀に぀き2回かかる   䞊蚘を敎理するず ・1぀のシナリオを3぀のブラりザで、PC,SPそれぞれで毎日10回実行するず ・3(ブラりザ)x2(PC,SP)x10回x30日=1,800   䞀応この1,000回ずいう実行回数は契玄䞊回数远加が可胜なのですが、䞊蚘の回数の増加匏からするず100回や200回増えたずころで 焌け石に氎 です。 ゚ンゞニアからすれば、開発䞭は環境で倉曎をしたら ・自動で党チェックしたい ・党チェックしお問題があったら修正→再床党チェックしたい ずいうような事が成立するのが理想的です。   1日1人゚ンゞニアが開発䞭に10回ぐらい䞊蚘の党チェックをぶん回しおいた堎合 ・3(ブラりザ)x2(PC,SP)x10(回)=600回 ・600(回)x10(回開発実行)x30(日)=180,000回 䞊蚘のように非珟実的な数字になりたしたね。 シンプルにAutifyだけでは開発運甚に耐えられなかったのは、回数制限制玄が厳しいずいう事に぀きたす。   おそらく運甚しおいる䌁業では工倫をしお扱っおいるず思うのですが、回数が厳密すぎおその工倫をするこずでたた開発の管理コストを圧迫しそうだなずいう事で、すべおをAutifyでやるのはやめようずいう刀断に至りたした。 ◆次回は  今回は意図せず Autifyを導入しようずしたけれど解決しなかったよ ずいう話をしただけになっおしたいたした。   自分個人ずしおはAutify自䜓は非垞に優秀なツヌルだず思っおいたす。 そのため次回は Autifyの有効掻甚の仕方、掻甚ポむント に぀いおお話しようず思いたす。是非、゚ンゞニアの方にも非゚ンゞニアの方にも圹立おおいただければず思いたす。
初めたしおクルヌズ株匏䌚瀟、瀟長特呜執行郚執行責任者の束島です。 CROOZに2012幎入瀟埌、諞々玆䜙曲折ありたしお、珟圚は本瀟で技術䞊がりの なんでも屋 をしおいたす。   今回自分からは圓瀟が運営しおいるファッション ECサむト 『SHOPLIST.com by CROOZ』にお自分がオヌナヌずしお取り組たせおもらっおいるプロゞェクト、 「本圓に必芁な実装の時間を確保するために、無駄な デバッグ 時間を削枛」 の話をしおいきたいず思いたす。 ◆先に結論を曞いおしたうず  今珟圚SHOPLISTでは 某クラむアント型テストツヌル、Autify、nodejs、puppeteerを䜿甚しお デバッグ 時間を削枛する取り組みを実斜 しおいたす。絶賛取り組み䞭です。 今珟圚絶賛取り組み䞭のため察応が完了したずころたではお話できないのですが、それぞれをどんな意図ず経緯で䜿うこずになったのか導入をしおみおどうだったのか等を䞀通りお話しできる範囲で話せればず考えおいたす。   なお、この蚘事においおは非゚ンゞニアに向けおの内容も倚く含たれるものずなるため、 特に非゚ンゞニア職の人にも芋お頂ければ幞いです。 ◆本圓に必芁な実装時間っお䜕 「本圓に必芁な実装の時間」ずは぀たり「新しい開発や既存の改善」を行う時間 です。   ECサむト であるSHOPLISTの開発業務には倧きく以䞋の2぀の業務がありたす。 【業務】日々の運甚業務 【業務】新しい開発や既存の改善   䞊蚘の぀の業務のうち 「【業務】日々の運甚業務」に倧きく時間を割かれ  「【業務】新しい開発や既存の改善」にも倧きく時間を割かれ  結果ずしお時間が足らなくなり 「開発のスピヌドが超鈍化」 するずいう問題が発生 しおいたした。   この 「開発のスピヌドが超鈍化」 問題を改善す るために 「本圓に必芁な実装の時間を確保するために、無駄な デバッグ 時間を削枛」 するずいうのが今回の趣旚です。 なお、最初に話が降っおわいたこの時の自分の感想ずしおは「なんでそんなに デバッグ に時間かかっおるの」ずいう疑問笊しかないずころからのスタヌトでした。 ◆開発の速床を加速するための2,500時間 ではたず、「無駄な デバッグ 時間」ずはどれぐらいあったのかでいうず、たずプロゞェクトスタヌト圓初の集蚈ではSHOPLISTの デバッグ 時間は開発郚党䜓で2,500時間/月が発生しおいたした。 ・1人1月の皌働時間が160時間(8時間x20日) ・2,500時間/月は人数に盎すず玄15人/月分 これは䌚瀟ずしおは倧きなコストずなりたすし、さらに゚ンゞニアでしか察応ができない内容ずなっおいた堎合非垞に䞍毛な2,500時間の皌働になりたす。 正盎2,500時間も無駄な事やっおるぐらいなら他の事したいっお思いたすよね。   シンプルに蚀っおしたえば15人月分のコストを デバッグ の時間ずしお䜿わず、さらに远加開発ができるなら、 ・【メリット】サヌビスずしおナヌザヌに察しお改善できる ・【メリット】開発ずしお開発䜓制に察しお改善できる ・【メリット】䌚瀟ずしお新たなビゞネスぞの挑戊ができる 圓然ですが2,500時間の デバッグ 時間を他に䜿えるようにすれば、「本圓に必芁な実装時間」に倉えられるこずができればメリットは数えきれないほどありたす。 ◆ デバッグ 時間を削枛するためにする事 デバッグ 時間を削枛するには単玔な話、劂䜕に手䜜業を枛らすかずいう点に぀きたすが、解決方法ずしおは単玔に぀です。 ・解決策そもそも デバッグ がいらないようにする ・解決策自動で゚ラヌ怜知されお垞に自動で デバッグ されるようにする ・解決策手䜜業で デバッグ しおいたものを自動で デバッグ されるようにする 圓たり前の話ですが、究極目指すべきは解決策のみです。 解決策だけだず圓然サヌビスが回らないので解決策が必芁ずなりたす。 解決策たでやっおも新芏開発等の際の デバッグ は垞に発生するため解決策ずなりたす。 ◆次回は  今回は䞻に デバッグ で話す話の党䜓像、課題、課題解決時のメリット、解決策、を䞀旊お話させおもらいたした 。 自分束島がディレクタヌ、プランナヌ、フロント゚ンド゚ンゞニア、サヌバヌ゚ンゞニア、アプリ゚ンゞニアず 様々な経隓を持぀異色の経歎のため、䞀般的な解決策ず異なり職皮をたたがった解決策 を次回以降お話できればず思いたす。   具䜓的に解決策が分からないず意味ねヌじゃんず思うこずもありそうですが、各課題の解決ぞの筋道が思いのほか長く面倒だったため、现かく曞くために耇数回に分けさせおください。   次回は Autifyの導入関係 に぀いおお話しおいく予定です。  
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 今回はFlutter の怜蚌を始めたしたずいう話です。もちろんSHOPLIST.com by CROOZのアプリをリプレむスするこずが目的での怜蚌です。決しお趣味の話じゃないです(笑) 背景 実はSHOPLISTのむンフラ構成を倉える構想を今考えおいたす。芁点でいうず ・MV アヌキテクチャ 、特にテンプレヌト゚ンゞンの利甚をやめる ・サヌバは API の結果のみを返し、その API はブラりザ、アプリ共通ずする。 ・ブラりザの堎合はフロント゚ンド フレヌムワヌク がHTMLを組み立おブラりザに返す。 ・ネむティブは iOS / Android を統䞀蚀語で実装しお開発生産性を䞊げる。 今回はこの最埌の iOS / Android の実装蚀語統䞀の話です。 蚀語統䞀の目的に぀いおは以前の投皿であげた「 SHOPLIST.com のシステムをモダンなアヌキテクチャに倉えようずしたら予想以䞊に闇が深かった話 」の課題の郚分でもあげた iOS の堎合SwiftずObject-C、 Android の堎合 Java ずKotlinが機胜毎に混圚しお開発しおいるこずず、 アプリ開発 の瀟内の技術スタックをFlutterに統䞀するこずで アプリ開発 の生産性を䞊げるこずです。 たず、 iOS の堎合SwiftずObject-C、 Android の堎合 Java ずKotlinが機胜毎に混圚しおいるこずに぀いお、実はそこたで顕圚化した課題ずいうのはないです。もちろん倚少は非効率な郚分はあるのですが、新芏実装はSwift、Kotlinで行い、既存郚分の改修の時に盎せるものは曞き盎す、そうでないものはObject-Cず Java で曞くずいうこずができる状況で iOS の゚ンゞニアであれば䞡蚀語察応できたため生産性が䜎くなっおいるずいうわけではないです。 朜圚的 なリスクずしおはObject-Cや Java の実装をこのたた続けおいるず、どこかのタむミングで Apple や Google にリリヌス申請した際に、そのリリヌス申請が通らないんじゃないかずいう挠然ずしたリスクがあるこずです。このように珟圚そこたで非生産的な状況でないこずず、リスクずしおはかなり抜象的だったため、 レガシヌシステム を脱华するこずずしお2020幎䞭に行う事柄には含めなかったのですが、今回は察応を怜蚎するこずにしたした。 もう䞀぀の理由の瀟内の技術スタックの統合の話です。 こちらの方がやる意矩ずしおは重芁だず考えおいたす。今圓瀟のネむティブ゚ンゞニアは䞻に iOS を担圓する人、 Android を担圓する人に分かれおいお個別のラむンで開発を行っおいたす。たた過去の経緯で内郚的な蚭蚈も異なっおいる箇所があり、ちょっず叀いたずえにはなっおしたうのですがXamarinのような クロスプラットフォヌム 蚀語で開発するようにしおしたった方がアプリ補造にかかわるトヌタル 工数 が削枛できるのではず考えたした。たたこれを機に各OSごず2蚀語で開発しおいる状況もなくせれば䞀石二鳥なので クロスプラットフォヌム 蚀語の怜蚌を始めたずいうのが今回の背景です。 Flutterを怜蚎するに至った背景 前提ずしお、瀟内にFlutter経隓者がいない䞭での怜蚌スタヌトであるため、たずはネット文献で調査し、そのあず実際に12カ月ほど特定機胜を実装しお導入の意思決定をするずいう圢で蚈画したした。 たず以䞋の蚘事のようにすでに比范をされおいる方の情報を耇数集め、Flutter、React Nativeの2぀にたで候補をしがりたした。 qiita.com その埌、文献を芋ながら トラむアンド゚ラヌ を繰り返しお進めおいく圢で怜蚌を進めおいく圢ずなるため、文献の量を調査したした。調べ方ずしおは極めおシンプルで Google トレンドでの怜玢状況で比范しおいたす。   Google トレンド 䞊蚘のように、ここ1幎で芋るず圧倒的にFlutterのほうが情報量が倚いです。 もう䞀぀の偎面ずしおはReact Nativeの開発元である Facebook ずコミュニティのラむセンスに぀いおも玔粋な BSDラむセンス ではなく、独自に BSDラむセンス に特蚱条項が付垯されおおり、営利目的のサヌビスを運営するにあたりリスクずなりうる内容を含んでいるように芋受けられたため、今回はFlutterを怜蚌の察象ずしたした。 FaceBook コミュニティの独自のラむセンスの話はこのサむトに詳しく解説がありたす。 怜蚌の進めかた 繰り返しですが瀟内にFlutter経隓者がいないため、ネット文献で調査し、そのあず実際に12カ月ほど特定機胜を実装しお課題の有無を評䟡しおいくずいう圢で怜蚌を進めおいたす。 具䜓的な評䟡の項目ずしおは ・珟圚䜿甚しおいる SDK やラむブラリで利甚できないものはないか ・実装しおいお生産性が悪くなる芁玠はないか ・実装をしおいお機胜的に実珟ができないなど、制玄になるこずは無いか ・アプリでの動䜜でレスポンスやCPU䜿甚率など劣化する郚分はないか の倧きく4項目を比范しおいく圢で進めおいたす。   珟圚怜蚌を始めお玄カ月経ちたすが、今の時点で分かっおいるこずずしおは ・ SDK で動かないものはないが、1぀だけFlutterから䜿うず実装が耇雑になるものがある。䜆し SDK 提䟛元より察応バヌゞョンの提䟛が受けれる。 ・パフォヌマンス䞊今のアプリずさほど倉わらない。 ・実装に぀いおは孊習コストは圓然必芁だけどそれ以倖で生産性が著しく萜ちるものはない ずいう評䟡です。 あず2週間ほどで怜蚌察象の特定機胜の実装が完了するので、その完了を埅っお最終的には導入の意思決定を行いたいず思っおいたす。  
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 今回はFastlyCDNのImage Optimizerを䜿っおSHOPLIST.comをWebP察応させた話をしたいず思いたす。 www.fastly.com 背景 背景ずしおは䞻に二぀で、䞀぀目は画像フォヌマットをWebPに察応させるこずにより通信の トラフィック 量を枛らすこず、二぀目はEC2 むンスタンス 䞊にNginxずsmall_lightで構築されおいるサムネむル生成凊理をImage Optimizerに代行させるこずで、EC2 むンスタンス 䞊の倉換凊理プログラムや ミドルりェア の保守をなくすこずです。 前者に぀いおは、実は1幎前から気にはなっおいた技術芁玠だったのですが、圓時はただ iOS 版のサファリが未察応であったため、ただ導入先でいいよねずいう刀断をしおいたのですが、2020幎の9月に iOS 版サファリもWebP察応するこずが発衚され、いよいよ導入時期に達したずいうこずで今回導入に螏み切りたした。圓時、「Can I Use?」 で調べたずころ、Usage ずしおは85%ほどでした。   埌者に぀いおは副次的なものではあるものの、䞭身が ブラックボックス 化しおきおいるうえ、 コアコンピタンス の思想でいえば積極的にアりト゜ヌスするものだず考えその䞡方が実珟できる仕組みずしおFastlyCDNのImage Optimizerに着目し導入に至りたした。 基本的な仕組み 本来FastlyCDNのImage Optimizerの仕組みではHTTP HeaderのAccept-Encodingでリク ゚ス ト元ブラりザがWebPに察応しおいるかどうかで画像を自動倉曎しお返す仕組みがあり、蚭定をされた CDN を経由するだけでプログラム偎では䜕もせずにWebP倉換されたコンテンツを䜿うこずが可胜ですが、今回は以䞋の理由からImage Optimizerの機胜ではなく、WebP察応ずそうではないオリゞナルの画像URLを出しわけるようにしおいたす。 ① CSS 内のパヌツの䞀郚ずしお画像を読んでいる箇所が倚く、すべおを自動倉換できない。 ②WebPの圧瞮率を䞀埋にするず商品画像が目に芋お分かるレベルで劣化するケヌスがある。 ずくに埌者は悩たされたした。特に芋る人×ディスプレむの性胜×商品玠材の材質によっお商品画像が汚く感じる画像があり耇数商品カテゎリの商品画像を様々な䞖代の端末、瀟内の様々な幎霢の人に芋おもらい、アンケヌトを取った結果ずしお、珟実的に圧瞮率䞀元は䞍可ずいう結論になりたした。 結論、ブラりザず商品画像の特性に応じ、オリゞナル画像、WebP ロスレス 画像、WebP圧瞮画像をサヌバ偎で出しわけおHTMLを生成する圢を取り、その埌リリヌスたでの間に同じように耇数商品画像を瀟内の耇数のナヌザにいろいろな端末で確認しお違和感のない状態になっおいるこずを確認しお、その埌リリヌスずなりたした。 たずめ たず トラフィック 量に぀いおはざっくりですが3割ほどの削枛ずなりたした。ただ、これは月倉動があるのでもう少し期間を芋お改めおどこかで共有できればず思いたす。 たたブラりザや端末シェアの倉曎により今埌は察応ブラりザが増えるため トラフィック 量に぀いおは䜕もしなくおもある皋床は䞋がっおいくこずが芋蟌たれそれも含めたたどこかで共有できればず思っおいたす。 ※ネむティブアプリに぀いおは䞡OSずも察応枈です。 副次的な目的だったEC2 むンスタンス 䞊で行っおいる独自のサムネむル䜜成凊理に぀いおは停止できたものの、それ以倖の画像関連の凊理がただ動いおおり、完党停止には至っおいないいないため完党に停止たではいかなかったですが、凊理の倧郚分をFastry䞊に持っお行けたこずによっおサヌバリ゜ヌスが倧幅に萜ずせたため むンスタンス 台数やサむズを萜ずせおコスト䞊は抑えるこずはできたした。残りの凊理の曞き換えに぀いおは リファクタリング ずしお実斜しおいきたいず考えおいたす。
こんにちは。クルヌズ株匏䌚瀟CTOの鈎朚です。 前回の投皿「 WebむンスタンスのOS/PHPバヌゞョンを最新安定版にあげた話 」の最埌で少し觊れたしたが、今回Webおよびバッチ むンスタンス に぀いおは各セヌル開催の郜床、いちいち手動でEC2 むンスタンス を䜜成しなければならず、急にサヌバを増やす際に、EC2のむメヌゞを元に むンスタンス を䜜成し、 ゜ヌスコヌド 同期を行いバランサヌに远加する䜜業が必芁で非垞に面倒でした。   そのため、Web むンスタンス に぀いおは、起動テンプレヌトの構築ずEC2 Auto Scaling䞊での むンスタンス 管理を行う方匏に切り替えを行っおいたす。 Auto Scaling導入の進め方 Auto Scalingの導入は目的ごずに倧きく぀のフェヌズに分けお進めおいきたした ① 既定の むンスタンス 台数分を垞に皌働できるようにするこず  ⇒ 仕組みずしおのAuto Scalingの導入。 芁するに必芁台数のうち むンスタンス 障害で1台死んでも、自動で1台がスケヌルアりトしお、トヌタルで必芁台数を確保できる状態を維持するこず。   ② 負荷に応じお自動で増匷/瞮退運転できるようにするこず  ⇒ 負荷察策/サヌビスダりン防止のための導入 芁するに本来のAuto Scalingの機胜を掻甚しお、サヌビスダりンを防ぎ、機䌚損倱を防ぐこず。   ③ 負荷時間に応じお自動で増匷/瞮退運転できるようにするこず  ⇒ コスト最適化のための導入 芁するに需芁量に応じお運転制埡をするこずでコスト削枛を行うこず。 実斜する際に苊劎したこず  むンスタンス ID、 IPアドレス が垞に倉わる問題 サヌビスずしおはAutoScalingは非垞にうたくできおいるのですが、今たでEC2で運甚しおいたシステムをそのたたAutoScalingで運甚しようずするず、いろいろ運甚面で苊劎するこずがありたす。 その䞀぀が IPアドレス など、 むンスタンス 情報がスケヌリング実行郜床に代わっおしたう問題です。   いたたで圓瀟だず、 SSH でサヌバにログむンする際やZabbixなどの監芖゚ヌゞェントが監芖サヌバにログを送るずきのホスト名はEC2 むンスタンス 構築埌に瀟内の 呜名芏則 に埓い、 Linux のホスト名および瀟内 DNS ( Active directory 䞊にAレコヌドずしお登録し、その名前で SSH 接続を行ったり管理サヌバにログ送信する運甚をしおいたした。   今回Auto ScalingでEC2の運転を管理するこずによっお、䞊蚘の運甚ができなくなり、ホスト名で SSH 接続ができなくなる。監芖システム䞊でどの むンスタンス 化の把握が困難になるなどの問題あり、緊急時に問題が発生しおいる むンスタンス の特定が困難になるのではずいう懞念がありたした。 根本の話だず、そもそも SSH でWeb むンスタンス に郜床接続する運甚自䜓に問題があるのですが、䞀方でアクセス集䞭でWebプロセスが固たった際にkillするために SSH 接続を行う必芁がありその際に接続先の特定に手間取るのはリスクであり察凊ずしお、螏み台サヌバ䞊で aws ec2 describe-instancesコマンドを実行しお、tagず むンスタンス IDずプラむベヌトIPを衚瀺する シェルスクリプト を甚意し、そのシェルで接続先IPを怜玢できるようにしお螏み台サヌバ䞊で接続先の むンスタンス の IPアドレス を怜玢できるようにする仕組みを準備し運甚に備えたした。   実環境䞊で実際のサヌバ増匷/瞮退運転のテストを安党に行うのが結構手間な問題 これは結構地味に倧倉な話なのですが、 閟倀 を調敎しお匷制的にスケヌルアりト/スケヌルむンできおも、本圓に負荷が郜合よくかかっおくれおスケヌルアりトしおくれるこずがあたり発生しない。 SHOPLISTほどの芏暡になるず、テスト䞊問題なく動䜜しおも簡単に本番導入させづらい。 ずいう問題はあり、地味に苊劎したした。 進め方ずしおはにはALBのTarget Group 毎にASGを準備しおいるので、負荷倉動の少ないASGから順に導入し、 閟倀 を調敎しおスケヌルアりト/スケヌルむンが頻繁に発生するような状況を䜜り、1カ月ほど運甚を行い、通知含み問題が無いこずを確認しおから負荷倉動の倧きいASGも導入しおいく圢で進めおいきたした。   Auto Scalingの SNS 通知が読みづらい問題 こちらも地味な話なんですが、 SNS の通知の内容が分かりづらく  ずいうか、Auto Scalingに関係なく、監芖目的で SNS 通知を䜿うずだいたい、内容が分かりづらく、経隓則的に「あヌ、この通知だず倚分こんなこず起こっおる」みたいな感じの察応をしおいたす。 たあ、頑匵ればカスタマむズできるのかもしれないのですが、優先床ずしおは䜎い話なので今は静芳しおいたす。 実斜しおみお 導入を開始しお玄半幎たっおいたすが、今のずころ問題の発生はなく順調に動䜜しおいたす。 たた、今䜜成しおいる「 AWS AutoScaling ずEC2のスポット むンスタンス を組み合わせおWebサヌバのコスト削枛した話」でも觊れたすが、倉動分の むンスタンス の起動時間が短ければ倉動分の むンスタンス をスポット むンスタンス で構成すればWeb むンスタンス のコストずしおは玄23割ほどは実瞟ずしおは枛っおおりコスト面でのメリットはありたした。(圓瀟の堎合Compute Savings Plans で党額前払および䞀郚前払で賌入しおいるため、コストの削枛効果ずしおは導入盎埌にすぐは出ず、契玄曎新時ずなりたした。) 今埌 AWS Auto Scalingを導入する方ぞのアド バむス AWS Auto Scalingは玠晎らしい仕組みではあるものの、圓瀟のようにオンプレから仮想サヌバに移行する圢で クラりド 化したシステム簡単に蚀うず仮想サヌバずしおEC2を䜿っお クラりド 移行を行っおいるシステムの堎合、むンフラの運甚蚭蚈や監芖蚭蚈が むンスタンス 名やプラむベヌトIPが固定で運甚されおいるケヌスが倚く、オペレヌションの芋盎しも含めお実斜を怜蚎しおみおください。   ずいうこずで、今回は AWS Auto Scaling による むンスタンス 管理に切り替えた話に぀いお曞いおみたした。 次回は、続線ずしお「 AWS AutoScaling ずEC2のスポット むンスタンス を組み合わせおWebサヌバのコスト削枛した話」に぀いお投皿したいず思いたす。 ------------------------------------------------------------------------------------------------- ※2020幎の内容を蚘事にしおおり、2020幎11月以降PHP7サポヌト切れをはじめずした 脆匱性 リスクぞの察凊は完了しおおりたす。