IT記事一覧

Terraformを使って学ぶーAWSにインフラを構築するIaCの基本と、SREが実務で役立つ機能とエコシステムを徹底解説

Terraformは、パブリッククラウドのインフラ構築と自動化のツールとして、IaCのデファクトスタンダードとなっています。この記事では、AWS(Amazon Web Services)を活用するハンズオンを通してTerraformの動作を理解し、実務にもとづいて役立つ機能や便利なエコシステム、さらにSRE視点の事例を紹介します。アソビュー株式会社でSREユニットリーダーを務める鈴木剛志さんを中心に6名のメンバーによる共同執筆です。 アイキャッチ画像

HTTP/3|Webエンジニアが知るべき新常識 ─ QUICやコネクションマイグレーションなどを学ぶ

新しい通信プロトコルとして普及が進んでいるHTTP/3については、エンジニアHubでも過去に概論的な記事を掲載しています。今回はアプリケーション開発者が自社サービスでHTTP/3を採用することを想定して、仕様上の留意点や、どのように使い始めるか、そしてサイトを制作する際に注意しておきたいポイントまでを藤吾郎(gfx)さんに解説していただきました。

React 18とSuspenseの基本 ─ フレームワークの選択やReact Server Componentsなど新しいベストプラクティスを学ぶ

群雄割拠のフロントエンドフレームワーク界でも、一歩抜きん出た存在として常に注目を集めてきたReact。2022年3月にリリースされたバージョン18では、Suspenseの安定化やStreaming SSRのサポートなど数々の新機能を取り入れて話題になりました。本記事では、React/TypeScriptのスペシャリストとして幅広く活躍されているuhyoさんが、現時点におけるReactのベストプラクティスについて解説します。

Spring Boot 3の新機能を使ってみよう! 2からアップグレードする手順、Observability機能、ネイティブイメージ化

Javaの開発フレームワークであるSpringの最新バージョンとして、Spring Boot 3が2022年11月にリリースされました。この記事ではSpring Boot 2で書かれたサンプルコードをSpring Boot 3にアップグレードしながら、考慮点や新機能を体感していただきます。ヴイエムウェア株式会社の星野真知さんによる解説です。

Flask実践入門 - 基本的なアプリ構成を問い合わせフォームをつくりながら学ぶ

Python製のマイクロWebフレームワークであるFlaskは最小限の機能のみを提供するシンプルさが特徴です。一方で、シンプルゆえ、アプリを構築する際、どのような構成にするか迷ってしまう局面もあります。本記事はFlaskを使い、実際にアプリをつくりながら基本的な構成の考え方をハンズオンで学びます。解説はテックタッチ株式会社の佐藤昌基さんです。

AWS CDKを始めるハンズオン ─ IaCの第一歩をAWS LambdaとDynamoDBのシンプルな仕組みで学ぶ

アマゾン ウェブ サービスが提供するIaC(Infrastructure as Code)の開発キットがAWS CDK(AWS Cloud Development Kit)です。本記事はAWS CDK入門者向けのチュートリアルとして、AWSでソリューションアーキテクトを務める吉川幸弘(@WinterYukky)さんによる、AWS Lambda関数でDynamoDBテーブルをスキャンするシンプルなハンズオンです。

新しいNext.jsの入門 ─ App DirectoryによるWeb開発をハンズオンで理解しよう

Next.jsは、ReactベースのWebアプリケーションフレームワークで、SSR(Server Side Rendering)などフロントエンド開発に必要な機能を十分に備えています。2022年10月には、App Directoryという新しい概念をβ版として導入したバージョン13がリリースされました。この基本的な考え方と使い方をハンズオン形式で解説します。株式会社アンドパッドでソフトウェアエンジニアを務める村田司(Tim0401)さんよる執筆です。

NestJSをゼロから学ぶ - TypeORMの活用などをREST APIの実装から身に付けよう【Node.jsフレームワークの基本】

Nest.jsは、スケーラブルで効率的なサーバーサイドのNode.jsフレームワークで、TypeScriptで構築されています。この記事はNestJSのハンズオンとして、TypeScriptやNode.jsの経験があるソフトウェアエンジニアが手を動かしながらNestJSに入門できます。NestJS Japan Users Groupの羽馬直樹さんによる執筆です。

技術的負債に対する取り組みとクラウドネイティブな環境での代表的な設計パターン

