もくテク「最近のWeb技術についてワイワイ語る会」を開催しました!


こんにちは。開発本部の福田です。

そろそろ肌寒くなってきましたね。
夏に買ったメントール配合のスーパークールシャンプーがなかなか減らず、震えながら使っている今日この頃です。

さて、9月27日に勉強会「もくテク」を開催しました。
テーマは最近のWeb技術についてワイワイ語る会 - connpass
今回はその様子をご紹介します。

結構ワイワイしてました

f:id:ochoco0108:20181009095228j:plain 会場の様子

実は私、もくテクは初登壇だったのですが、今回は参加者数も多いということもあって、非常に賑やかでした。
今回は弥生のエンジニア1名とMisocaのエンジニア3名が登壇、そしてなんと、ライトニングトーク枠は5枠満員御礼!
みなさん個性的なプレゼンで開発にかける想いを熱く語っていました。

セッションの内容

最初のセッションは私が登壇しました。
タイトルは、「はじめてのWeb開発で学んだ4つの教訓」
話した内容は主に以下の3点です。

  • 新しい課金の仕組みを構築するためにプラットフォームを導入したこと
  • そのプラットフォームが思い通りに活用できず苦労したこと
  • 結果的に自前で実装を重ねた結果、テストができないほど複雑なコードになってしまい、障害が多発したこと

そして、その苦労から得た教訓を会場のみなさんと共有しました。
参加者の方からも「大変でしたね」と声をかけていただき、改めて「このプロジェクトから学ぶことは多かったなあ・・・。」と実感しました。

f:id:ochoco0108:20181009095527j:plain 私の発表セッションです

Misocaのメンバーはより技術的な内容にフォーカスし、最近のフロントエンドにおけるフレームワークの比較や、デモを交えたcss管理ツールの紹介、統合認証プラットフォームAuth0の活用法などを話しました。

「最近のWeb技術は刻一刻と変化しているように見えるが、それは言語やフレームワークの数が多いだけで、どれもバージョンアップ自体はだいたい年1回くらいしかない」

という内容には「なるほど、そうなのか!」と気づかされました。

また、雰囲気も弥生の社員とは少し違っていてベンチャー色が強く、「イケイケなWebエンジニア集団」という印象を受けましたね。

f:id:ochoco0108:20181009100140j:plain Misocaの発表の様子

個性が光るライトニングトーク

ライトニングトーク枠は5分という短い時間でしたが、どれも個性的で濃い内容でした!
中には初参戦の方もおり、「祝!初LT!」と書かれたスライドとともに、会場は大きな拍手に包まれていました。

f:id:ochoco0108:20181009100735j:plain 祝!初LT!

「東大卒、プログラミング超初心者の僕でも、Firebaseを使えばたった3ステップでモバイルアプリをデプロイできた」

というフレーズが、個人的に印象に残っています。

mBaaS(Firebase)を使うとバックエンドのことを気にせずにフロント側の開発に専念できるので便利ですね。

私も実際にFirebaseを使ってチャットアプリを個人的にデプロイしたことがあったので、非常に共感できる話でした。

あっという間に時間は過ぎ・・・

気づけば2時間、あっという間でした。

今回のもくテクでは社内で使っている言語や環境以外の話や、実際に使ってみた感想、おすすめポイントなども知ることができたのでとても有益でした。

また、エンジニアとしての熱い想いが色々な人から伝わってきました!

次回も勉強会やります!

次回は10/25(木)に開催予定です。
近日中にconnpassを公開しますのでお待ちください!

@IT(IT media)に弊社のインタビュー記事が公開されました

【インタビュー記事公開】
先日@IT(IT media)に弊社のインタビュー記事が公開されました。

弊社の開発体制やプロセス、使用している相互理解のツールも紹介していますので是非ご覧ください!

老舗とベンチャーのいいとこ取り――弥生が取り組む、綱渡りから橋梁への「意識改革」

http://www.atmarkit.co.jp/ait/articles/1809/26/news001.html

Yayoi Developers WorkShop ~クラウドサービスの先駆者AWSのベストプラクティス学習Vol.2~を開催しました

こんにちは。開発本部エンジニアの有働です。
Yayoi Developers WorkShop(通称「水尾塾」)の第二回目の模様についてご紹介します。
今回は、前回の続きとして「クラウドサービスの先駆者AWSのベストプラクティス学習Vol.2」というタイトルを冠した勉強会を行いました。
場所は、新設されたAWS目黒オフィスの一室をお借りしました。(綺麗でした!)

