Dockerの登場により急速に普及をはじめたコンテナ型仮想化の技術は現在、DockerコンテナそのものからKubernetesを軸としたオーケストレーションツールへと主役が移ってきています。 その様子は2017年12月に公開した記事「Dockerコンテナ時代の第一章の終わり、そして第二章の展望など」で紹介しました。 この記事の公開から2年が経過し、現在のコンテナ型仮想化技術は、マイクロサービスやクラウドネイティブなどの文脈とともにエンタープライズな分野でも使われるメインストリームな技術へと確実に進み続けています。 本記事では前記事で描いたDockerコンテナ時代の第一章に続く第二章として、コンテナ型仮想化技術のここ2年半ほどの動向をPublickeyなりにまとめてみました。 Docker 1.0の到達とKubernetesの登場 まずはDockerとKubernetesの登場とその後の主要
更新(2019年10月30日)初回投稿から3ヶ月経ちました。 この3ヶ月で新しく得た知見を基に、内容を一部アップデートしました。 今回やることGoのディレクトリ構成についていろいろと調べる中で、 こちらの資料 がとても分かりやすかったので、 今回はこちらを参考にGoでWeb APIを作っていきたいと思います。 加えて、本プロジェクトでは、DDD と レイヤードアーキテクチャ を取り入れます。 (内容はほぼレイヤードアーキテクチャになってしまいましたが…) DDD については、「DDD を Go とレイヤードアーキテクチャでやるなら、こんな感じかな?」という個人の見解レベルです。 パッケージ構成の参考になれば幸いです。 (なので、ドメインモデルは重度の貧血症) 環境MacOS Mojave 10.14.6Go 1.12.5なお、今回は、Gin や Mux などといったフレームワークは使わず、
はじめに この度、長年連れ沿ったVimとお別れをすることにしました。移行先はVSCodeです。 正直に言うと、かなり前からVSCodeへの移行は検討していました。実際過去に何度もVSCodeへの完全移行は試しており、その度に挫折してきていました。 今回は挫折していた理由も含めてお話ししていこうと思います。 なぜ移行しなかったのか まず第一に、Vimをあまり普段使いしていないひとは驚くかもしれませんが、VSCodeに備わっている機能のうち、Vimではまったく出来ていなかったことというのは多くありません。Vimのlanguage serverとの連携は強固であり、定義ジャンプや補完・自動フォーマットといった動作もVSCodeとかわらず実現できます。Vimの中からGit関連の操作をすることも、ファイル操作も、デバッガを動かすことも、スニペット機能もmarkdownのプレビューも出来ていました。
golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く