現在ウェルスナビの開発組織では既存事業の成長を加速させること、新規事業の取り組みを進めることに並行して取り組んでいます。これまでにも大規模なデータベース移行やコンテナ化を進めてきましたが、複数サービスを同時並行で開発していこうとするなかで改めて認識された技術的負債や、クラウドネイティブなアーキテクチャへ移行するにあたって採用した代表的な設計パターンなどをご紹介します。

FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ

PythonのWebフレームワークとしていま注目を集めるFastAPIは、シンプルにコードが書けるだけでなく、パフォーマンスが高いWebアプリケーションのバックエンドサーバーが構築可能です。同フレームワークの勘所をPythonスペシャリストの杜世橋さんが、初心者向けのハンズオン、そしてより実践的な画像への自動タグ付けサービス実装をとおして解説します。

「読みやすいコードのガイドライン」出版記念特別企画!「読みやすいコメント・読みやすい関数とは? CODE READABILITY LECTURE」レポート

LINE株式会社 石川宗寿さんが「読みやすいコードのガイドライン」を出版されました。その内容を元に開かれた「CODE READABILITY LECTURE」のレポートを質疑を中心にお送りします。

BigQueryを分かりやすく! ハンズオンで始めるGoogle Cloudのデータ分析サービスと可視化ツールの使い方

Googleの高度な技術を利用できるGoogle Cloudにおいて、BigQueryは大規模データをスケーラブルに分析できるフルマネージドなデータウェアハウスとして提供されています。株式会社タイミーでデータエンジニアを務める土川稔生さんが、初心者向けのハンズオンとともにBigQueryの基本を解説します。

Ruby/Railsアップデートを乗り越える戦略と攻めのリファクタリング

初期構築から3年近くメジャーアップデート対応をしていなかったRuby on Railsのプロダクトについて、事前のリファクタリングなどの整備を経てアップデート作業を実施しました。本稿ではその事前整備に焦点を当て、大規模なアップデートの経験やそれに対する準備がされていないプロダクトに対する事前整備として、どういう背景から何を考えどのようなことを行ったのかを紹介します。

実践的Djangoプロジェクトの設計―開発・運用が楽になる設定ファイルを書こう! アンチパターンとベストプラクティス

Pythonで広く利用されているWebアプリケーションのフレームワークにDjangoがあります。Djangoで開発を始める際に、プロジェクトの設定ファイルをどのように記述すれば運用が楽になるのか。『Python実践レシピ』の著書もある筒井隆次(ryu22e)さんによる寄稿です。

React+Reduxによる状態管理とフロントエンドの技術的負債 ─ 長く継続するサービスのアプリケーション設計

遷移なく表示コンテンツを変更できるシングルページアプリケーションでは、ページの状態管理が重要になります。現在はReactによるUI構築とReduxによる状態管理を選択しているChatworkは、jQueryなどの技術的負債と共存しながら、フロントエンド設計の見直しを重ねてきました。クライアントサイド・アーキテクトの火村智彦(@eielh)さんと、エンジニア採用広報の高瀬和之(@guvalif)さんによる解説です。

RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!

安全性に大きな特徴があるプログラミング言語Rustは、C言語やC++に代わるシステム記述言語として注目されてきました。しかし、その安全性とパフォーマンスの高さにより、ビジネスアプリケーションの構築にも採用されています。この記事ではキャディ株式会社による事例を紹介します。

モジュラモノリスに移行する理由 ─ マイクロサービスの自律性とモノリスの一貫性を両立させるアソビューの取り組み

大規模なソフトウェア開発においてモノリシックかマイクロサービスかというアーキテクチャの議論がありますが、近年は第3の選択肢としてモジュラモノリスが話題になっています。いったんマイクロサービス化に舵を切りながら現在はモジュラモノリスに取り組むアソビューの考え方や進め方について、VPoEの兼平大資(disc99)さんによる寄稿です。

東京都 デジタルサービス局職員が語る「都政DX」の現状と未来|デジタル人材採用イベントレポート

2022年1月24日に開催された東京都 デジタル人材採用イベントのレポート記事をお届け。現在、都庁で活躍するデジタルシフト推進担当課長3名によるDX推進プロジェクト事例が紹介された。「徹底点検TOKYOサポート」「ユーザーテストの実施徹底を推進」「都民等デジタルデバイド是正」それぞれの取り組みとは?

WebAssembly入門 ─ Webフロントエンドの現実的なユースケースを知り、Wasm製アプリケーションを体験してみよう!

