まず最初に、Docker Hub (オンライン) から ESPHome Docker イメージをプルします。
docker pull esphome/esphome
次に、ESPHome ウィザードを開始します。このウィザードでは、デバイスの種類、デバイス名、WiFi 認証情報について尋ねられ、最後にすべての構成を含む yaml ファイルが生成されます。
docker run --rm -v "${PWD}":/config -it esphome/esphome wizard stl.yaml
dmesg | grep ttyUSB
docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB1 -it esphome/esphome run stl.yaml
python3 --version
pip3 install wheel esphome
pip3 install --user esphome
esphome wizard stl-python.yaml
esphome run stl-python.yaml
トップに戻る
OpenWrt プロジェクトは、組み込みデバイスを対象とした Linux オペレーティング システムです。 OpenWrt は、単一の静的ファームウェアを作成しようとするのではなく、パッケージ管理を備えた完全に書き込み可能なファイルシステムを提供します。これは主に組み込みデバイスでネットワーク トラフィックをルーティングするために使用されます。
上記のリンクに移動して、Raspberry PI に適切な OpenWrt イメージをダウンロードします。
Raspberry Pi Imager は、Raspberry Pi OS やその他のオペレーティング システムを microSD カードにインストールし、Raspberry Pi で使用できるようにするための迅速かつ簡単な方法です。
CM4 モジュール用 Raspberry Pi ルーター ボード (価格: 55 米ドル) は、Raspberry Pi Compute Module 4 をベースにした拡張ボードです。Raspberry Pi CM4 に 2 つのフルスピード ギガビット ネットワーク ポートをもたらし、より優れたパフォーマンス、より低い CPU 使用率、より高い安定性を提供します。 USBネットワークカードに比べて長時間作業が可能です。 Raspberry Pi OS、Ubuntu Server、その他の Raspberry Pi システムと互換性があります。
CM4モジュール用Raspberry Piルーターボード
技術仕様:
トップに戻る
ウォッチドッグ タイマー (WDT) は、マイクロコントローラー (MCU) プログラムを監視して、プログラムが制御不能になったり、動作が停止したりしていないかどうかを確認するタイマーです。
ウォッチドッグを有効にするには、nano、vim、gedit などのテキスト エディターを使用して/boot/config.txtにdtparam=watchdog=onを追加してブート パラメーターを変更する必要があります。また、ウォッチドッグ パッケージをインストールし、それが起動できるようにします。起動する。また、これらの設定を有効にするために、必ず Raspberry Pi を再起動してください。
pi@raspberrypi:~ $ sudo apt install watchdog
pi@raspberrypi:~ $sudo systemctl enable watchdog
ウォッチドッグの設定ファイルは/etc/watchdog.confにあります。
max-load-1 = 24
watchdog-device = /dev/watchdog
realtime = yes
priority = 1
WTD サービスを開始するには:
pi@raspberrypi:~ $ sudo systemctl start watchdog
ウォッチドッグのステータスを確認します。
pi@raspberrypi:~ $ sudo systemctl status watchdog
サービスを停止するには:
pi@raspberrypi:~ $ sudo systemctl stop watchdog
トップに戻る
Pi-Shop US の Raspberry Pi ケース
The Pi HutのRaspberry Piケース
X825 拡張ボードは、最新の Raspberry Pi 4 モデル B に完全なストレージ ソリューションを提供し、最大 4TB の 2.5 インチ SATA ハードディスク ドライブ (HDD) / ソリッド ステート ドライブ (SSD) をサポートします。
Sabrent M.2 SSD [NGFF] - USB 3.0 / SATA III 2.5 インチ アルミニウム エンクロージャ アダプター
Samsung 970 EVO 250GB - NVMe PCIe M.2 2280 SSD
Western Digital 1TB WD ブルー SN550 NVMe 内蔵 SSD
SAMSUNG T5 ポータブル SSD
Samsung SSD 860 EVO 250GB mSATA 内蔵 SSD
Samsung 850 EVO 120GB SSD mSATA
トップに戻る
Grafana は、データのクエリと視覚化を可能にし、視覚化に基づいてダッシュボードを作成して共有できる分析プラットフォームです。 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres、Fluentd、Fluentbit、Logstash などの複数のソースからのメトリクス、ログ、トレースを簡単に視覚化します。
Grafana の入門
グラファナ コミュニティ
Grafana プロフェッショナル サービス トレーニング |グラファナ研究所
Grafana プロ トレーニング AWS |グラファナ研究所
グラファナのチュートリアル
UdemyのトップGrafanaコース
Grafana オンライン トレーニング コース | LinkedIn ラーニング
Grafana トレーニング コース - NobleProg
Coursera のメトリクスコースを視覚化するための Grafana のセットアップ
Grafana Cloud は、メトリクス、トレース、ログを Grafana と統合する、構成可能な可観測性プラットフォームです。 Prometheus、Loki、Tempo などの最高のオープンソース可観測性ソフトウェアを、可観測性スタックのインストール、保守、スケーリングのオーバーヘッドなしで活用します。
Grafana クラウド統合。出典: グラファナ
Grafana Enterprise は、自己管理環境で優れたスケーラビリティ、コラボレーション、運用、ガバナンスを提供する機能を含むサービスです。
Grafana エンタープライズ スタック。出典: グラファナ
Grafana Tempo は、オープンソースの高スケール分散 tarcing バックエンドです。 Tempo はコスト効率が高く、動作にはオブジェクト ストレージのみが必要で、Grafana、Loki、Prometheus と深く統合されています。
Grafana MetricTank は、Grafana Labs によって開発された Graphite 用のマルチテナント時系列プラットフォームです。 MetricTank は、大規模環境に高可用性 (HA) と効率的な長期保存、取得、処理を提供します。
Grafana Tanka は、Jsonnet 言語を利用した Kubernetes クラスター用の堅牢な構成ユーティリティです。
Grafana Loki は、Prometheus からインスピレーションを得た、水平スケーラブルで高可用性 (HA) のマルチテナント ログ集約システムです。
Cortex は、サーバーの障害によるグラフのギャップを発生させることなく、ユーザーが 1 か所で多くの Prometheus サーバーからメトリクスをクエリできるようにするプロジェクトです。また、Cortex を使用すると、長期的な容量計画とパフォーマンス分析のために Prometheus メトリクスを保存できます。
Graphite は、オープンソースの監視システムです。
トップに戻る
cURL は、さまざまなネットワーク プロトコル (HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP LDAPS、MQTT、POP3、POP3S、RTMP) を使用してデータを転送するためのライブラリとコマンド ライン ツールを提供するコンピュータ ソフトウェア プロジェクトです。 、RTMPS、RTSP、SCP、SFTP、SMB、SMBS、SMTP、または SMTPS)。 cURL は、自動車、テレビ、ルーター、プリンター、オーディオ機器、携帯電話、タブレット、セットトップ ボックス、メディア プレーヤーでも使用されており、100 億を超えるインストールで数千のソフトウェア アプリケーションのインターネット転送エンジンです。
cURL Fuzzer は、curl プロジェクトの品質保証テストです。
DoH は、DoH (DNS-over-HTTPS) の名前解決と検索のためのスタンドアロン アプリケーションです。
Authelia は、NGINX の背後で実行されているアプリケーションにシングル サインオン機能と 2 要素認証を提供するオープンソースの高可用性認証サーバーです。
nginx (engine x) は、HTTP およびリバース プロキシ サーバー、メール プロキシ サーバー、および汎用 TCP/UDP プロキシ サーバーであり、元々は Igor Sysoev によって作成されました。
Proxmox 仮想環境 (VE) は、エンタープライズ仮想化のための完全なオープンソース プラットフォームです。これには、単一のソリューションで VM とコンテナ、ソフトウェア デファインド ストレージとネットワーク、高可用性クラスタリング、すぐに使用できる複数のツールを簡単に管理できる組み込み Web インターフェイスが含まれています。
Wireshark は、ネットワークのトラブルシューティング、分析、通信プロトコルの開発によく使用される、非常に人気のあるネットワーク プロトコル アナライザーです。利用可能な他の便利な Wireshark ツールの詳細については、こちらをご覧ください。
HTTPie はコマンドライン HTTP クライアントです。その目標は、Web サービスとの CLI 対話を可能な限り人間に優しいものにすることです。 HTTPie は、テスト、デバッグ、および API および HTTP サーバーとの一般的な対話のために設計されています。
HTTPStat は、curl 統計をシンプルなレイアウトで視覚化するツールです。
Wuzz は、HTTP 検査用の対話型 CLI ツールです。 「cURL としてコピー」機能を使用して、ブラウザのネットワーク インスペクタからコピーされたリクエストを検査/変更するために使用できます。
Websocat は、高度な socat のような機能を備えた ws:// の netcat (またはcurl) のような、WebSocket のオンマンドライン クライアントです。
• Connection: In networking, a connection refers to pieces of related information that are transferred through a network. This generally infers that a connection is built before the data transfer (by following the procedures laid out in a protocol) and then is deconstructed at the at the end of the data transfer.
• Packet: A packet is, generally speaking, the most basic unit that is transferred over a network. When communicating over a network, packets are the envelopes that carry your data (in pieces) from one end point to the other.
パケットには、送信元と宛先、タイムスタンプ、ネットワーク ホップなどのパケットに関する情報が含まれるヘッダー部分があります。パケットの主要部分には、転送される実際のデータが含まれます。ボディまたはペイロードと呼ばれることもあります。
• Network Interface: A network interface can refer to any kind of software interface to networking hardware. For instance, if you have two network cards in your computer, you can control and configure each network interface associated with them individually.
ネットワーク インターフェイスは物理デバイスに関連付けられている場合もあれば、仮想インターフェイスの表現である場合もあります。ローカル マシンへの仮想インターフェイスである「ループバック」デバイスは、その一例です。
• LAN: LAN stands for "local area network". It refers to a network or a portion of a network that is not publicly accessible to the greater internet. A home or office network is an example of a LAN.
• WAN: WAN stands for "wide area network". It means a network that is much more extensive than a LAN. While WAN is the relevant term to use to describe large, dispersed networks in general, it is usually meant to mean the internet, as a whole.
インターフェイスが WAN に接続されている場合、通常、インターフェイスはインターネット経由で到達可能であると想定されます。
• Protocol: A protocol is a set of rules and standards that basically define a language that devices can use to communicate. There are a great number of protocols in use extensively in networking, and they are often implemented in different layers.
低レベルのプロトコルには、TCP、UDP、IP、ICMP などがあります。これらの下位プロトコルに基づいて構築されたアプリケーション層プロトコルのよく知られた例としては、HTTP (Web コンテンツにアクセスするため)、SSH、TLS/SSL、FTP などがあります。
• Port: A port is an address on a single machine that can be tied to a specific piece of software. It is not a physical interface or location, but it allows your server to be able to communicate using more than one application.
• Firewall: A firewall is a program that decides whether traffic coming into a server or going out should be allowed. A firewall usually works by creating rules for which type of traffic is acceptable on which ports. Generally, firewalls block ports that are not used by a specific application on a server.
• NAT: Network address translation is a way to translate requests that are incoming into a routing server to the relevant devices or servers that it knows about in the LAN. This is usually implemented in physical LANs as a way to route requests through one IP address to the necessary backend servers.
• VPN: Virtual private network is a means of connecting separate LANs through the internet, while maintaining privacy. This is used as a means of connecting remote systems as if they were on a local network, often for security reasons.
While networking is often discussed in terms of topology in a horizontal way, between hosts, its implementation is layered in a vertical fashion throughout a computer or network. This means is that there are multiple technologies and protocols that are built on top of each other in order for communication to function more easily. Each successive, higher layer abstracts the raw data a little bit more, and makes it simpler to use for applications and users. It also allows you to leverage lower layers in new ways without having to invest the time and energy to develop the protocols and applications that handle those types of traffic.
As data is sent out of one machine, it begins at the top of the stack and filters downwards. At the lowest level, actual transmission to another machine takes place. At this point, the data travels back up through the layers of the other computer. Each layer has the ability to add its own "wrapper" around the data that it receives from the adjacent layer, which will help the layers that come after decide what to do with the data when it is passed off.
One method of talking about the different layers of network communication is the OSI model. OSI stands for Open Systems Interconnect.This model defines seven separate layers. The layers in this model are:
• Application: The application layer is the layer that the users and user-applications most often interact with. Network communication is discussed in terms of availability of resources, partners to communicate with, and data synchronization.
• Presentation: The presentation layer is responsible for mapping resources and creating context. It is used to translate lower level networking data into data that applications expect to see.
• Session: The session layer is a connection handler. It creates, maintains, and destroys connections between nodes in a persistent way.
• Transport: The transport layer is responsible for handing the layers above it a reliable connection. In this context, reliable refers to the ability to verify that a piece of data was received intact at the other end of the connection. This layer can resend information that has been dropped or corrupted and can acknowledge the receipt of data to remote computers.
• Network: The network layer is used to route data between different nodes on the network. It uses addresses to be able to tell which computer to send information to. This layer can also break apart larger messages into smaller chunks to be reassembled on the opposite end.
• Data Link: This layer is implemented as a method of establishing and maintaining reliable links between different nodes or devices on a network using existing physical connections.
• Physical: The physical layer is responsible for handling the actual physical devices that are used to make a connection. This layer involves the bare software that manages physical connections as well as the hardware itself (like Ethernet).
TCP/IP モデルは、一般にインターネット プロトコル スイートとして知られており、よりシンプルで広く採用されているもう 1 つの階層化モデルです。これは 4 つの個別の層を定義しており、そのうちのいくつかは OSI モデルと重複しています。
• Application: In this model, the application layer is responsible for creating and transmitting user data between applications. The applications can be on remote systems, and should appear to operate as if locally to the end user.
通信はピアネットワーク間で行われます。
• Transport: The transport layer is responsible for communication between processes. This level of networking utilizes ports to address different services. It can build up unreliable or reliable connections depending on the type of protocol used.
• Internet: The internet layer is used to transport data from node to node in a network. This layer is aware of the endpoints of the connections, but does not worry about the actual connection needed to get from one place to another. IP addresses are defined in this layer as a way of reaching remote systems in an addressable manner.
• Link: The link layer implements the actual topology of the local network that allows the internet layer to present an addressable interface. It establishes connections between neighboring nodes to send data.
インターフェイスは、コンピュータのネットワーク通信ポイントです。各インターフェイスは、物理または仮想ネットワーク デバイスに関連付けられます。通常、サーバーには、イーサネットまたはワイヤレス インターネット カードごとに 1 つの構成可能なネットワーク インターフェイスがあります。さらに、「ループバック」またはローカルホスト インターフェイスと呼ばれる仮想ネットワーク インターフェイスを定義します。これは、1 台のコンピュータ上のアプリケーションやプロセスを他のアプリケーションやプロセスに接続するためのインターフェイスとして使用されます。多くのツールでは、これが「lo」インターフェイスとして参照されていることがわかります。
ネットワーキングは、さまざまなプロトコルを相互に重畳して機能します。このようにして、1 つのデータを、相互にカプセル化された複数のプロトコルを使用して送信できます。
Media Access Control (MAC) は、特定のデバイスを区別するために使用される通信プロトコルです。各デバイスは、インターネット上の他のすべてのデバイスと区別するために、製造プロセス中に一意の MAC アドレスを取得することになっています。ハードウェアを MAC アドレスでアドレス指定すると、最上位のソフトウェアが動作中に特定のデバイスの名前を変更する可能性がある場合でも、一意の値でデバイスを参照できるようになります。メディア アクセス コントロールは、定期的にやり取りする可能性が高いリンク層の数少ないプロトコルの 1 つです。
IP プロトコルは、インターネットの動作を可能にする基本的なプロトコルの 1 つです。 IP アドレスは各ネットワーク上で一意であり、これによりマシンがネットワーク上で相互にアドレス指定できるようになります。 IP/TCP モデルのインターネット層に実装されます。ネットワークは相互にリンクできますが、ネットワークの境界を越える場合はトラフィックをルーティングする必要があります。このプロトコルは、信頼性の低いネットワークと、動的に変更できる同じ宛先への複数のパスを前提としています。プロトコルにはさまざまな実装があります。現在最も一般的な実装は IPv4 ですが、利用可能な IPv4 アドレスの不足とプロトコル機能の向上により、代替手段として IPv6 の人気が高まっています。
ICMP: インターネット制御メッセージ プロトコルは、可用性またはエラー状態を示すメッセージをデバイス間で送信するために使用されます。これらのパケットは、ping やtraceroute などのさまざまなネットワーク診断ツールで使用されます。通常、ICMP パケットは、別の種類のパケットが何らかの問題に遭遇したときに送信されます。基本的に、これらはネットワーク通信のフィードバック メカニズムとして使用されます。
TCP: 伝送制御プロトコルは、IP/TCP モデルのトランスポート層に実装され、信頼性の高い接続を確立するために使用されます。 TCP は、データをパケットにカプセル化するプロトコルの 1 つです。次に、下位層で利用可能なメソッドを使用して、これらを接続のリモート エンドに転送します。一方、エラーをチェックし、特定の部分の再送信を要求し、情報を 1 つの論理部分に再構築してアプリケーション層に送信できます。このプロトコルは、3 ウェイ ハンドシェイクと呼ばれるシステムを使用して、データ転送の前に接続を確立します。これは、通信の両端が要求を確認し、データの信頼性を確保する方法に同意する方法です。データの送信後、同様の 4 ウェイ ハンドシェイクを使用して接続が切断されます。 TCP は、WWW、FTP、SSH、電子メールなど、インターネットの最も一般的な用途の多くに選ばれるプロトコルです。今日私たちが知っているインターネットは、TCP がなければ存在しなかったと言っても過言ではありません。
UDP: ユーザー データグラム プロトコルは、 TCP の一般的なコンパニオン プロトコルであり、トランスポート層にも実装されています。 UDP と TCP の基本的な違いは、UDP が提供するデータ転送の信頼性が低いことです。接続の相手側でデータが受信されたかどうかは検証されません。これは悪いことのように聞こえるかもしれませんが、多くの目的においては悪いことです。ただし、一部の機能にとっては非常に重要でもあります。データが受信されたことの確認を待ったり、データを強制的に再送信したりする必要がなく、UDP は TCP よりもはるかに高速です。リモート ホストとの接続は確立せず、単にデータをそのホストに送信し、それが受け入れられるかどうかは気にしません。 UDP は単純なトランザクションであるため、ネットワーク リソースのクエリなどの単純な通信に役立ちます。また、状態を維持しないため、1 台のマシンから多数のリアルタイム クライアントにデータを送信するのに最適です。このため、遅延が許されない VOIP、ゲーム、その他のアプリケーションに最適です。
HTTP: ハイパーテキスト転送プロトコルは、 Web 上の通信の基礎を形成するアプリケーション層で定義されるプロトコルです。 HTTP では、リモート システムにリクエスト内容を伝える多くの関数が定義されています。たとえば、GET、POST、および DELETE はすべて、異なる方法で要求されたデータと対話します。
FTP: ファイル転送プロトコルはアプリケーション層にあり、あるホストから別のホストに完全なファイルを転送する方法を提供します。これは本質的に安全ではないため、パブリックなダウンロード専用リソースとして実装されていない限り、外部に面するネットワークには推奨されません。
DNS: ドメイン ネーム システムは、インターネット リソースに人に優しい名前付けメカニズムを提供するために使用されるアプリケーション層プロトコルです。これはドメイン名を IP アドレスに結び付けるもので、ブラウザーで名前を使用してサイトにアクセスできるようになります。
SSH: セキュア シェルは、アプリケーション層に実装された暗号化プロトコルで、安全な方法でリモート サーバーと通信するために使用できます。エンドツーエンドの暗号化と遍在性により、このプロトコルを中心に多くの追加テクノロジーが構築されています。ここで取り上げていない、同様に重要なプロトコルが他にもたくさんあります。ただし、これにより、インターネットとネットワーキングを可能にするいくつかの基本テクノロジーの概要が得られるはずです。
REST (REpresentational State Transfer) は、Web 上のコンピュータ システム間に標準を提供するためのアーキテクチャ スタイルで、システム間の通信を容易にします。
JSON Web Token (JWT) は、2 者間で転送されるクレームを表すコンパクトな URL セーフな手段です。 JWT 内のクレームは、JSON Web 署名 (JWS) を使用してデジタル署名された JSON オブジェクトとしてエンコードされます。
OAuth 2.0 は、アプリケーションが Amazon、Google、Facebook、Microsoft、Twitter GitHub、DigitalOcean などの HTTP サービス上のユーザー アカウントに限定的にアクセスできるようにするオープン ソースの認証フレームワークです。これは、ユーザー アカウントをホストするサービスにユーザー認証を委任し、サードパーティのアプリケーションがユーザー アカウントにアクセスすることを許可することによって機能します。
トップに戻る
コンテナアーキテクチャ。出典: Containerd.io
Docker トレーニング プログラム
Docker Certified Associate (DCA) 認定
Docker ドキュメント | Docker ドキュメント
ドッカーワークショップ
UdemyのDockerコース
Coursera の Docker コース
edX の Docker コース
Linkedin ラーニングに関する Docker コース
Docker は、アプリケーションを開発、配布、実行するためのオープン プラットフォームです。 Docker を使用すると、アプリケーションをインフラストラクチャから分離できるため、Microsoft を含むクラウド、Linux、Windows ベンダーと連携してソフトウェアを迅速に提供できます。
Docker Enterprise は、CentOS、Red Hat Enterprise Linux (RHEL)、Ubuntu、SUSE Linux Enterprise Server (SLES)、Oracle Linux、Windows Server 2016 用のソフトウェア、サポートおよび認定されたコンテナ プラットフォーム、およびクラウド プロバイダー AWS および Windows Server 2016 を含むサブスクリプションです。アズール。 2019 年 11 月に Docker の Enterprise Platform ビジネスが Mirantis に買収されました。
Docker Desktop は、コンテナ化されたアプリケーションとマイクロサービスを構築および共有するための MacOS および Windows マシン用のアプリケーションです。 Docker Desktop は、デスクトップ上でコンテナ化されたアプリケーションを設計および配信するために必要な速度、選択肢、セキュリティを提供します。 Docker Desktop には、Docker アプリ、開発者ツール、Kubernetes、および運用環境 Docker エンジンへのバージョン同期が含まれています。
Docker Hub は、コンテナ イメージの世界最大のライブラリおよびコミュニティです。ソフトウェア ベンダー、オープンソース プロジェクト、コミュニティからの 100,000 を超えるコンテナ イメージを参照できます。
Docker Compose は、マルチコンテナー アプリケーションの定義と共有を支援するために開発されたツールです。 Docker Compose を使用すると、YAML ファイルを作成してサービスを定義し、1 つのコマンドですべてをスピンアップしたり、すべてを破棄したりできます。
Docker Swarm は、Docker ネイティブのクラスタリング システムです。 swarm は、Docker ホストのクラスターを制御し、それを単一の「仮想」ホストとして公開するシンプルなツールです。
Dockerfile は、ユーザーがイメージを組み立てるためにコマンド ラインで呼び出すことができるすべてのコマンドを含むテキスト ドキュメントです。 docker build ユーザーは、いくつかのコマンドライン命令を連続して実行する自動ビルドを作成できます。
Docker コンテナは、コードとそのすべての依存関係をパッケージ化するソフトウェアの標準ユニットであり、アプリケーションが 1 つのコンピューティング環境から別のコンピューティング環境へ迅速かつ確実に実行されるようにします。
Docker Engine は、さまざまな Linux (CentOS、Debian、Fedora、Oracle Linux、RHEL、SUSE、Ubuntu) および Windows Server オペレーティング システム上で実行されるコンテナー ランタイムです。 Docker は、シンプルなツールと、すべてのアプリケーションの依存関係をコンテナー内にまとめて Docker Engine 上で実行するユニバーサル パッケージング アプローチを作成します。
Docker イメージは、コード、ランタイム、システム ツール、システム ライブラリ、設定など、アプリケーションの実行に必要なすべてが含まれる軽量のスタンドアロンの実行可能なソフトウェア パッケージです。イメージには中間層があり、各ステップをキャッシュできるようにすることで再利用性を高め、ディスク使用量を減らし、Docker のビルドを高速化します。これらの中間レイヤーはデフォルトでは表示されません。 SIZE は、イメージとそのすべての親イメージが占める累積スペースです。
Docker Network は、1 つ以上のネットワークに関する詳細情報を表示します。
Docker Daemon は、ユーザーが手動で開始するのではなく、システム ユーティリティによって開始されるサービスです。これにより、マシンの再起動時に Docker を自動的に起動することが簡単になります。 Docker を起動するコマンドは、オペレーティング システムによって異なります。現在、Docker は多くの Linux カーネル機能に依存しているため、Linux 上でのみ実行されますが、オペレーティング システムのユーティリティを構成することで、MacOS や Windows 上でも Docker を実行する方法がいくつかあります。
Docker Storage は、Docker ホスト上でイメージとコンテナーを保存および管理する方法を制御するドライバーです。
Kitematic は、Mac、Linux、および Windows 上で Docker コンテナを管理するためのシンプルなアプリケーションであり、グラフィカル ユーザー インターフェイス (GUI) からアプリ コンテナを制御できます。
Open Container Initiative は、コンテナ形式とランタイムに関するオープンな業界標準を作成するという明確な目的を持ったオープン ガバナンス構造です。
Buildah は、Open Container Initiative (OCI) イメージを構築するためのコマンド ライン ツールです。 Docker、Podman、Kubernetes で使用できます。
Podman は、Open Containers Initiative (OCI) コンテナとコンテナ イメージを使用してアプリケーションを簡単に検索、実行、構築、共有、デプロイできるように設計された、デーモンレスのオープンソースの Linux ネイティブ ツールです。 Podman は、Docker Container Engine を使用したことのある人には馴染みのあるコマンド ライン インターフェイス (CLI) を提供します。
Containerd は、イメージの転送と保存から、コンテナの実行と監視、低レベルのストレージ、ネットワーク接続などに至るまで、ホスト システムの完全なコンテナ ライフサイクルを管理するデーモンです。 Linux と Windows で利用できます。
トップに戻る
Kubernetes (K8s) は、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソース システムです。
Kubernetes 認定の取得
AWS で Kubernetes を始める
Microsoft Azure上のKubernetes
Azure Kubernetes Service の概要
Azure Red Hat OpenShift
Google Cloud を使ってみる
Red Hat で Kubernetes を始める
IBM で Kubernetes を始める
IBM Cloud上のRed Hat OpenShift
Red Hat OpenShift で OpenShift 仮想化を有効にする
Kubernetes の YAML の基本
Kubernetes 上の Elastic Cloud
Docker と Kubernetes
Kubernetes 上で Apache Spark を実行する
VMware vRealize Automation 全体にわたる Kubernetes
VMware Tanzu Kubernetes グリッド
VMware Tanzu が AWS と連携するすべての方法
VMware Tanzu 教育
クラウドネイティブ Kubernetes 環境での Ansible の使用
Ansible を使用した Kubernetes (K8s) オブジェクトの管理
Vagrant と Ansible を使用した Kubernetes クラスターのセットアップ
Kubernetes で MongoDB を実行する
Kubernetes Fluentd
新しい GitLab Kubernetes エージェントについて理解する
Visual Studio 2019 の Kubernetes を使用したローカル プロセスの概要
Kubernetes の貢献者
VMware の KubeAcademy
Pulumi の Kubernetes チュートリアル
Kubernetes プレイグラウンド by Katacoda
Udacity の Kubernetes コースを使用したスケーラブルなマイクロサービス
Open Container Initiative は、コンテナ形式とランタイムに関するオープンな業界標準を作成するという明確な目的を持ったオープン ガバナンス構造です。
Buildah は、Open Container Initiative (OCI) イメージを構築するためのコマンド ライン ツールです。 Docker、Podman、Kubernetes で使用できます。
Podman は、Open Containers Initiative (OCI) コンテナとコンテナ イメージを使用してアプリケーションを簡単に検索、実行、構築、共有、デプロイできるように設計された、デーモンレスのオープンソースの Linux ネイティブ ツールです。 Podman は、Docker Container Engine を使用したことのある人には馴染みのあるコマンド ライン インターフェイス (CLI) を提供します。
Containerd は、イメージの転送と保存から、コンテナの実行と監視、低レベルのストレージ、ネットワーク接続などに至るまで、ホスト システムの完全なコンテナ ライフサイクルを管理するデーモンです。 Linux と Windows で利用できます。
Google Kubernetes Engine (GKE) は、コンテナ化されたアプリケーションを実行するための、運用環境に対応したマネージド環境です。
Azure Kubernetes Service (AKS) は、統合された継続的インテグレーションと継続的デリバリー (CI/CD) エクスペリエンス、およびエンタープライズ グレードのセキュリティとガバナンスを備えたサーバーレス Kubernetes です。開発チームと運用チームを 1 つのプラットフォームに統合して、自信を持ってアプリケーションを迅速に構築、配信、拡張できます。
Amazon EKS は、複数のアベイラビリティーゾーンにわたって Kubernetes コントロールプレーンインスタンスを実行して高可用性を確保するツールです。
AWS Controllers for Kubernetes (ACK) は、Kubernetes から AWS のサービスを直接管理できる新しいツールです。 ACK を使用すると、AWS のサービスを利用するスケーラブルで可用性の高い Kubernetes アプリケーションを簡単に構築できます。
Container Engine for Kubernetes (OKE) は、最新のクラウド ネイティブ アプリケーションを構築する時間とコストを削減できる、Oracle 管理のコンテナ オーケストレーション サービスです。他のほとんどのベンダーとは異なり、Oracle Cloud Infrastructureは、より高性能で低コストのコンピューティングで実行される無料サービスとしてContainer Engine for Kubernetesを提供します。
Anthos は、クラウド環境とオンプレミス環境に一貫した開発と運用エクスペリエンスを提供する最新のアプリケーション管理プラットフォームです。
Red Hat Openshift は、オンプレミス、ハイブリッド、およびマルチクラウドのデプロイメントの基盤を提供するフルマネージド Kubernetes プラットフォームです。
OKD は、継続的なアプリケーション開発とマルチテナント展開のために最適化された Kubernetes のコミュニティ ディストリビューションです。 OKD は、Kubernetes 上に開発者および運用中心のツールを追加して、小規模および大規模なチームの迅速なアプリケーション開発、簡単なデプロイメントとスケーリング、および長期的なライフサイクル メンテナンスを可能にします。
Odo は、Kubernetes および OpenShift 上でアプリケーションを作成、構築、デプロイする開発者向けの、高速で反復的かつ簡単な CLI ツールです。
Kata Operator は、Kubernetes クラスターだけでなく、Openshift 上の Kata Runtime のライフサイクル管理 (インストール/アップグレード/アンインストール) を実行するオペレーターです。
Thanos は、無制限のストレージ容量を備えた高可用性メトリック システムに構成できるコンポーネントのセットであり、既存の Prometheus デプロイメントの上にシームレスに追加できます。
OpenShift Hive は、Kubernetes/OpenShift 上でサービスとして実行されるオペレーターです。 Hive サービスを使用して、OpenShift 4 クラスターのプロビジョニングと初期構成を実行できます。
Rook は、分散ストレージ システムを自己管理、自己スケーリング、自己修復のストレージ サービスに変えるツールです。導入、ブートストラップ、構成、プロビジョニング、スケーリング、アップグレード、移行、災害復旧、監視、リソース管理など、ストレージ管理者のタスクを自動化します。
VMware Tanzu は、複数のチームおよびプライベート/パブリック クラウド全体で Kubernetes インフラストラクチャと最新のアプリケーションを一貫して運用および保護するための集中管理プラットフォームです。
Kubespray は、Kubernetes と Ansible を組み合わせたツールで、AWS、GCE、Azure、OpenStack、vSphere、Packet (ベアメタル)、Oracle Cloud Infrastructure (Experimental)、または Baremetal にデプロイできる Kubernetes クラスターを簡単にインストールできます。
KubeInit は、複数の Kubernetes ディストリビューションのデプロイと構成のための Ansible プレイブックとロールを提供します。
Rancher は、コンテナを導入するチーム向けの完全なソフトウェア スタックです。これは、複数の Kubernetes クラスターを管理する際の運用上およびセキュリティ上の課題に対処すると同時に、コンテナ化されたワークロードを実行するための統合ツールを DevOps チームに提供します。
K3s は、高可用性の認定された Kubernetes ディストリビューションであり、無人でリソースに制約のある遠隔地や IoT アプライアンス内での実稼働ワークロード向けに設計されています。
Helm は、Kubernetes アプリケーションのインストールと管理を容易にする Kubernetes パッケージ マネージャー ツールです。
Knative は、最新のサーバーレス ワークロードを構築、デプロイ、管理するための Kubernetes ベースのプラットフォームです。 Knative は、ネットワーキング、自動スケーリング (ゼロまで)、およびリビジョン追跡の運用オーバーヘッドの詳細を処理します。
KubeFlow は、Kubernetes 上での機械学習 (ML) ワークフローのデプロイメントをシンプル、ポータブル、スケーラブルにすることに特化したツールです。
etcd は、分散システムまたはマシンのクラスターからアクセスする必要があるデータを保存するための信頼できる方法を提供する分散キーバリュー ストアです。 etcd はサービス検出のバックエンドとして使用され、クラスターの状態と Kubernetes の構成を保存します。
OpenEBS は、コンテナ接続ストレージを使用してステートフル アプリケーションを作成するための Kubernetes ベースのツールです。
Container Storage Interface (CSI) は、Kubernetes などのコンテナ オーケストレーション プラットフォームがプラグインを介して保存されたデータとシームレスに通信できるようにする API です。
MicroK8s は、完全な Kubernetes エクスペリエンスを提供するツールです。圧縮された無線アップデートを使用した完全にコンテナ化された展開で、非常に信頼性の高い運用を実現します。 Linux、Windows、MacOS でサポートされています。
Charmed Kubernetes は、Canonical によって開発された、マルチクラウド環境向けに最適化された、適切に統合されたターンキー準拠の Kubernetes プラットフォームです。
Grafana Kubernetes アプリは、Kubernetes クラスターのパフォーマンスを監視できるようにする有料のアプリです。これには、クラスター、ノード、ポッド/コンテナー、デプロイメントの 4 つのダッシュボードが含まれます。これにより、必要な Prometheus エクスポーターとデフォルトのスクレイプ構成をクラスター内の Prometheus デプロイメントで使用するための自動デプロイメントが可能になります。
KubeEdge は、ネイティブのコンテナ化されたアプリケーション オーケストレーション機能を Edge のホストに拡張するためのオープン ソース システムです。Kubernetes 上に構築されており、ネットワークとアプリの基本的なインフラストラクチャ サポートを提供します。クラウドとエッジ間の展開とメタデータの同期。
Lens は、Kubernetes クラスターを日常的に扱う必要があるユーザーにとって最も強力な IDE です。 MacOS、Windows、Linux オペレーティング システムをサポートしています。
Flux CD は、Kubernetes クラスターの状態が Git で指定した構成と一致することを自動的に確認するツールです。クラスター内のオペレーターを使用して、Kubernetes 内のデプロイメントをトリガーします。つまり、別個の継続的デリバリー ツールは必要ありません。
Platform9 Managed Kubernetes (PMK) は、データセンター、パブリック クラウド、エッジなど、あらゆる環境で 99.9% の SLA で完全に自動化された Day-2 運用を保証するサービスとしての Kubernetes です。
トップに戻る
Mac 開発 Ansible プレイブック (Jeff Geerling 著)
Ansible は、クラウド プロビジョニング、構成管理、アプリケーション デプロイメント、サービス内オーケストレーション、その他多くの IT ニーズを自動化するシンプルな IT 自動化エンジンです。非常にシンプルな言語 (YAML、Ansible Playbook 形式) を使用しているため、平易な英語に近い方法で自動化ジョブを記述することができます。 Anisble は Linux (Red Hat EnterPrise Linux(RHEL) および Ubuntu) および Microsoft Windows 上で動作します。
Ansible の Red Hat トレーニング
UdemyのオンラインのトップAnsibleコース
Ansible の概要: Coursera の基礎
Pluralsight での Ansible の基礎の学習
Red Hat Ansible Automation Platform 2.1 の紹介
Ansible ドキュメント
Ansible Galaxy ユーザーガイド
Ansible の使用例
Ansible の統合
Ansible コレクションの概要
プレイブックの操作
DevOps 向けの Ansible の例 (Jeff Geerling 著)
はじめに: 初めてのプレイブックの作成 - Ansible
Ansible でのモジュールの操作
Ansible のベスト プラクティス: ロールとモジュール
Ansible のコマンドライン ツールの使用
Ansible Vault を使用したコンテンツの暗号化
Ansible を使用した Playbook での Vault の使用
Azure での Ansible の使用
Azure VM での Ansible の構成
Ansibleの使用方法:DigitaloceanのAnsible Cheatシートガイド
LinodeのAnsibleの紹介|空間ラボ
Ansible Automation Hubは、Ansible Automation Platformサブスクリプションの一部として含まれるサポートされたコレクションを発見およびダウンロードする公式の場所です。これらのコンテンツコレクションには、ダウンロード可能なパッケージにモジュール、プラグイン、役割、およびプレイブックが含まれています。
コレクションは、プレイブック、役割、モジュール、プラグインを含むAnsibleコンテンツの配布形式です。モジュールがCore Ansibleリポジトリからコレクションに移動すると、モジュールのドキュメントはコレクションページに移動します。
Ansible Lintは、あらゆるユーザーを対象としたプレイブック、役割、コレクションのためのコマンドラインツールです。その主な目標は、実証済みの実践、パターン、行動を促進しながら、バグに簡単につながったり、コードを維持したりすることができる一般的な落とし穴を避けることです。
Ansible CMDBは、Ansibleの事実の出力を取得し、システム構成情報を含む静的HTML概要ページに変換するツールです。
Ansible Inventory Grapherは、在庫継承階層を視覚的に表示し、どのレベルで変数がインベントリで定義されているかを示します。
Ansible Playbook Grapherは、Ansible Playbookのタスクと役割を表すグラフを作成するコマンドラインツールです。
Ansible Shellは、すべてのモジュールに組み込みのタブ完了を備えたAnsibleのインタラクティブなシェルです。
Ansible Siloは、Dockerによる自己完結型の環境です。
Ansigenomeは、あなたがあなたの無意味な役割を管理するのに役立つように設計されたコマンドラインツールです。
ARAは、Ansible Playbookが実行されているレコードであり、Ansibleとコールバックプラグインとして統合することにより、録音されたデータをユーザーとシステムが利用できるようにします。
Capistranoはリモートサーバー自動化ツールです。任意のタスクのスクリプトと実行をサポートし、SANE-DEFALT展開ワークフローのセットを含みます。
ファブリックは、SSH上でシェルコマンドをリモートで実行するように設計された高レベルのPython(2.7、3.4+)ライブラリであり、見返りに有用なPythonオブジェクトを生成します。 Invoke(サブプロセスコマンドの実行とコマンドライン機能)とParamiko(SSHプロトコル実装)の上に構築され、APIを拡張して相互に補完し、追加の機能を提供します。
Ansible-Role-Wireguardは、WireGuard VPNをインストールするための積極的な役割です。 Ubuntu、Debian、Archlinx、Fedora、Centos Streamをサポートしています。
WireGuard_Cloud_Gatewayは、クラウドネットワーク用のゲートウェイVPNサーバーとしてWireGuardをセットアップするための積極的な役割です。
Red Hat OpenShiftは、コンテナスタックのあらゆるレベルのセキュリティと、アプリケーションライフサイクル全体でセキュリティに焦点を当てています。これには、主要なKubernetesの貢献者の1人およびオープンソースソフトウェア会社からの長期的なエンタープライズサポートが含まれています。
OpenShift Hiveは、Kubernetes/OpenShiftの上にサービスとして実行されるオペレーターです。 Hiveサービスを使用して、OpenShift 4クラスターの初期構成をプロビジョニングおよび実行できます。
トップに戻る
SQLは、リレーショナルデータベースにデータを保存、操作、取得するための標準言語です。
NOSQLは、データベースが行とテーブルを持つリレーショナル(SQLベース)データベースとは異なる方法で急速に変化する非構造化データの膨大な量を処理できることを強調するために、「非相関、または「非SQL」と互換性があるデータベース)と呼ばれるデータベースです。 。
Transact-SQL(T-SQL)は、T-SQLコマンドを送信してSQLデータベースと通信するすべてのツールとアプリケーションを備えたSQLのMicrosoft拡張です。
Transact-SQLの紹介
w3schoolsによるSQLチュートリアル
CourseraからオンラインでSQLスキルを学びます
UdemyからオンラインでSQLコース
LinkedIn LearningのSQLオンライントレーニングコース
Codecademyから無料でSQLを学びます
GitlabのSQLスタイルガイド
OracledB SQL Style Guide Basics
Tableau CRM:BIソフトウェアとツール
AWSのデータベース
AWS EC2でのSQLサーバークラスタリングのベストプラクティスと推奨事項。
Google KubernetesエンジンからクラウドSQLインスタンスに接続します。
教育的マイクロソフトAzure SQLリソース
MySQL認定
SQL対NOSQLデータベース:違いは何ですか?
nosqlとは何ですか?
NetDataは、忠実度の高いインフラストラクチャの監視とトラブルシューティングであり、リアルタイム監視エージェントは、構成がゼロのシステム、ハードウェア、コンテナ、アプリケーションから何千ものメトリックを収集します。すべての物理/仮想サーバー、コンテナ、クラウド展開、およびエッジ/IoTデバイスで永続的に実行され、準備せずにインシデントの中でシステムにインストールするのは完全に安全です。
Azure Data Studioは、Windows、MacOS、LinuxのSQL Server、Azure SQL DB、およびSQL DWとの連携を可能にするオープンソースのデータ管理ツールです。
RSTUDIOは、RとPythonの統合開発環境であり、コンソール、直接コードの実行をサポートするSyntax-Highlightingエディター、およびプロット、履歴、デバッグ、ワークスペース管理のためのツールを備えています。
MySQLは、世界で最も人気のあるオープンソースデータベースを使用してクラウドネイティブアプリケーションを展開するための完全に管理されたデータベースサービスです。
PostgreSQLは、30年以上のアクティブな開発を備えた強力でオープンソースのオブジェクト関連データベースシステムであり、信頼性、機能の堅牢性、パフォーマンスで強い評判を得ています。
Amazon DynamoDBは、任意のスケールで1桁のミリ秒のパフォーマンスを提供するキー価値およびドキュメントデータベースです。これは、インターネットスケールアプリケーション用のセキュリティ、バックアップ、復元、およびメモリ内キャッシングを備えた、完全に管理されたマルチガリオン、マルチマスター、耐久性のあるデータベースです。
Apache Cassandra™は、パフォーマンスを損なうことなく、スケーラビリティと高可用性のために何千もの企業が信頼するオープンソースのNOSQL分散データベースです。 Cassandraは、コモディティハードウェアまたはクラウドインフラストラクチャの線形スケーラビリティと実証済みのフォールトトレランスを提供し、ミッションクリティカルなデータに最適なプラットフォームになります。
Apache HBase™は、オープンソースのNOSQL、分散ビッグデータストアです。これにより、ペタバイトのデータへのランダムで厳密に一貫したリアルタイムアクセスが可能になります。 HBaseは、大きなまばらなデータセットを処理するのに非常に効果的です。 HBaseは、HadoopのApache MapReduceフレームワークへの直接入力と出力として機能し、Apache Phoenixと協力してSQLのようなクエリをHBaseテーブルで有効にします。
Hadoop分散ファイルシステム(HDFS)は、コモディティハードウェアで実行されている大規模なデータセットを処理する分散ファイルシステムです。単一のApache Hadoopクラスターを数百(および数千)のノードにスケーリングするために使用されます。 HDFSはApache Hadoopの主要なコンポーネントの1つであり、その他はMapReduceとYarnです。
Apache Mesosは、分散アプリケーションまたはフレームワーク全体で効率的なリソースの分離と共有を提供するクラスターマネージャーです。 Hadoop、Jenkins、Spark、Aurora、およびその他のフレームワークを動的に共有されたノードのプールで実行できます。
Apache Sparkは、ストリーミング、SQL、機械学習、グラフ処理用の組み込みモジュールを備えたビッグデータ処理用の統一分析エンジンです。
Elasticsearchは、Lucene Libraryに基づいた検索エンジンです。 HTTP WebインターフェイスとスキーマフリーのJSONドキュメントを備えた、分散型のマルチテキストのフルテキスト検索エンジンを提供します。 ElasticsearchはJavaで開発されています。
Logstashは、イベントやログを管理するためのツールです。一般的に使用すると、この用語には、ログ収集、処理、ストレージ、および検索アクティビティのより大きなシステムが含まれます。
Kibanaは、ElasticSearch用のオープンソースデータ視覚化プラグインです。 ElasticSearchクラスターにインデックスが付けられたコンテンツの上に視覚化機能を提供します。ユーザーはバーを作成できます。