2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
清野隼史氏(以下、清野):今、リプレイスの話や、こういうところを作っていくのならRails以外使ってもいいかもという話が出たので、そのままテーマ2「今後のWebアプリケーションはどうなっていくか」にいきたいと思います。そもそもRailsだけではうまく立ち行かなくなってきているのは、Webアプリケーション自体の環境の変化が大きいのかなと。
テーマに「今後」と書いていますが、これからWebアプリケーションの開発の現場や環境はどうなっていくのかを整理したいと思います。変化として大きいのは開発体制だと感じているのですが、いかがでしょうか?
櫻庭洋之氏(以下、櫻庭):弊社では、サーバーサイドもフロントも、時にはインフラも含めて全般をやるタイプのエンジニアが多い。昔からWeb界隈は1人でなんでもやる人が多かったと思いますが、採用活動をしていると、サーバー側のスペシャリストやフロントのスペシャリストなど、細分化というか専業が進んできている気がする。
採用面においても、それぞれの領域で閉じて開発しやすい技術スタックが必要になってくるのかなと思います。昨今SaaSが盛り上がっている中で、リッチなUIやすごく体験のいいWebアプリケーションが増えると、フロント主軸のアプリケーションがより増えるだろうと理解しています。
清野:まさに今のWebアプリケーションは昔と比べてかなり要求されているレベルも高くなって、UIがリッチでパフォーマンスも早くて当然という雰囲気が漂ってきている。1人で全部を触るというよりも全員が、それぞれをしっかり作る人たちがチームとして構成される時代になってきているということでしょうか?
櫻庭:そうですね。
清野:これに関して、赤沼さんはいかがでしょうか? 実際に今、ユニファで採用を担当していると思うんですが。
赤沼寛明氏(以下、赤沼):本当にそうだなと思います。弊社も最初にスタートしたプロダクトはRailsだけで作られています。フロントもVue.jsやReactなどは使っていなくて、Railsの仕組みの中だけでやっている。弊社の事業のドメインは保育なので、もともとすごくリッチなUIを求められていたわけではなく、シンプルでわかりやすいものが一番だったので、サーバーサイドのエンジニアがバックエンドもやりつつフロントもやっている状況でした。
しかし、我々の事業が大きくなるにつれて、フロントに対していろいろなものを提供しなければならなくなっている。提供の仕方も、モバイルアプリに対するAPIもあればWebViewというかたちで提供することもある。そうなると、もともとフロントエンドを専門的にやっていないサーバーサイドのエンジニアだけでは、フロントエンドを作りきるのが難しくなってきている。
フロントエンド専任のエンジニアが必要になってきたので、採用のターゲットも変わってくる。まるっと1つできる人より、フロントエンド専門の人を求めるようになってきた。以前に比べると、モバイルのアプリも含め、iOSやAndroidといった各職種のエンジニアを求めることが多くなってきていると思います。
その一方で、バックエンドで考えると、むしろAWSがすごく使いやすくなっていろいろなサービスが提供されてきた。サーバーサイドのエンジニアは、RailsのところだけできればというよりRailsプラスインフラ寄り(がいい)。
AWSもある程度わかっていて、単純にEC2のインスタンスの上で動かすだけではなく、AWSのサービスを活用したらどのようなアーキテクチャにできるのかも含めて考える。逆に広範囲に求められている感覚はあります。
清野:フルスタックエンジニアのフルスタックもより広がっているというか、それぞれのスペシャリストも現れてきているし、フルスタックが今まで以上にすごい要求をカバーする存在になってきているということでしょうか。
赤沼:“フルスタック”が示すものが超広範囲になってきていると思います。
清野:だからこそ分かれているところもありますよね。
清野:今、それぞれの領域というか技術領域で専門の人がどんどんついていく開発体制になってきているという話がありました。昔フルスタックだったところがそういう体制になった時に、開発の中で考えないといけないこと、時間を使ってでもコストを割かなければいけないこと、負債になりやすいことがあればうかがいたいのですがいかがですか? チームの体制が変わったことによって生まれた課題をうかがえるとありがたいです。
櫻庭:僕たちのチームには、まだそんなに専門やスペシャリストチームというものがない。React、Next専門チームはいますが、それはそれで完結していて、サーバーサイドも含めてやっています。Railsで使っているデータや認証周りをNext側とどう共通化していくかという連携部分の設計は、ネックというか、難しくていつも悩んでいます。
清野:まさにフロントエンドとバックエンドの境界、今までは同じ人がやっていたので暗黙的に「こういうデータくるでしょ」と思っていたのが、最近は難しくなってきているということですよね。
櫻庭:そうですね。ドキュメント化のツールにもいろいろなエコシステムがあると思うんですが、その選定も含めて選択肢が広がっているので、それ自体も大変という。
清野:まずそこを考えることが必要になってきたということですよね。
櫻庭:そうですね。
清野:ユニファに関しては、フロント・バックエンドだけではなくアプリケーション同士もあるのではという印象ですが、どうですか?
赤沼:アプリケーション同士では、いわゆるスーパーアプリという構成になっている部分もあるので、バックエンドには独立したRailsのアプリがあります。ただし、iOSのアプリは1つになっていて、中のタグで使い分けるようになっています。
アプリの中でも、スーパーアプリの構成をどうやればいいのか。それこそ複数のエンジニアが並行して開発するにはどういう構成にしておけばいいのかについては、難しくなってきている。どういう技術を使うかを慎重に決めることが求められるとは思います。
作って捨てちゃうようなアプリや、完全に独立しているようなアプリなら、エンジニアの興味次第で「とりあえず新しいものを使ってみたい」という気持ちでトライしてみてもいいと思います。
でもいろいろなところと連携していくようなものでは、一部分だけ違うやり方をしていると、そことの連携だけ特殊なことをしなきゃいけないことになって後々負債になる。そういう意味ではある程度先も見据えて、どの構成にしておけば後々みんなが幸せになれるのかを考慮する必要があると思います。
清野:アプリケーションが複雑化していく中で、全部を全員が把握できなくなってきているという実態に対して、どううまくやっていくのかを考える必要が出てきたということですよね。
赤沼:一方で、サーバーサイドだと特に、デプロイの仕方など具体的なアーキテクチャだけでなく、運用やオペレーション的なところも含めてある程度考えないとつらいですよね。
清野:そうですね。
清野:次の質問が来ています。1つ目が「Railsは、つらみがありつつもまだオワコンではないと思っていますが、みなさんがあえて今から自身のバックエンドの主軸を移すとしたら、選定する言語、フレームワークの第1候補はなんですか?」。
櫻庭:僕は仕事でやるならRuby、Railsを選ぶかもしれません。趣味として個人で選んでいいなら、今言語はRustが好きです。ほかにFirebaseは書いていてすごく楽しいのでガンガン使っていきたいなと思っていますが、仕事ではやはりRubyに戻ってきちゃいます。Rubyが好きだからではありますが、今の選択肢の中でもやはりRailsの強みはあると思うので。
清野:今の話の中のRubyやRailsを選ぶという点も、次のテーマからもう少し深掘りしたいと思うので、魅力などをうかがいます。赤沼さんいかがですか?
赤沼:私もRubyやRailsも含めて、仕事でとりあえずきちんとしたものを作るという目的であれば、やはりRubyやRailsを選ぶと思います。RubyやRailsを選択肢から外したバックエンド寄りの話で、純粋に興味として何をやってみたいかというと、Goをやってみたいですね。ほかに単純にRustなどに興味があるし、TypeScript系もふだんやれていないので興味はあります。純粋にバックエンドで考えると、Goをやっておきたい気持ちはあります。
清野:ちなみに僕もエンジニアの端くれなので、もしまた何かを選ぶとしたらRailsという印象があります。“仕事なら”ということですね。やはりRailsやRubyの魅力は仲間を集めやすいことだと思っています。
そこを極めている人もいれば、エンジニアにとっては書き始めるのにも難易度が比較的低い言語ツールだと思っている。その点、何かを立ち上げたい、何かを作りたいと思った時に仲間を集めやすいので、僕はRailsが好きです。すみません、自分語りをしてしまいました。
赤沼:コミュニティの魅力はありますよね。
清野:次の質問は「Railsでマイクロサービスする時、サービスをまたがったトランザクションの扱いをどうしているのか気になっている」です。赤沼さんにうかがいます。
赤沼:弊社の場合は何か特殊なことをやっているわけではなく、基本的にサービス間の連携はRESTのAPIでやっているので、APIの結果から判断しています。もちろん完全には防げていないと思いますが、設計時に仮に取り出しを失敗した場合にもきちんと巻き戻せるような構成や処理の順番を考えながら実装しています。あまりスマートな回答じゃありませんが、そんな感じかなと。
清野:そこはRailsどうこうというより、どちらかというとマイクロサービスとしてのプラクティスにのっとるという感じでしょうか。
赤沼:そうですね。
(次回につづく)
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
PR | 2024.12.04
攻撃者はVPNを狙っている ゼロトラストならランサムウェア攻撃を防げる理由と仕組み
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術