WebAssembly(Wasm)は、ブラウザー上で直接動くプログラミング言語として、JavaScriptを置き換える期待が寄せられますが、実際にWasmが果たすべき役割や適したユースケースとはどういったものでしょうか? Wasmの動作を体験するチュートリアルとあわせて、山本悠滋(igrep)さんが解説します。

コンテナ時代におけるオブザーバビリティの基礎

この数年であちこちで見かけるようになった「オブザーバビリティ」という言葉。コンテナが利用されるシーンが増えてきた現在におけるオブザーバビリティの基礎についてミクシィでみてねのSREグループマネージャーをつとめる清水 勲さんに解説いただきました。

Deno入門 ─ 新しいTypeScript/JavaScript実行環境でWebアプリ開発とデータベース接続の基本を体験しよう

新しいJavaScript実行環境として、Deno(ディノ)の存在感はますます大きくなっています。Deno Land社のメンバーとして開発にあたる日野澤歓也(@kt3k)さんに、機能的な特徴の概説から、基本的な環境構築と開発のチュートリアルまでを執筆してもらいました。

GitHub Actions入門 ── ワークフローの基本的な構造からOIDCによる外部サービス認証まで

GitHubが公式に提供するGitHub Actionsは、後発ながらよく使われるワークフローエンジンとなっています。本記事では、藤吾郎(gfx)さんが、典型的なCI/CDのユースケースに即したワークフローの設定と管理について解説するとともに、注目されているGitHub OIDC(OpenID Connect)の利用についても紹介します。

最近の「インタプリタ」言語のインタプリタ事情 - コンパイラ言語・スクリプト言語との違い、JITコンパイラ、REPL、コンパイラ言語のスクリプト的実行サポートを徹底解説

PerlやRuby、Pythonなど様々なインタプリタ言語/スクリプト言語がありますが、最近だとインタプリタ言語もJITコンパイルしたり、コンパイラ言語の中にもスクリプトのように動かせるものもあります。 その辺りの今どきの事情について、エン・ジャパンの小澤が解説します。

Gitの教え方に困った!非エンジニアにも「いい感じ」でわかるGitの解説

エンジニアが非エンジニアと仕事をするとき、全員がGitが使えたら…と思う場面も。ただ、教えようにも、どう教えたらいいのか、困ったことはありませんか?  そこで「非エンジニア向けにGitを教える方法」について考えていきたいと思います。非エンジニアからすると技術用語はハードルが高く、いわば「何がわからないかがわからない」状態からのスタート。 今回は、新人マーケター(非エンジニア)が、エンジニアから「Gitをこう教わってたら理解ができた」という体験から実際の導入方法までお届けします。

AWS構成の基本をユースケースごとに学ぼう。AWSの中の人がサンプルをもとに解説する

多種多様なサービスを提供するAWSですが、よりよい構成にするためには、なにをどのように選ぶべきでしょうか。ユースケースに応じたAWSのシステム構成サンプルを「AWSの中の人」が解説します。

GitとGitHubを分かりやすく! 組織開発で生かすツール選択とプロジェクト進行を解説

分散型バージョン管理システムのGitと、そのホスティングサービスとしてプルリクエストなどの機能をもつGitHubは、ソフトウェア開発環境として広く普及しています。本記事ではGitやGitHubの考え方や使い方の基本を解説するとともに、実際のプロジェクトにおける開発の進め方を簡単に紹介します。

68サービス・アプリのクラウドやフレームワーク・言語など聞いてみた! アーキテクチャ大調査2022

エンジニアHub恒例のアーキテクチャ大調査。2022年版では、エンジニアHubに掲載中の求人情報を元に整理しました。68のアプリ・サービスの情報をまとめています。

あらためて学ぶOSの役割 - 「OSの気持ち」を知り、コンピュータをよりよく理解しよう

パソコンを操作するうえで、欠かすことができないOS(オペレーティングシステム)ですが、あまりにも「あたりまえ」の存在ゆえ、その実像をイメージすることは多くはないでしょう。OSは「なにを」「どのように」処理しているのかを学ぶと、自身が使用するパソコンがもっとよく理解できるようなるかもしれません。内田公太さんが、OSの役割と働きの基本、そして「OSの気持ち」を理解するための方法を解説してくれました。

Reactを取り巻く状態管理の潮流を学ぼう。HooksやServer Componentsなどの登場で何が変わるか

