タグ

ブックマーク / tech.uzabase.com (22)

  • CodeDeployで更新するECS ServiceをCDK管理して詰んだ話 - Uzabase for Engineers

    はじめに 皆様こんにちは、ソーシャル経済メディア「NewsPicks」(Media Infrastructureチーム)エンジニアの北見です。 先日、↓ の記事を書かせて頂きました。 tech.uzabase.com 前回では CDK の良さをメインに紹介しましたが、今回は上手く使えずにドはまりしてしまった例をご紹介します。 ことの始まり ある日、チームメンバーからこんな報告があがってきました。 「CDKのバージョン上げたのですが、cdk deployで失敗しちゃうんですよね。これ分かります?」 xxx-cluster-stack failed: Error: The stack named xxx-cluster-stack failed to deploy: UPDATE_ROLLBACK_COMPLETE: Resource handler returned message: "Re

    CodeDeployで更新するECS ServiceをCDK管理して詰んだ話 - Uzabase for Engineers
    advblog
    advblog 2024/07/23
  • エンジニアが今日から始める英語学習の継続方法 - Uzabase for Engineers

    1. はじめに こんにちは。ソーシャル経済メディア「NewsPicks」でエンジニアをしております小林です! 皆さんは英語学習に取り組んでいらっしゃいますか?エンジニアとして技術ドキュメントや国際カンファレンスの動画等で英語に触れる機会があると思います。また、技術的なスキルはあるが、英語を話すことが苦手な場合、将来的に市場でどう評価されているかの動向も気になるところです。 最新の2023年度の報告によると、世界的にITエンジニアの給与が上昇している一方、日では前年比USドルベースで5.9%減少、現地通貨(円)ベースでもわずか0.4%増加に留まっています。残念ながら、世界と比較した時に日の給与の優位性がなかった一年となりました。今後もこの差が開く一方であれば、個人や企業が国際市場で競争力を保つために、英語能力の向上も必要になる機会が高まっていくことを示唆しています。 しかし、「英語力を伸

    エンジニアが今日から始める英語学習の継続方法 - Uzabase for Engineers
    advblog
    advblog 2024/02/11
  • EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers

    概要 ソーシャル経済メディア「NewsPicks」SREチームの中川です。 皆さんはバッチ処理基盤はどうされていますでしょうか。 NewsPicks では少し前まではそれらをEC2、cronの組み合わせで動作させていました。 何年も前からこの仕組みだったのですがSREとしてはEC2の面倒見るのも手間ですし、それ以上にcronを変更する際のオペレーションミスが目立ったのが懸念点でした。 その為、まずはAWSマネージド化するための基盤を整備し、その後バッチアプリを載せ替えていくようにしました。 対応前の基盤構成 同じSREチームの安藤さんが CloudNative Days Tokyo 2023 で登壇されたときの資料をお借りします。 ご覧の通り、大体のサービスはマネージド化していましたがバッチ基盤だけは旧来のままEC2インスタンスを利用していました。 10年モノのサービスのインフラを漸進的

    EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers
    advblog
    advblog 2023/12/21
  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる』でした! 世の中には再現が難しく一見してバグがありそうに思えないコードもありますが、一方でプロダクションコードの中にはひと目見てバグが有りそうなコードもまた多いものです。いくつかの特定のパターンをとる文字列(環境名など)やenum(以下どちらもenumと表現します)に関する条件分岐もその一つです。プルリクを見てこのようなパターンがあれば、バグの疑いが強くなります。周囲を見渡すと、大抵すでにバグっているか潜在バグを含むコードが見つかります。すべてバグというのは言い過ぎにせよ、わかりやすさと変

    プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
    advblog
    advblog 2023/12/03
  • プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 先日から『Ghost of Tsushima』の開発者が書いた『ルールズ・オブ・プログラミング』というをちょっとずつ読み進めていて、プログラミング熱が高まっています。このは大きな指針を示すだけで具体の話をするものではないのですが、読み物として面白いので私も似たようなことをやってみたくなりました。 何年もこういう仕事をしているとバグが入るパターンというのが見えてきます。そしてだいたいどこに行っても何の仕事でも似たようなことをすることになるのですが、今回の話もその一つです。 構造化テキストを文字列結合で作らない、置換でいじらないというのはこれだけみると何のことか分かりづらいかも知れませんがSaaS Product Team セキュアコーディングの啓蒙 第2回 (SQL インジェクション編)の内容とある面では同じ話です。

    プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers
    advblog
    advblog 2023/11/30
  • Amazon OpenSearch Serviceへ移行:AWS CDKで構築するSAML+OktaでOpenSearch Dashboardsにログインできる環境 - Uzabase for Engineers

    こんにちは。NewsPicksエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。 弊社は、検索エンジンとしてElasticsearch(以下、ES)をAmazon EC2に乗せて構築しておりましたが、ヤクの毛刈りも含め、約1年かけてマネージドサービスであるAmazon OpenSearch Service(以下、OpenSearch)に移行することができました!今回は、マネージド化のための諸タスクの中から、かなりハマっていたセキュリティの設定部分を中心にお話したいと思います。ご興味ある方は是非読んでいただけると嬉しいです。 はじめに OpenSearch DashboardsにOktaでログインできるようにしたい SAML認証とは きめ細かなアクセスコントロールとは Dashboards接続時にOktaのログ

    Amazon OpenSearch Serviceへ移行:AWS CDKで構築するSAML+OktaでOpenSearch Dashboardsにログインできる環境 - Uzabase for Engineers
    advblog
    advblog 2023/06/06
  • なぜテストコードを書くのだろう? - Uzabase for Engineers

    こんにちは、NewsPicksの北見です。 ところで皆様、テストコードって書いてますか...? ネットでテストコードについて検索すると 「テストコードを書きましょう」 「テストコードとはこうあるべし」 「TDD(Test Driven Development)だ」 等々が叫ばれています。 ただ、なんとなく「方法論ありきでとにかくテストを書け」と言われているようで、テストの必要性について納得感に欠けている方もいらっしゃるのではないでしょうか? なぜ テストコードを書くのでしょうか? テストコードを書く理由 将来リファクタリングをしやすくする テストコード書く途中で、開発者自身が仕様を理解し、成長できる 最後に テストコードを書く理由 諸説ありますが、私が思うテストコードを書く理由は 将来リファクタリングをしやすくする テストコード書く途中で、開発者自身が仕様を理解し、成長できる の2つです。

    なぜテストコードを書くのだろう? - Uzabase for Engineers
    advblog
    advblog 2023/03/29
  • AWSの開発環境の利用時間をGoogleカレンダー連動させたら開発チームが自由に使えてコスト70%削減!! - Uzabase for Engineers

    こんにちはNewsPicks SREチームの美濃部です。 NewsPicksのSREのミッションの1つに「コストを適正化する」というものがあります。サービスの規模拡大に比例してインフラコストが増えないようにし、売上に対するコストの割合を低く維持していくのがミッションになります。 今回はこのミッションに対するアクションとして開発環境のインフラコストを適正化した話をします。 NewsPicksの開発環境について 開発環境のコストをどうやって適正化したか 稼働時間対応を実現する仕組みについて 実際どれくらい削減できたのか まとめ NewsPicksの開発環境について まず、NewsPicksの開発環境について概要を説明します。 インフラ基盤は番環境と同様にAWSを利用しており開発チームは現在10以上のチームが存在し、それぞれのチーム専用に用意された開発環境を利用しています。 2年程前までは開発

    AWSの開発環境の利用時間をGoogleカレンダー連動させたら開発チームが自由に使えてコスト70%削減!! - Uzabase for Engineers
    advblog
    advblog 2023/02/21
  • 入社したらAWSコンソールにCloudWatchアラームが1000個以上あったので整理してる話 - Uzabase for Engineers

    こんにちはNewsPicks SREチームの飯野です。 今年の1月入社の新入社員です。そろそろお仕事に慣れてきました。今回は研修と研修の合間に地道に行っていたCloudWatchアラームの整理について話していきたいと思います。ちょっと長くなりますがお付き合いください。 よくわからないしアラームを整理しよう まずはスプレッドシートで一覧してみよう 整理の方針を決めよう さまざまな問題をかかえたアラームたち Case#1 AlarmActionが未設定のアラーム(5個) Case#2 ActionのSNSトピックが存在しないアラーム(16個) Actionを差し替えるのはちょっと手間 Case#3 ActionのSNSトピックの通知先が退職した社員のメールアドレス(97個) Case#4 監視先のDynamoDBのテーブルがすでに存在しないアラーム(97個中の85個) Case#5 監視先のE

    入社したらAWSコンソールにCloudWatchアラームが1000個以上あったので整理してる話 - Uzabase for Engineers
    advblog
    advblog 2023/02/10
  • NewsPicksの動画配信の仕組み - 自動化でエンジニアの見守り0に - - Uzabase for Engineers

    こんにちは、NewsPicksエンジニアの桐畑です。 NewsPicks Advent Calendar 2022 の 12 日目です。 全25回の Advent Calenderも、明日から折り返しとなります。 qiita.com 日は、NewsPicksの動画配信の仕組みを書かせていただければと思います。 NewPicksでは 2017年から動画コンテンツを配信しています。多い時だと毎日、少ない時でも週3は配信をしています。 5年間、配信の安定化および人手を最小化するためにシステムの改善を続けてきました。当初は動画配信中にエンジニアが待機していましたが、2020年ごろより、エンジニア待機無しで配信をしています。2022年 現在、主にAWSのMediaServices を使った構成になっています。今回は配信形式ごと(ユースケースごと)にどのような仕組みになっているかご紹介させていただ

    NewsPicksの動画配信の仕組み - 自動化でエンジニアの見守り0に - - Uzabase for Engineers
    advblog
    advblog 2022/12/13
  • コンテナイメージのバージョン管理を自動化したい! - Uzabase for Engineers

    皆様はじめまして! NewsPicks SREチームの中川です。 日はコンテナイメージのバージョン管理についての記事をお届けします。 概要 実装 ビルド デプロイ Pros Cons おわりに 概要 NewsPicksではECSやKubernetesに代表されるコンテナサービスを使用しておりますが、コンテナのデザインパターンとしてサイドカーパターンを採用しているサービスがあります。 詳しい説明は省きますが、サイドカーはメインアプリケーション用コンテナを補助するコンテナです。 これらのサービスをデプロイするとき、サイドカー毎に使用するDockerfileを ImageTag で指定していました。 実際には latest で固定するか、特定のImageTagを設定ファイルに書き込んで運用していました。 こうした運用方法の場合、Dockerfileを変更するときは事前にイメージを登録しておく必

    コンテナイメージのバージョン管理を自動化したい! - Uzabase for Engineers
    advblog
    advblog 2022/08/17
  • イベントレポート「NewsPicksでのモバイルアプリの技術的負債解消方法 - TechBase vol.2」を開催しました! - Uzabase for Engineers

    こんにちは。ユーザベース TechBrandingチームです。 2022年7月28日(木)にオンラインイベントイベント「NewsPicksでのモバイルアプリの技術的負債解消方法 - TechBase vol.2」を開催しました。弊社のNewsPicks アプリ開発チーム リーダー 石井 幸次 (@ko2ic)と、株式会社ニューズピックス Product Division iOSアプリエンジニア 金子 雄大 (@takehilo_kaneko)が登壇しました。 当日は100名以上の方にご参加頂き、沢山の反響を頂き大変盛り上がりました! 登壇者について イベント内容について ▼当日の資料 メインセッション / 「段階的な技術的負債の解消方法」 事例講演 / 「SwiftUI+TCAに挑戦!NewsPicks iOSアプリのリアーキテクチャ」 ▼アーカイブ動画(Youtube) SNSでも反響を

    イベントレポート「NewsPicksでのモバイルアプリの技術的負債解消方法 - TechBase vol.2」を開催しました! - Uzabase for Engineers
    advblog
    advblog 2022/08/02
  • AWSのコストモニタリングの知見をシェアしたい - Uzabase for Engineers

    NewsPicksの高山です。 今回は、AWSのコストを我々がどのように定点観測しているかを書いていきます。 あわよくば他社さんも事例を広く共有してもらえて業界全体の共有知が増えることに繋がってほしい狙いがあります。 NewsPicksでは過去2年ぐらいかけて地道にコストモニタリングのオペレーションを作ってきました。手法としては、毎週コストモニタリング担当のメンバーで定例ミーティングをして、以下の手順をやりながら議事録にまとめていきます。 毎週のオペレーション コスト異常検出 Savings Plansの購入 DynamoDBのReserved Capacityの購入 毎月のオペレーション 請求書CSVの取り込み Cost & Usage ReportQuickSight たまにやるオペレーション Reserved Instanceの購入 規模の適正化に関する推奨事項 Trusted A

    AWSのコストモニタリングの知見をシェアしたい - Uzabase for Engineers
    advblog
    advblog 2022/07/27
  • Elasticsearch の reindex をするために試行錯誤して分かったこと - Uzabase for Engineers

    こんにちは。NewsPicksエンジニアやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジン開発を担当しております。弊社は、検索エンジンとして Elasticsearch を Amazon EC2 に乗せて構築しておりますが、メンテナンスに消極的だった部分があり、これからはマネージド化や検索精度向上など積極的に取り組んでいきたいと考えております(伸びしろしかない!)。今回は、その中でも色んなタスクのボトルネックだったアルゴリズムを変更した話をしたいと思います。ただ、アルゴリズムの詳細よりもそれの変更のために行ったインフラ的な内容にフォーカスしております。ご興味ある方は是非読んでいただけると嬉しいです。 はじめに ちょっとまって、reindex とは? 題に戻り reindex の実験 実験環境づくり そもそも Elasticsearch のシステ

    Elasticsearch の reindex をするために試行錯誤して分かったこと - Uzabase for Engineers
    advblog
    advblog 2022/04/19
  • 最近のProduct Teamのペアプロ×TDDの文化をご紹介します - Uzabase for Engineers

    はじめに はじめまして。Product Teamの中嶋です。今月からチームシャッフル*1でSPEEDAのR&D機能の開発を担当しています。 Product TeamではフルタイムでのペアプロとTDDを常に実践しています。 この話を社外でお話すると「どんな風にやっていくのかが想像つかない」とよく言われます。 私も前職で一時的にペアプロを導入することはありましたが、それを常にやり続けるというProduct Teamのペアプロ文化が入社するまで全く想像できませんでした。 そこで記事ではProduct Teamがどのようにペアプロをしているのかをお届けしようと思います。 はじめに ツールについて ストーリーとペアはサインアップで決める まずはテストから書く 1時間に一度は休憩とペアチェンジを行う ソースコードのPushとデプロイ ソースコードのPushタイミングについて わからなければすぐ別のペ

    最近のProduct Teamのペアプロ×TDDの文化をご紹介します - Uzabase for Engineers
    advblog
    advblog 2022/02/16
  • FacebookからOAuthを停止されてわかった今時のセキュリティ - Uzabase for Engineers

    NewsPicksの高山です。 この記事はUzabase Advent Calendar 2021の23日目の記事です。昨日は我らが赤澤剛さんによるAWS Organizationの記事でした。 去る2021年10月12日に突然NewsPicksのサービスでFacebookログインやFacebookへの投稿ができなくなりました。この状態は12月13日まで2ヶ月もの間継続していて、ユーザーさんには不便を強いてしまいました。 米Facebook社とメールでやりとりしていましたが、メール返信に何週間も待たされ、Facebook日法人に助けてもらってようやく解決に至ることができました。 この苦労話はいくらでもできるのですが、今回はセキュリティの切り口で書いていきます。 Facebookの「データ保護評価」 データセキュリティ項目 「すべてのプラットフォームデータストレージ(すべてのデータベース

    FacebookからOAuthを停止されてわかった今時のセキュリティ - Uzabase for Engineers
    advblog
    advblog 2021/12/24
  • システムの複雑さはどこから来るのか – Out of the tar pitを読む - Uzabase for Engineers

    Uzabase Saas Product Divisionフェローの矢野です。 この記事は、Rich Hickey(プログラミング言語Clojure作者)のプレゼンテーションSimple Made Easyへと繋がっていく、Ben MoseleyとPeter Marksによる「Out of the tar pit」というシステム設計について論じた論文の内容について説明したもので、ユーザベースのSaas Productでのテック発表の一つとしてプレゼンしたものを、ブログとして再度まとめたものです。プレゼン自体は25分くらいでしたので、おそらくこの記事の方がプレゼンよりも詳しいと思います。 ソフトウェア危機 ソフトウェアは質的に複雑 ソフトウェアの複雑さはどこから来るのか? 複雑さは、別の複雑さを産む 複雑さを分類する 当に必要な複雑さと、そうでないものがある どうやって複雑さを扱うのか

    システムの複雑さはどこから来るのか – Out of the tar pitを読む - Uzabase for Engineers
    advblog
    advblog 2021/05/21
  • NewsPicksにCTOとして入社して1年でDX Criteriaを大幅改善した話 - Uzabase for Engineers

    こんにちは。このブログでは初めまして。2020年の2月にNewsPicksに入社した高山です。 今回は僕がNewsPicksのCTOになってからの1年でやったお仕事について書いていきます。 CTO最初のミッション DX Criteriaについて 「デプロイ回数」を定点観測 やってきたチャレンジ 1年経ってみて CTO最初のミッション NewsPicksは2013年に誕生し、5年ほどの壮大な創業期の間にたくさんの新しい領域に挑戦しており、僕が入社したときには既に事業面でもシステム面でも「それなりの複雑さ」という感じでした。 前任CTOの杉浦さん(今はグループ内でアメリカでの新規サービスの立ち上げをしています)からバトンを受け取って最初のミッションが「DX Criteriaを上げること」だと聞いたときにそのあたりの事情を全て察しました。😅 結論から先に書くと、1年で大幅改善を達成することがで

    NewsPicksにCTOとして入社して1年でDX Criteriaを大幅改善した話 - Uzabase for Engineers
    advblog
    advblog 2021/01/29
  • SPEEDA開発チームをブーストするふりかえりのカルチャー - Uzabase for Engineers

    こんにちは!SPEEDA開発チームの岩見です。 この記事では私たちSPEEDA開発チームの中でも特徴的な文化のひとつとなっている、ふりかえりについてご紹介します。 以下のような方々のお役に立つことを願っています。 自分たちのチームでもふりかえりをやってみたい方 ふりかえりはやってるけどなんだかマンネリ化している方 色々なふりかえりの運用、実例が知りたい方 SPEEDA開発チームにおけるふりかえり SPEEDA開発チームのふりかえりの特徴 SPEEDA開発チームにおけるファシリテーターの役割 議論しやすい場の設定 アクティビティの選定を含めた全体の進行 ファシリテーターを置くメリット ファシリテーターが他のチームへの理解を深めることができる ファシリテーターが問題を構造的・俯瞰的にとらえる能力が高まる チームのメンバーが議論に集中することができる さいごに SPEEDA開発チームにおけるふり

    SPEEDA開発チームをブーストするふりかえりのカルチャー - Uzabase for Engineers
    advblog
    advblog 2019/09/10
  • 「ここではすべてが流れている!」SPEEDA の開発チームに入って驚いた 3 つのこと - Uzabase for Engineers

    7 月から SPEEDA 開発チームに参加しました、野口です! SPEEDA 開発チームでは、XP のプラクティスを大きく取り入れて日々の開発を進めています。 私は入社前から XP やスクラムのようなアジャイル開発手法とその考え方には慣れ親しんでいたのですが、SPEEDA 開発チームに参加してみて、ユニークだなと感じたことがいくつもありました。 この記事では、SPEEDA 開発チームで私が特にユニークだと感じた 3 つのことについて紹介します。 おことわり その 1: チームのメンバーを「安定させない」 その 2: 属人化を防ぐためにドキュメントを「残さない」 その 3: 担当者を「明確にしない」 そうやってどこへ行きたいのか、そしてこれから おことわり この記事の目的は、SPEEDA 開発チームのユニークな文化を紹介することです。 これらの取り組みには、SPEEDA 開発チームの現在のフ

    「ここではすべてが流れている!」SPEEDA の開発チームに入って驚いた 3 つのこと - Uzabase for Engineers
    advblog
    advblog 2019/08/19