7/13(土)に武蔵野公会堂ホールで開催された大吉祥寺.pm に行って、コンテナの話をしてきました。 会場の武蔵野公会堂ホール 吉祥寺.pm 自体や、Perl 系のイベントへの参加経験はこの日までありませんでした。それでも CFP を提出したのは、次のような理由です。 そこそこ著名なサイトで連載したり、そこそこ著名なイベントでの登壇をしていても、意外に知られていないことが多い、ということをここ何年も色々なところで感じています。吉祥寺.pm に参加される方々は、私が普段参加する勉強会やイベントに参加する層とは違う方々も多いのではないかと思い、応募しました。「コンテナ」という、今や当たり前で特に意識せずに使っている技術について、少しだけでもどんな風に動いているのかをイメージできると役に立つことがあるかなと思うからです 主催者である @magnoliak さんとは、X 上では結構ポストのやりとり
Containers Announcing software version consistency for Amazon ECS services Introduction Container image tags offer a user-friendly way to manage and keep track of different versions of container images. However, they also present a security risk to organizations due to their mutable nature. Without protections in place, a container image tag can be changed in a container image repository to point
こんにちは。ソーシャル経済メディア「NewsPicks」のSREチームの飯野です。 SREでは2023年から円安に負けないコスト削減を継続して行なっていますが、最近は圧倒的な円安におされ気味です。 2024年1月-6月の間に141→161円の変動はちょっと厳しすぎますよね。 今回は2024年1月から3月にかけて行なったNewsPicksの共通バックエンドAPIサーバーのARM対応プロジェクトについて話したいと思います。 ARM対応はコスト削減を目的とした施策です。適用範囲の見誤りがあり、当初の想定ほど大きなコスト削減は実現できませんでしたが、活発に変更が行われるプロダクトに段階的に変更を加えてリリースすることができました。 ARM対応をするにあたり、何を考えてどの順番で着手したかという情報は、今後ARM対応を行う開発者に参考になりそうなので紹介します。 ARM対応計画 ARMのコンテナイメ
コンテナの仕組みを勉強したかったため、Goでコンテナランタイムを自作した。雑実装だし未実装の機能もたくさんあるが、ある程度形になってきたため現状をまとめる。 リポジトリ github.com kombu/dashi - 自作コンテナランタイム kombu/nimono - eBPFを利用したシステムコールロガー kombu/yaminabe - dashiとnimonoを利用したマルウェアサンドボックス プロジェクト名から和の雰囲気を感じるが、これはリポジトリ名をkombu(昆布)にしたかったため、せっかくなら今回は和風で固めようと思ったから。趣があっていいんじゃないでしょうか。 dashiが自作コンテナランタイムだが、nimonoとyaminabeは実験的な要素で、セキュキャン2023でコンテナを使ったマルウェアサンドボックスを実装した経験があり、今回はその再実装を自作コンテナランタイム
(๑╹◡╹๑) @tsuchie88 みんなの銀行は、アクセンチュアがシステム構築しただけじゃなくて、GCPで稼働するCloud SQLを中核にK8sでコンテナ化されたアプリケーション群を東西リージョンで両現用化したかなり画期的なシステム構成で面白いんだけど、サービスもカードレスでスマホのみ、サブスクモデルと尖りすぎてるんだよな pic.twitter.com/4xMikwGQwf 2024-05-30 21:49:00 (๑╹◡╹๑) @tsuchie88 アクセンチュアって、海外では勘定系パッケージを販売してるし、Citibankのフロントエンドシステムとか個別構築も手掛けてたりして、何気に金融系システムベンダーとしての存在感があるんだけど、日本ではあんま強くなかっただけにMAINRIはスクラッチで日本で投入したライト勘定系で面白いんだが 2024-05-30 21:54:08
アマゾン ウェブ サービス ジャパンは、2024年6月20日と21日、国内最大の年次イベントである「AWS Summit Japan」をハイブリッドで開催。150を超えるセッションが展開された。 本記事では、ニンテンドーシステムズによるセッション「Nintendo Switch向けプッシュ通知システムのリプレイス事例」をレポートする。登壇したのは、同社 システム開発部の林愛美氏と坂東聖博氏だ。 2017年のNintendo Switchの発売とあわせてリリースされた「プッシュ通知システム」。同社は、長期運用を見据えて、よりクラウドネイティブなシステムへのリプレイスを決定するが、大量のTCP接続を維持するための様々な課題が立ちふさがった。 本セッションでは、AWS FargateやNetwork Load Balancer(NLB)といったAWSのマネージドサービスを用いた、“最大1億台”級
はじめに こんにちは。都内でソフトウェアエンジニアをしているtomoriです。 突然ですが、Go言語でHTTPサーバーを実装する際、サーバーの終了処理を適切に実装できている自信はありますか? 自分が開発に携わっているプロダクトでは、ほんの最近まで下記のような不適切な終了処理を行なっていました(話を簡単にするためにここでは panic を使っています)。 err := http.ListenAndServe(":8080", handler) if err != nil { panic(err) } HTTPサーバー実装のサンプルとかでよく見るやつですね。 これだとアプリケーション側で、いわゆる Graceful Shutdown ができておらず、実行環境にて不具合を引き起こす恐れがあります。 というわけで、最近それを修正したのでアウトプットとして記事にします。 Go言語でHTTPサーバーを
本記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめにみなさん、docker composeを利用しているでしょうか? 複数のdockerコンテナをまとめて立ち上げたり、環境変数を定義できたり便利ですよね。 この記事ではある程度docker composeを利用している方向けに私が便利、便利そうと感じたdocker composeの機能を挙げてみました。 docker compose cli v2を利用docker-composeではなく docker composeコマンドも利用可能になっています。 Docker Desktopでは v3.4.0から利用可能で、基本的にはコマンドの互換性あります。 ファイル監視による自動更新docker compose 2.20.0からCompose
こんにちは。技術部プラットフォームグループのshibatchです。プラットフォームエンジニアとして、主にSUZURIとminneをより良くするおしごとをしています。 さて私が主として携わっているSUZURIですが、2014年のサービス開始以来、一貫してHerokuを利用してきました。このたび、10年間使っていたプラットフォームを卒業し、新たにAmazon EKS(Elastic Kubernetes Service)へ移す方針に決めた経緯についてお話しします。EKSに移すという決定にするまでに多角的に検討し、時に悩みながら決定した過程について明らかにしていきます。 なお、現在プラットフォーム移設の真っ最中であり、移設の詳細な内容はこの記事に含めません。移設作業はほぼ完了に向かっており、また別途お話しする予定です。 この記事は以下の3部構成になっています。 Herokuから移行しようと思った
同年度のMLOps研修資料はこちらです。 (1/4) CyberAgent AI事業本部2024年度MLOps研修Container編: https://speakerdeck.com/szma5a/container-for-mlops (2/4) CyberAgent AI事業本部2024年度MLOps研修基礎編: https://speakerdeck.com/nsakki55/mlops-basic (3/4) CyberAgent AI事業本部2024年度MLOps研修応用編: https://speakerdeck.com/tyaba/mlops-handson (4/4) CyberAgent AI事業本部2024年度MLOps研修実践編: https://speakerdeck.com/hosimesi11/mlops-practice
はじめに PythonのDockerfileを作成する際、ネット上で適切な情報が見つからず、試行錯誤することがあります。そこで、ここでまとめてみます。 完成品 # 開発用ステージ FROM python:3.11-bullseye AS developer ENV PYTHONUNBUFFERED=1 WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends \ bash=5.1-2+deb11u1 \ && apt-get -y clean \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . # ビルド用ス
対象者 Docker使いたいけどよくわからない Docker使い始めたけどコマンド言われるがままに打っていてよくわかってない コマンドと動作を図示で理解したい こんな人の理解の一助になれば幸いです。 (前提条件: docker version 26.0.2) Dockerコマンドを可視化してみた 勝手にローカルのPCをmacにしているのはご愛嬌です ※2024/5/16 9時訂正版の画像に差し替え コメントで間違いを指摘していただきありがとうございます🙇 細かいオプションなどは一旦無視してライフサイクルの部分を抜き出してみました。 Docker imageの操作 dockerの肝となるコンテナは、imageから生成します。 そのimageは、 docker hubからpullしてくる dockerfileからbuildする この2択で生成します。 コマンドは、 など、 docker i
コンテナイメージなのにブート可能な新技術による「Image mode for Red Hat Enterprise Linux」、Red Hatが発表。レジストリなどのコンテナ関連ツールがそのまま利用可能 Dockerコンテナで使われるコンテナイメージは、そもそもOSのカーネルなどが含まれていないためそれ単体で実行することはできず、コンテナに対応したOSの上にデプロイすることで実行されます。 このコンテナイメージのフォーマットは業界標準の「OCIコンテナ」(Open Container Initiativeコンテナ)として標準化されていますが、このOCIコンテナのフォーマットを守りつつ、ベアメタルサーバ上でブート可能な「ブータブルコンテナイメージ」の開発が進められています。 ブータブルコンテナイメージとは? ブータブルコンテナイメージは、カーネルやデーモンなどの単独で実行可能なOSとしての
色々あって WebAssembly の component model を調べていたら、未来が見えた気がしたのでここに書いておきます。 「今の WebAssembly」 とは何か WebAssembly の Web の部分は忘れてください。これは単に JVM version 20xx です。ポータブルなバイナリ仕様です。 実行にあたっては今はホスト言語として JS が使われていますが、実際にはホストがJSである必要すらなく、なんならホストが不要なスタンドアロン環境すらあります。(wasmtime/wasmer) じゃあ WebAssembly は何かというと、サンドボックスで実行される VM の仕様です。比較的高水準なバイナリで、 V8 や Spider Monkey に付属する WebAssembly Runtime や、 Wasmtime や Wasmer といった WebAssemb
Red Hatが主導して開発するDocker互換のコンテナエンジンであるPodmanを搭載した、Docker Desktop代替となるGUIツール「Podman Desktop」の最新版「Podman Desktop 1.9」正式版がリリースされました。 Podman Desktopの主な機能 Podman Desktopは、デスクトップアプリケーションのGUIを通じて、コンテナの一覧、検索、実行、終了などの基本的な操作、コンテナイメージのビルド、コンテナレジストリへのコンテナイメージのプッシュやプルなどのライフタイムを通じた管理、ローカルでのKubernetes環境の実現、CPUやストレージの利用量の参照などを手軽に行えるツールです。 さらにDocker Dekstopの拡張機能を取り込むこともできます。 Podman Desktop 1.9の新機能 Podman Desktop 1.9
クラウドで使うコンテナというと、AWSのAmazon ECS、Google Cloud Runなどがある。今回はコンテナオーケストレーションのKubernetesのアーキテクチャについて、スリーシェイク bells17氏が解説する。KubernetesはもともとGoogleが内部で運用していたコンテナ基盤のBorgをベースとしており、Cloud Native Computing Foundation(CNCF)に寄贈されたものだ。認知度からも分かるように、成熟度レベルは「GRADUATED」で成熟が進んだものとなっている。 KubernetesのコアとなるControllerとは? コンテナオーケストレーションツールとして有名なKubernetes。代表的な特徴を挙げるとサービスディスカバリとロードバランシングがある。Serviceリソースを定義することで、多数起動されているコンテナに接続
三行で FireLens を使うことで ECS で稼働するアプリケーションのログ転送を簡単に実装できる しかし、ドキュメントに記載されている設定例をそのまま利用しただけでは実はログの取りこぼしがあった ログの取りこぼしを防ぐためにコンテナ間の依存関係とHealthcheckの設定を行った FireLens とは FireLens を簡単に言うと、「ECS のタスク定義の記述だけで Fluent Bit / Fluentd を使ったログ転送用のサイドカーコンテナが利用できる機能」でしょうか。 FireLens という個別のサービスやソフトウェアが存在するわけでは無いようです。 詳細は以下を参照ください。 症状 私が関わったとあるサービスでは ECS を使ってアプリケーションを稼働させていて、アプリケーションのログは FireLens により Fluent Bit を使ってログ転送を行っていま
0. はじめに 株式会社ディー・エヌ・エーに入社し,MLOps エンジニアをやっている @a5chin です. 本記事では,図 1 の様に VS Code の Dev Container 上に爆速で快適な Python 環境を構築することを目指します. 図 1: Dev Container 上で開発をすると Ruff による自動フォーマット[1]と pre-commit が走る 本記事の内容は全て上記リポジトリで簡単に試すことができるので,ぜひ clone して試して頂けたらと思います↑ Dockerfile 内で,Rye, uv, そして Ruff をインストールする手順を記述することで開発環境を標準化し,異なる環境間での一貫性を担保することができます. 0.1. 事前準備 本記事で作成したリポジトリを動かすためには,Docker Desktop と VS Code のダウンロード,VS
春の入門祭り2024の1記事目です。 はじめにTIG真野です。 Testcontainers を用いて、単体テスト実行前に docker compose up -d 無しで、PostgreSQLにアクセスする単体テストを行う、入門記事です。 恩恵は次のような開発者体感の向上が個人的にあります。 テストを実行するうえで、別プロセスのサービスを起動しておく必要があるといった前提条件を考えなくても済むため、テストを行うビジネスロジックに集中できるdocker compose up -d 打たないだけだが、テストに必要なコンテナを考慮しなくても済む停止し忘れて、別のリポジトリの開発するときに混乱しなくても済む並列テストしやすくなるので、テストの実行速度が向上するGoにおいて、複数のパッケージを同時にテストするとき、 -p 1 で絞らずに済むTestcontainers とはhttps://test
はじめに こんにちは。SRE部フロントSREブロックの三品です。 3月19日から3月22日にかけてKubeCon + CloudNativeCon Europe 2024(以下、KubeCon EUと呼びます)が行われました。今回弊社からはZOZOTOWNのマイクロサービスや基盤に関わるエンジニア、推薦システムに関わるエンジニアの合わせて4人で参加しました。 本記事では現地の様子や弊社エンジニアが気になったセッションや現地の様子について紹介していきます。 目次 KubeConEU2024の概要 セッションの紹介 現地の様子 ブースについて 参加に向けてのTips 最後に KubeCon EU 2024の概要 昨年4月にオランダ アムステルダムで行われたKubeCon EUの様子については昨年の参加レポートをご覧ください。 techblog.zozo.com 今年のKubeCon EUはフラ
Docker互換のコンテナエンジンとしてRed Hatが主導して開発しているオープンソース「Podman」の2年振りのメジャーバージョンアップ「Podman 5.0」が正式にリリースされました。 PodmanはDocker互換のコマンドラインツールを備え、OCI(Open Container Initiative)互換のDockerイメージを操作可能なコンテナエンジンです。 デーモンを使わず軽量で高速に動作すること、ルートレスでコンテナを操作できるためセキュアなことなどを大きな特徴としており、PodmanからKubernetesのYAMLファイルを生成できるため、Kubernetesとの連係も容易とされています。 今回のPodman 5.0では、WindowsやMacの上でLinuxコンテナを利用可能にするための仮想マシンを実行するPodman Machineが全面的に書き換えられ、性能と
構築する開発環境について ここで構築する開発環境は次のようなものを考えています。 仮想化ソフトウェア (Hyper-V + WSL2 + VirtualBox) コンテナソフトウェア (Docker Compose + Docker Engine) 開発エディタ (Visual Studio Code ) バージョン管理システム (Git + Git for Windows + Forgejo) CI/CD (githooks or Gitness or Woodpecker CI or GitBucket + gitbucket-ci-plugin or Jenkins) Intel N100 ミニ PC の特徴は低価格でありながら、仮想化機能を備えており、VirtualBox や Hyper-V といった仮想化ソフトウェアを動作できることが大きな魅力です。メモリ 16GB で SSD
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く