Reactを取り巻く状態管理のアプローチは変化を続けていますが、いま知っておくべき手法とはどのようなものでしょうか。小林 徹(@koba04)さんに、現在、そしてこの先の状態管理について執筆いただきました。

Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた

2021年12月25日にリリースされたばかりのRuby 3.1では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさん、ko1さんに詳しくうかがいました。

今そこにあるIPv6 ─ もう1つのインターネットが普通に使われていることに普通のITエンジニアはどう対応するべきか?

長らく「オオカミ少年」と呼ばれながら近年は対応サービスの増加もあって普通に利用されているIPv6。2021年12月に『プロフェッショナルIPv6』を改訂する小川晃通(@geekpage)さんに、普通のITエンジニアがこれから考えるべきことを聞きました。

HTTP/3とQUICはなぜ必要になり、どのように標準化されてきたのか? 現代のプロトコル設計とインターネットの課題

IETFで標準化が進められているWebの新しい通信プロトコルQUICとHTTP/3について、現在のインターネットが抱える課題やプロトコル設計での議論を中心に、ASnoKaze blogの後藤ゆき(@flano_yuki)さんに執筆いただきました。

5,500超のMySQLインスタンスを少人数で運用するには - LINEのDB運用効率化・自動化の取り組み

大きなサービスであれば、それを支えるデータベースの規模もまた大きくなるでしょう。LINE社のデータベースの規模は、2021年11月時点でMySQLのインスタンス数5,500超。巨大なデータベースの運用を効率化、自動化するための工夫やノウハウをLINE社のDBAに聞きました。

超入門SQL 初心者でも理解できるCOUNT()とSUM() ─ グルーピングと集約関数の基本

以前に掲載して好評を博している「SQL入門」の続編です。前回は基本的なSELECT文を解説しましたが、今回は簡単な集計に挑戦してみます。執筆は前回と同じく、日本MySQLユーザ会副代表の坂井恵さんです。

ソフトウェアの「アジリティ」と「品質」をトレードオフにしない、プロダクト開発の理想型|Tably及川卓也×Autify 近澤良

ソフトウェア開発においても重要なキーワードとなっている「アジリティ」。激しい市場変化への対応力、機敏性を意味する言葉だ。あらゆる産業でソフトウェアを主体としたビジネスへとシフトするなか、その「アジリティ」と「クオリティ」をどう両立するか。そのためのプロダクト開発の理想型とは? Tably及川卓也氏 × Autify 近澤良氏の特別対談をお届けする。

Scrum@Scaleの基本と実装 - Chatworkの実践に学ぶ「スケールするスクラム」の導入戦略

スクラムのスケーリング手法であるScrum@Scale(スクラムアットスケール)の基本的な概念、そして企業内での実践例を粕谷大輔(daiksy)さんが解説します。実践例では、Scrum@Scaleにおいて「だれが」「なにをやるのか」を、1週間のタイムスケジュールとともに解説します。

個人開発のススメ。中学生になった息子のためにアプリ開発をしたら、「ビジネス理解」への小さな一歩が進んだ話

ナイル株式会社にてメディアテクノロジー事業本部でエンジニアをしている福本さんによる「個人開発のススメ」をお届け。本来エンジニアは、ものづくりを通じて本質的な課題を解決し、誰かに喜んでもらう仕事なはず。エンジニアリングの「作業化」という問題をどう解決していく? 中学生になった息子のためのアプリ開発、個人開発にそのヒントがあった!?

「がんばらないTypeScript」のための現実的な設定を考える ─ 4レベルの厳しさを使い分けてTypeScript疲れを克服しよう!

エンジニアHubでは2019年に「がんばらないTypeScript」を紹介しました。JavaScriptに静的型付けなどを提供するTypeScriptは、今では実プロジェクトに採用されるプログラミング言語になっています。そこで現実的なTypeScriptの設定を、藤吾郎(gfx)さんに解説してもらいました。

オフィスを3倍に増床。インフラチームが「回線まわり」でやったこと。150名規模、ITベンチャーのオフィス移転物語

従業員の増加に伴う「オフィス移転」、その時ITベンチャーのインフラチームは何に対応した?ベンチャーにとって嬉しくも、大変なオフィス移転。2016年創業のITベンチャー、アルサーガパートナーズ社も例外ではない。従業員数150名となった2021年5月のタイミングで、4度目となるオフィス移転を行なった。コロナ禍でも、オフィスを3倍に増床。新たに冷却機器の設置が必要になるなど想定外の対応も。その時、インフラチームはどんな工夫をした?移転作業を振り返り、同社代表小俣泰明氏とインフラチームのマネージャーを取材した。

