ピッツバーグとクリーブランドのDockerコンサルティングとサポート

KawaConnectは、ペンシルベニア州ピッツバーグとオハイオ州北東部のクリーブランド周辺の企業が、DockerとDocker Composeでアプリケーションをパッケージ化、デプロイ、保守するのを支援します。デプロイ、プロキシ、バックアップ、更新手順を構築し、その後のサポートも行います。

アプリケーションについて相談する LinuxとKubernetes
データセンターに並ぶラックマウントサーバーの列

このサービスで扱うプラットフォーム

Dockerで行うこと

アプリケーションをパッケージ化し、そのまわりに本番デプロイに必要なものを構築します。

アプリケーションのコンテナ化

アプリケーションとその依存関係を、毎回同じ方法でビルドされるイメージにパッケージ化します。

Docker Composeのデプロイ

Composeファイルにサービス、ネットワーク、ボリュームを記述するため、アプリケーション全体を1つの単位として起動および再起動できます。

リバースプロキシとTLS

複数のアプリケーションに対する1つの入口を用意し、HTTPS証明書を自動で発行および更新します。

レジストリとCIビルド

プライベートなイメージレジストリと、変更のたびにイメージをビルド、タグ付け、公開するGitLab CIパイプラインを用意します。

ボリュームのバックアップ

永続データをオフサイトにバックアップし、復元テストを行います。

セキュリティアップデート

ベースイメージの再ビルドとホストへのパッチ適用を定期的に行い、元に戻す手段も確保します。

アプリケーションのコンテナ化

アプリケーションをコンテナ化する前に、何を読み込み、何を書き込み、どのポートを使い、起動時に何が必要かを調べます。コードと実行環境は使い捨てにできます。一方、データベースとアップロードされたファイルは保持する必要があるため、コンテナの内部ではなく、名前付きボリュームまたはバインドマウントに置きます。

データベースのパスワードなどのシークレットは、イメージやバージョン管理に含めません。コンテナの起動時に渡します。

業務アプリケーション向けのDocker Compose

ホストが1台なら、Docker Composeが適した手段であることが多くあります。1つのファイルでアプリケーション、データベース、キャッシュを定義し、1つのコマンドですべてを起動できます。

  • リバースプロキシとTLS:プロキシがHTTPSを終端し、ホスト名でルーティングし、証明書を更新するため、アプリケーションが直接公開されることはありません。
  • 再起動の動作:再起動ポリシーとヘルスチェックにより、クラッシュや再起動のあとにサービスが復帰します。
  • 監視:稼働チェックとログは、他のシステムと同じダッシュボードに集約されます。

イメージレジストリとCIビルド

ノートパソコンでイメージをビルドしてサーバーにコピーする方法は、1人を超えると運用が追いつきません。当社は、プライベートレジストリと、コードが変更されるたびにイメージをビルドし、バージョンでタグ付けして公開するGitLab CIパイプラインを用意します。デプロイでは、タグ付けされた既知のイメージを取得し、ロールバックは前のタグを指定するだけで済みます。

バックアップとセキュリティアップデート

コンテナは使い捨てですが、ボリュームはそうではありません。当社はボリュームとデータベースを定期的にバックアップし、コピーをオフサイトに送り、復元テストを行います。データベースのコンテナでは、稼働中のサービスからファイルをコピーするのではなく、データベース自体のダンプまたはバックアップ機能を使います。バックアップとディザスタリカバリサービスをご覧ください。

セキュリティアップデートは2つの層に分かれます。ホストのOSにはパッチ適用が必要で、イメージは、そのベースイメージやライブラリが修正されたら再ビルドが必要です。当社は両方を計画的に実施し、結果をテストし、以前のバージョンも利用できる状態に保ちます。Dockerホストは、Proxmox上の仮想マシンとして動かすことがよくあります。

Kubernetesへ移行するべき時期

Docker Composeは1台のホストで動作します。そのホストを失うことが許容できなくなった場合や、サービスを複数のマシンに分散させ、ダウンタイムなしで更新し、マシンが故障したら別の場所で再起動する必要が出た場合は、Kubernetesを検討してください。クラスターは運用の手間が増えるため、当社はそれが必要な場合にのみ推奨します。その段階で、LinuxとKubernetesのコンサルティングで説明しているクラスターにワークロードを移行します。

導入の進め方

  1. ヒアリング。アプリケーションの機能と稼働場所を確認します。
  2. 作業範囲の文書化。コンテナ、プロキシ、バックアップ、アップデートの計画をまとめます。
  3. 構築と引き渡し。デプロイし、復元をテストして、運用方法を文書化します。
  4. 継続サポート。任意で、担当エンジニアが付きます。

1営業日以内にご返信します。オフィスはペンシルベニア州のCoraopolisとBeaver Fallsにあります。クリーブランド周辺の現地作業は、プロジェクトに合わせて日程を調整します。

Dockerサポートに関するご質問

Docker Composeは本番環境で十分ですか?

1台のホストで動かす多くの業務アプリケーションでは十分です。ただし、バックアップ、監視、パッチ適用の手順が整っていることが条件です。ホスト間のフェイルオーバーはありません。

自社で開発していないソフトウェアもコンテナ化できますか?

多くの場合は可能です。多くのアプリケーションはコンテナイメージを公開しており、当社が設定とバックアップを行います。独自開発のソフトウェアは、当社でパッケージ化するか、お客様の開発者と協力して進めます。

他社が構築したDockerサーバーを引き継げますか?

はい。変更を加える前に、コンテナ、ボリューム、証明書を棚卸しし、バックアップを確認し、見つけた内容を文書化します。

こんな方におすすめです

  • 再構築や更新が難しい1台のサーバーでアプリケーションを動かしている企業
  • 再現可能なデプロイと、追跡できるバージョン管理された構成を求めるチーム
  • ユーザー数課金のソフトウェアを、自社でホストするオープンソースツールに置き換える企業
  • イメージのビルドとレジストリが必要な開発チーム

関連ガイド

ナレッジベースの、わかりやすい解説です。

DockerKubernetesLinuxGitLabGit

アプリケーションをコンテナ化する

何を、どこで動かしているかをお知らせください。全米にリモートで対応し、ピッツバーグとクリーブランド周辺では予約制で現地訪問します。

相談を始める