Terraformは、パブリッククラウドのインフラ構築と自動化のツールとして、IaCのデファクトスタンダードとなっています。この記事では、AWS(Amazon Web Services)を活用するハンズオンを通してTerraformの動作を理解し、実務にもとづいて役立つ機能や便利なエコシステム、さらにSRE視点の事例を紹介します。アソビュー株式会社でSREユニットリーダーを務める鈴木剛志さんを中心に6名のメンバーによる共同執筆です。 アイキャッチ画像
新しい通信プロトコルとして普及が進んでいるHTTP/3については、エンジニアHubでも過去に概論的な記事を掲載しています。今回はアプリケーション開発者が自社サービスでHTTP/3を採用することを想定して、仕様上の留意点や、どのように使い始めるか、そしてサイトを制作する際に注意しておきたいポイントまでを藤吾郎(gfx)さんに解説していただきました。
群雄割拠のフロントエンドフレームワーク界でも、一歩抜きん出た存在として常に注目を集めてきたReact。2022年3月にリリースされたバージョン18では、Suspenseの安定化やStreaming SSRのサポートなど数々の新機能を取り入れて話題になりました。本記事では、React/TypeScriptのスペシャリストとして幅広く活躍されているuhyoさんが、現時点におけるReactのベストプラクティスについて解説します。
Javaの開発フレームワークであるSpringの最新バージョンとして、Spring Boot 3が2022年11月にリリースされました。この記事ではSpring Boot 2で書かれたサンプルコードをSpring Boot 3にアップグレードしながら、考慮点や新機能を体感していただきます。ヴイエムウェア株式会社の星野真知さんによる解説です。
Python製のマイクロWebフレームワークであるFlaskは最小限の機能のみを提供するシンプルさが特徴です。一方で、シンプルゆえ、アプリを構築する際、どのような構成にするか迷ってしまう局面もあります。本記事はFlaskを使い、実際にアプリをつくりながら基本的な構成の考え方をハンズオンで学びます。解説はテックタッチ株式会社の佐藤昌基さんです。
アマゾン ウェブ サービスが提供するIaC(Infrastructure as Code)の開発キットがAWS CDK(AWS Cloud Development Kit)です。本記事はAWS CDK入門者向けのチュートリアルとして、AWSでソリューションアーキテクトを務める吉川幸弘(@WinterYukky)さんによる、AWS Lambda関数でDynamoDBテーブルをスキャンするシンプルなハンズオンです。
Next.jsは、ReactベースのWebアプリケーションフレームワークで、SSR(Server Side Rendering)などフロントエンド開発に必要な機能を十分に備えています。2022年10月には、App Directoryという新しい概念をβ版として導入したバージョン13がリリースされました。この基本的な考え方と使い方をハンズオン形式で解説します。株式会社アンドパッドでソフトウェアエンジニアを務める村田司(Tim0401)さんよる執筆です。
Nest.jsは、スケーラブルで効率的なサーバーサイドのNode.jsフレームワークで、TypeScriptで構築されています。この記事はNestJSのハンズオンとして、TypeScriptやNode.jsの経験があるソフトウェアエンジニアが手を動かしながらNestJSに入門できます。NestJS Japan Users Groupの羽馬直樹さんによる執筆です。
現在ウェルスナビの開発組織では既存事業の成長を加速させること、新規事業の取り組みを進めることに並行して取り組んでいます。これまでにも大規模なデータベース移行やコンテナ化を進めてきましたが、複数サービスを同時並行で開発していこうとするなかで改めて認識された技術的負債や、クラウドネイティブなアーキテクチャへ移行するにあたって採用した代表的な設計パターンなどをご紹介します。
PythonのWebフレームワークとしていま注目を集めるFastAPIは、シンプルにコードが書けるだけでなく、パフォーマンスが高いWebアプリケーションのバックエンドサーバーが構築可能です。同フレームワークの勘所をPythonスペシャリストの杜世橋さんが、初心者向けのハンズオン、そしてより実践的な画像への自動タグ付けサービス実装をとおして解説します。
LINE株式会社 石川宗寿さんが「読みやすいコードのガイドライン」を出版されました。その内容を元に開かれた「CODE READABILITY LECTURE」のレポートを質疑を中心にお送りします。
Googleの高度な技術を利用できるGoogle Cloudにおいて、BigQueryは大規模データをスケーラブルに分析できるフルマネージドなデータウェアハウスとして提供されています。株式会社タイミーでデータエンジニアを務める土川稔生さんが、初心者向けのハンズオンとともにBigQueryの基本を解説します。
初期構築から3年近くメジャーアップデート対応をしていなかったRuby on Railsのプロダクトについて、事前のリファクタリングなどの整備を経てアップデート作業を実施しました。本稿ではその事前整備に焦点を当て、大規模なアップデートの経験やそれに対する準備がされていないプロダクトに対する事前整備として、どういう背景から何を考えどのようなことを行ったのかを紹介します。
Pythonで広く利用されているWebアプリケーションのフレームワークにDjangoがあります。Djangoで開発を始める際に、プロジェクトの設定ファイルをどのように記述すれば運用が楽になるのか。『Python実践レシピ』の著書もある筒井隆次(ryu22e)さんによる寄稿です。
遷移なく表示コンテンツを変更できるシングルページアプリケーションでは、ページの状態管理が重要になります。現在はReactによるUI構築とReduxによる状態管理を選択しているChatworkは、jQueryなどの技術的負債と共存しながら、フロントエンド設計の見直しを重ねてきました。クライアントサイド・アーキテクトの火村智彦(@eielh)さんと、エンジニア採用広報の高瀬和之(@guvalif)さんによる解説です。
安全性に大きな特徴があるプログラミング言語Rustは、C言語やC++に代わるシステム記述言語として注目されてきました。しかし、その安全性とパフォーマンスの高さにより、ビジネスアプリケーションの構築にも採用されています。この記事ではキャディ株式会社による事例を紹介します。
大規模なソフトウェア開発においてモノリシックかマイクロサービスかというアーキテクチャの議論がありますが、近年は第3の選択肢としてモジュラモノリスが話題になっています。いったんマイクロサービス化に舵を切りながら現在はモジュラモノリスに取り組むアソビューの考え方や進め方について、VPoEの兼平大資(disc99)さんによる寄稿です。
2022年1月24日に開催された東京都 デジタル人材採用イベントのレポート記事をお届け。現在、都庁で活躍するデジタルシフト推進担当課長3名によるDX推進プロジェクト事例が紹介された。「徹底点検TOKYOサポート」「ユーザーテストの実施徹底を推進」「都民等デジタルデバイド是正」それぞれの取り組みとは?
WebAssembly(Wasm)は、ブラウザー上で直接動くプログラミング言語として、JavaScriptを置き換える期待が寄せられますが、実際にWasmが果たすべき役割や適したユースケースとはどういったものでしょうか? Wasmの動作を体験するチュートリアルとあわせて、山本悠滋(igrep)さんが解説します。
この数年であちこちで見かけるようになった「オブザーバビリティ」という言葉。コンテナが利用されるシーンが増えてきた現在におけるオブザーバビリティの基礎についてミクシィでみてねのSREグループマネージャーをつとめる清水 勲さんに解説いただきました。
新しいJavaScript実行環境として、Deno(ディノ)の存在感はますます大きくなっています。Deno Land社のメンバーとして開発にあたる日野澤歓也(@kt3k)さんに、機能的な特徴の概説から、基本的な環境構築と開発のチュートリアルまでを執筆してもらいました。
GitHubが公式に提供するGitHub Actionsは、後発ながらよく使われるワークフローエンジンとなっています。本記事では、藤吾郎(gfx)さんが、典型的なCI/CDのユースケースに即したワークフローの設定と管理について解説するとともに、注目されているGitHub OIDC(OpenID Connect)の利用についても紹介します。
PerlやRuby、Pythonなど様々なインタプリタ言語/スクリプト言語がありますが、最近だとインタプリタ言語もJITコンパイルしたり、コンパイラ言語の中にもスクリプトのように動かせるものもあります。 その辺りの今どきの事情について、エン・ジャパンの小澤が解説します。
エンジニアが非エンジニアと仕事をするとき、全員がGitが使えたら…と思う場面も。ただ、教えようにも、どう教えたらいいのか、困ったことはありませんか? そこで「非エンジニア向けにGitを教える方法」について考えていきたいと思います。非エンジニアからすると技術用語はハードルが高く、いわば「何がわからないかがわからない」状態からのスタート。 今回は、新人マーケター(非エンジニア)が、エンジニアから「Gitをこう教わってたら理解ができた」という体験から実際の導入方法までお届けします。
多種多様なサービスを提供するAWSですが、よりよい構成にするためには、なにをどのように選ぶべきでしょうか。ユースケースに応じたAWSのシステム構成サンプルを「AWSの中の人」が解説します。
分散型バージョン管理システムのGitと、そのホスティングサービスとしてプルリクエストなどの機能をもつGitHubは、ソフトウェア開発環境として広く普及しています。本記事ではGitやGitHubの考え方や使い方の基本を解説するとともに、実際のプロジェクトにおける開発の進め方を簡単に紹介します。
エンジニアHub恒例のアーキテクチャ大調査。2022年版では、エンジニアHubに掲載中の求人情報を元に整理しました。68のアプリ・サービスの情報をまとめています。
パソコンを操作するうえで、欠かすことができないOS(オペレーティングシステム)ですが、あまりにも「あたりまえ」の存在ゆえ、その実像をイメージすることは多くはないでしょう。OSは「なにを」「どのように」処理しているのかを学ぶと、自身が使用するパソコンがもっとよく理解できるようなるかもしれません。内田公太さんが、OSの役割と働きの基本、そして「OSの気持ち」を理解するための方法を解説してくれました。
Reactを取り巻く状態管理のアプローチは変化を続けていますが、いま知っておくべき手法とはどのようなものでしょうか。小林 徹(@koba04)さんに、現在、そしてこの先の状態管理について執筆いただきました。
2021年12月25日にリリースされたばかりのRuby 3.1では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさん、ko1さんに詳しくうかがいました。
長らく「オオカミ少年」と呼ばれながら近年は対応サービスの増加もあって普通に利用されているIPv6。2021年12月に『プロフェッショナルIPv6』を改訂する小川晃通(@geekpage)さんに、普通のITエンジニアがこれから考えるべきことを聞きました。
IETFで標準化が進められているWebの新しい通信プロトコルQUICとHTTP/3について、現在のインターネットが抱える課題やプロトコル設計での議論を中心に、ASnoKaze blogの後藤ゆき(@flano_yuki)さんに執筆いただきました。
大きなサービスであれば、それを支えるデータベースの規模もまた大きくなるでしょう。LINE社のデータベースの規模は、2021年11月時点でMySQLのインスタンス数5,500超。巨大なデータベースの運用を効率化、自動化するための工夫やノウハウをLINE社のDBAに聞きました。
以前に掲載して好評を博している「SQL入門」の続編です。前回は基本的なSELECT文を解説しましたが、今回は簡単な集計に挑戦してみます。執筆は前回と同じく、日本MySQLユーザ会副代表の坂井恵さんです。
ソフトウェア開発においても重要なキーワードとなっている「アジリティ」。激しい市場変化への対応力、機敏性を意味する言葉だ。あらゆる産業でソフトウェアを主体としたビジネスへとシフトするなか、その「アジリティ」と「クオリティ」をどう両立するか。そのためのプロダクト開発の理想型とは? Tably及川卓也氏 × Autify 近澤良氏の特別対談をお届けする。
スクラムのスケーリング手法であるScrum@Scale(スクラムアットスケール)の基本的な概念、そして企業内での実践例を粕谷大輔(daiksy)さんが解説します。実践例では、Scrum@Scaleにおいて「だれが」「なにをやるのか」を、1週間のタイムスケジュールとともに解説します。
ナイル株式会社にてメディアテクノロジー事業本部でエンジニアをしている福本さんによる「個人開発のススメ」をお届け。本来エンジニアは、ものづくりを通じて本質的な課題を解決し、誰かに喜んでもらう仕事なはず。エンジニアリングの「作業化」という問題をどう解決していく? 中学生になった息子のためのアプリ開発、個人開発にそのヒントがあった!?
エンジニアHubでは2019年に「がんばらないTypeScript」を紹介しました。JavaScriptに静的型付けなどを提供するTypeScriptは、今では実プロジェクトに採用されるプログラミング言語になっています。そこで現実的なTypeScriptの設定を、藤吾郎(gfx)さんに解説してもらいました。
従業員の増加に伴う「オフィス移転」、その時ITベンチャーのインフラチームは何に対応した?ベンチャーにとって嬉しくも、大変なオフィス移転。2016年創業のITベンチャー、アルサーガパートナーズ社も例外ではない。従業員数150名となった2021年5月のタイミングで、4度目となるオフィス移転を行なった。コロナ禍でも、オフィスを3倍に増床。新たに冷却機器の設置が必要になるなど想定外の対応も。その時、インフラチームはどんな工夫をした?移転作業を振り返り、同社代表小俣泰明氏とインフラチームのマネージャーを取材した。
食べログが大規模サービスとして成長していくなかで、どのように技術的・組織的課題と向き合ってきたのか。裏側エピソードを大公開。2021年4月15日に開催されたエンジニアHubウェビナー「食べログエンジニアに聞く!大規模サービスの裏側エピソードを限定公開」より、全文書き起こしレポートをお届けします。
食べログが大規模サービスとして成長していくなか、どう「業務的負債」と向き合ってきたのか。システムと実業務に狭間に発生する「業務を無理にシステムに合わせて運用」「手作業による個別対応が多い」など“あるある”な負債の発生要因と、向き合い方を解説してもらいました。
食べログ大規模サービスのウラ側エピソードを大公開。コロナ禍で生活様式が変化する中、テイクアウト、レストランの感染症対策情報の掲載、Go To Eatキャンペーンなど、新たなニーズが次々と発生。急激な変化に対し、即対応が求められる状況に。食べログではどのように対応したのか?
現役CTOやエンジニア出身の人事責任者に「会いたくなる履歴書・職務経歴書」について取材しました。エンジニア採用をする企業が魅力に感じるレジュメや、特に重視しているポイントを解説します。
ナイル株式会社メディアテクノロジー事業本部の工藤さんにMVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について解説いただきました。
約500人を超えるエンジニアの採用と育成に携わってきた小俣泰明氏(アルサーガパートナーズのCEO兼CTO)による連載企画。エンジニアとして、高い目標のキャリア像を掲げられているか。日本のDXを加速させるエンジニアの役割とは。小俣泰明氏独自のキャリア論をお届けします。
LaravelはPHPで実装されたオープンソースのWebアプリケーションフレームワークです。自由度が高く、幅広いニーズをサポートし、開発支援も充実し、多くのユーザに使われています。ここではサンプルアプリケーションとしてREST APIの実装を通して、Laravelを利用した開発を体験します。
APIは多くのWebシステムにおいて、欠かすことのできない技術です。APIをどのように設計、デザインすれば、ユーザに利便性を提供できるのかを、GMOあおぞらネット銀行 CTOの矢上聡洋さんが解説します。API設計の基本、そして実際の銀行APIの設計から、“使いやすい”を生み出すためのデザインプロセスを学びます。
料理のレシピ投稿・検索サービスのクックパッドでは2年前からカオスエンジニアリングに取り組み、さまざまな事例やノウハウを蓄積しています。クックパッドの技術部・SR(Site Reliability)グループの小杉山拓弥さんとDX(Developer Productivity)グループの鈴木康平さんに、導入の理由やさまざまな知見を伺いました。
ISUCONの問題は、一体どうやって作られている?あまり明かされることのない、ISUCONの舞台裏を2020年の出題チーム「白金動物園」に聞いてみました。出題者たちは、果たしてなにを考え、どのように参加者と戦うための問題を作っているのか。彼らの答えに、ISUCON攻略のヒントがある!?
Kubernetesはここ数年で一気にユーザーを増やしたコンテナオーケストレーターですが、一般化にともない、その活用法も洗練されてきました。本稿では「The Twelve-Factor Appを援用したKubernetes設計」と「Virtual Kubeletを活用したKubernetesのサーバーレス化」という、比較的新しい2つの活用法を武井宜行さんが解説します。