なぜ食べログはフロントエンドのリプレースを進めているか。- 大きな改善を行うときに大事なこと-

食べログが大規模サービスとして成長していくなかで、どのように技術的・組織的課題と向き合ってきたのか。裏側エピソードを大公開。2021年4月15日に開催されたエンジニアHubウェビナー「食べログエンジニアに聞く!大規模サービスの裏側エピソードを限定公開」より、全文書き起こしレポートをお届けします。

食べログに見る、成長し続けるサービスの「業務的負債」との向き合い方

食べログが大規模サービスとして成長していくなか、どう「業務的負債」と向き合ってきたのか。システムと実業務に狭間に発生する「業務を無理にシステムに合わせて運用」「手作業による個別対応が多い」など“あるある”な負債の発生要因と、向き合い方を解説してもらいました。

食べログのエンジニアが、コロナ禍で向き合った課題。テイクアウト、感染症対策情報、Go To Eat…求められた即対応

食べログ大規模サービスのウラ側エピソードを大公開。コロナ禍で生活様式が変化する中、テイクアウト、レストランの感染症対策情報の掲載、Go To Eatキャンペーンなど、新たなニーズが次々と発生。急激な変化に対し、即対応が求められる状況に。食べログではどのように対応したのか?

現役CTOやエンジニア出身の人事責任者に聞く!会いたくなる履歴書・職務経歴書とは?

現役CTOやエンジニア出身の人事責任者に「会いたくなる履歴書・職務経歴書」について取材しました。エンジニア採用をする企業が魅力に感じるレジュメや、特に重視しているポイントを解説します。

Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について

ナイル株式会社メディアテクノロジー事業本部の工藤さんにMVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について解説いただきました。

新人エンジニアに知ってほしい、DX時代のキャリア論。約500名を育成してきたCTOからの手紙

約500人を超えるエンジニアの採用と育成に携わってきた小俣泰明氏(アルサーガパートナーズのCEO兼CTO)による連載企画。エンジニアとして、高い目標のキャリア像を掲げられているか。日本のDXを加速させるエンジニアの役割とは。小俣泰明氏独自のキャリア論をお届けします。

Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方

LaravelはPHPで実装されたオープンソースのWebアプリケーションフレームワークです。自由度が高く、幅広いニーズをサポートし、開発支援も充実し、多くのユーザに使われています。ここではサンプルアプリケーションとしてREST APIの実装を通して、Laravelを利用した開発を体験します。

API開発の基本 - 銀行APIの開発事例に学ぶ『使いやすい』のデザインプロセス

APIは多くのWebシステムにおいて、欠かすことのできない技術です。APIをどのように設計、デザインすれば、ユーザに利便性を提供できるのかを、GMOあおぞらネット銀行 CTOの矢上聡洋さんが解説します。API設計の基本、そして実際の銀行APIの設計から、“使いやすい”を生み出すためのデザインプロセスを学びます。

カオスエンジニアリングを導入したクックパッドの挑戦 マイクロサービス化に伴う可用性の低下に対応

料理のレシピ投稿・検索サービスのクックパッドでは2年前からカオスエンジニアリングに取り組み、さまざまな事例やノウハウを蓄積しています。クックパッドの技術部・SR(Site Reliability)グループの小杉山拓弥さんとDX(Developer Productivity)グループの鈴木康平さんに、導入の理由やさまざまな知見を伺いました。

ISUCONの問題作成の舞台裏を2020年の出題チーム・白金動物園に聞いてみた

ISUCONの問題は、一体どうやって作られている?あまり明かされることのない、ISUCONの舞台裏を2020年の出題チーム「白金動物園」に聞いてみました。出題者たちは、果たしてなにを考え、どのように参加者と戦うための問題を作っているのか。彼らの答えに、ISUCON攻略のヒントがある!?

Kubernetesのモダンな活用法 - 設計メソッドと、Virtual Kubeletで実現するサーバーレス化を学ぼう

Kubernetesはここ数年で一気にユーザーを増やしたコンテナオーケストレーターですが、一般化にともない、その活用法も洗練されてきました。本稿では「The Twelve-Factor Appを援用したKubernetes設計」と「Virtual Kubeletを活用したKubernetesのサーバーレス化」という、比較的新しい2つの活用法を武井宜行さんが解説します。

若手ハイキャリアのスカウト転職