こんにちは、LINEのプライベートクラウドサービスであるVerdaのLoad Balancer as a Service (LBaaS) のチームでTech Leadをしている早川です。このエントリでは私が2019年4月にLINEに入社してからの約2年半で体験した大規模LBaaSならではの興味深い問題をピックアップしてご紹介します。 Verda LBaaSについて VerdaのLBaaSは2016年ごろに稼働を開始したVerdaの中でも比較的歴史が長いサービスです。当時のLINEではハードウェアのアプライアンス製品を用いて提供されていたロードバランサのサービスを置き換える目的で開発されました。特徴としては実際にユーザのトラフィックを受けるいわゆるデータプレーンと呼ばれるコンポーネントも含めて全てがソフトウェアで実装されているということが挙げられます。 中でも個人的に気に入っているのは、L4
こちらはGo Advent Calendar 12日目の記事です。 Go 1.18 で interface{} の代わりに any が使えるようになるという話が出ていたので、これの使い方について書いてみようと思います。 any が入った詳細な経緯などについては10日目のsg0hsmtさんの記事で解説いただいていましたので、こちらをご覧ください。 (内容がやや被っていてすみません) any とは何か any は Go 1.18 で入る予定の、事前宣言された interface{} に対する型エイリアスです。 Goのプログラム全体のスコープ (ユニバースブロック) で、次のようなエイリアス宣言が行われているものと考えると理解しやすいと思います。
先日、次の Issue を教えてもらって「any って type parameters 専用じゃなかったの?」と驚いたので調べてみました。 結論から書くと Go 1.18 で追加される any は interface{} のエイリアスとして事前定義された識別子なのでどこでも使えます。 最新の仕様 1 にも次のように記載されています。 For convenience, the predeclared type any is an alias for the empty interface. 型制約のための any (2021 年 1 月 12 日~) Go でジェネリクスをサポートするための仕様変更は 2021 年 1 月 12 日に提案されました。 (実際にはそれ以前に Go2 としての提案やデザインドラフトが公開されています) この時点での any はすべての型を受け付ける型制約 (ty
こんにちは、株式会社トレタで Clojure を書いている鄧(でん)です。 2021 年 7 月より新規事業をして飲食店向けのセルフオーダーシステムを開発しており、そのバックエンドに Datomic Cloud と Clojure を採用しました。 採用理由は幾つかありますが、主に履歴、監査ログ、変更通知周りの機能要件がマッチしていると考えており、現状 Datomic と親和性が最も高い Clojure も共に採用しました。 良かったところ、気に入ったところ直感的なデータモデリングができる データモデリングをする際には意外とデータベース自体の制限や思想に影響されることがあると思います。例えば MySQL や PostgreSQL などのリレーショナルデータベース(RDB)に慣れている人であればリレーショナルな情報を表現するときに 1:1、1:n、n:1、n:n の関係性をテーブル構造として
この記事はCyberAgent Developers Advent Calendar 2021 11日目の記事です。 みゆっきこと山中勇成(@toriimiyukki)です。普段は、ABEMAで動画配信基盤の開発運用を担当しています。 直近では、配信システムの大規模刷新プロジェクトなどを担当しており、こちらの模様はCA BASE NEXTの発表からアーカイブを閲覧可能です。 ABEMAでは、24時間365日のリニア型配信やVOD配信など、昼夜を問わず落とすことができないミッションクリティカルなサービスを運用しています。サービスを支えるマイクロサービスは、配信分野に限っても20サービスを超えています。 既にPrometheusなど、各種モニタリングソリューションでの監視やアラーティングなども行っていますが、この記事では、あえて手動監視を定期的に行う、モニタリング定例を勧めたいと思います。 な
(たんなるポエムです) 個人的に、 puppeteer-ruby と playwright-ruby-client という2つのOSSを育てている。 puppeteer-rubyは Google Chromeチームによる元祖Puppeteer をまるっとRubyで再実装したライブラリで、playwright-ruby-clientは PuppeteerからフォークしてMicrosoft(のなかの元Chromeチームメンバー)が育てているPlaywright のクライアントAPIをRubyで実装したライブラリだ。 実装において、puppeteerやplaywrightのソースコードをそれなりに読んでいる。 Playwrightの唯一の欠点(= Puppeteerの存在意義)がなくなった 個人ブログでこの記事を書いたときには、Playwrightは自身が起動したブラウザしか自動操作できないとい
今年の1月に突如 microsoft/playwright が出て、「なに?puppeteerはオワコン?」と一瞬思いましたが、playwrightが出てからもpuppeteerはTypeScript化したりしていますし、いまのところどちらも活発に開発されています。 「puppeteerとplaywrightはどっち使えばいいの?」に対して、2020年12月現在の答えはおそらく「使いたいほうを使えばいい」です。 ただ、「使いたいほう」ってなんやねん?というところがググってもあまり情報が出てこないこともあり、今回の記事では、この選ぶ手がかりになる情報を少し投じておこうかなと思います。 PythonやC#でも使いたい? puppeteerは現在のところJavaScriptのライブラリ一本です。 playwright はPythonとC#のバインディングがあります。 microsoft/play
去年、こんな記事を書いていました。 あれから1年、いまはどうなんでしょうか。 結論から言うと よほどの理由がない限り、Playwrightでしょう。 6月頃にはもうこの結論は出ていました。 Playwrightを使う理由 JavaScript, Python, C#, Java の言語を公式にサポートしている Goも公式入りするという話はあるが、半年以上経った今もまだされていない Auto waiting により、いちいちwaitForナントカを書かなくても、ある程度は安定した自動操作ができる 2021年8月ごろにリリースされたPlaywright 1.14で導入されたLocatorにより、さらにこの特性が利用しやすくなった。 ドキュメントの品質がとても良い マイクロソフトとは思えないクオリティ さすが元Googleの人が作ったOSS 他にもテストランナーなど便利な特徴はありますが、 とも
これはMySQLアドベントカレンダーとRubyアドベントカレンダーの12日目の記事です。 qiita.com qiita.com ruby-mysql は Ruby だけで書かれた MySQL 用のクライアントライブラリです。 今は Ruby から MySQL を使う場合は普通は mysql2 を使うだろうから、たぶん誰も使ってない。 誰も使ってないだろうし、6年ほど放置してたんだけど、なぜかその気になったのでまたいじり始めた。退職前の有給消化期間で暇だったからかも。 MySQL 8.0 対応 MySQL 8.0 でデフォルトの認証方式が変更になって、そのままでは接続できなくなったので対応。 認証方式はユーザーごとに異なる場合があるので、サーバーのデフォルト認証方式、クライアントのデフォルト認証方式、ユーザーの認証方式が異なっていた場合のプロトコルに対応。 とりあえず、MySQL 5.7
AWS is aware of the recently disclosed issues relating to the open-source Apache “Log4j2" utility (CVE-2021-44228 and CVE-2021-45046). Responding to security issues such as this one shows the value of having multiple layers of defensive technologies, which is so important to maintaining the security of our customers’ data and workloads. We've taken this issue very seriously, and our world-class te
アラサー、アラフォーの独身中年男性が、なぜかちょっと良い食器や家具を揃え始めたり、自炊に凝り始めたりといった光景を目撃したことはないだろうか。 確かに少々の手間や贅沢は暮らしに彩りを与えてくれるものだ。独身中年男性の生活はどうしても殺伐としたものになりやすい。身の回りの物に手間とコストをかけ始める。それは一見すると大変ポジティブな行為に見える。 しかしみなさんはご存じだろうか。「ていねいな暮らし」を志す独身中年男性は、実のところ「素敵な暮らしがしたいな☆」的な明るくハッピーなマインドではなく、「この暮らしを変えなければ…」という切実かつ強迫的な心理の元おしゃれな家具や食器を見繕っていることに。 本稿は「ていねいな暮らし」を志す限界独身中年男性たちの知られざる哀しい心理とその方法について、その当事者である筆者が綴らせてもらう。 独身中年男性の限界な日々独身中年男性の生活は仕事を中心に回ってい
米Amazon傘下のAmazon Web Services(AWS)は12月10日(現地時間)、7日に発生した大規模なサービス障害の原因について説明した。この障害は主に米東海岸地域に影響したが、日本でも任天堂のネットワークサービスが影響を受けた。 この障害では、顧客への状況報告が伝わりにくく、「一部の顧客がこの問題に関する情報を見つけることが困難になったことが分かった」ので、「来年初頭に、Service Health Dashboard(ステータスページ)を改善し、新しいサポートシステムをリリースする」としている。 この障害はバージニア州北部地域で午前10時30分ごろに発生。原因は「メインのAWSネットワークでホストされているサービスの1つの容量を拡張する自動化機能で、内部ネットワーク内の多数のクライアントから予期しない動作が発生した」ことという。これにより、接続アクティビティが急増してネ
2021-12-14 更新 ======= Resource Class Pricing のページの情報が正しいと確認がとれました。Free プランでも、例えば Docker Executor の Medium+, Large が利用できるようになっているとのことです Docker Layer Caching (DLC) Free プランでも DLC が利用できるようになったと確認が取れました なので、このブログの絵の DLC は黄色の箱から白の箱に更新しました 英語版のドキュメントで該当部分の文言を削除しました(日本語版はしばらくお待ちください) この記事に書かれている情報は 2021-12-14 時点でのものになります! 更新内容ここまで ===== どーも。こんにちは。こんばんは。しーばです。 この記事は Calendar for CircleCI Advent Calendar 2
この記事はCyberAgent Developers Advent Calendar 2021 10日目の記事です。 昨日はみーとみさんの「待機児童問題にマーケットデザインで挑む」でした。 はじめに CIU (CyberAgent group Infrastructure Unit) の中西 (@whywaita) です。 普段はプライベートクラウドであるCycloudのIaaSから上のレイヤーを中心に開発運用を担当しています。 直近ではGitHubからリリースされているGitHub ActionsというCIサービスに関連したmyshoesというソフトウェアを開発しています。 myshoesはOSSで公開されており、直近でもいくつかmyshoesについて登壇させていただいたので興味のある方はぜひこちらをご覧ください。 CyberAgent における OSS の CI/CD 基盤開発 mys
こんにちは!技術部プラットフォームグループの@h0mirun_deux, @ryuichi_1208, @rsym1290 です。 今回は、社内で取り組んでいるPuppetのCI改善についてお話したいと思います。 ペパボにおけるインフラの構成管理とCIについて 弊社では様々なサービスを提供しており、その殆どのサービスでPuppetを用いてインフラの構成管理をしています。 また、GitHub Actionsを用いてCIを動かしており、リモートリポジトリへのpushのタイミングでの各ロールのCIが実行されます。 本稿では、カラーミーショップと30days Albumで取り組んだCI改善について掘り下げていきたいと思います。 従来のCI カラーミーショップや30days AlbumではPuppetを用いて各ロールのミドルウェアの構成管理をしています。 なにか変更をする場合は、Pull Reque
Googleは、同社がクラウドサービスとして提供しているCloud SpannerをRailsのActive Recordに対応させるアダプタ「activerecord-spanner-adapter」が正式版となったことを発表しました。 Cloud Spannerは、Googleの多数のデータセンターにまたがる地球規模で大規模分散処理を行うリレーショナルデータベースです。事実上無制限とされる高いスケーラビリティと99.999%の高可用性を備えつつ、強い一貫性とトランザクション処理、SQLによるクエリなどを実装しています。 メルカリの決済サービスであるメルペイがバックエンドデータベースにCloud Spannerを採用し、数百万ユーザーの処理を行っているとされています。 このCloud SpannerをRailsのActive Recordのバックエンドデータベースとして使えるようにするア
Beginners who want to get into the software field often get programming and software engineering mixed up. These are not the same thing. Programming is a part of software engineering. Software engineering on the other hand, encompasses so much more than programming. Software engineering is the process of starting with a problem, designing a way to solve that problem, and then delivering a software
「もったいない」マインドが逆に効率を悪くする。フロー効率とリソース効率から考えるチームで仕事をする理由チーム開発プロジェクト管理マネジメント はじめに 前回、なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのかの記事において、プロジェクト型の人員規模を柔軟に変化させる開発スタイルに関して、理論的なスケジュール削減の限界について考察しました。その際に、チーム型開発や組織とソフトウェアの紐付けについても示唆しました。 今回は、チームでソフトウェアを開発することに関して、「フロー効率」と「リソース効率」という観点から考察し、なぜ私たちはチームで開発するのか、あるいはなぜプロジェクト型を採用するのかについての考え方を深めていきたいと思います。 そして、組織における効率性の価値観が異なると、新しい効率性に関して理解をする前に「もったいない」と感じてしまい、新しい文化を取り入れづらくして
2021年12月10日、Javaベースのログ出力ライブラリ「Apache Log4j」の2.x系バージョン(以降はLog4j2と記載)で確認された深刻な脆弱性を修正したバージョンが公開されました。セキュリティ関係組織では過去話題になったHeartbleedやShellshockと同レベルの脆弱性とも評価しています。ここでは関連する情報をまとめます。 1.何が起きたの? Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も修正が不完全であったことなどを理由に2件の脆弱性が修正された。 広く利用されているライブラリであるため影響を受ける対象が多く存在するとみられ、攻撃が容易であることから2014年のHeartbleed、Shellshock以来の危険性があるとみる向きもあり、The Apache Software
はじめに LKML(Linux Kernel Mailing List)に Rust support パッチシリーズ v2 が最近流れましたね。Linux カーネルを Rust で直接触れるようになる日ももうすぐかなと、クリスマス以上に待ち遠しい限りです。その前に、Linux カーネルの勉強をし直さなくちゃ。 もうひとつ、カーネル向けの Rust の営みとして以前から注目していたのが、Rust で eBPF を操ることができる Aya というプロジェクトです。良い機会なので、ちょっとだけ触ってみました。 eBPF とは eBPF の元となった BPF は、その名前の由来である The BSD Packet Filter(Berkley Packet Filter とも呼ばれる)が示す通り、BSD 版 Unix に実装されたレジスタベースの仮想マシンによるパケットフィルタ機構です。安全かつ効
第694回ではポータブルなBPFバイナリを作成できる、BPF CO-REのビルド方法を紹介しました。今回はより実践的なコードを使って、いろいろなツールを作ってみましょう。 BPF CO-REの基本と事前準備 BPF CO-RE(Compile Once - Run Everywhere)については第694回でも言及しましたが、簡単に言うとeBPFとは「カーネルやプロセスの挙動を、それらを再コンパイルすることなく調べるためのツール」であり、BPF CO-REが「移植性のあるeBPFバイナリを作成するための仕組み」になります。 また、カーネル内部で動くBPFオブジェクトは、libbpfによってカーネルにロードされます。よってユーザーランド側のツールは、libbpfを通してBPFオブジェクトをカーネルに渡し、BPFオブジェクトが生成したデータを収集しなくてはなりません。 BPFオブジェクト自体は
要約 メモリ断片化は測定や診断が困難ですが、驚くほど簡単に修正できることもあります。マルチスレッドのCRubyプログラム(mallocのスレッド単位メモリアリーナ)におけるメモリ断片化の原因を追ってみましょう。本記事のボリュームは3343語、20分程度です。 単純な設定変更だけで問題を完全に解決できることはめったにありません。 私の顧客のSidekiqプロセスが大量のメモリを消費していたことがありました(1プロセスあたり1 GB程度)。開始当初の各プロセスは300MB程度でしたが、時間の経過とともにじわじわと肥大化してほぼギガバイトレベルにまで達したところで落ち着き始めました。 私は顧客にMALLOC_ARENA_MAXというたった1つの環境変数の変更を依頼しました。「2に設定してください」と。 プロセス再起動後、「じわじわ肥大化」現象はピタリと止みました。プロセスのメモリ使用量は以前の半
概要 こんにちは。クラウドワークス SREチームの@kangaechuです。最近好きなラジオ番組は空気階段の踊り場です。 企業にとってデータは非常に重要です。さまざまなデータを組み合わせて分析を行うことにより、ユーザをより深く知ることができ、それによりサービスやビジネスモデルを継続的に変革することが可能になります。 クラウドワークスでも同様に、施策やマーケティング、新サービスの開発など、さまざまな取り組みの源泉としてデータを活用しています。 crowdworks.jpではマスタデータベースにAWS RDSで稼働するMySQLを使用し、分析系のデータベースにはAmazon Redshiftを使用しています。Redshiftに同期されたテーブルは約270テーブル、レコードにして約30億件あり、1か月に1.5億件のレコードが同期されています。 今回はMySQLからRedshiftへの同期の仕組み
この記事は クラウドワークス Advent Calendar 2021 の 11日目の記事です。 こんにちは。SREチームの@kangaechuです。 この記事ではSREチームが2021年に実施したことをまとめました。やっていることは色々で、まとまりはないですが、そこら辺はご容赦ください。 2020年の振り返り 去年までにどのようなことをしてきたかはこの記事を参照ください。 engineer.crowdworks.jp 【あらすじ】 crowdworks.jpでは2012年のサービス開始から約9年が経過していた。サービス開始当初はさくらインターネットのVPSだったが、その後AWSに移行。インフラの継続的な改善は行なっていたが、サービスの成長や技術の進化に伴い、インフラ構成のモダナイズは喫緊の課題であった。2020年までに、SREチームではアプリケーションサーバのDocker化を進めたり、C
こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、初日の記事です。 なにこれ? 苦労して執筆した技術記事は、伝えたい人にしっかり伝えたいですよね。 また、最後まで読んでもらいたいですよね。 一方で、構成などに課題があって、伝えたい人になかなか伝わらないことがあります。 この記事は、伝わる記事の書き方について、私の個人的なノウハウを書き記したものです。 これからアドベントカレンダーの記事を執筆される皆さんにとって、少しでもお役に立てられれば幸いです。 この記事のゴール 以下の理解を得ることをゴールとします。 以下2つの要件を踏まえた記事構成を心がけること。 構成要件①:技術を紹介する上で最低限説明の必要な内容を網羅すること。 特に課題をしっかり伝えること。 構成要件②:読み手が段階的に理解しやすい順番になっていること。 告知の仕
Datadog Advent Calendar 1日目で紹介されていましたとおり、RUM(Real User Monitoring)のSession Replayという機能が正式公開されています。 見ていただいた方が早いと思います。こんな感じです。2倍速再生にしているので忙しいです。 ユーザーがブラウザ上でWebサイトをナビゲートする様子が、動画のように再現されています。実際に動画で記録しているわけではなく、表示しているページの要素や遷移、マウスの操作などが記録されていて、それがDatadogに送られてDatadog側で再現されています。 RUMとはReal User Monitoringの略で、UXモニタリングというカテゴリーに入る監視です。サービス提供者が直接手の届かないユーザーの環境でのWebサイトの状況が観測できるという点で、最近とても関心を集めているように思います。イメージとして
立命館大学地理学研究会🍎 @Rits_Chiriken 【立命館大学の学生諸君にお知らせ】 立命館大学衣笠キャンパスの1限授業(9:00〜)には、 2021年12月現在、以下の範囲から間に合うことをお知らせします。 実家から挑戦するもよし、 北端、南端、西端、東端からのエクストリーム通学をコンプリートするもよし 皆様のチャレンジをお待ちしています。 pic.twitter.com/PM0bSMiIrh 2021-12-06 20:02:59 立命館大学地理学研究会🍎 @Rits_Chiriken 🏙 Rits Geography Society┆立命館大学地理学研究会 立命館大学学術公認団体【部室┆衣笠学生会館BOX303】【例会┆毎週木曜18時〜対面またはzoom】活動の様子、会員の日常などを広報局が投稿🍎 ちょっと気になる...程度の連絡でも大歓迎です🏯 #ChiRits #
この記事は、トラストバンク Advent Calendar 2021の12日目です。 今年の7月にトラストバンクにJoinしたSREの@butadoraです。 入社時点ではインフラ構成図もない状態で、考古学からはじまりました ようやうインフラ環境の全容がつかめてきたということで、 今回はふるさとチョイスを取り巻くインフラ環境について、 特徴や面白いと思った点をピックアップしていきたいと思います。 サービス構成図 大分抽象化してますが、ふるさとチョイスのサービスはこのようになっています。 サービス全体がさくらのクラウド、さくらの専用サーバで稼働 入り口はすべてCloudflare経由となっており、CDNとWAFを兼ねている 一部閉域網内向けのサービスでラックサーバをさくらのハウジングサービスで利用 WEBサーバやDBサーバだけでなく、LBもLinuxサーバで実装 ふるさとチョイスのメインサー
GCP(Google Cloud Platform)の開発・運用者へ付与する権限の管理について、現状のベストプラクティスを考えてみました。 ※Googleが推奨する権限管理の形とは異なる部分があります。あくまで個人の考えたベストプラクティスですので、ご了承下さい。 目次 はじめに なぜ権限管理が必要なのか どうしたいのか GCPの権限管理 アクセスする主体と役割の管理方法 アクセス対象と権限の管理方法 GCP権限周りの困りポイント・注意すべきポイント こんな運用もあり 現状のベストプラクティス ←時間のない人はこちら コード化して管理する 運用してみて良かったこと・課題と今後 おわりに はじめに GCPの権限管理(IAM)周りについての基礎知識はこちら。 Cloud IAM 概念 Google Cloud Platform(GCP)のCloud IAM Qiita記事, GSuiteやCl
この記事は、NTTテクノクロスAdvent Calnder 2021の12日目です。 NTTテクノクロスの@yuyhiraka (平川) と申します。 免責 この記事に記載の内容は個人的な取り組みの内容であり、所属する組織とは関係ありません。また、記事の中で手順を示しますが読者が手順を実際に行った場合において一切の責任を負いかねますので、自己責任のもとで行ってください。 はじめに 手元で動くKubernetes環境としてminikubeを良く使っているのですがネットワーク構成の関係でNodePortが上手く使えないので今回はMicroK8sを使ってみました。(kubectl port-forwardしたくない。) マシンスペック Windows10 WSL2上のUbuntu 20.04 LTS CPU Intel(R) Core(TM) i7-10610U 1.80GHz Mem 16GB
この記事は PostgreSQL Advent Calendar 2021 12日目のエントリです。 はじめに クラウドネイティブなストレージが注目を集める中、PostgreSQLなどのデータベースでも安定かつ高性能で利用できるストレージとしてローカルストレージが注目されています。 今回は分散ストレージとしても盤石な地位を築いているOpenEBSのローカルストレージを利用して、データベースのワークロードでのベンチマーク(pgbench)をしてみたいと思います。 分散ストレージとローカルストレージの違い 今回は詳しい説明を割愛しますが、分散ストレージとローカルストレージのアーキテクチャの違いは、OpenEBSアーキテクチャのドキュメントでざっくり理解できると思います。 分散ストレージはローカルストレージと比べて、可用性の面で圧倒的に有利なのですが、データ同期のための遅延など、性能面のデメリッ
新型コロナの流行が始まって2年が経とうとしています。 当初、よく分かっていなかったこの感染症も、この2年で多くのことが分かってきました。 新型コロナの感染経路が十分に分かってきた今、不必要な感染対策についても見直す時期に来ているのではないでしょうか。 新型コロナの感染経路は3つ新型コロナの感染経路(Nature Reviews Microbiology volume 19, pages528–545 (2021)) 新型コロナの感染経路は3つです。 ・接触感染:ウイルスで汚染した物、感染した人の手などに触れることで自分の手などにウイルスが付着し、その汚染した手で目や鼻など粘膜に触れる ・飛沫感染:会話などで発生する飛沫を浴びる ・エアロゾル感染:特に換気の悪い屋内では飛沫の飛ぶ距離(1-2M)を超えて感染が起こり得る 基本的にはこの3つの感染経路を意識した感染対策が重要です。 接触感染に対
から1年が経過し徐々に評価が上がりつつある「サイバーパンク2077」には、キアヌ・リーヴスが演じるジョニー・シルヴァーハンドというキャラクターが登場します。MODを使用するとこのシルヴァーハンドと性行為ができると一時話題になっていたのですが、キアヌ・リーヴス本人がこのことを知り「ヨッシャー!」と声を上げて大喜びしたことが判明しました。 Keanu Reeves Happy About Cyberpunk 2077 Sex Mods Starring Him https://kotaku.com/keanu-reeves-is-super-excited-you-all-tried-to-mod-cybe-1848195000 サイバーパンク2077がリリースされて間もなく、ゲーム内に登場するジョイトイという性的サービスを提供するキャラクターの3DCGモデルをシルヴァーハンドのモデルに置き換
ある「Google Pixel」ユーザーが先ごろ、自分のデバイスから米国の緊急通報用番号である911に電話できないバグを発見した。 このバグは、Redditのサブレディット「GooglePixel」で「KitchenPicture5849」というユーザーが最初に報告したもので、それによると911に電話をかけるたびにバグが発生し、Pixelデバイスがフリーズしてしまったという。 Googleによると、この問題を調査したところ、原因はPixelデバイスにインストールされた「Microsoft Teams」アプリに関連するようだという。GoogleのPixel担当者は、「Android 10」以降が搭載されたPixelデバイスで、Microsoft Teamsをインストールしているがアカウントからアプリにログインしていない場合にのみ、このバグが発生する可能性があると説明している。 この担当者はス
Keyboard shortcuts in draw.io (and the draw.io apps developed by JGraph) enable you work with shapes and connectors in your diagrams both easier and faster. There are a number of ways you can select shapes and connectors with the keyboard, or when holding down a key and using the mouse. Select shapes with keyboard shortcuts Select everything: Press Ctrl+A on Windows or Cmd+A on macOS to select all
はじめに インフラエンジニアの天野です。 DeNA Advent Calendar 2021 の1日目として、ここでは DeNA TechCon 2021 Autumn で登壇させていただいた、「数百 shard のデータベース運用を最適化する手法」についてお話していきます。 録画は冒頭に挙げた YouTube に上がっていますので、よろしければそちらもご覧ください。スライドは以下にございます。 DeNA では様々なインフラの運用を自動化してきましたが、データベースの運用にはまだ一定の工数がかかっています。 ここでは、大規模ゲームを例に、DeNA が今まで取り組んできたデータベースの運用最適化の手法について紹介していきます。 大規模ゲームにおけるデータベースの特徴 MySQL 互換 リリース直後の膨大なリクエストを捌くために数百 shard の水平分割 台数が増えると故障台数も増えて運用負
サービス開発部SRE課の@vvatanabeです。 2021年9月26日、OpenSSH 8.8がリリースされました。大きな変更として挙げられるのは、SHA-1ハッシュアルゴリズムを使用したRSA署名の廃止です。 本記事では、この変更がBacklogに与えた影響、その時現場で起こっていたこと、問題解決のプロセス、なにを教訓にしたのか等、順を追って解説します。 ※ 本記事はNuCon 2021で発表した内容をブログ化したものです。 問題の発覚 BacklogのGitへSSHでアクセスできない TypetalkのBacklog開発者のトピックで、以下のフィードバックが投稿されました。 「OpenSSH 8.8へアップデートすると、BacklogのGitへSSHアクセスできない」という内容でした。 問題の調査 Inside SSH protocol v2 深堀りしていく前に、SSHプロトコルの接
Amazon Web Services ブログ 新機能 — オンプレミスネットワーク間を接続する AWS Direct Connect SiteLink AWS Direct Connect の新機能で、AWS グローバルネットワークバックボーンを介してオンプレミスネットワーク間の接続を作成するのに使用する、AWS Direct Connect SiteLink をリリースします。 これまでは、データセンター間や支社間で直接接続が必要な場合、パブリックのインターネット、または高価で導入が難しい専用回線に頼らざるを得ませんでした。これらは地理的な制約があり、長期契約で縛られることがあります。この制約は、ビジネスをグローバル化するにつれて問題になります。また、さまざまなプロバイダーのネットワークを相互接続するには、カスタムの回避策を講じる必要があり、運用コストが増加します。 2021 年 12
ずっと詰まっていたこと .wslconfigが適用されない。配置場所もファイル名も記述内容もバージョンも正しいはずなのに。 .wslconfigとは WSL2を使用するときにメモリの使用量やらなんやら色々設定するファイル。 何が設定できるのかはMSのドキュメントを見に行ってください。 必要な環境 windows10 Home バージョン2004 (OSビルド19041) 以降 何らかのLinuxディストリビューション 私の環境 windows10 Home バージョン21H2 (OSビルド19044.1387) MSストアのUbuntu(Ubuntu 20.04 LTS) .wslconfigの作成方法 %UserProfile% に .wslconfig というファイルを作成する。 私はメモリの枯渇を止めたかったので次のように記述。 以下を参考に。 しかし、うまく適用されなかった。 結論
Amazon Web Services ブログ Karpenter のご紹介 – オープンソースの高性能 Kubernetes Cluster Autoscaler 11 月 29 日(米国時間)、Karpenter を本番環境で利用する準備が整ったことを発表しました。Karpenter は、AWS で構築された、柔軟で高パフォーマンスのオープンソース Kubernetes クラスターオートスケーラーです。アプリケーションの負荷の変化に応じて適切なサイズのコンピューティングリソースを迅速に起動することで、アプリケーションの可用性とクラスターの効率を向上させるのに役立ちます。また、Karpenter は、アプリケーションのニーズを満たすジャストインタイムのコンピューティングリソースを提供し、間もなくクラスターのコンピューティングリソースのフットプリントを自動的に最適化して、コストを削減し、パ
はじめに こんにちは、インフラエンジニアの 高山 です。 この記事は Enigmo Advent Calendar 2021 の 9 日目の記事です。 現在、BUYMAをオンプレからAWSへ移行するプロジェクトを進めています。 テスト環境の移行は完了し、本番環境の移行をしようというところです。 本番環境の移行をする前に 性能的に問題ないことを確認するため、本番環境と同程度のスペックで検証環境を構築し負荷テストを実施しました。 まだ終わっていませんが、今の時点で得た知見を記事にしようと思います。 負荷テストツール選定 詳細は割愛しますが、 以下のような要件からAWSの分散負荷テストのソリューション(正式名称はDistributed Load Testing on AWS 以下、AWS負荷テストソリューションと呼ぶ)を使うこととしました。 大規模な負荷テストができること 複雑なテストシナリオが
はじめに 家庭用ゲーム機などのネットワーク設定で「NATタイプ」というのを見たことがある人は多いと思います。 これはオンラインマルチプレイなど通信を行うゲームをする際、ゲーム機器同士で通信可能かどうかを見極める目安として使われます。 本記事では、このNATタイプをどのように判定するのか、 RFC 5780 ベースで簡単に説明します。 この記事はDeNA Advent Calendar 2021の8日目の記事です。 なぜNATタイプの判定を行うのか 一般的なクライアント/サーバモデルの通信であれば、そもそもNATタイプが何であるか気にすることはないと思います。 では、家庭用ゲーム機などがなぜNATタイプを判定するのかというと、「P2Pが成立するかどうか」を見極めるためです。 P2Pで通信を行う際は、NAT(NAPT)が存在する場合、いわゆる「NAT越え」が必要になります。 NATがあると、イ
こんにちは、臼田です。 みなさん、AWSアカウントの管理してますか?(挨拶 今回はJapan APN Ambassador Advent Calendar 2021の一環で記事を書いています。9日目です。 APN Ambassadorsについては2日目の記事APN Ambassadorsってなんだ?2021年度版を見てください。昨日のエントリーはデロイト トーマツ ウェブサービス(DWS)代表 国本さんの『AWS Well-Architected フレームワーク 勉強会』のススメでした。私も以前Well-Architectedフレームワーク勉強会の記事を書きましたが、この勉強会は皆様の組織のAWSを活用するメンバー全員でぜひやってほしいです。 この記事では今回2021年のre:Inventでもたくさんのアップデートが発表されたマルチアカウント管理のサービスであるAWS Control To
It happens a lot, you write a bash script and half way it exits due an error. You fix the error in your system and run the script again. But half of the steps in your scripts fail immediately because they were already applied to your system. To build resilient systems you need to write software that is idempotent. What is idempotency?Idempotent scripts can be called multiple times and each time it
この記事は HRBrain Advent Calendar 2021 10日目の記事です。 qiita.com はじめに こんにちは。主に人事評価サービスのバックエンド開発や運用を担当している@tonarinoheyです。 筆者の2021年ベストバイはMINIクラブマン クーパーSDです。私事ですが、1歳になる長男が無限中耳炎編に突入しており、勤務中に中抜けして通院するのが最近のトレンドです。助けてくれ。 さて、HRBrainにおいて最も運用期間が長いサービスである人事評価サービスにおいて、開発チームは今年度からサービスレベル目標 (SLO) を定めています。運用を始めたばかりなので、今回は主にSLO運用に至った背景や、サービスレベル指標(SLI)・SLOをどのように決めたかご紹介します。 導入経緯 人事評価サービスが今後も利用テナント数を増やし、稼働継続しながら新たな機能追加が続くことを
※この投稿は米国時間 2021 年 9 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。 開発者の生産性向上やインフラストラクチャ コストの削減といった利点に後押しされ、あらゆる企業が Google Kubernetes Engine(GKE)での構築を選択しています。その中でも急成長している GKE アーキテクチャの一つが、GKE コンテナ内での、リレーショナル データベースなどのステートフル ワークロードのデプロイです。ステートフル ワークロードには、データ保護やストレージ管理の必要性など、ステートレス ワークロードより多くの要件があります。 本日 Google Cloud は、コンテナ化したアプリケーションとデータを保護、管理、復元するための簡単でクラウドネイティブな方法である Backup for GKE のプレビュー版を発表いたします。Backup
この記事は Google Cloud Japan Advent Calendar 2021 の 11日目の記事です。 はじめに この記事ではGoogle Cloudの特徴的なサービスの1つであるCloud Spannerについて紹介しています。Cloud Spannerはその高可用性からミッションクリティカル用途に向く、水平方向へのスケーラビリティを持つリレーショナルデータベースです。 Cloud Spannerについて、従来のRDBMSを利用していたデータベースエンジニアやアプリケーションエンジニアが、知っておいたほうが良いと思われる知識をまとめてみました。 私自身もこれまでOracle Databaseを始めとして、SQL ServerやMySQL、PostgreSQLなどのオープンソースDB、DBアプライアンスのExadataやCloud NativeデータベースとよばれるAmazo
この記事は EventHub Advent Calendar 2021 11 日目の記事です。 昨日は yutanakano さんの中野で食べたいランチベスト3でした。 はじめに EventHub に先月(2021 年 11 月)入社した、ソフトウェアエンジニアの原です。 趣味は Podcast を聞くことで、最近のお気に入りは Pod de Engineerともう一度読む SRE、殿堂入り級に好きなのが texta.fmです。よろしくお願いします。 Lean と DevOps の科学(Accelerate) 今回は 「Lean と DevOps の科学」 (原題: Accelerate) をテーマでお話します。 「Lean と DevOps の科学」は、規模や業界を問わない多数の開発組織を対象にした学術的な調査をもとに、ソフトウェアのデリバリーや組織のパフォーマンスを向上させるためには、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く