タグ

ブックマーク / qiita.com (415)

  • Kubernetes: コンテナが起動するまでの各コンポーネントの流れ - Qiita

    kubectl create -f x.yamlでReplication Controllerを作成しコンテナが起動するまでに、各コンポーネントがどのように動作するかまとめてみました。Kubernetes 1.2時点での情報です。各コンポーネントの概要は、Kubernetes: 構成コンポーネント一覧をご覧ください。 シーケンス図 各コンポーネントはAPIサーバーのリソースを監視(watch)して非同期に動作するので、実際のアクセスの方向はコンポーネントからAPIサーバーになります。 kubectl createによるReplication Controller作成 kubectl create -f x.yamlでReplication Controllerを作成を実行すると、内部ではAPIサーバーのPOST /api/v1/namespaces/{namespace}/replicat

    Kubernetes: コンテナが起動するまでの各コンポーネントの流れ - Qiita
  • Kubernetes 1.2の変更点 - Qiita

    Kubernetesのv1.2のmilestone にあるissue/PRと release-1.1とrelease-1.2のブランチのdiffからKubernetes 1.2に入るであろう主な変更点をまとめてみました。Kelsey HightowerさんのKubeCon2016 EUでの1.2のリリースに関するtweetによると、リリースは3月末を予定しているようです。 他の参考情報 kubernetes-dev ML Kubernetes 1.2 Timelineスレッド Kubernetes GitHub Wiki Release-1.2 GCP Podcast #16 Kubernetes 1.2 with Kelsey Hightower 全体的なもの ConfigMapが実装された 複数の設定をまとめたオブジェクトで、volumeや環境変数としてPodに渡すことができるもの 公

    Kubernetes 1.2の変更点 - Qiita
  • Kubernetes の学習 (3) ~ ラベル、Replication Controller の作成 - Qiita

    ラベルとは? Kubernetes 上のオブジェクト(Podなど)に付けることができる Key/Value ペアの文字列で、オブジェクトに任意のメタ情報のようなものを持たせることができる。Pod が複数ある場合にそれぞれにラベルを付けることにより、Pod をグループ化したり、特定の Pod を抽出することができる。 例えば、次のような2つの Pod の定義があるとする。 pod-with-label1.yamlapiVersion: v1 kind: Pod metadata: name: pod1 labels: app: petshop ← ラベル(Key = app, Value = petshop) env: production ← ラベル(Key = env, Value = production) spec: containers: - name: container1

    Kubernetes の学習 (3) ~ ラベル、Replication Controller の作成 - Qiita
  • Kubernetes: Deployment の仕組み - Qiita

    Deploymentはローリングアップデートやロールバックといったデプロイ管理の仕組みを提供するものです。 下記の図のようにDeploymentはReplicaSetを生成・管理し、ReplicaSetはPodを生成・管理します。 ReplicaSet(ReplicationControllerの後継)はPodTemplateと呼ばれるPodのテンプレートをもとに、Podを指定された数(レプリカ数)に調整・管理を行う仕組みです。Podがレプリカ数より足りない場合はPodを追加し、多い場合はをPodを削除します。この仕組みによってノードの障害やアプリケーションのクラッシュでPodが足りなくなった際も自動的にPodが追加され、セルフヒーリングが実現されています。 Deploymentはコンテナイメージのバージョンアップなどアップデートがあった場合、新しい仕様のReplicaSetを作成し、新旧

    Kubernetes: Deployment の仕組み - Qiita
  • メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解する - Qiita

    メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解するJavaバグ脆弱性トラブルシューティングjconsole 概要 Webアプリケーションの開発や保守をしていると、いろいろなバグに遭遇します。メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ等々、バグは様々です。こういったバグは、実際にコードを書いて、実行・再現させてツールで解析してみると理解が深まります。 ということで、いろいろなバグを実装したWebアプリケーションをつくってみました。現時点では、以下を簡単に再現できます。 メモリリーク (Javaヒープ領域) メモリリーク (Permanent領域) メモリリーク (Cヒープ領域) デッドロック (Java) デッドロック (SQL) 完了しないプロセスの待機 無限ループ リダイレクトループ JVM

    メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解する - Qiita
  • CoreOSのoverlayfsでyumエラー - Qiita

    結論 とりあえず Dockerfile で RUN yum ..... | true とすれば回避できる. 経緯 CoreOS が不安定要因らしき btrfs をあきらめて EXT4+OverlayFS にデフォルトを切り替えて数ヶ月.手元環境でも docker build で再起動なんてのが頻発していたので,再インストールを実施.いくつか余計な地雷は踏みつつも無事以降.負荷かけまくっても落ちないぜー,と喜んでいたら CentOS 系の build が通らない問題に遭遇. Rpmdb checksum is invalid: pkg checksums: libXdamage-0:1.1.3-4.el6.x86_64 INFO[0669] The command [/bin/sh -c yum --enablerepo=rpmforge install -y lha] returned a

    CoreOSのoverlayfsでyumエラー - Qiita
    masudaK
    masudaK 2017/04/03
    overlayfsやめてみるかなぁ
  • スキーマ定義に対するテストとそのメトリクス - Qiita

    近年、swagger(Open API)やswaggerの参考になったJSON Schemaにより、Webサービスに対してmachine readableなスキーマを定義し、そこからのツールチェインでAPIドキュメンテーション・クライアント・APIスタブ・リクエストバリデータ等を自動生成可能になり、これにより、品質が高く効率的な開発ができるようになりました。 しかし、実際のところJSON Schemaやswaggerで書かれたスキーマをきちんと書くことは非常に難しく、意図したスキーマになってないことが多くあります。一般に欠陥の発見が後になればなるほどその修正コストは非常に高くなります。特に、スキーマからツールチェインを用いていろいろな箇所で利用する場合にはより大変になります。 そこで、スキーマが意図通りに定義できているかということを確認するために、スキーマに対して実データを当てはめてみるよ

    スキーマ定義に対するテストとそのメトリクス - Qiita
  • Goのhttpルーター「Chi」の紹介 - Qiita

    少し遅れてしまいましたが、Origami Advent Calendar 2016の21日目の記事になります。 OrigamiではGo言語をメインの言語として、APIなどのHTTPアプリケーションサーバを作製しています。 golangでHTTPアプリケーションを作成するときには フレームワークを特に導入しなくとも、 net/httpとそれに準拠したライブラリを組み合わせれば十分だと考えています。 基的にはnet/httpの機能の組み合わせで大抵の機能は十分表現できます。 ただし、ルーティングについては標準のhttp.ServeMuxだとちょっとつらいことが多いと思います。 標準のAPIに準拠しつつ、実アプリケーションでも十分な機能を備えたルーティングライブラリはいくつかあります。 Origamiのいくつかのアプリケーションサーバでは、そのうちのchiを利用しています。 chi chiはn

    Goのhttpルーター「Chi」の紹介 - Qiita
    masudaK
    masudaK 2017/03/09
    便利なんかなー
  • Go言語でPHPのvar_dumpやJavaScriptのconsole.log的なもの - Qiita

    デバッグするとき値の中身を見たいもの。Go言語にもPHPの var_dump やJavaScriptの console.log のように、値の中身をプリントすることができる関数がある。 関数 意味 例

    Go言語でPHPのvar_dumpやJavaScriptのconsole.log的なもの - Qiita
    masudaK
    masudaK 2017/03/09
  • [Go] 構造体の初期化方法まとめ - Qiita

    はじめに 構造体の初期化方法の違いについてまとめました。 実行環境 Go Playground (go1.3.1) 記事で使用する構造体 以下の構造体を例に説明していきます。 // // 親クラス(のようなもの) // type Animal struct { Name string Age int } // // 子クラス(のようなもの) // type Cat struct { Animal // 構造体の埋め込み(以下の「補足」を参照) ServantName string }

    [Go] 構造体の初期化方法まとめ - Qiita
    masudaK
    masudaK 2017/03/09
    "new(Animal) は、&Animal{} と同じ意味です"
  • Go言語で幸せになれる10のテクニック - Qiita

    はじめに Go近辺を徘徊していて見つけたブログポスト。 Ten Useful Techniques in Go Goな方々には常識なのかも知れないけど、Go初心者の私にとっては面白かったのでちょっとまとめてみる。 紹介されているのは以下の10個の項目。 Use a single GOPATH Wrap for-select idiom to a function Use tagged literals for struct initializations Split struct initializations into multiple lines Add String() method for integers const values Start iota with a +1 increment Return function calls Convert slices,maps,et

    Go言語で幸せになれる10のテクニック - Qiita
    masudaK
    masudaK 2017/03/09
  • DBのint枯渇を目の前にした僕らは - Qiita

    MySQLのint型は符号付きで -2147483647〜2147483647 の範囲をサポートし、レコードを記録する際にこの範囲を超えて記録しようとするともちろんエラーとなります。 これは、長い運用の末にデータが膨大になり、ついにintのサポート範囲が枯渇寸前となった話です。 方針 DBAWS Auroraを使用しており、アプリケーションはRailsで構築されています。RailsのMigrationはデフォルトでidカラムをAUTO INCREMENTのint型で作成します1。サービスの特徴としては他のサービスと比較すると高トラフィックに晒されるもので、DBに大量のログを記録する必要がありテーブルによっては1ヶ月で1億レコード以上記録されるものもあります。対処方法を検討し始めた時にはidは既に18億を超えており、やるべきことは対象のテーブルのidカラム、及びそのidを関連として保持して

    DBのint枯渇を目の前にした僕らは - Qiita
    masudaK
    masudaK 2017/03/01
    ステージング環境もデータ増やしたほうが良かったのではないのだろうか
  • Docker導入のための、コンテナの利点を解説した説得資料 - Qiita

    何がしたいのか 最近はDockerを導入したサービスがガンガン出てきている一方、現場でのDocker導入に足踏みをしているところもあると思います。 今回はDockerを導入するために、「コンテナを利用するとこんなに便利!!」という主張を展開することで、現場でのDocker導入の推進をしたいと思います! まあ、スライドモードを使いたかったんですよ TL;DR コンテナと仮想環境は別物だよ コンテナでの運用するといいことがたくさんあるよ どんな環境でも同じように動かせる デプロイ・ロールバックが簡単 システムが簡単に把握できる あいのり環境もいける コンテナとは コンテナ ≒ VM ?? Docker導入しようって言うとこんな話を聞くことがある コンテナってVMみたいなもんでしょ? VMの上にまたVM作るの? AMI使ってるから、わざわざコンテナにする必要がない コンテナ != VM VMとコ

    Docker導入のための、コンテナの利点を解説した説得資料 - Qiita
  • 外国人が語る:英語でクラスやメソッド等の名付け方 - Qiita

    アメリカ人です。 Hello 👋 この記事の目的 多くの日人は自分の英語力には自信がないではないでしょうか。残念ながら「英語がわからん」、「英語が全然できない」という声をしょっちゅう聞いています。でも、今まで英語ができて意味がちゃんと伝わる何人かの日人に会ったがあります。完璧な英語ではないけど(外国人も英語でミスる時もある...)、がんばって話そうとするので充分仕事ができる人たち。そういうがんばる姿勢はオープンソースのプログラムや英語圏のプログラムに手を出すためには一番大事なことだと思います(外国人側もすごく助かります)。日文化では「私はできる!」と自慢することは少ない中、この記事を通して、流暢に話せなくても自分のプログラミングの命名の仕方にはちょっとだけでも自信を持たせたいなと思います。完璧じゃなくていいです。Let's go! 合わせて読んでいただきたい 【日エンジニア

    外国人が語る:英語でクラスやメソッド等の名付け方 - Qiita
  • Dockerで作る最強のWeb開発環境2017 - Qiita

    概要 Web アプリケーションを開発しているときに、開発環境に MySQL や Redis を用意しバージョンを揃え、いや Redis はキャッシュにしか使ってないし必須じゃないから開発環境に無い場合のコードも書いて…… というようなことを2017年にもなってやりたくないので、Docker を使って良い感じにやっていきます。 DockerDocker Compose に関する基的な説明は割愛するので、公式ドキュメントをあたってください。 目標 コマンド一発で必要なサービス群が全て立ち上がるようにする Docker Compose を使い、1サービスごとに1コンテナを立ち上げる vendor や node_modules は、ホスト側のものと完全に分離する。OS が違う場合、Native extension があると問題の原因になるので避けたい。 ホスト側ではエディタと git さえ

    Dockerで作る最強のWeb開発環境2017 - Qiita
    masudaK
    masudaK 2017/02/15
    ライブラリ系ってわりと扱い面倒なんだよなー
  • 例の機械学習コースが良いらしいと知りながらも2年間スルーし続けたがやはり良かったという話 - Qiita

    先日、オンライン学習サイトCourseraの"Machine Learning"コースを修了しました。これが最高に勉強になったわけですが、機械学習に興味があって情報収集を始めてる人にとって、「Courseraの機械学習コースがおすすめですよ」という話は 「はい、知ってます」 という感じではないでしょうか。 (たとえば、Qiitaで検索してみると、以下のような同コースに関連する超人気記事が出てきます) 数学を避けてきた社会人プログラマが機械学習の勉強を始める際の最短経路 - Qiita 機械学習をゼロから1ヵ月間勉強し続けた結果 - Qiita 僕もそんな感じで、幾度となく人や記事に同コースを薦められたりしつつ、たぶん2年ぐらいスルーし続けてきたと思います。 しかし約2ヶ月前、ひょんなきっかけから講座を始めてみて、やはり評判通り最高だったと思うと同時に、僕と同じような感じでこのコースが良い

    例の機械学習コースが良いらしいと知りながらも2年間スルーし続けたがやはり良かったという話 - Qiita
  • Consumer-Driven Contracts testingを徹底解説! - Qiita

    この記事は リクルートライフスタイル Advent Calendar 2016 の14日目の記事です。 はじめに みなさんmicroserviceを進めていますか? リクルートライフスタイルでも徐々にmicroserviceの流れが押し寄せつつあります。 今回はそんなmicroserviceに役立つConsumer-Driven Contract testingというテスト方法について書こうと思います。 当はライブラリを使って実演までしたかったのですが…この記事の量が多くなってしまい、趣旨がずれてしまうので別の機会に書こうと思います。 microserviceのテストの問題点 microserviceのテストの問題点についてこれから説明していきます。 まずは複数のmicroserviceでできた以下のようなサービスがあるとします。 さて、ここでv1というmicroserviceに対してテ

    Consumer-Driven Contracts testingを徹底解説! - Qiita
  • dockerのコマンド補完 - Qiita

    Dockerで試行錯誤しているとき、コンテナを作ったり潰したりします。 コンテナを潰すにはdocker killコマンドにコンテナIDかコンテナ名を渡すわけですが、ここの補完が効いてくれたらいいのにと思って探してみました。 Docker公式リポジトリから頂いてくる docker/contrib/completion/ GitHubDocker公式リポジトリの上記パスに、各種シェル用の補完設定ファイルが入っています。 私の環境(zsh+Prezto)の場合は、zsh用の_dockerファイルを~/.zprezto/modules/completion/external/srcに置きました。 補完が効いている状態でdocker killを叩いてTABを押すと こんな感じに補完候補が出てきます。 便利。 Register as a new user and use Qiita more con

    dockerのコマンド補完 - Qiita
  • dockerはOS上のディスク領域をどう使っているのかまとめた - Qiita

    dockerのディスクの使用方法 dataとmetadata dockerはディスクの管理方法として、dm-thinというDeviceMapperの機能を使います。 詳細は以下を参考にして下さい。 dm-thinの概要 Docker専用のLinux - RHEL Atomic Hostが登場! dm-thinではデータ領域とメタデータ領域が必要なため、dockerは/var/lib/docker/devicemapper/devicemapperにdataというデバイスファイルイメージと、metadataというデータを作成します。 fileコマンドで確認するとdataはext4 filesystemです [root@master mnt]# ls -lh /var/lib/docker/devicemapper/devicemapper 合計 8.5G -rw-------. 1 root

    dockerはOS上のディスク領域をどう使っているのかまとめた - Qiita
  • 新卒エンジニアが上司からの機能変更に揉まれまくって気が付いた事 - Qiita

    僕は現在大手人材会社で新卒エンジニアとして働いている。WEBエンジニアとして、フロントエンド、サーバーサイドの設計から実装、テストまで担当している。といっても、作ってるシステム自体はSI案件でなく、自社開発の中規模アプリケーションだ。だから、新卒でも(文系出身)でも担当範囲が広い、と考えている。 チームは10人程度で、WebとiOSに分かれている。僕はWEB側で4ヶ月経験を積ませて頂いた。jQueryでのDOM操作も慣れてきたし、コードも汎用関数に纏める事で軽量化を図ることが出来るようになってきた。スコープも意識しているし、設計に関しては機能からDB設計を行えるようになった。高度なクエリはまだ書く事は出来ないが、数十〜百行程度のクエリは普段書いている。インフラ系の知識に関しても駆け出しレベルではあるが蓄積されてきた。自分で開発環境も整える事が出来る。 そんな僕が、最近学んだ経験をここで話す

    新卒エンジニアが上司からの機能変更に揉まれまくって気が付いた事 - Qiita
    masudaK
    masudaK 2017/01/26
    大変。