masa_edwのブックマーク (386)

  • Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers

    はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日 弊社で E2E テスト実行するために Playwright を導入したため紹介させてください。 E2Eテストとは E2Eテスト(エンドツーエンドテスト)とは、ソフトウェア開発におけるテスト手法の一つで、アプリケーションが実際の運用環境と同様の条件下で正しく動作することを確認するためのテストです。 システムの開始点から終了点までを通じて、ユーザーの視点でアプリケーションのフローを追い、機能全体が連携して期待通りに動くかを検証します。具体的には、ユーザーが行うであろう一連の操作をシミュレートして、データがシステムを通じて適切に流れるかや、最終的なアウトプットが正しいかどうかを確認します。E2Eテストにより、部分的な単体テストや統合テストでは見逃されがちな問題を発見することができます。

    Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers
    masa_edw
    masa_edw 2024/04/26
    Playwrightやっていくぞ
  • 英語が苦手でも国際カンファレンスに行ってみよう! 〜 DevOpsDays Tokyo 2024 参加レポート - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」でエンジニアをしております小林です。 弊社の「Kaigi Pass」というカンファレンス参加費用をサポートしてもらえる制度が今年から始まりました! せっかくなのでそちらの制度を利用して、2024年4月16、17日に開催された国際カンファレンスの DevOpsDays Tokyo 2024 に参加してきました!(スポンサー関係者含めた総参加者は324名の規模感) 実はテックカンファレンス初参加です!記事では参加レポートをお届けします。 #DevOpsDaysTokyo 2024、遂に明日から開催です! Day1のキーノートはDevOpsDaysの発起人であるPatrick Debois氏! Day2のキーノートはDevOpsDays Tokyoの代表理事である川口 恭伸氏! DevOpsを牽引するお二人の話以外にも興味深いセッションばかり! みん

    英語が苦手でも国際カンファレンスに行ってみよう! 〜 DevOpsDays Tokyo 2024 参加レポート - Uzabase for Engineers
    masa_edw
    masa_edw 2024/04/23
    英語がんばりたい
  • なぜCDKを使う「べき」なのだろう? - Uzabase for Engineers

    はじめに 皆様こんにちは、ソーシャル経済メディア「NewsPicks」(Media Infrastructureチーム)エンジニアの北見です。 現在、私は弊社サービスの一部のインフラ刷新を行なっている最中で、ここ数ヶ月 AWS CDKを触っておりました。 前職では Infrastructure as Code として Terraform を使ったことがあるのですが、少なくともAWS を使うという条件においては CDKを使うべき という結論に辿り着きました。 今回はそのように考えるようになった理由について説明していこうと思います。 前提 Terraform はパブリッククラウドにおける Infrastructure as Code の走りとして様々な現場に導入実績があり、それに対するリスペクトは持つべきです。 しかしよくある「AvsB」というメリデメの構図で「どっちでもいいよ、好みだよ」と投

    なぜCDKを使う「べき」なのだろう? - Uzabase for Engineers
    masa_edw
    masa_edw 2024/03/29
    CDKは本当に便利。NewsPicksでのCDKの導入は私がやりましたが、今では個人的にも組織的にもCDKなしのAWSでの開発は想像できないですね。サーバーサイドエンジニアもガンガンコミットしてます。
  • ECS on Fargate 1.4.0で「ResourceInitializationError」を解決する方法 - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 弊社の検索システムはAWS EC2(Elastic Compute Cloud、以下、EC2)で動いていました。それを昨年、Amazon ECS(Elastic Container Service、以下、ECS)に移行しました。前回のブログでは、移行のために調べた「アプリケーションをコンテナ化するベストプラクティス」をまとめましたので、ご興味ある方は読んでいただけると嬉しいです。 tech.uzabase.com 今日は、ECS on Fargateのタスク起動に手こずった話をしてみようと思います。タイトル通りFargate 1.4.0 で発生しうる ResourceInitializationError の解決方法について述べるのですが、「まさに今それにハマってた!」という方はぜひ読

    ECS on Fargate 1.4.0で「ResourceInitializationError」を解決する方法 - Uzabase for Engineers
    masa_edw
    masa_edw 2024/03/28
    一個一個ちゃんと調べて理解したことをまとめていて、デキるエンジニア感がすごい。
  • 2024年のPythonプログラミング - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ、ツールなどを紹介したいと思います。 この記事では広く浅く紹介することに重点を置き、各トピックについては概要のみを紹介します。詳細な使用方法に関しては各公式サイト等での確認をおすすめします。なお、記事ではOSとしてmacOSを前提としています。 環境構築 Pythonの環境構築はpyenvとPoetryの組み合わせがもっとも標準的でしょう。 以下の手順でpyenvとPythonをインストールできます。 brew install pyenv # Bashの場合 echo 'eval "$(pyenv init -)"' >> ~/.ba

    2024年のPythonプログラミング - Uzabase for Engineers
    masa_edw
    masa_edw 2024/02/05
    最近のPythonに関する良いまとめ
  • PagerDutyのオンコールシフトをSlackでリマインドする〜TypeScriptとAWS CDKで実装〜 - Qiita

    この記事はPagerDuty Advent Calendar 2023の25日目の記事です。 PagerDutyのオンコールシフトをSlackでリマインドしたい 🎄メリークリスマス🎅 NewsPicksのSREチームで障害対応をよくやっているあんどぅといいます。 先日、ゆるSRE勉強会 #3という勉強会でNewsPicksの開発組織のオンコールの体制とポストモーテムの取り組みを発表させていただきまして、その文脈でPagerDutyをどのように活用しているのかを実装とともにご紹介させていただきます。 弊社ではモバイル担当1名サーバー担当2名の3名のエンジニアが一週間に2交代制(3.5日シフト)でオンコールを担当します。オンコール担当のことを運用当番と呼んでいるのですが、PagerDutyのオンコール設定は非常〜に便利なので 3.5日のうち有給取得するので1日だけOverride Laye

    PagerDutyのオンコールシフトをSlackでリマインドする〜TypeScriptとAWS CDKで実装〜 - Qiita
    masa_edw
    masa_edw 2023/12/25
    これのおかげで快適に運用当番をやれています!
  • こんなエンジニアリングマネージャだから仕事がしやすいんだなぁと思う10個のこと - Mitsuyuki.Shiiba

    最近、毎日のようにEMのいくおさん( @dora_e_m )とTwitterXでわちゃわちゃしてる。彼のポストを見ていると、ガンプラをつくるかビールを飲むかしかしていないように見えるが、それで合っている。 という冗談はおいといて真面目な話をすると、エンジニアとしての僕は彼と仕事ができている今の時間のことを当に貴重な時間だと思っている。とにかく仕事がしやすいし、いろいろな気づきを与えてくれるおかげで、自分自身の成長も感じている。 エンジニアリングマネージャとしての知識が豊富でスキルが高いというのはもちろん、人との接し方や日常的なふるまいもとても尊敬できるものなのだ。 そこで今日は、僕が彼とこの3ヶ月間仕事をしていて、やりやすい・尊敬していると感じていることの中から10個だけ簡単に紹介しようと思う。僕からいくおさんへの日頃の感謝の気持ちをあらためて書いておこうと思っただけとも言う(ふだんから

    こんなエンジニアリングマネージャだから仕事がしやすいんだなぁと思う10個のこと - Mitsuyuki.Shiiba
    masa_edw
    masa_edw 2023/12/23
    素敵
  • ジュニアエンジニアを脱却するための「コンテナ流儀」 - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 この記事は、 NewsPicks Advent Calendar 2023 の23日目の記事になります。 qiita.com 昨日ははぐっさんによる「SwiftUIのKeyframeAnimatorでちょっとしたカードアニメーション 〜の手を添えて〜」でした! はじめに コンテナ流儀: 必要最低限のものだけで運用する Point1)レイヤーは少ないほどいい TIP:ベースイメージを作る Point2)不要なパッケージをインストールしない Point3)いつ再起動してもいいコンテナを作る Point4)独立したアプリケーションにする TIP:複数のプロセスを実行したい場合もある TIP:環境変数を積極的に使う Point5)フォアグラウンドで実行する 終わりに まとめ 感想 告知 はじ

    ジュニアエンジニアを脱却するための「コンテナ流儀」 - Uzabase for Engineers
    masa_edw
    masa_edw 2023/12/23
    コンテナについての良いまとめ。コンテナ構築・運用についてわかっている人からすると何気なくやってることの意味が初めての人向けにちゃんとまとまっていて、これから勉強しようとする人に役立つと思います。
  • 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
    masa_edw
    masa_edw 2023/12/21
    マネージドになるとコンソールで見れるし実行も簡単だしとても良くなった!
  • 2023年のSREチームのAWSコスト削減を振り返る - Uzabase for Engineers

    概要 全般 何はともあれコストタグ Cost Explorer でリソース別にコストを見よう IaC化しよう QuickSight も使おう 稼働時間対応する際はマスタカレンダを用意したい コンピューティング、コンテナ関連 EC2 定時バッチはマネージド化しよう EBS, Snapshot, AMI, EIP を消す ECS Container Insights の有効/無効を使い分けよう 何でも Fargate を選択すれば良いわけではない Fargate スポットを活用しよう Lambda Graviton対応しよう ECR イメージサイズを抑えよう ライフサイクルポリシーを設定しよう ネットワーキング VPC VPCエンドポイント入れ忘れに注意 VPC Flow Logs のS3バケット設定に注意しよう ストレージ系 RDS スロークエリ出てないかAPMを使って確認 DynamoDB

    2023年のSREチームのAWSコスト削減を振り返る - Uzabase for Engineers
    masa_edw
    masa_edw 2023/12/08
    めちゃくちゃいいまとめ。これが円安を乗り切る術。
  • Rust で SQLite を再実装した 2023 - kawasin73のブログ

    気合いで実装、どうもかわしんです。 この記事は Rust Advent Calendar 2023 の6日目 兼 情報検索・検索技術 Advent Calendar 2023 の 6 日目です。 RustSQLite をフルスクラッチで実装しています。 github.com なぜ SQLiteRust で再実装しようと思ったのかについては以前の記事で紹介しています。一言で言えば、誰も RustSQLite を書いている人がいなかったからやってみたのですが、そもそも SQLite が強すぎるということが再実装しているうちにわかってきて絶望しています。 kawasin73.hatenablog.com 4 ヶ月前にこの記事を書いたときは簡単な SELECT 文しか実行できなかったのですが、現時点では SELECT, INSERT, DELETE 文をサポートし、express

    Rust で SQLite を再実装した 2023 - kawasin73のブログ
    masa_edw
    masa_edw 2023/12/08
    すごい
  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

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

    プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
    masa_edw
    masa_edw 2023/12/03
    書きました。高確率で潜在バグをみつける簡単な方法とその対処法です。
  • VPC Flow LogsをAthena + QuickSightで
