kimullaのブックマーク (67)

  • コンテナ環境でのJava技術の進化

    JJUG CCC Fall 2022

    コンテナ環境でのJava技術の進化
    kimulla
    kimulla 2022/11/28
  • Low-level Container Runtime:Runc Internals - 鳩小屋

    参考 おさらい runc architecture file main.go and command process runc create setupSpec startContainer linuxContainer LinuxFactory createContainer CreateLibcontainerConfig loadFactory factory.Create runner.run newProcess linuxContainer.Start newParentProcess parentProcess.start() runc init nsenter nsexec runc init(After nsexec) linuxStandardInit.Init runc start 低レベルコンテナランタイムruncの内部処理のまとめです。 参考 2021/05現在:

    Low-level Container Runtime:Runc Internals - 鳩小屋
    kimulla
    kimulla 2021/08/22
  • VM環境のCPU仮想化はどうやって実現しているのか ハードウェア仮想化支援機構の仕組み

    Arm入門勉強会とは、macOSがArmに移行したこの機にArmアーキテクチャでのプログラミングについて入門するソフトウェアエンジニアのための会です。今回主催の@nullpo_head 氏が、Armの仮想化支援機構について、その仕組みから深く説明します。前半は「現代のハードウェア仮想化支援機構」について。全2回。 ハードウェア仮想化支援とは何か 佐伯 学哉氏:入門セッション3つ目は『Armの仮想化支援機構』についての入門セッションです。どうぞよろしくお願いします。 発表のスタートとゴールです。VMwareとかQemuとか使ったことあるけど仮想マシンの仕組みなんも知らんというところがまずスタートになっています。 1個目のゴールは、最近のVMのざっくりした仕組みとハードウェア仮想化支援とは何かということがわかること。そしてその話のあとに実際にArmの仮想化支援機構の概要を説明し、Armの仮想

    VM環境のCPU仮想化はどうやって実現しているのか ハードウェア仮想化支援機構の仕組み
    kimulla
    kimulla 2021/02/27
  • Linuxにおける非同期IOの実装について - Qiita

    はじめに Linux 5.1に新しい非同期IOの仕組みとしてio_uringがマージされてから既に1年以上経ってしまいましたが、これまでのLinuxにおける非同期IOの使い方や実装を見ていきながら、io_uringが登場した背景やLinux AIO(libaio)の問題点をどのように解決しているのかについてまとめました。アプリケーションの書き方については大まかにしか説明していないので、それについてはmanページや別の記事を参照してください。 またIOという範囲が広いのですが、ここではブロックデバイス上のファイルシステムにおける通常ファイルに対するread/writeについて考えています(ネットワークは考えていないのでepollの話はないです)。 前提知識 簡単に前提となる話をおさらいします。 同期IOと非同期IO IOを行うシステムコールとしてすぐに思いつくのはread(2)/write(

    Linuxにおける非同期IOの実装について - Qiita
    kimulla
    kimulla 2020/12/06
  • Kubernetes: kube-scheduler をソースコードレベルで理解する - チェシャ猫の消滅定理

    はじめに Kubernetes において、Pod を配置するための Node を決定する手続きをスケジューリングと呼び、デフォルトのクラスタでは kube-scheduler がその責務を担っています。記事ではこの kube-scheduler のソースコードを時系列に沿って追いつつ、どのようなロジックで Pod を配置する Node が決定されるのかを解説します。 なお、記事は Kubernetes の内部実装について学ぶ勉強会 Kubernetes Internal #3 の補足資料を意図して執筆されました。文中で参照しているソースコードのバージョンは v1.19.4 です。 Kubernetes Internal #3 録画 スケジューラの概要 ソースコードを読むに先立つ予備知識として、スケジューリングの大まかな流れと Scheduling Framework の概要に触れてお

    Kubernetes: kube-scheduler をソースコードレベルで理解する - チェシャ猫の消滅定理
    kimulla
    kimulla 2020/12/04
  • Kubernetesネットワーク 徹底解説

    Kubernetesのネットワークの構築要件に対して、世の中には様々なアプローチがあります。 書ではTCP/IPは知っているけれど、Kubernetesのネットワークの実現方法は知らない人向けに、メジャーな実現アプローチについてできるだけ噛み砕いてステップバイステップで体系的に説明します。

    Kubernetesネットワーク 徹底解説
    kimulla
    kimulla 2020/11/03
  • エンジニアとして この先生きのこるために

    2020年度リクルート新人ブートキャンプ エンジニアコースの講義資料です

    エンジニアとして この先生きのこるために
    kimulla
    kimulla 2020/08/22
  • Kubernetesのコードリーディングをする上で知っておくと良さそうなこと

    Kubernetesとその関連コードのコードリーディングをする上で知っておくと良さそうなことについて知ってる範囲で雑にまとめてみました 前提知識前提として最低限Kubernetesをある程度触っていて KubernetesはPodとかのリソースと呼ばれるものでコンテナだったりロードバランサーとかを管理するようになっていて実際にDeploymentでコンテナを立ててService/Ingressでコンテナで立てたアプリケーションを外部公開できてコンテナはPodという単位でコンテナをグループ化して同一Nodeで実行されるということを知っているくらいがわかっていればまぁ十分なんじゃないかとは思います あとはKubernetesGoで書かれているので Goの基礎知識とVSCodeGolandなどGoのコードを読む際に宣言にジャンプできるようなエディタくらいがあると良いと思います Kuberne

    Kubernetesのコードリーディングをする上で知っておくと良さそうなこと
    kimulla
    kimulla 2020/06/12
  • FlannelのVXLANバックエンドの仕組み - めもめも

    何の話かというと Kubernetesの環境をセットアップする際は、コンテナ間で通信するための内部ネットワークを用意する必要があり、このためのツールとして、Flannelがよく利用されます。この時、バックエンドにVXLANを指定すると、物理ネットワークの上にVXLANによるOverlay方式で内部ネットワークが構成されます。 ここでは、Flannelが構成する内部ネットワークの仕組みを解説しつつ、VXLANについて学んでみたいと思います。RHEL7.1でKubernetes+Flannelの環境を構築する手順は、下記を参照ください。 RHEL7.1でKubernetesを実体験(構築編) Flannelが構成する内部ネットワーク 上記の手順で環境構築すると、下図のように内部ネットワークが用意されます。各ノード(Minion)には、VXLANデバイス「flannel.1」が作成されて、VXL

    FlannelのVXLANバックエンドの仕組み - めもめも
    kimulla
    kimulla 2020/05/21
  • 実践 OSSことはじめ / First Step for OSS Contribution

    OSSへの貢献に関して社内の勉強会で発表しました。 OSSへの貢献に関心のある方の参考にしてください。

    実践 OSSことはじめ / First Step for OSS Contribution
    kimulla
    kimulla 2020/04/24
  • コーディング面接対策のために解きたいLeetCode 60問

    自分がコーディング面接対策のために解いてよかった LeetCode の問題をコンセプトごとにまとめました。カバーするコンセプトは LinkedList Stack Heap, PriorityQueue HashMap Graph, BFS, DFS Tree, BT, BST Sort Dynamic Programming Binary search Recursion Sliding window Greedy + Backtracking です。 これらの問題が 30 分以内に実装できれば面接の準備は整ったと言っていいと思います。Easy と Medium で問題は構成されてます。進捗を管理するためにGoogle Spreadsheetを用意しました。コピペしてご自由にお使いください。 これらの問題は、LeetCode のリスト機能でも公開されています。クローンすれば自分がすでにど

    コーディング面接対策のために解きたいLeetCode 60問
    kimulla
    kimulla 2020/04/23
  • KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~

    VMMの高速化について学ぶ過程でKVMのコードを読んだので、 メモ代わりに内部構造の解説記事を書きました。 KVMはqemuと連携して動作するため、以前私が書いたQEMU internals( http://rkx1209.hatenablog.com/entry/2015/11/15/214404 ) も合わせてご参照ください。また記事はある程度システムプログラムに慣れており、 VT-xや仮想化の基アーキテクチャは知っている物として進めます。 1.qemu-kvm,kvmの初期化 では早速見て行きましょう。まずはKVMの初期化の入り口となるqemu-kvmサイドから見ていきます。(ちなみに現在qemu-kvmはqemu家に統合されておりconfigを変えることでkvmを有効化する仕様になっています) qemuは/dev/kvmを通してKVMとやり取りを行います。全体的なアーキテクチ

    KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~
    kimulla
    kimulla 2020/04/23
  • 電子情報学特論:Chromiumのアーキテクチャを解き明かす

    電子情報学特論: Chromium のアーキテクチャを解き明かす 〜 EEIC の授業が生きるプロダクトの世界〜 Kentaro Hara 2020 April (๑>ᴗ<๑) * * * *

    電子情報学特論:Chromiumのアーキテクチャを解き明かす
    kimulla
    kimulla 2020/04/14
  • 技術者であることを諦めない - プログラマでありたい

    だいぶ前にAWSのAmbassadorが集まっての懇親会がありました。年齢の話になって聞いていると、どうやら私が最年長グループでした。最年長!!おっさんです。私は42歳で、役割的な部分を考えれば、そうなるのも無理はないのかなという気がします。せっかくなので、ポエムっぽいブログエントリーを残しておきます。 SIerの中での技術者の生き方 技術者と書くのがよいのか、ITエンジニアと書くのがよいのかイマイチ解りませんが、ここでの技術者は、下記のように定義しておきます ※あくまでこの文脈の中だけの定義です。 主たる業務に対して、自身のもつITの技能・知識を持って業務を遂行している 業務で必要とされる技術の変化に追随しつづけている ここで重要なのが2つ目の技術の変化に対して追随し続けるという点です。一口にSIerといっても対象とする業種や業態によって必要とする技術は大きく違います。業務知識がとにかく

    技術者であることを諦めない - プログラマでありたい
    kimulla
    kimulla 2020/04/02
  • Kubernetes 1.18リリース。NUMAサーバでの最適化、ポッドのデバッグの容易化など

    オープンソースとして開発されているコンテナオーケストレーションツール「Kubernetes」の最新版「Kubernetes 1.18」正式版がリリースされました。 Check out #Kubernetes 1.18 - the first release of 2020 consisting of 38 enhancements https://t.co/nAX4q2OeUz pic.twitter.com/4AlnJu1gw8 — Kubernetes (@kubernetesio) March 26, 2020 今回のKubernetes 1.18では、サーバの物理構成を考慮したリソース配置を行う「Topology Manager」が新機能としてベータ版で投入されています。 これまでKubernetesにおけるリソースの配置にはCPUリソースの配置を担当するCPUマネージャと、仮想デ

    Kubernetes 1.18リリース。NUMAサーバでの最適化、ポッドのデバッグの容易化など
    kimulla
    kimulla 2020/03/30
  • BPF Performance Toolsを読んだ感想 - go_vargoのブログ

    BPF Performance Toolsを読んだので、感想ブログです。 先に感想を言っておくと「最高」でした。 BPF Performance Toolsとは? NetflixでKernel・パフォーマンスにかかわるチューニング・アーキテクチャを専門にしているBrendan Greggさんが書いたです。BPFのiovisorというTracing分野の第一人者でもあります。 www.brendangregg.com 2019年12月に発売したばかりなので、BPFの分野では最新のでしょう。他の著書に有名なとして(日語版の)「詳解システム・パフォーマンス」があります。 BPF Performance Toolsは「詳解システム・パフォーマンス」第二弾と言えるかもしれません。ちなみにページ数は880Pあり、Kindleで表示される読み終わるための平均的な時間は「27時間30分」で、大作R

    BPF Performance Toolsを読んだ感想 - go_vargoのブログ
    kimulla
    kimulla 2020/03/29
    『詳解 システム・パフォーマンス』が素晴らしい本だったし期待大(積読
  • How are Unix pipes implemented?

    This article is about how pipes are implemented the Unix kernel. I was a little disappointed that a recent article titled “How do Unix pipes work?” was not about the internals, and curious enough to go digging in some old sources to try to answer the question. What are we talking about? Pipes are “perhaps the single most striking invention in Unix” — a defining characteristic of the Unix philosoph

    How are Unix pipes implemented?
    kimulla
    kimulla 2020/03/29
  • sh の組み込みコマンド read は遅い

    2020.3.29 00:11 バッファサイズと shcat の来の意図に関して文末に追記 まとまった文章を書く機会が減ってしまって、これではいかんと久しぶりに更新。 大学院に入った 19 年前。担当していた大学院生から研究室の計算機環境の管理を引き継いだ。動機は単純で、Unix 系 OS の管理に興味があったからだった。研究室では過去の管理者が構築したメールサーバが引き継がれていて、詳しいひとはすでにいなくなっていた。Unix 系 OS はデスクトップ用途で使われておらず、学生はほぼ全員、当時現役だった管理者が Windows NT で構築したファイルサーバと数台の Windows クライアントマシンを使っていた。 Windows の環境に問題があるわけではなかったが、クライアントマシンは台数が少なく、取り合いになっていた。ネットワークも共有フォルダがあるだけで、認証やホームディレクト

    kimulla
    kimulla 2020/03/29
  • Docker/Kubernetes で PID 1 問題を回避する

    はじめにPID 1 問題というのは、コンテナを実行した際にアプリケーションのプロセスが PID 1(プロセス番号が1番)で実行されることで、コンテナに対して SIGTERM などのシグナルを送信してもコンテナ内のプロセスが正常に終了しないというものです。ここでは2020年3月現在でこの PID 1 問題を回避する方法を DockerKubernetes のそれぞれで紹介します。 TL;DRアプリケーションが「明示的にシグナルをハンドリングするようにする」、または「PID 1 で実行されないようにする」の2つの回避策があるアプリケーションプロセスが PID 1 で実行されないようにする場合、Docker では Tini のような軽量 init を使う、もしくは Docker 1.13 以上の場合は docker run の --init オプションを使うで問題を回避できるKuberne

    Docker/Kubernetes で PID 1 問題を回避する
    kimulla
    kimulla 2020/03/28
  • 【翻訳記事】デプロイ戦略の定義 - そこに仁義はあるのか(仮)

    この記事は2017/11の以下のブログ記事の翻訳です。 blog.itaysk.com まずはじめに、翻訳を快く許可していただいた@itayskさんに感謝いたします。 3年前の記事ですが、デプロイ戦略についてここまで網羅的にまとめられた記事が日語で見つけられなかったので翻訳してみようと思いました。 初めての翻訳記事であり、かつ翻訳時に多少の意訳を含んでいます。私の翻訳ミスがある可能性も十分にご了承ください。 何か間違いやわかりにくいところがあれば、コメントいただけますと幸いです。 無謀なデプロイ (Reckless Deployment) ローリングアップグレード (Rolling Upgrade) ヘルスチェックと監視 ロールバック 後方互換性 ちなみに ブルーグリーンデプロイ (Blue/Green Deployment) ドレイン スイッチバック ステージ ちなみに カナリアデプロ

    【翻訳記事】デプロイ戦略の定義 - そこに仁義はあるのか(仮)
    kimulla
    kimulla 2020/03/24