Developers Summit(デブサミ)2024で登壇したセッションの資料です。 - https://event.shoeisha.jp/devsumi/20240215 - https://event.shoeisha.jp/devsumi/20240215/session/4777 …
AIでユニットテストを自動生成。リファクタリング、ドキュメントの生成、バグの検出なども行う「Refraction」登場 ChatGPTに代表される自然言語やプログラミング言語のコードを理解するAIを用いてコーディングの支援を行うツールがまた新たに登場しました。 Refractionは、示されたコードから自動的にユニットテストを生成するほか、コードのリファクタリング、ドキュメントの生成、バグの検出などを行います。 Updates! https://t.co/9otFTI7nh0 is now https://t.co/MtN5JgnetI. Building out many utilities. You can... Generate unit tests Generate inline documentation Refactor your code Added a $5 / month
はじめに 先日、僕が担当する業務でECS/Fargate利用を前提にDevSecOpsアーキテクチャをデザインし、社内のAWS勉強会にて登壇する機会をいただきました。 本ブログでも内容をかいつまんでご紹介できればと思います。 AWSによらず、コンテナを利用されている方にとって、一つのプラクティス例としてご参考になれば幸いです。 ※コンテナ自体の説明や必要性に関する内容は省略していますm(_ _)m そもそもDevOpsとは? DevSecOpsの導入意義をお伝えするた前に、まず軽くDevOpsの意義をお伝えします。 ※とは言え、この記事をご訪問されている方にとっては「何をいまさら...」な内容かもしれませんし、ググればDevOps自体の情報はたくさん見つかりますので、重要なポイントのみ述べることにします。 DevOpsとは、一言で述べれば、開発チームと運用チームが協力してビジネス価値を高め
最近実際に開発現場にコンテナを導入してきた経験から、公式ドキュメントに記載されているベストプラクティスに実際どうなんだということを言ってみようと思います。公式に書いてあることを間違ってると指摘という意図はありません 発言は個人の見解に基づくものであり、所属組織を代表するものではありません。 2023/12/3更新: 燃えかけてるのでタイトルを変えました。 補足: こちらの環境は下記を想定しています。 Java CICD/本番環境イントラネット内に整備 WF開発 マルチステージ・ビルドを使う マルチステージビルドの目的 公式ドキュメントには、下記のように記載があります。 マルチステージ・ビルド は、中間レイヤとイメージの数を減らすのに苦労しなくても、最終イメージの容量を大幅に減少できます。 つまり、最終イメージの容量を減らすことが目的であって、その一つの手段としてマルチステージビルドを進めて
Cloud RunはHTTPでアクセス可能なステートレスなサービスを提供するコンテナを、サーバレス環境で実行可能なサービスです。 すなわち、負荷がない場合にはサービスはまったく起動されず、負荷に応じて自動的にスケール。Dockerコンテナであれば、どんな言語で作られたサービスであっても関係なく利用できます。 課金もおよそ100ミリ秒ごとに、起動しているサービス数などによって計算されます。 また、Cloud RunはKubernetes上でサーバレスコンピューティング環境を実現するフレームワークとしてGoogleがオープンソースとして開発しているKnativeをベースにしています。 Anthos Cloud Runによりマルチプラットフォーム上でサーバレス Googleは、Kubernetesをクラウド基盤の抽象化レイヤとして用いることで、コンテナ化したアプリケーションをオンプレミスとクラウ
Dockerコンテナの起動やイメージ管理、KubernetesクラスタへのアプリケーションのデプロイなどをGUIで行えるソフトウェアが「Portainer」です。DockerやKubernetesの管理を簡単に行えそうだったので、無料のコミュニティ版を使ってみました。 Portainer | Open Source Container Management GUI for Kubernetes, Docker, Swarm https://www.portainer.io/ Documentation https://documentation.portainer.io/ ◆Docker編 まずはDockerを利用できる環境で、以下のコマンドを実行しPortainerコンテナを起動します。今回はDocker DesktopをバックエンドとするWSL環境を利用しました。 $ docker v
Fluentd実践入門 Fluentdの現バージョン(v1.15)について世界で一番詳しい本です。というか、Fluentdそのものだけについての、おそらく世界で唯一の技術書です。 出版社は技術評論社です。電子版もGihyo.jpやKindleはじめ各社で出ます。買ってね! gihyo.jp TL;DR 発売日は10月8日です 一部書店ではちょっと早く9月末に並ぶかも 電子版は発売日よりちょっと前に出るかも1 544ページ、Fluentd本体については考えられる限り盛り込みました Fluentdをなんとなく使っている人が確信を持って使えるようになれるはず 組込みプラグインの頻出用法、本番環境での運用ノウハウ、プラグイン開発からテストなどまで エコシステム的な部分についてはカバーできていません Kubernetes上での運用やFluent Bitとの組み合わせとか AWS FireLensやG
サービスメッシュは、マイクロサービスアーキテクチャの様々な問題点や課題を解決します。Kubernetes クラスターへの導入もそこまで複雑ではなく、サービスメッシュから得られるメリットは計り知れません。 カナダ・バンクーバーオフィスの山口です。 Kubernetes でマイクロサービスのアプリケーション開発をしていると、一度はサービスメッシュという言葉を聞いたことがあるのではないでしょうか。 マイクロサービス間の通信制御において、サービスメッシュは非常に強力な武器となります。しかし、Kubernetes クラスターへサービスメッシュを導入するのは多少敷居が高く、躊躇している方も多いかと思います。 今回はサービスメッシュの概要についてご説明します。そして次回以降で、EKS クラスター上で Istio や App Mesh といった主要なサービスメッシュの導入方法についてお伝えしていきます。
株式会社ウルフチーフ 代表取締役。TIS株式会社にて19年半、さまざまな業種のシステムアーキテクチャ設計を担当し、2018年に退職、株式会社ウルフチーフを創業する。以降流しのアーキテクトとして、前職時代から書き溜めていたOSSプロダクトや技術記事を元に、様々な現場でアーキテクチャの設計や研修を実施している。 課題:リポジトリの肥大化に伴ってリリース頻度が低下 川島 freeeではどのような課題を解決するためにマイクロサービス化を検討されたのでしょうか? 横路 freeeのプロダクトの成り立ちからお話しすると、「会計freee」の最初のリリースが2013年で、翌年に「人事労務freee(当時の名称は給与計算freee)」をリリースしました。その段階で既に、各プロダクトや認証・認可を扱うサービス基盤などは、リポジトリやサービスを分割する形で開発・運用を行っていたんです。 しかし、プロダクトがマ
Docker社とAWSがコラボレーションするという驚きとともに、新しくdockerコマンドに組み込まれたdocker ecsの使い心地を試してみました。 「docker ecsコマンド?なにこれ?」 先日、突如、DockerのECSインテグレーションなるものが発表されました! AWS and Docker collaborate to simplify the developer experience | Containers 従来あるdockerコマンドに、なんとdocker ecsコマンドが追加され、docker-composeファイルを利用したECSへのデプロイがAWS CLIなどのAWS製ツールを使わずに、全てdockerコマンドだけで完結するという、ちょっと想像がつかないアップデートです。 まだDocker社ではベータ版の扱いということですが、なかなかにおもしろいアプローチだった
tl;dr 筆者はvim派でVSCode初心者。でも勧められたので数カ月ぶりに起動してみた。 Pluginを色々入れていたので、サイドバーにはたくさんのアイコン。なにこれ楽しい。 Cloud Codeタブを触っていたら…指先が震えてトラックパッド誤操作。「Delete Cluster」を押してしまう。 その時たまたま偶然、GCPのオーナー権限を持つIAMで認証していた。 盛大にやらかして復旧が手間だったが、いくつかの理由で障害として顕在化しなかった。 というお話 何をやらかしたのか やらかし当時、筆者はGCPでデータ処理基盤の開発を行っていました。vimとzshが大好きで、開発のすべてをこの2つで済ませてましたが、同僚にVSCodeを猛プッシュされたので使ってみることにしました。 VSCodeは数ヶ月前にインストールしたもののそのときは結局使わず。数ヶ月ぶりの起動でした。 インストール時に
【IIJ 2021 TECHアドベントカレンダー 12/16(木)の記事です】 IIJ Raptorサービス部のエンジニア、RyuSAです。普段はアプリケーションの実装やアーキテクチャ、最近はKubernetesを使った業務を担当しています。 私事ですが、先日IIJの制度として発表された「セレクトジョブ」に参加し、SRE推進部という部署に兼務するようになりました!> IIJ、社員の自律的なキャリア形成を支援する公募型兼務制度「セレクトジョブ」を開始 | IIJについて | IIJ さて本題に入りますが……自分は今年の春に「おうちKubernetes」を植え、自宅で育ててきました。 > おうちKubernetesを構築した話 – メモ – RyuSA (hatenablog.com) 残念ながら自分の家庭はサーバラックがあるような、俗に言う「逸般の誤家庭」ではないためできることはかなり限ら
Amazon Web Services ブログ AWS Copilot のご紹介 Amazon Elastic Container Service (Amazon ECS) をご利用中、あるいはご利用を検討されている皆さまへ 本記事でご紹介する AWS Copilot は Amazon ECS CLI の後継に当たるものです。日本はこの ECS CLI を多くのお客様にご利用いただいている地域の1つであることに加え、ECS でのコンテナ実行をもっと簡単に行えるようにしたい、シンプルなワークフローを実現したいというリクエストを多数いただいていることから、本記事を英語記事と同じタイミングで公開することにしました。 Amazon ECS でのコンテナ実行に新たな体験を提供する AWS Copilot の紹介記事です。お楽しみください! −トリ (皆さまからの Copilot へのフィードバック、
Kubernetes / GKE ファンの皆様こんにちわ。Google Cloud の Kazuu (かずー) です。GKE Autopilot が GA になりました。弊社公式ブログに続きまして、GKE Autopilot を日本語で解説していきたいと思います。 本記事は以下、3 部構成となります。 GKE Autopilot 概要GKE Autopilot を試してみるGKE Autopilot がハマりそうなユースケースは? 1. GKE Autopilot 概要GKE Autopilot は GKE の新しいモードです。Control Plane に加えて、Node が完全マネージドになります。これまでの GKE では Node はユーザー自身が必要台数分作成し、以後の Day 2 オペレーション (e.g. アップグレード) 等も気に掛ける必要がありました。GKE Autopil
多くの人に見てほしいスライド メルカリのマイクロサービス/Kubernetes運用事例を拝見しました。 speakerdeck.com こちら、中身はメルカリにおけるマイクロサービス・Kubernetesの実際の運用状況をまとめた内容になっています。 この内容が欲しかった。 この世の中で、会社のITサービス基盤をKubernetesにてマイクロサービス化できている企業はほとんどいません。言い切ります。まだ仮想マシンのWEB+AP+DBの3層構成のままです。もしくは、AWS Lambraなどサーバレスでマイクロサービス化した事例は多数出てきていますがこれは基盤にKubernetesが使われている可能性はあるにしろ、ユーザーは意識していません。 Kubernetesをエンタープライズに適用する。このケースではGCEですが企業としてどのようなオペレーションになるのか、どういう思考錯誤があるのかが
前回の記事はこちらです。この記事は前回の記事のリマスターみたいなものとなっております。 読む必要はありませんが、この記事よりも詳しく用語の説明をしている部分もあるため、読んだ方が問題が解消できるかもしれません。 Oracle Cloudの無料枠だけでKubernetes(k3s)クラスタを構築する この記事にて、Kubernetesクラスタを作成してから1年と半年ほど・・・ 1年くらいはノーメンテで動作していることを確認していました。 しかし・・・1年を超えたくらいで動作しなくなってしまいまして、やはりスペック に関しては非常に厳しいものがあったようです。 kubectl打ってタイムアウトになってしまうこともしばしばあり、当然ながら実用的にアプリケーションを動作させるのは無理だな、ということでそのまま放置しちゃっていました。 そして時が過ぎて、いきなりすごいニュースが自分のTLに流れてきま
Kubernetesの機能は損なわず、PCやRaspbery Piといったエッジの環境へ簡単に導入し運用することにフォーカスしつつ、サービスメッシュのIstio、Linderd、サーバレスのKnative、分散トレーシングのJeager、メトリクス収集のPrometheusなどもバンドルされています。 NvidiaのGPUを用いたGPGPUにも対応。MicroK8sの自動アップデートも可能。導入や構成がシンプルなことから、MicroK8sはローカルの開発環境などによく用いられています。 そのMicroK8sがWindowsとMacに対応したことが発表されました。 #MicroK8s is now available natively on @Windows and #macOS via the command line, as if you were using on Linux. Lea
Read this article in English. はじめに 見つけやすく、インストールしやすいソフトウェアパッケージは、開発者にとって使いやすいです。React、Ruby on Rails、Airflow のような有名な OSS は良い事例です。しかし、社内の非公開のコードは、企業秘密として世間から隠されることが多いです。権限を持っている人のみ見ることができて、オープンソースのように npm gem や pip で簡単にインストールすることもできません。 その結果、社内のコードがうまく再利用されなくなる(あるいはできなくなる)ことがあります。各チームはそれぞれ独立したコードベースを持ち、他のチームにコードを共有したくても、満足がいく解決策を導き出すことが難しかったりします。戦略を立てないままでは、それぞれの独立したコードベースを充実させ続け「社内共通のライブラリー」が遠い夢のよう
docker composeではserviceごとにprofilesという属性を指定できて、起動時にこれを指定することで関連する一連のserviceだけを起動させられる。 どういうシーンで使えるのか。例えばとあるRailsアプリでは、一部の開発者はMySQLやRedisなどのデータストアだけdocker composeで起動して開発し、他の開発者は加えてRubyもdocker composeで起動して開発している。osxfsが遅すぎて、ファイルへの読み書きが頻発する処理がmacOSのDockerでは使い物にならないからだが、この話は今回どうでもいい。さてこのとき、データストア用のserviceに適当な名前のprofileを割り当てておくことで、個々のserviceの名前を逐一指定しなくても起動でき、将来の変更にも強くなって嬉しい。 # profile導入前 docker compose u
ちょいとした用途において、カジュアルにFargateの起動/停止を繰り返して、気ままに負荷全開かけていたら、あまりの違和感にCPU割り当てについて調査することにしました。 最近こんなことばっかやってる気がしますが、気に食わんかったからムカムカ解消に書くしかないんや。半分くらいブラックボックス与太話な感じで夜露死苦です。 はじまり とある処理を全開でFargateにやらせて、cpu=1024(100%), 2048(200%), 4096(400%) でどのくらい RPS (requests per second) でるかを計測していると、想定通りならほぼ比例でRPSが伸びるはずが、全然そうならないパティーンに遭遇。 並列過剰やエラー・バグ起因ではないことをほぼ確させた上で、まさかCPUガチャじゃあるまいなと試したら、まんまCPUガチャでしたということで、EC2からある話ではありますが、現在
概要 Docker コンテナの原則として「1コンテナ1プロセス」1というものがありますが、あえてこの原則を破りたいときがあるかもしれません。 公式: Run multiple services in a container 有志翻訳: コンテナー内での複数サービス起動 上記ドキュメントのラッパースクリプトを利用する方法には重大な問題があり、本番環境で使用するべきではありません。 (よりによって「本番環境でのアプリ運用」の項目にある) 公式ドキュメントに書かれているのに、死ぬというのはおかしいじゃないか それが罠だという証拠 ちなみに supervisord を利用する方法は問題ありません。 また、コンテナ向けに最適化された s6-overlay2 を利用する方法もあります。 ラッパースクリプトの問題点 プロセスの graceful shutdown が実行されない(プロセスに SIGKIL
Docker DesktopとAmazon ECS(Elastic Container Service)が連係可能に。DockerとAWSが協業 WindowsやMacでDocker環境を利用できる「Docker Desktop」と、Amazon Web Services(AWS)のコンテナ環境であるAmazon ECS(Elastic Container Service)との連係が、DockerとAWSから発表されました(Dockerの発表、AWSの発表)。 From Docker Straight to AWS? Why, yes you can. Read about our collaboration with @AWSCloud https://t.co/Hy1Nvq3m0r #AWS #Docker #Containers #Cloud pic.twitter.com/92gL
ラズパイでもAmazon ECSを動かせる、「Amazon ECS Anywhere」が正式リリース。ラズパイやオンプレミスのコンテナ環境をAWSから集中管理可能 Amazon Web Services(AWS)は、AWS上のコンテナ基盤サービスである「Amazon ECS(Elastic Container Service)」を、オンプレミスなど任意のサーバなどで実行可能にする「Amazon ECS Anywhere」の正式リリースを発表しました。 With Amazon ECS Anywhere, you can run and manage container-based applications on customer-managed infrastructure, including on-premises on your own virtual machines and bar
AWS導入~スケールまでの変遷を事例に学ぶ - コンテナ化のために「みてね」が選んだ構築戦略 これからAWSを導入する、AWSに入門するといった方に向け、AWSの導入のための基本的な戦略や考え方を事例で紹介します。多岐にわたるAWSの機能をいかに活用するか。サービス立ち上げから、その後のスケールまで、実際の現場でどのようにAWSを活用しているかを、株式会社ミクシィで「みてね」のインフラをリードする清水勲さんが語ります。 今や全世界のWebを支えるクラウドとして欠かせない存在となったAWS(Amazon Web Services)。さまざまな規模、目的のWebで活用されている中、持続的・永続的なサービス設計・開発・運用をするには、日々の情報収集と、時代に合わせたアップデートが求められます。 今回、株式会社ミクシィが提供する「家族アルバム みてね」でのAWS活用事例をもとに、AWS活用のヒント
BusterとかStretchという名前が見慣れない方もいるかもしれませんが、これはLinuxディストリビューションとしてシェアの大きなDebianのコードネームです。 Debianバージョンが少し古いStretchの方がちょびっとサイズが小さかったりはしますが、まあ実用的にはサポートが長い方がいいですよね。slimを使ってGCCとかのコンパイラを自前でダウンロードしている記事とかもたまに見かける気がしますが、マルチステージビルドであれば、そんなにケチケチしなくていいのと、パッケージダウンロードは逐次処理なので遅く、処理系が入ったイメージのダウンロードの方が高速です。並列で処理されるし、一度イメージをダウンロードしてしまえば、なんどもビルドして試すときに効率が良いです。また、多くのケースでネイティブのライブラリも最初から入っており、ビルドでトラブルに遭遇することはかなり減るでしょう。 Py
Cloud Run CPU 0.08 ~ 8 Core (2nd gen は最小 0.5~) Memory 128 MiB ~ 32 GiB (2nd gen は最小 512MiB~) Deploy App Engine は Deploy (gcloud app deploy) を実行すると Cloud Build が暗黙的に動いて Deploy が行われるが、これがなかなか時間がかかる。 開発環境だと CI でとりあえず main branch に merge されたら、Deploy したりするけど、Deploy を Skip してもよいような時でも CI 回してると Deploy を待つことになって、ちょっとめんどうに感じる。 更にこの仕組みは成果物は Deploy しないと生まれないので、CI と CDを分離しづらい。 Cloud Run は Container Registry a
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo! JAPANアプリの通知系バックエンドシステムを主に担当しているエンジニアの福盛です。 Yahoo! JAPANアプリの通知系バックエンドシステムについては、以下の記事でも紹介しています。もし興味があればこちらも参照ください。 チームのスキル向上にもつながるシステム刷新 〜 Yahoo! JAPANアプリ「お知らせ」機能の開発事例 Scalaで使うMessage Queue 〜 Yahoo! JAPANアプリのお知らせ送信でのApache Pulsarの活用 今回は開発とトラブルシュートの効率を大幅に向上する、アプリケーションログの埋め込みと活用方法について紹介いたします。 本記事では「JavaおよびScalaで構築さ
はじめに SRE部プラットフォームSREチームの川崎 @yokawasa です。 ZOZOTOWNではモノリシックなアーキテクチャーから、優先度と効果が高い機能から段階的にマイクロサービス化を進めています。本記事では、そのZOZOTOWNの段階的なマイクロサービス移行で実践しているカナリアリリースとサービス間通信の信頼性向上の取り組みについてご紹介します。 なお、ZOZOTOWNのリプレイス戦略ついてはこちらのスライドが参考になります。 speakerdeck.com さて、ZOZOTOWNマイクロサービスプラットフォーム(以下、プラットフォーム)はAWS上に構築しており、コンテナーアプリ基盤にマネージドKubernetesサービスであるEKSを採用しています。また、複数サービスを単一Kubernetesクラスターで稼働させる、いわゆるマルチテナントクラスター方式を採用しています。 下記イ
GoogleのSREとSecurityによるBuilding Secure Reliable Systems という本の中で「Zero Touch Production (ZTP) 」という考え方が紹介されていた.これはインフラの権限管理やインフラの構築そのものの指針となる概念であり,自分がそうあるべきだとずっと思ってきた考え方でもある.これはどのような考え方なのか?をこれまでの歴史を踏まえて具体的なツールや事例とともにまとめておく. Zero Touch Production Building Secure Reliable Systems においてZero Touch Production (ZTP) は以下のように定義されている. The SRE organization at Google is working to build upon the concept of least
Red Hat、ローカルマシンにコンテナとKubernetes環境などを構築する「Podman Desktop 1.0」正式リリース Red Hatは、ローカルマシンにLinuxのコンテナとKubernetes環境を手軽に構築できる「Podman Desktop 1.0」を正式リリースしました。 Windows、macOS、Linuxに対応し、デスクトップアプリケーションからコンテナエンジンのPodman、Docker、OpenShift Localなどを簡単にインストールでき、最新の状態に保つことができます。 コンテナの実行やKubernetesの操作など Podman Desktopの主な機能は以下の通り。 コンテナとポッド関連 コンテナとポッドのビルド、ラン、マネージ、デバッグ Kubernetes上もしくはKubernetesなしでのポッドの実行 内蔵のターミナル機能でコンテナへの
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く