Talked at AWS Dev Day Online Japan 2021. - 動画: https://youtu.be/I7mMQshlpcs - イベントページ: https://aws.amazon.com/jp/about-aws/events/2021/devday - Proposal: https://github.com/aws-events/aws-dev-day-online-japan-2021-cfp/issues/16
3大クラウド(AWS,Azure,GCP)をそれぞれプロダクションで実運用した感想(その1 シェア、将来性) 3大クラウド(AWS,Azure,GCP)をプロダクションで実運用した感想(その1 シェア、将来性) はじめに 今まで私がエンジニアとして10年以上仕事をしてきた過程で、利用されているクラウドインフラ基盤を転職要件に含めていなかったことも相まって、AWS(Amazon Web Services),Azure(Microsoft Azure),GCP(Google Cloud Platform)という3大クラウドのクラウド基盤で、サービスの立ち上げから運用まで関与することができました。 各々のクラウド基盤に関して掘り下げられていることはあっても、エンジニア/SREの視点から俯瞰して述べられていることはあんまり無いので私が実務レベルで各々のサービスを使っていて感じたことを共有しておきま
こんにちは。おうちKubernetesを勧めるためにやってきました。 このシリーズでは、Part 1で「なぜやるのか」、Part 2で「どうやるのか」について話します。 この記事は自宅サーバー上のKubernetesで不特定多数向けのサービスを展開することを勧めるものではなく、自分用・身内用のアプリを自宅サーバー上のKubernetesで運用することを勧めるものです。 エンジニアは全員おうちKubernetesをやるべき絶対的な理由 自己研鑽のために (鑽←この字「研鑽」と「大鑽井盆地」でしか見ない) 企業がKubernetesを採用する場合、ほとんどがEKSやGKEといったクラウド上で動作するマネージドKubernetesサービスを使用すると思います。ただ、Kubernetesであればコマンドやマニフェストファイルの書き方は共通なので、おうちKubernetesで学んだことがそのまま業務
課題 数年前と比較すると、GKEやECSを始めとするコンテナ実行環境でのアプリケーション運用を行うサービスはかなり増えてきた印象があります。 コンテナを運用する上では、アプリケーションのイベントを追跡する上でログをどう扱うかが課題になります。今までのように古いログを定期的にローテートして別のストレージに転送するといった手法はクラウドネイティブなアーキテクチャには最適とは言えません。 アプリケーション開発の方法論として、Twelve Factor App ではログをイベントストリームとして扱うためのガイドラインが示されていますが、近年のWebアプリケーションではシステムを疎結合に連携するマイクロサービスという考え方が主流になりつつあります。 アプリケーションログはサービスごとにフォーマットを整形した上で、ログ収集サービスに配送。必要に応じてリアルタイム分析や異常データの通知、そしてデータの可
マイクロソフトは、マイクロサービスアプリケーションの開発を容易にするためのフレームワーク「Dapr」をオープンソースとして公開しました。現在アルファ版となっており、多くの開発者の協力を求めています。 マイクロサービスアプリケーションは、「マイクロサービス」あるいは単に「サービス」と呼ばれる、それぞれがアプリケーションを構成するための機能を提供する多数のプログラムが疎結合によって連係することで実現されます。 それぞれのサービスはWebサーバのようにステートレスなものもあれば、データベースサーバのように状態をつねに保持するステートフルなものもあります。 また、それぞれ異なるプログラミング言語で開発されたサービスがお互いを呼び出し、メッセージをやりとりする必要があります。 Daprは、こうしたマイクロサービスアプリケーションの開発を容易にするため、プログラミング言語に依存せず、サービス間の呼び出
ここ半年ぐらい、かなり久々にクラウド使ってアプリやバッチの基盤作ったりしてきて、色々と思ったことを書き捨てる。 「ちょっと検証してみた」程度のものも含めれば、AWSとGCPは一通り主要なマネージドサービスを触ったし、実際に複数のアプリやらバッチやらをマネージドサービス上で本番稼働させて今も運用してるけど、結局DB以外は基本全部Kubernetesに乗せるのが一番楽だと強く思うようになった。 Kubernetesは学習コストや運用コストがそれなりに高く付くから安易に採用するのはどうなのか、みたいな論調もあるし、つい半年前までは自分もそう思ってた。サーバレスなマネージドサービスが色々出てきているのに、なんでわざわざKubernetesクラスタなんていう設計、運用に手間のかかるクラスタリングサーバーを立てて管理しないとならんのかと。 だけど、実際にいくつかのマネージドサービス使ってアプリやバッチ
2012年に Heroku のエンジニアによって提唱された「The Twelve-Factor App」は素晴らしく,アプリケーションをうまく開発し,うまく運用するための「ベストプラクティス」として知られている.2020年になった現在でもよく引用されていると思う.日本語訳もある. 12factor.net Beyond the Twelve-Factor App とは? クラウド化が進むなど,提唱された2012年と比較すると技術的な変化もあり,今までの「The Twelve-Factor App」で宣言されていた観点以外にも必要な観点やベストプラクティスがあるのでは?という意見もある.そこで,2016年に Pivotal のエンジニアが「Beyond the Twelve-Factor App」を提唱した.The Twelve-Factor App にあった「12項目をアップデート」し,新
ちなみに、IT業界全体のシェアとしてはMicrosoftのAzureの方がGCPを上回っていますが、Web業界においてIaaSにAzureを採用している企業さんは2019年時点ではまだまだ少ないので、現状ではとりあえずAzureへのキャッチアップは後回しにしておいて問題ないと思われます。 クラウドアーキテクチャ設計 前述したAWSやGCPの各種マネージドサービスを適切に組み合わせてアーキテクチャ設計を行い、それを構成図に落とし込める能力は必須となります。 いわゆる「アーキテクト」という職種の担当領域でもありますが、「サービスを安定稼働させたまま、バリューをユーザに迅速に届ける」ためには、自動化のしづらい構成が採用されてしまったり、無駄な機能が開発されてしまったり、アンマネージドなツールやサービスが使用されて管理工数が肥大化したりしないように、アーキテクチャ設計の段階からDevOpsエンジニ
今押さえておくべき知識をアップデートし、ノウハウを共有し、さらなるスキルアップを実現する場として開催されている、AWS で最も Developer に特化したカンファレンス「AWS Dev Day Online Japan」。ここでSr. Product Developer Advocate, Elastic Containersの原氏が登壇。続いて、運用性に優れたソフトウェアが重要な理由と、運用性を損なう8つの実装例について紹介します。前回はこちらから。 You build it, you run it 原トリ氏:(スライドの「You build it, you run it」を指して)この言葉、聞いたこと、見たことがある方がいるかもしれません。これは、2006年にACM(Association for Computing Machinery)という団体が、Amazon AWSのCTOで
「Pulumi AI」発表。自然言語でAWS、Azure、Cloudflare、Kubernetes、Datadogなど130以上のインフラやサービスのInfra-as-Codeを自動生成 クラウドをはじめとするITインフラの構成をコードで定義する、いわゆるInfrastructure as Codeツール「Pulumi」を提供するPulumi社は、自然言語からインフラ構成コードを自動生成する「Pulumi AI」を含む、AIを活用した新サービス群「Pulumi Insights」を発表しました。 Exciting news! Pulumi Insights - intelligence for cloud infrastructure – is here. We’ve tapped into the power of generative AI and GPT-4 to automate
DockerやKubernetesなどのコンテナ技術は多くのシステムで用いられていますが、初心者が概要を理解するのは難しいもの。そんなコンテナ技術の概要について、クラウドストレージサービスを運営するBackblazeが分かりやすくまとめています。 What Are Containers? https://www.backblaze.com/blog/what-are-containers/ ・目次 ◆コンテナとは何か? ◆コンテナと仮想マシンの違いは? ◆コンテナのメリットは? ◆コンテナの用途は? ◆Dockerとは何か? ◆Kubernetesとは何か? ◆コンテナとは何か? 物流の世界における「コンテナ」は、形状やサイズを規格化し、異なるメーカーが製造した船舶・電車・トラックなどの移動手段や、世界中の港などの「異なる環境」でも同じように物を運んだり保管したりできるようにしたものです。
Dockerの登場により急速に普及をはじめたコンテナ型仮想化の技術は現在、DockerコンテナそのものからKubernetesを軸としたオーケストレーションツールへと主役が移ってきています。 その様子は2017年12月に公開した記事「Dockerコンテナ時代の第一章の終わり、そして第二章の展望など」で紹介しました。 この記事の公開から2年が経過し、現在のコンテナ型仮想化技術は、マイクロサービスやクラウドネイティブなどの文脈とともにエンタープライズな分野でも使われるメインストリームな技術へと確実に進み続けています。 本記事では前記事で描いたDockerコンテナ時代の第一章に続く第二章として、コンテナ型仮想化技術のここ2年半ほどの動向をPublickeyなりにまとめてみました。 Docker 1.0の到達とKubernetesの登場 まずはDockerとKubernetesの登場とその後の主要
Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験 Kubernetes-nativeなエコシステムを実現する最強テストベッド環境です。さまざまなミドルウェアを運用したマイクロサービスをフルgRPCなサービス間通信で実現するだけでなく、CI/CDと開発環境も用意しています。 こんにちは。株式会社サイバーエージェントのAI事業本部でインフラエンジニアをしている青山真也(@amsy810)と漆田瑞樹(@zuiurs)です。今回は、Kubernetesが好きな2人が考える最強のKubernetes-nativeなお試し環境を構築してみました。記事公開時点で、総コミット数が900に迫るリポジトリになっています。 現在、Kubernetesとそれを取り巻くエコシステムは急速に発達しており、便利なツールやミドルウェアが日々生まれています。これは
2021年9月18日に開催されたXP祭り2021で「マイクロサービスに至る歴史とこれから」という講演をしました。資料は次の通りです。本来は75分ぐらいかかるのを45分で話そうとして、余裕で時間オーバーしてすみませんでした。 テクノロジーとテクニックによる進化の流れ テクノロジーやテクニックは、ITの改善サイクルを向上させるために進化を続けています。「技術そのもの」であるところのテクノロジーに対して、テクニックというのは「人による技術の活かし方」を示します。なので、基本的にはテクノロジーが生まれ、それを使いこなしたテクニックが登場することになります。 テクノロジーとテクニックの進化の歴史現在、進化中のテクノロジーであるCloud NativeやServerlessを前提としたテクニックを示す用語、つまり、マイクロサービスに次に来るかもしれない言葉というのは、時間軸からすると再来年ぐらいに出て
このエントリーについて このエントリーを書き始めた経緯は下記にあります。 inductor.hatenablog.com 上記の理由の通り、目的は論文を翻訳することだけではなく、最終的にこれを踏まえて自分の見解をつらつらと書いていくところにもあります。 おそらく一番時間がかかるのはそれなので、一旦は翻訳を一通り終えた上で更に頑張っていきます。ゆっくりお待ちいただければと思います>< 1. Introduction(まえがき) Borgが内部的に呼び出すクラスター管理システムは、Googleが実行するすべてのアプリケーションを許可、スケジュール、起動、再起動、および監視します。この論文ではその方法を説明します。 Borgには3つの主な利点があります。 リソース管理と障害処理の詳細を隠すため、ユーザーは代わりにアプリケーション開発に集中できます。 非常に高い信頼性と可用性で動作し、同じことを行
23新卒技術研修で実施しコンテナ研修(Kubernetes編)の講義資料です。 動画:https://youtu.be/Dk0isJQ6a80 こちらは後編になります。前編はこちら:https://speakerdeck.com/mixi_engineers/2023-container-training-number-01 ※ハンズオン環境は提供していないので、ハンズオンを実際に試していただくことはできません。 資料の利用について 公開している資料は勉強会や企業の研修などで自由にご利用頂いて大丈夫ですが、以下の形での利用だけご遠慮ください。 ・受講者から参加費や授業料などを集める形での利用(会場費や飲食費など勉強会運営に必要な実費を集めるのは問題ありません) ・出典を削除または改変しての利用
Kubernetesを自動車に載せる、デンソーが「Misaki」を発表。年内にもオープンソースとして公開 自動車部品大手のデンソーは、自動車向けにKubernetesを実行するためのソフトウェア「Misaki」を、6月13日に行われたオンラインイベント「KubeFest Tokyo 2020」で発表しました。 自動車は現在スマート化やネットワーク化が急速に進んでいます。自動運転を目指した自動車の進化を見るまでもなく、今後多くのコンピュータリソースが自動車に搭載されるようになり、そこで実行されるアプリケーションの重要性が高まっていくことは間違いありません。 デンソーが発表した「Misaki」は、このようなアプリケーション実行環境としての自動車をクラウドを中心としたネットワーク化された分散アプリケーション環境のエッジと位置づけ、その基盤をKuberenetesで実現するためのソフトウェアです。
PayPayで昨年12月に展開した「100億円あげちゃうキャンペーン」。その間、ユーザー数の増加に伴い、PayPayのシステムは不安定な状態に。押し寄せる膨大なアクセスに、PayPayのエンジニアはどのように対応したのか。 「ほぼ毎日、決済のトランザクション数が伸びていく状況だった」――モバイル決済サービス「PayPay」で昨年12月に展開した「100億円あげちゃうキャンペーン」(第1弾)について、PayPay社の山本啓介さん(プロダクト本部 テクノロジー1部 部長)はそう振り返る。 同キャンペーンは還元率の高さから注目を集め、わずか10日間で還元総額が100億円に到達し、終了した。その間、PayPayのサービスを支えるシステムは、ユーザー数の増加に伴い、不安定な状態に。障害が相次ぎ、何回もの緊急メンテナンスを余儀なくされた。 押し寄せる膨大なアクセスに、PayPayのエンジニアはどのよう
はじめに 最近までコンテナは使うだけだった僕が2021年に真面目にコンテナ入門をしたので、どうやって入門し始めたか、結果今どうなったかを書いておこうと思います。 今となってはコンテナと1口に言ってもKubernetes Docker podman runcなどなど様々な難しい単語が飛びかっています。CloudNativeという単語もよく聞きますね。コンテナだけあってコンテナ界隈は海のように広いですね。 壮大なコンテナ界隈の海を僕がどうやって最初にチャレンジしてみたか参考に慣れば🙏 結論として入門した結果はこちらです。 コンテナ入門するきっかけ 2020年くらいまでの僕はDockerを使う程度の知識、namespaces(7)とcgroups(7)というLinuxカーネルの機能が使われているらしいということしか知りませんでした。Kubernetesも略し方や発音で時々話題になることを知って
任天堂:新しい汎用ゲームサーバーを Google Kubernetes Engine、Cloud Spanner などを駆使して構築 世界中で愛好されている任天堂株式会社(以下、任天堂)の家庭用ゲーム機「Nintendo Switch」。そのオンライン マルチプレイを担う汎用ゲームサーバーの動作基盤に新たに Google Cloud が採用されました。多くのユーザーとの通信を処理しなければならないこの仕組みを、なぜ Google Cloud 上に構築したのか。どのような工夫を施すことで、安定性・可用性と運用負担の軽減を両立させたのか。構築に携わったエンジニアのお二人に話を伺いました。 利用しているサービス: Google Kubernetes Engine、Agones、Anthos Service Mesh、Cloud Spanner、Cloud Load Balancing、Cloud
AWS Startup ブログ スタートアップのためのコンテナ入門 – Kubernetes 編 こんにちは、スタートアップ ソリューションアーキテクトの松田 (@mats16k) です。 「スタートアップのためのコンテナ入門 – 導入編」「スタートアップためのコンテナ入門 – AWS Fargate 編」という記事を公開してきましたが、Kubernetes に興味があるスタートアップも多いのではないでしょうか。今回は Kubernetes にフォーカスしてお話しします。 なお Kubernetes 以前に、「そろそろコンテナやった方がいいか?」「なんとなく使い始めたけれどこれでいいのか?」「コンテナ自体は分かったけど、サービスでの利用に踏み切れていない」といった漠然とした課題感をお持ちの方は「スタートアップのためのコンテナ入門 – 導入編」から目を通して頂ければと思います。 目次 Kub
はじめに GitOpsという言葉が生まれたのが自分の知る限り2017年頃なのですが、世の中にあるCI/CDの仕組みはまだほとんどがCIOpsもしくは手動のオペレーションによって成り立っていると思っていて、かつては自分もそうだったのですが「Gitで管理されていればGitOpsなんでしょ?」という勘違いを払拭したくてこのエントリーを書いています。 GitOpsとCIOpsは全然違う まず前提としてGitOpsの明確な定義を知らないという場合、あなたの思う「Gitを契機とした自動デプロイの仕組み」は基本的にはCIOpsです。GitOpsとCIOpsは思ったよりも大きな違いがあって、そもそもGitOpsの必要性が分かっていない場合、自動化によって成立しているデプロイはCIOpsが基本です。 CIOpsとGitOpsの一番の違いは、Push型かPull型かである CIOpsの場合、例えばGitHub
クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応 クラウドのアーキテクチャ図を作成するためのWebアプリケーション「CloudSkew」が公開されています。 AWS/Azure/GCP/Kubernetes/Oracle Cloud/HashiCorp/Alibaba Cloudなど人気のクラウドやツールのアイコンがあらかじめ用意されており、Webアプリケーションとして提供されているためインストール不要で、誰でも無料で利用可能です。 操作は一般的なドローツールと同じように、左側からアイコンを選んで真ん中の図に置き、アイコン同士を矢印でつなげていくことでアーキテクチャ図が作成されていく、という感じです。 開発しているのは、元マイクロソフトのエンジニアを
ソフトウェアエンジニアとして働き始めて 20 年以上になります。 元々ソフトウェアでいろいろ作りたくて就いた職業なので、結構な数のプロダクトを開発してきました。 私がメインで開発したもので OSS として出ているものでは、 yrmcds: memcached クローンで、レプリケーション機能などを持つ usocksd: SOCKS4/5 サーバー & ライブラリ transocks: アプリのネットワーク通信を透過的に SOCKS サーバーにプロキシする透過プロキシ coil v2: Kubernetes の CNI ネットワークドライバ moco: MySQL を自動運用する Kubernetes オペレーター accurate: Kubernetes 上で namespace ベースのソフトマルチテナンシーを実現するためのソフトウェア などがあります。これらのソフトウェアの多くは、現役
最近GCPから登場したKubernetes YAMLのPackage managerであるKptは「Infrastructure as Data(Configuration as Data)」という考えかたを基礎としてそれを推し進めようとしている.それ以外にもKubernetesのEcosystemには(明示はされていなくても)この考え方が中心にある.Infrastructure as Codeとは何が違うのかなど歴史を振り返りつつまとめてみる. (指針はBorg, Omega, and Kubernetesという論文にあるが「Infrastrcuture as Data(Configuration as Data)」という言葉を明確に定義した文章はない.この記事はReferencesに挙げるいくつかのPodcastにおける@kelseyhightowerの発言や,それに反応する@bgra
概要 自分の所属企業であるAqua SecurityがTFsecというOSSを買収しました。 blog.aquasec.com TFsecはどういうツールかというとTerraformの静的解析スキャナーです。Terraformの設定ファイルを渡すことでセキュリティに関する設定ミスを主に検知してくれます。 github.com そのアナウンスに伴い、TFsecは自分が開発している脆弱性スキャナーであるTrivyに統合されました。TrivyではTerraformに加えDockerfileやKubernetesなど、いわゆるInfrastructure as Code(IaC)の設定ミスを検知するマネージドポリシーも提供しています。他にもJSONやYAMLなど一般的なファイルフォーマットに対応しているため自分でポリシーを書くことでそれらの検知にも使えます。CloudFormationやAnsib
ラックについて 今回買ったラックは、なぜかネジを締めるとWIFIが繋がらなくなる事象が発生した。多分金属製だからと思われる。 面白いことに、手をラックの近くに置くとWIFIがつながる。(繋がらない場合もある) すべてのラズパイがWIFI接続というわけではなくmasterのみなのであんまり影響がないが、本事象は完全に想定外だったのでラック選びは要注意。 ラックの組み立て 説明書あったが、ネジの種類のラベルが貼っていなくて全然分からなかった。 ので、公式が動画を出しているのでこちらを参考に組み立てた。 なぜかネジが足りなかったり余ったりしているが、ガタガタしていないので一旦気にしない。 OSをSSDにインストール OSは「Ubuntu Server 22.04.2 LTS(64bit)」を使う。 歯車のところからWIFIやssh、キーボードレイアウトなど設定をよしなにやる。 Mac側の接続
Google、モノリスとマイクロサービスのいいとこ取りをする「Service Weaver」フレームワークをオープンソースで公開 Googleは分散アプリケーションの開発とデプロイを容易にするフレームワーク「Service Weaver」をオープンソースで公開しました。 Introducing Service Weaver! Service Weaver is an open source framework for building and deploying distributed applications. It allows you to write your application as a modular monolith and deploy as a set of microservices. Learn more → https://t.co/XmnVALYXNC pic
CloudNative Days Kansai 2019前夜祭のLTで発表した資料です。 発表の大筋は@makingの『Pack to the Future - SpringOne Platform 2019報告会』 https://docs.google.com/presentation/d/1rzaxReQ92WaWI24v-GsTwjtLCMq2YaFSTl9t6SEjPxQ/mobilepresent?slide=id.g6ad6e2f668_0_5 およびその元ネタの『Pack to the Future: Cloud-Native Buildpacks on k8s』 https://www.slideshare.net/SpringCentral/pack-to-the-future-cloudnative-buildpacks-on-k8s をベースにしています。 Clou
※この投稿は米国時間 2020 年 1 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。 数年前、Kubernetes はコンテナ化されたアプリケーションの管理をサポートし、大いに注目を集めました。今では、本番環境でのアプリケーションの大規模なデプロイや管理に広く使用されています。その過程で私たちは、Kubernetes と Google Kubernetes Engine(GKE)を最大限に活用するためのヒントやベスト プラクティスを収集してきました。ここでは、Kubernetes のデプロイと利用方法に関する Google Cloud ブログのなかから、最も人気の高い記事の一部をご紹介します。 リソース管理を容易にする Kubernetes の Namespace : Kubernetes 上でサービスを構築すると、単純なタスクが複雑になっていきます。一種
この記事は、著者の許可を得て配信しています。 https://panelbear.com/blog/boring-tech/ 注:この記事で書かれている考え方は、過去に何度も取り上げられています。長年にわたって私の視点に大きな影響を与えてきた記事の一つに、McKinley氏の「Choose Boring Technology(退屈な技術を選ぶ)」というものがあります。以下では、私自身の経験からこのトピックを探り、最近のプロジェクトでKubernetesを使うことになった経緯を紹介します。 長年にわたり、私は多くのエンジニアが会社の成功や失敗の多くを技術的な選択が原因であると主張する傾向があるところを見てきました。私にももちろんそういう時もあります。それはしばしば正当化されますが、大多数のスタートアップ企業にとって、プログラミング言語、フレームワーク、あるいはデータベースの選択はそれほど重要
こんにちは!スタンディングデスクを導入して快適な開発環境と運動不足の両方を解消できるようになったのではと感じている、広告技術部のUT@mocyutoです。 今回は半年ほどEKSを運用して秒間3万リクエストのトラフィックをさばくほどになりました。 秒間3万は広告システムだと割とあるとは思いますが、kubernetesでも運用できているので紹介しようと思います。 対象のEKSで構築したサービスは広告の配信サーバです。 広告配信サーバの要件として、まず50ms以内にレスポンスを返さなければいけません。 構築したk8sのレスポンスタイムの99パーセンタイルは10msほどで返せています。 以下は必要最小限のクラスタの構成図です。 全体像 API 弊社のサーバサイドはほぼGoで作られているので、例に漏れずGoで作られています。 pod構成はAPI、fluentd、envoyの サイドカーパターン です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く