アジェンダは以下
1. DevOps座学
2. Datalake座学
3. グループワーク(前回の続き)

DevOps座学

AWSの小林様に「DevOpsとは?」をはじめに、「Amazon.comでは何をしたのか」、「DevOps Tools on AWS」について教えて頂きました。
盛りだくさんで教えて頂いたので、書ききれる範囲で簡単にご紹介します。

DevOpsとは?

所謂、DevOpsの定義(開発チーム-Developmentと運用チーム-Operationsがお互いに協調し合って…)の話よりも、DevOpsを採用する利点に重きを置いた話をして頂きました。
(「そもそもDevOpsってなんやねん!」という方はググってください) 特に強調されていたのがビジネススピードの向上という点です(Lean Startupの実践としてのDevOps)。
DevOpsを実践することで「コーディング~ビルド~デプロイ~プロダクト」をWeeksオーダーからHoursオーダーにするレベルの高速化を実現します。
DevOpsの効果として、ある企業では年間300を超えるアプリがリリースされたそうです。
このあたりの話は個人的に興味のある分野なので、もっと詳しく知りたい方や語りたい方はお話ししに来てください。

Amazonでは何をしたのか

Amazonでは昔(2001年頃)、各サービスが密に結合したモノリシックなアーキテクチャとなっていたそうです。
それをマイクロサービス化し、DevOpsをどのように成功させているかについて話をして頂きました。
Amazonで実践されたDevOpsを成功させるためにしたことについてかいつまんで紹介します。

  • サービスの所有権と説明責任をチームに持たせる(権限と多くの自由)
  • 個人に対する責任は小さく
  • 1つのチームを小さくする(Two-pizza teamsとして有名)
  • インテグレーションとデリバリを可能な限り自動化
  • 定義や設定をコードとして扱う(極端な話、設計書はいらない)

個人的には上の3つが特に重要だと感じていて、下の2つは各チームの自由の中で効率化を実践すれば勝手にできていくものだと思います。
f:id:yayoiTech:20180926182801p:plain

出典:https://www.slideshare.net/AmazonWebServices/keeping-your-startup-dna-startup-talks-june-2015

DevOps Tools on AWS

DevOpsを実践する際に便利なAWSのサービスについていくつか教えて頂きました。
リリースまでの全てのフェーズにAWSのサービスが存在し、各フェーズを高速化(自動化)します。
ここではAWSの各サービスの詳細について言及することはしませんが、有用なサービスを列挙しますので興味のある方はググってみてください。
- CodeCommit
- CodeBuild
- CodeDeploy
- CodePipeline
- CodeStar
- Fargate
- Elastic Container Service (ECS)
f:id:yayoiTech:20180926182842p:plain 出典:https://www.slideshare.net/AmazonWebServices/devops-on-aws-accelerating-software-delivery

Datalake座学

引き続き小林様に、データレイクについて教えて頂きました。

データレイクとは?なぜ必要なのか?

データレイクとは、ビッグデータ基盤である「収集」、「蓄積」、「処理/分析」、「可視化」のうちの「蓄積」に当たります。
ビッグデータの取組みに関する課題である「ストレージコストの増加」、「セキュリティの懸念」、「データ探索の負荷」を解決するために必要です。
データレイクを有効に使用するために、データレイクを「ゴミ溜め」にせず使える状態にすること(ガバナンス)、データレイクから情報を漏洩させないことを実現するアーキテクチャが必要となります。
f:id:yayoiTech:20180926182908p:plain 出典:https://www.slideshare.net/AmazonWebServicesJapan/20180424-aws-black-belt-online-seminar-aws

データレイクを構成するAWSのサービス

データレイクを中心として、ビッグデータ領域のAWSサービスについて紹介して頂きました。
その中から小林さんが推していたサービスについて簡単に紹介します。 Amazonでは多数のチームが多数のデータテーブルを参照するニーズがあり、面倒なプロセスを簡素化するためにデータレイクを実現し、様々なデータをセルフサービスで利用できるようにしたそうです。

Amazon S3

