NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

注目のタグ

    新米エンジニアの挑戦 : インフラからアプリまでの旅路

    本記事は  ブログ書き初めウィーク  8日目①の記事です。
    📝  7日目  ▶▶ 本記事 ▶▶  8日目②  📅

    はじめに


    こんにちは!サッカーを愛する新米エンジニアの井手亮太と申します!
    現在、AWSを扱うインフラエンジニアとして働いています。タイトルの通り、今回私はインフラだけではなく、専門外であるアプリ分野に挑戦していきます! ではなぜ、専門外の分野に取り組もうと思ったのか。 理由はずばり、

    アプリとインフラの境界が曖昧になってきている と感じたからです。

    これ、IT業界でよく言われている話ですよね?
    実際、自分もこのような話は知っていましたが、実感は全然沸いていなかったというのが正直なところです。
    しかし、入社後仕事に取り組む中、この現状をヒシヒシと実感しています。

    具体的な例を挙げてみましょう。例えば、AWSのサーバーレスコンピューティングサービスであるAWS Lambdaです。AWS学習前、 Lambdaに対してこのようなイメージを持っていました。

    「コードを用意するだけでアプリを作成できる」、これは正しいです。しかし、「プログラミングをすることがない」という考えは大きな大きな間違いでした!

    事実、業務中に

    • LambdaでPythonを用いてAWSリソースを操作

    • AWSリソースをコンソール上からではなく、コードで構築する(Infrastructure as Code)

    といったことを経験しました。

    このように最近では、インフラエンジニアであってもプログラミングを扱う機会は非常に多いと言えます。(ちなみに先輩方もプログラミングをできる人が非常に多いです)

    さて、インフラエンジニアでもアプリ側の知識が必要と知った時、

    じゃあ、アプリもインフラもできる若手エンジニアかっこよくない?

    と自分は考えました。
    本ブログはそんなカッコつけたがりな自分がアプリからインフラまで挑戦した記録を記しています!!

    システム概要

    今回は、LINE Messaging APIを用いたサッカーニュース通知アプリを構築していきます。

    LINE Messaging APIとは、LINEアカウントを通じてユーザーと双方向のコミュニケーションを実現するためのAPIです。 Messaging APIを活用すると、LINEを通じてユーザーと個別にコミュニケーションを取ったり、他のサービスと連携して新しい機能を提供したりすることができます。Messaging APIの詳しい説明は以下をご覧ください。

    developers.line.biz

    では、本システムで実装する機能について紹介していきます。

    ユーザー側機能

    まずはユーザー側に提供する機能です。主に2つの機能を実装していきます。
    1つ目が定期的にニュースを通知する機能です。画面イメージを使って説明していきます。

    定期的なニュース通知機能

    こちらの機能では、毎日7:00と19:00にニュースが最大10件通知されます。受信したメッセージには、ニュースタイトルとURLが含まれており、ユーザーはURLを押下することでニュースを閲覧することができます。こちらの機能によりわざわざブラウザ検索を行うことなく、ニュース情報を得ることが可能となります。

    2つ目の機能は、メッセージに応じたニュース通知機能です。こちらも画面イメージを用いて説明していきます。

    ユーザーからのニュースリクエスト機能の概要(上)とタブ切り替え(下)

    ユーザーはLINEトーク画面のリッチメニューをタップすることで、テキストを送信します。すると、送信したテキスト内容に関連するニュース一覧が返信されます。
    例えば、ユーザーがリッチメニューの「イングランドリーグ」をタップすると、そのリーグに関するニュースが最大10件返信されます。この機能により、ユーザーは好きなリーグの情報を任意のタイミングで取得することができます。

    リッチメニュータブ切り替え

    また、タブ切り替え機能も実装します。Japaneseタブを押すと、リッチメニューが切り替わります。こちらの画面では日本人選手に関するニュースを取得できるようにします。

    開発者側機能

    次に開発者側の機能について説明していきます。実装する機能は以下の2つです。

    まず、将来的な機能追加・修正に対応するためにCI/CDパイプラインを構築します。このパイプラインにより、コードの変更が自動的にビルド、テスト、デプロイされるようになります。詳しくはインフラ編Part3をご覧ください。

    もう1つが監視・アラート通知機能です。システムの正常な起動・停止・異常状態をリアルタイムに検知して、開発者のSlackへ通知する仕組みを構築していきます。

    本システムの機能はお分かりいただけたでしょうか? では、いよいよシステム開発をスタートしていきましょう! ~インフラ編Part1に続く~

    tech.nri-net.com

    執筆者:井手 亮太
    職種:インフラエンジニア
    推しのサッカー選手:ケビン・デブライネ
    執筆記事一覧:https://tech.nri-net.com/archive/author/r-ide-ryota