2019/6/25に行われたJavaコミュ@福岡での登壇資料です
ZOZO×一休×PayPay AWS Nightは、2020年7月22日に開催されたZOZOテクノロジーズ・一休・PayPayの3社による合同イベントです。各社それぞれAWSの活用事例を紹介します。PayPay株式会社プラットフォームチームの西中氏がPayPayのインフラの概要について話しました(記事内の情報はイベント開催時点のもの)。 日本のNo.1 QRコード決済サービス 西中智樹氏(以下、西中):「PayPayでのAWS活用事例について」と題して、PayPay Platformチーム・西中が発表いたします。 簡単に自己紹介します。西中智樹と申します。2018年12月よりPayPayで仕事をしていまして、現在、AWSなどのPayPayのインフラを所管するPlatformのチームに所属しています。好きなAWSサービスはEKSです。 本日のセッションのアジェンダになります。この順番でお話を
はじめに 最近、Kubernetesを中心としたコンテナ環境やマイクロサービスの文脈において、「サービスメッシュ」「Istio」というキーワードを聞く機会が増えています。 「Istio」は、2018/7/31にバージョン1.0に到達したことが発表され、ますます注目されるオープンソースソフトウェアとなっています。また、自分が所属しているSIerであっても、最近「サービスメッシュ」という言葉を聞く機会が増えてきています。 本記事では、サービスメッシュの概要から、サービスメッシュを実現するソフトウェアについて、Web上の情報などを元に調査した内容を整理したいと思います。 サービスメッシュとは マイクロサービスの課題 サービスメッシュの説明をする前に、サービスメッシュの前提となるマイクロサービスにおいて、どのような課題が存在するか整理したいと思います。 Service Discovery(サービス
くら寿司:GKE や Edge TPU などを駆使して来店から会計までを完全自動化し、新しい生活様式のためのサービスを提供 大阪を起点に日本全国 47 都道府県すべてに店舗を展開する大規模回転寿司チェーンくら寿司株式会社(以下、くら寿司)。浅草や道頓堀、原宿、押上に「食」と「エンターテイメント」の融合を掲げ、「ジャパンカルチャー」の発信拠点とするグローバル旗艦店をオープンするなど、とりわけ “体験” にこだわる同社が、最新のクラウド テクノロジーをどのように活用しているのか。その取り組みと成果を、テクノロジー開発部の皆さんに伺いました。 利用しているサービス: Google Kubernetes Engine、Compute Engine、App Engine、Edge TPU 利用しているソリューション: アプリケーションのモダナイゼーション コンテナや AI など Google Clo
KubernetesをGoogleが開発し、オープンソース化し、成功した経緯。関係者らが肉声で語るドキュメンタリー映像「Kubernetes: The Documentary」YouTubeで公開 ITエンジニア向けの転職紹介などキャリアサービスを提供しているHoneypot社は、Google、Red Hat、Cloud Native Computing Foundationの協力の下、Kubernetesの誕生から現在までをドキュメンタリー映像としてまとめた「Kubernetes: The Documentary」をYouTubeで公開しています(Part 1、Part 2)。 Do you know the story of @kubernetesio? Hear the details of how the project came to be from those who live
Red Hatは、同社が中心となってオープンソースで開発中のコンテナエンジン「Podman」がバージョン1.0に到達したことを発表しました。 Podmanはもともとコンテナエンジンの標準仕様であるOCI対応として開発されていた「cri-o」をベースに開発が始まったとされています。 Podmanはコンテナエンジンの標準仕様である「cri-o」に対応し、現在はDockerとほぼ同じDockerコマンドをサポートし、ベータ版のRed Hat Enterprise Linux 8にも同梱されています。 今回、Podmanが正式版となるバージョン1.0に到達したことで、Red Hat Enterprise Linux 8が正式版となったときにはDockerの代わりにPodmanが標準のコンテナエンジンになるとの指摘もあります。 Podmanのおもな特長は以下です。 Rootless containe
タイトル通りですが、1年目エンジニアのインフラのイの字も知らなかった私が1ヶ月半かけてKubernetesで環境構築するまでの失敗の軌跡です(そして環境構築できたのが奇跡)。 理想的にはこれを読めばインフラ初心者でもKubernetes(以下k8s)で環境構築できるところまで説明することですが、そういうわけでなく、環境構築の解説というより自分の失敗やつまづきポイント、役に立ったことをただただ書き連ねていきます。ただ他の初心者の方も同じようなところでつまづくこともあると思うので少しでもお役に立てたら嬉しいです。 バックエンド側で使った技術は以下になっています。 言語:Ruby(RoR) API:GraphQL インフラ:Azure その他:Docker、k8s 実際の実装でハマったところは各章の最後に教訓として簡単にまとめてはいますが、大事なことは先に結論として述べておきます。 Docker
コンテナイメージのレジストリでは、脆弱性検査の実装が当たり前になっている。企業でKubernetesなどコンテナを使用するにあたって脆弱性対策がどれほど重要なものか理解するために、脆弱性検査や、関連する国際的な標準について整理した。 脆弱性(ぜいじゃくせい)とは 脆弱性とは、プログラムの動作の不備を悪用される情報セキュリティ上の弱点である。つまり、ソフトウェア上の問題が原因となって生じた欠陥であり、セキュリティホールとも呼ばれる。当然、ソフトウェア開発者は、脆弱性を産まないように細心の注意を払ってコード開発を進めるが、開発者が利用するオペレーティングシステムのライブラリやパッケージに含まれることもある。そのような事情から、開発者の責任範囲外に原因がある場合も多くある。 潜在的な脆弱性を突いた新たなクラッキングの手口が、時間の経過ともに発見される。そのことから、開発当初はコードに脆弱性は無い
背景 最近、「コンテナはもうわかってきたので、これからKubernetesについて腰を据えて勉強したいが、どのように勉強すればいいかわからない」という相談をいただくことがすごく多くなった。 必要に応じて必要なリソースの挙動などを調べてきたし、僕自身も知らないことばかりなので、全てを伝えることはできない。 とはいえ、「入門しにくいサービスが伸びにくい」というのは、間違いないので、Kubernetesに入門する上でこの順番で学習したら、基本的な内容を身につけられるのではないかというロードマップを一つ公開しておくことで、これから業務でKubernetesを理解していく必要がある方の最初の一歩を助けられるかもしれないと思い、公開する事とした。(このQiitaのリンクを渡すだけで質問に回答できるという状態を作りたいという観点もある。) 自分の今の、Kubernetesに対する理解をうまく表現できてい
(ゲームの話は一切知らん) いつのまにか「Webフロントエンドの動きが速い」とか誰も言わなくなってることにふと気付いた。なんというかソフトウェアをどう作るか、という問題にたいして大枠の部分では完全に固まってしまって、あとは個別の事情をどうやっていくかみたいな話しか残ってないように見える。 端的にいえば、宣言的UIとkubernetesは聖杯だったのではないかな。 k8sにかんしては「Cloud Runみたいのでいいじゃん」みたいな話はあると思うんだけど、Envoyほしいとかなってくると結局事実上k8s必須だし、今新しくアプリ作るときに宣言的UIじゃないフレームワーク使うこととかほぼ考えられんよな。で、こういう構成が定番ですね、みたいになってなんかもう数年は経つ気がする。結果として日本語でソフトウェア開発の話になるとチームビルディングがどうのみたいな話しかなくなってきていて、なんかつまんねー
どのクラウドでも使えるサーバレス「GitLab Serverless」をGitLabが発表。KubernetesとKnativeがベース GitLab ServerlessはKnativeをベースにKubernetes上で稼働するサーバレスプラットフォームです。GitLabがホスティングするのではなく、AWSやGoogle Cloud Platformなどどのクラウドに対してもデプロイし使えることが最大の特徴と言えるでしょう。 GitLabはマルチクラウドに対応したサーバレス管理ツールを提供するTriggerMeshと協力することで、デプロイ後の運用まで一貫してGitLabで管理できるとしています。 現在、AWS LambdaやGoogle Cloud Functions、Azure Functionsなど主要なクラウドは独自のサーバレスプラットフォームを提供しています。しかしそれぞれのク
こんにちは。 @amsy810 です。 下記のブログが出てから『Kubernetes は運用しきれない』と耳にすることが多くなってきたので、雰囲気で曲解されて Kubernetes is difficult とならないよう、マネージドでシンプルに使うだけなら難しくないよと伝えるために書きました。 Kubernetes がいいよと伝えるためではありません。 yakst.com TL;DR 上記のブログについては概ね同意見です。 辛いのは自前で Kubernetes クラスタの管理自体を行う場合です。 GKE などのマネージド Kubernetes サービスを利用するケースでは、Kubernetes の管理は殆ど必要がなくなります。 例えば GKE の場合には、自動クラスタアップグレード・自動クラスタスケーリングなどが用意されています。他にも自動ノードプロビジョニング機能(CPU・メモリ・GP
はてなのMackerelチームはKubernetesクラスタを自前で構築して運用していたが、撤退を選択したという。なぜ、Kubernetesの運用を諦めて撤退を選んだのか。はてなのMackerelチームでSREを務める今井隼人氏が語った。 コンテナ型仮想化技術を活用したアプリケーションの管理(オーケストレーション)ツール「Kubernetes」が注目を集めている。その背景の一端にあるのが、アプリケーションをコンテナ化し、マネージドKubernetesサービスで実行することによるメリットの享受と、運用負荷の軽減だ。 参考記事:「Kubernetes」とは何か――コンテナ型仮想化の本番利用に向けた課題 参考記事:「Kubernetesで運用する」その前に Kubernetesを本番環境で利用する際のポイント そんな中、「Kubernetesクラスタを自前で構築して運用していたが、撤退を選択した
とあるスマートフォン向けMMORPGのプロジェクトで、アプリケーションサーバをほぼすべてGKE(Google Kubernetes Engine)に乗っけて動かしていました。 このゲームは、モバイル向けながら、複数プレイヤ間でそこそこリアルタイム性の高い同時プレイができるものでした。同じフィールドを誰かが歩けば、自分が見ている画面でもほぼ同時にそいつが歩いて横切っていく、同じ敵と皆で一緒に戦えば、誰かが繰り出した攻撃が参加者全員の画面に即同期される、もちろんチャットもできる、そんな具合です。今ではさほど珍しくないのかもしれませんが、PCのオンラインゲームのような機能を搭載した、リアルタイム性の高いモバイルゲームでした。 さて、こうなってくると、オーソドックスなWebサーバのような、HTTP/1でリクエスト/リプライを捌く、というサーバだけでは要件を満たすことができません。 複数プレイヤ間で
クラウドネイティブを取り巻く技術の中でも、ひときわKubernetes(Dockerコンテナ)は注目を浴びており、様々なシーンで利用が始まっています。本セッションでは、Dockerコンテナが私達にもたらす恩恵や、アプリケーションのコンテナ化に置いて気をつけるべきポイントについて、アプリケーションエンジニアという観点からお話したいと思います。以下の聴講者を主なターゲットとしています: ・Webアプリケーション開発者(フロント/バックエンド/モバイル) ・Dockerをローカルで動かしたことがある/CIなどで既にあるパイプラインなどを利用しているエンジニア ・KubernetesやDockerを、プロダクトに導入してみたいアプリケーション開発者
自分がニッチだと思っているテーマについて発表する「Qiita Engineer Festa 2023〜私しか得しないニッチな技術でLT〜」。ここで株式会社SonicGardenの遠藤氏が登壇。LambdaとFargateを組み合わせた実行環境について話します。 遠藤氏の自己紹介 遠藤大介氏:今日は「AWSのLambdaとPlanetScaleを組み合わせると、超絶スケールするWebアプリを作れちゃうぜ」という話をしていこうと思っています。 最初に自己紹介です。遠藤と申します。SonicGardenという会社で、プログラマーと執行役員をやっています。インフラと機械学習などが好きで、趣味もプログラムで仕事もプログラムな感じの人間なんですが、最近は機械学習周りが盛り上がっているので、そっちもいろいろやっています。 あと、ロードバイクに趣味で乗っているのですが、最近ちょっと乗れていません。それから
Kubernetesの自前運用は難しい これから嫌でもコンテナと戦わなければいかないインフラエンジニアには何度でも読み返してほしい記事です。 www.atmarkit.co.jp はてなのMackerelチームはKubernetesクラスタを自前で構築して運用していたが、撤退を選択したという。なぜ、Kubernetesの運用を諦めて撤退を選んだのか。はてなのMackerelチームでSREを務める今井隼人氏が語った。 考察 この話、20年前のLinux草創期を思い出すんです。 雑誌の付録にLinuxがCD-ROMで付いてたんです。最近のスマートなCentOSとかじゃなくてですね、何Linuxだか忘れたのですがインストールも含めて3日間ぐらいかけて取り組んだんですが結局失敗した記憶があります。 これからKubernetesなりコンテナがやってくるのはここ最近に書いた通りで、早くそっちの世界に行
こんにちは。AI事業本部の青山(@amsy810)です。 2020年版「おうちKubernetesインターン」を実施したため、事後レポートをブログにまとめたいと思います。 コロナ禍のため、機材一式を学生とメンター宅に郵送し、フルリモートでの実施となりました。 またそれに合わせて3 Daysだったものを7 Daysに伸ばして、初日と最終日以外は夕会だけをコアタイムとしたフレックス性で実施しています。 メンターは私以外に、徳田、川部、漆田、源波、中西、岩立、長谷川が参加しています。 概要 今回のおうちKubernetesは Raspberry Pi 4 の 8GB モデル 3台 を使ってクラスタを構成しました。 単純な仕様だと、12 core + 24 GB Memory のクラスタです。もはやノートパソコンに近しい性能ですね。 また、今回 Raspberry Pi 4 になってから最低 2.
※この投稿は米国時間 2021 年 10 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。 ポケモンを捕まえたことはありますか?Pokémon GO は何百万人もの人がプレイする人気ゲームですが、非常に優れたスケーラビリティを実現しています。このブログでは、Pokémon GO のエンジニアリング チームがどのようにこの大規模なサービスを管理し、維持しているのか、その舞台裏を紹介しています。Niantic Labs のシニア エンジニアリング マネージャーで、 Pokémon GO のサーバー インフラストラクチャ チームを率いる James Prompanya 氏に、この大人気ゲームを支える アーキテクチャについてお話を伺いました。動画をご覧ください。 Priyanka: Pokémon GO とは? James: これは典型的なモバイルゲームではあ
はじめに 本記事では、筆者や筆者の同僚がKubernetes関連の開発をしているときによく利用しているツールを紹介します。 主にKubernetes上で動くプログラムをGoで書いたり、マニフェストのYAMLを書いたりするエンジニアが対象となります。 本記事の内容は極力環境依存を減らし、Linux, WSL2, Macなどの環境で利用可能となっています。 WSL2(Ubuntu 20.04)、およびM1 Macで動作確認していますが、環境によって多少の違いが生じることもあるのでご了承ください。 基本となるツール make & brew 本記事ではmakeコマンドを利用します。 Ubuntuの場合は以下のコマンドでインストールをおこなってください。 Macの場合は、以下のページを参考にHomebrewとCommand line tools for Xcodeをインストールしてください。 Doc
freee では仮想マシンのインフラ監視に Mackerel を使っていますが、Kubernetes を使っているところは前例にとらわれずゼロベースで見直そうとしています。現状は Elastic Stack と Mackerel のハイブリット構成になっています。 Elastic Stack による Kubernetes モニタリングシステムの紹介 - freee Developers Blog どの SaaS を使うかを決める前に、そもそも Kubernetes の何を監視すればいいのか? というところから考え直しています。宣言的なマニフェストにより Kubernetes が自律的にあるべき状態を保ってくれるのであれば、これまでの監視とは異なってくるはずです。 監視の観点として、ここでは通知レベルを用いて次の 3 つに分類します。 None: メトリクスは収集するが通知しない Notic
「ある日、転職した inajob に与えられた仕事は、Kubernetes の一員になることだった!?」 Kubernetesは、コンテナのスケジューリングなどの多くの作業を自動化している一方で、複数のコンポーネントにより構成され中身の理解が難しくなっています。本講演では、各コンポーネントに代わり手作業で機能する Kubernetes クラスタのデモを交えながら、Kubernetesがどのように人間の作業を自動化しているのか説明します。 --- Cloud Native Days Tokyo 2019 (2019/7/23) - https://cloudnativedays.jp/cndt2019/ SUDA Kazuki, @superbrothers OTSUKA Motohiro, @yuanying INAZU Kazuma, @ina_ani
はじめに Dockerであんなコンテナやこんなコンテナを動かしてると、なんかうまく動かなくて、デバッグのためにtcpdumpとかstraceなどのツールが使いたくなることが稀によくあります。 そんな時、デバッグ対象のコンテナ内にツールを一時的にインストールしちゃうというのが、まぁ簡単で分かりやすいんですが、デバッグ対象のコンテナを汚すのはできれば避けたいところです。 Dockerのコンテナの分離というのは、結局のところLinuxのリソースの名前空間の分離であるので、逆に同じ名前空間を共有すれば、デバッグ用に立てた隣のコンテナから、デバッグ対象のコンテナのネットワークやプロセスの状態を観察することも可能です。 また、docker buildはDockerfileを標準入力から受け取ることもできるので、ワンライナーにしてデバッグ用のコンテナをシュッと呼び出せるようにしてみました。 TL;DR
SREの@deeeetです。 新しい機能を素早くリリースしフィードバックを得てすぐにPivotの決定を行う、もしくはリスクを抑え小さな改善を継続的に行うContinuous Deliveryはソフトウェア開発において非常に重要です。 メルカリではこのContinuous DeliveryのためのPlatformにSpinnakerを採用し始めました。現在は主にkubernetes(k8s)へのコンテナアプリケーションのDeployに利用しており、既にいくつかの本番アプリケーションがSpinnakerによりDeployされています。 本記事ではなぜSpinnakerを採用したか、Spinnakerとは何か、実際にメルカリでどのようにSpinnakerを使っているか、について簡単な紹介をします。 kubernetes上でのDeploy問題 k8sへのコンテナイメージのDeployは非常に簡単で
yaml、どうしてこんなに使われているのだろうか。kubernetesにも責任があるというのはありそうな話だけど、色々考えてみるとそこまで簡単な話でもなさそうな気がする。例えばtravis-CIの設定ファイルがyamlであったりというように、この分野ではyamlは割と広く使われていたんじゃないかという気がする。思い起こせばGoogle AppEngineもapp.yamlに設定を書いていたし、設定にyamlというのは割とよくあることであった、のではないかなあ。 しかしなぜyamlなんだろうか。yamlのフォーマットには問題がたくさんあることが知られているし、自分も全く好きではない。 例えばyamlの問題の一つとして、キーに任意のデータ構造を持ってこれるという話があり、これが一部のプログラミング言語で問題を厄介にしている。またエイリアスがあってデータ構造がツリーにならない(複数の経路から同じ
新型コロナウィルスの影響も長引いてますが、皆さま無事お過ごしでしょうか。私は幸い無事です。 日ごろチームでソフトウェア開発をしているのですが、近年社内ではペアプログラミングやモブプログラミングが流行しています。 私のいるチームでもここ二年ほどモブプログラミング(ないし類似のプラクティス)に取り組んできました。 モブプログラミングについて正確にどのようなものかは以下の記事などをご参照いただければと思います。 簡単にまとめると、要求分析やコーディング等幅広い開発作業を、同じ場所に集まったチームの共同作業でこなしていくというものです。 このご時世ですので、最近はオンラインのミーティングルームに集合する形式でしたけど。 www.agilealliance.org ここから先は、非常にパーソナルな、私に限定された体験になります。 どの人・チームにも適用できる話ではありません。ではありますが、どの人・
AWS Startup ブログ メルカリのコンテナアーキテクチャを公開! 利便性の高いアプリを実現する AWS 活用法 2019年8月30日。AWS Loft Tokyo にて、AWS におけるコンテナサービスの解説とともに、株式会社メルカリにおける AWS Fargate、Amazon EKS の活用についてお話しいただくイベント AWS Containers talk with Mercari が開催されました。 このレポートでは、前半パートで株式会社メルカリの中河 宏文 氏による「メルカリ写真検索における Amazon EKS の活用事例とプロダクトにおける Edge AI Technology の展望」の模様を、後半パートで株式会社メルカリ 高橋 三徳 氏とアマゾン ウェブ サービス ジャパン株式会社のソリューションアーキテクト 塚田 朗弘、原 康紘による「Fireside Cha
Googleは、コンテナアプリケーションの実行と運用に最適化した新しいクラウドプラットフォーム「Cloud Services Platform」を、サンフランシスコで開幕した同社のイベント「Google Cloud Next '18」で発表しました。 Google Cloud Next '18の基調講演でCloud Services Platformを発表するGoogle Technical Infrastructure SVP、Urs Hölzle氏 Announcing Cloud Services Platform, an integrated family of cloud services across GCP and on-premise environments that bring the benefits of the cloud to you, no matter wh
Istio導入のメリットとハマりどころを、実例に学ぶ~マイクロサービス化の先にある課題を解決する マイクロサービス化にともなサービス間の接続の複雑化、という課題への対処としてサービスメッシュとこれをもたらす「Istio」が注目されています。Istioをいち早く導入したユーザベースの阿南さんが、導入メリットと、使って分かった「ハマりどころ」を解説してくれました。 マイクロサービスを増やしていくならサービスメッシュ化を検討すべき KubernetesやIstioは今までの技術の集大成 運用したからこそわかるIstioのハマりポイント ハマりどころ1:設定の反映が遅延する ハマりどころ2:エンドポイント登録がnamespase単位で分かれていない ハマりどころ3:istio-proxyの制限にひっかかる 使っている人に聞いてみた「Istio-proxyを経由すると10ms遅くなる?」 Istio
2018年11月28日、クックパッド株式会社が主催するイベント「Cookpad Tech Kitchen」が開催されました。第20回となる今回のテーマは「クックパッドのマイクロサービスプラットフォーム現状」。クックパッドが開発を行っているマイクロサービスプラットフォームの今と、その仕組みについて解説します。プレゼンテーション「Amazon ECS の安定運用のために」に登壇したのは、鈴木康平氏。クックパッドにおけるAmazon ECSの運用事例と工夫していることについて解説します。講演資料はこちら Amazon ECSの安定運用 鈴木康平氏:「Amazon ECSの安定運用」というタイトルで発表したいと思います。今回のアウトラインとしては、「ECSをどう使うか」みたいな話ではなくて、そのECSを運用していく上でこんなことやっていますよということを話していければなと思います。 内容としては、
Software-Defined Data Centerは、あらゆるアプリケーションのためのプラットフォームになる。 VMware環境上でのDockerの対応、Kubernetesへの参加 VMwareとDockerは協力して以下のことなどに取り組むとしています。 VMware Fusion、vSphere、VMwareのクラウドサービスvCloud Airなどが、Docker Engingにとって優れた稼働環境になるようにする Docker関連のオープンソースプロジェクト、libswarm、libcontainer、libchanの開発 Docker Hubと、VMwareのクラウドサービスvCloud Air、vCenter Server、vCloud Automation Centerなどとの相互運用性向上 またVMwareはGoogleとの協業も発表。VMwareはすでにvSphe
現在oktetoでは無料プランが終わってしまったようなので、この記事の内容は古くなっています。 最近知ったoktetoというサービス。無料でKubernetesを使えそうだということでとにかく遊び尽くしてみたいと思います。 Okteto CloudとOkteto Self-hostedの二種類ありますが、以降は全てOkteto Cloudの話をします。 一人で無料で使う場合は機能制限があったり、リソース使用量の制限があるので注意。 え・・・十分すぎない? Setup アカウントを作成する まずはアカウントを作成してみましょう この右の「Login with GitHub」ボタンをクリックして進めていってください。 アカウント作成が完了すると以下の画面が開きます。 (Option) okteto CLIのsetup okteto CLIを利用するとUIをターミナル上から様々な操作ができます。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く