データレイク基盤の中心であり、ビッグデータを安全に格納するサービスです。
データレイク基盤に求められる要件の多く(大容量、低コスト、セキュア、高速)をカバーしています。

AWS Glue

データレイク基盤へのETL処理を行い、連携したデータをカタログ化するサービスです。
ETL処理のためのコードの生成、変更等が行えるため、データを統制をとって探索/再利用しやすい状態にできます。

Amazon Athena

データレイク(S3)に直接アクセスし、SQLによって検索分析実行できるサービスです。
サーバーレスでインフラ管理の必要がなく、マネジメントコンソールから簡単にアクセスできます(利用開始から数分でクエリ実行可能)。
個人的には手軽さが売りだと認識しています。
f:id:yayoiTech:20180926182928p:plain 出典:https://www.slideshare.net/AmazonWebServicesJapan/20180424-aws-black-belt-online-seminar-aws

グループワーク

今回は、チームごとに前回決めたテーマを元にしてどんなモノを作るかを具体的に決め、AWSのどのサービスをどのように使うかといったレベルまで落とし込みました。
各チームで決めた内容を最後に発表し、AWSの方にアドバイスを貰う形式で進みました。

以下、グループごとの発表

さくらグループ

  • 目的
    • 欲しいデータが増えても新規APIを作成しなくてすむようにしたい。
    • 現状、欲しいデータが増えるたびに新規APIを作成している。
  • 実現すること
    • 数多あるAPIの中から簡単なAPIをAppSyncから使用できるようにする。
    • 将来的には、すべてのAPI呼出しをAppSync経由にしたい。
  • 構成
    • クライアント→AWS AppSync→DB
      f:id:yayoiTech:20180926183132j:plain

きくグループ

  • 目的
    • 弥生のお客様にプロアクティブにサービス提供したい。
    • ユーザーの行動履歴を分析してアクションを起こすための基盤を作る。
  • 実現すること
    • ログイン履歴を分析し、分析結果に応じてメールを送信する。
  • 構成
    • ログイン履歴(AWS S3)→分析(AWS Athena)→分析結果(AWS CloudWatch)→メール送信(AWS SNS)
  • その他使用するサービス
    • AWS Lambda, AWS Glue

f:id:yayoiTech:20180926183204j:plain

ひまわりグループ

  • 目的
    • 職場環境の快適を作りたい・知りたい・維持したい。
  • 実現すること
    • ユーザーからの要望をAlexaが受け付け、空調の温度を調整する
    • ユーザーからの要望を蓄積する
    • 蓄積された要望を素にユーザー要望を先回りして叶える
      f:id:yayoiTech:20180926183250j:plain

ばらグループ

  • 目的
    • PCを起動しなくても出勤の打刻をしたい。
  • 実現すること
    • タブレット等のカメラに顔を写すことで打刻をする。
  • 構成
    • 顔画像(タブレット)→顔を認識してFaceIDを返す(Amazon Rekognition)→FaceIDから打刻に必要な情報を取得(Amazon DynamoDB)→打刻
  • 備考
    • まずは最低限の機能のモノを作り、その後改善していく。
    • 顔の様子から元気がなければ上司にメールする機能など、発展させていく。
      f:id:yayoiTech:20180926183310j:plain

あさがおグループ

  • 目的
    • 勤怠連絡を楽にしたい。
    • コールセンターをイマドキにしたい。
    • コールセンターのランニングコスト削減
    • システムの拡張性を高める
    • コグニティブコンピューティングシステムの導入
    • BCP対策
  • 実現すること、構成
    • コールセンターについては、Amazon Connectを用いて構築する。

f:id:yayoiTech:20180926183330j:plain

わしっぱなグループ

  • 目的
    • コールセンターの業務を効率化したい。
  • 実現すること
    • かかってきた電話の音声ファイルを使って、障害などをリアルタイムに検知する仕組みをつくる。
    • また、蓄積された音声データを分析して、よくある質問などにフィードバックする仕組みをつくる。
  • 使用するサービス
    • S3、Lambda、AmazonTranscribe(ニホンゴミタイオウ)、AmazonComprehend etc.
  • 目標
    • Infrastructure as Code
    • サーバーレス
      f:id:yayoiTech:20180926183350j:plain

次回予告

今回イメージ化した内容を各グループでさらに具体化し、アーキテクチャレビューを実施予定です。
実施した内容は本ブログで公開します。