分析してデータ転送料金の内訳を調査する 〜 実践的なコスト最適化の洞察 〜 - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア NewsPicksのSREチームで仕事をしている安藤です。 NewsPicks Advent Calendar 2023 の1日目ということで、日常の業務風景から軽いコスト最適化TIPSをご紹介します。 qiita.com AWSコストを最適化したいよぉ〜 NewsPicksはおかげさまでサービス10周年を迎え、ユーザー数も事業も伸びておりますが、 事業の成長やエンジニア組織の拡大に比例してAWSコストが増え、円安でさらに日円での負担が増え、となると事業の利益率にも少なからず影響がでます。 私が所属するSREチームでは、「売上に対するAWSコストの割合は、規模が拡大するほど減っていくべき」という考えを持っており、 積極的にAWSサービスの使い方を見直して毎年コストを削っていくつもりで仕事をしています。 AWSが提唱するCloud Financial M

    VPC Flow LogsをAthena + QuickSightで
分析してデータ転送料金の内訳を調査する 〜 実践的なコスト最適化の洞察 〜 - Uzabase for Engineers
    masa_edw
    masa_edw 2023/12/01
    プロの仕事だなあ。我がSREチームは頼りになります!
  • プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers

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

    プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers
    masa_edw
    masa_edw 2023/11/29
    書きました。自前で文字列を頑張って何かするのはそれを専門にやる場合以外はやめましょう。
  • エンジニアが給料を12倍にする方法 - k0kubun's blog

    はてブの人気エントリーに日エンジニア達は海外に出なければいけないという記事があった。 カナダ在住で経験年数4年のソフトウェアエンジニア年収1600万円の方らしく、 日より海外の方がソフトウェアエンジニアの給料が一般に高いので海外に行くべきという話が書かれている。 実際僕も居住地域による給与差を利用すべく渡米し、先月の記事 では新卒から数えて8年で年収が12倍になっていた話も紹介した。 一方、年収1600万円であれば海外に出なくても稼げると思っているので、 国内にいてもできそうなものも含め、ソフトウェアエンジニアとして給料を上げる上で過去に活用したハックを紹介していきたい。 昇給履歴 新卒入社 僕が新卒で入社した会社の当時の初年度給与は450万円だった (公開情報)。 大学の4年間はずっとアルバイトとしてソフトウェアエンジニアをやっていて、 3社を渡り歩いて時給は800〜1350円と

    エンジニアが給料を12倍にする方法 - k0kubun's blog
    masa_edw
    masa_edw 2023/11/17
    やっぱ英語勉強しないとな
  • AWS Configコスト上昇の原因を調査:QuickSight + Athenaの分析ツールを活用 - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」でSREをしている美濃部です。 NewsPicksのSREのミッションの1つに「コストを適正化する」というものがあります。サービスの規模拡大に比例してインフラコストが増えないようにし、売上に対するコストの割合を低く維持していくのがミッションになります。 今回はAWSコスト削減の中でもConfigの料金に注目して紹介したいと思います。 コストモニタリング定例について Configのコスト分析をどうやって行なったか ConfigのレポートをQuickSightで可視化 構成 手順 QuickSightで可視化する事でわかった事 コスト増加の要因となったリソースタイプがわかったので対応する まとめ まず、SREでは週次でコストモニタリング定例を実施しているのでその内容について簡単に触れさせて頂きます。 コストモニタリング定例について 週次で主に以下のよ

    AWS Configコスト上昇の原因を調査:QuickSight + Athenaの分析ツールを活用 - Uzabase for Engineers
    masa_edw
    masa_edw 2023/10/25
    AWSを使いこなしててすごい!
  • New RelicのSLOモニタリング+バーンレートアラートをCDK for Terraform(cdktf)でIaC管理する - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」でSREをしている飯野です。 今回はSREで行ったNew RelicをCDK for TerraformでIaC管理する話を紹介したいと思います。 SLOモニタリングをSREチームだけで行うのは難しい CDK for Terraformとcdktf-newrelic-provider 追記 IaCで作成する内容 CDK for Terraformで実装していく -1. cdktf init 0. @cdktf/newrelic-provicerの初期化 1.DataNewrelicEntityの作成 2.ServiceLevelの作成 3.AlertPolicyの作成 4.AlertCondition(バーンレートアラート)の作成 5. NotificationDestinationの作成 6. NotificationChannel

    New RelicのSLOモニタリング+バーンレートアラートをCDK for Terraform(cdktf)でIaC管理する - Uzabase for Engineers
    masa_edw
    masa_edw 2023/09/28
    CDK教に染めました
  • SREチームのリーダーになって1年経過した|あんどぅ

    SIerから事業会社のエンジニア転職後、SREチームのリーダーになって1年経過※したので、個人的なふりかえりのためにやったことを言語化し整理します。 ※ 当は7月で1年なので先月書きたかったけど、7月は評価と目標設定に加えて障害対応などが重なりめちゃくちゃ忙しかった。。。 筆者の略歴SIerで10年半、インフラ主軸で大企業向けクライアントワーク&技術支援 2021/10〜、NewsPicksのSREチームメンバーとして参画 2022/7〜、同チームリーダーになり、現在に至る SREチームの業務Googleが提唱した サイト信頼性エンジニアリング(SRE)がチーム名の由来です。SREはサービスの安定運用と変化への対応のバランスをとるためのプラクティス(技術的実践)なので、このプラクティスを遂行することがチームの業務と完全に一致するかというとそうではありません。 とはいえ、それを体現するチ

    SREチームのリーダーになって1年経過した|あんどぅ
    masa_edw
    masa_edw 2023/08/07
    引き継いでもらった側です。入ってきた瞬間にすごくデキる人が入ってきたな〜最速でバトンタッチしたいな〜とおもったので、そうしました。(小並感)
  • 3 年半でまるで別企業?大幅に改善した NewsPicks の DX Criteria を大公開! - Uzabase for Engineers

    こんにちは。NewsPicks CPO/CTO の文字です。先週、仕事が少し落ち着いたタイミングで久しぶりに DX Criteria を測定したので、今回はその結果を大公開しようと思います。 はじめに:NewsPicks は開発者体験に注力しています NewsPicks は、まもなくサービス開始から 10 周年を迎える息の長いサービスです。およそ 10 年前に Uzabase の新規事業として立ち上がり、以降は比較的少人数のエンジニア体制で長らく開発が続けられていました。4 年ほど前からビジネスの多角化に伴いエンジニアを大幅に増員していますが、高成長の裏でシステム面では様々な箇所が老朽化しており、エンジニアを増員してもスケールできない状態に陥っていました(きっと多くの方が想像できる状況だと思います)。 そこで 2020 年に私と高山(現 VP of Data Engineering)が執行

    3 年半でまるで別企業?大幅に改善した NewsPicks の DX Criteria を大公開! - Uzabase for Engineers
    masa_edw
    masa_edw 2023/08/07
    デプロイ回数向上、IaC、kotlin化、ChatOpsあたりは私が最初のところをやりました(わしが育てた的な、、!!)
  • F#とASP.NET CoreのMinimal APIを使ってAPIをつくる - Uzabase for Engineers

    こんにちは、Product Teamのあやぴーです。 今回はここ1年くらい私のいるチームで使っているF#とASP.NET Coreを使ったAPI開発について簡単にまとめていきます。 F#ってなんだ? なぜ、今F#を採用したのか Minimal APIを使って、APIをつくる アプリケーションの雛形をつくる 任意のHTTPステータスとJSONレスポンスを返却する ルートパラメータやJSONボディの受け取り方 最後にF#を採用してみた雑感 F#ってなんだ? F#はMicrosoft(MSFT)が開発した、いわゆる関数型言語の特徴(第一級関数,イミュータブルデータなど)を持つ言語です。.NET VM上で動き、OCaml(ML系)に近いシンタックスを持っているというのがユニークなところです。また.NET VM上で動作するため、C#などのライブラリを使うことができるのもメリットです。JVM上で動くS

    F#とASP.NET CoreのMinimal APIを使ってAPIをつくる - Uzabase for Engineers
    masa_edw
    masa_edw 2023/05/31
    とても良い