DevOps

自動テスト、継続的デリバリー、サービス統合と監視、およびSDLCインフラストラクチャーの構築に取り組んでいるソフトウェアエンジニアのためのQ&A

2
「ブラックボックス」テストとは何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 DevOps Stack Exchangeのトピックとなるようにします。 3年前休業。 「ブラックボックス」テストとは何ですか?それは通常のテストとどのように異なりますか?たとえば、本番環境にデプロイする前のブラックボックステスト。 注:「ブラックボックス」テストは、devopsロールを申請する場合の一般的な要件です(テスターの必要はありません)。

1
Ingressを使用してリモートKubernetesクラスターのサービスにアクセスする
リモートマシンにデプロイされた既存のkubernetesクラスターのサービスにアクセスしようとしています。kubectlローカルMacからアクセスできるようにクラスターを構成しました。 $ kubectl cluster-info Kubernetes master is running at https://192.168.58.114:6443 KubeDNS is running at https://192.168.58.114:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy 接続するサービスの入力構成は次のとおりです。 kind: Ingress apiVersion: extensions/v1beta1 metadata: name: gw-ingress namespace: vick-system selfLink: /apis/extensions/v1beta1/namespaces/vick-system/ingresses/gw-ingress uid: 52b62da6-01c1-11e9-9f59-fa163eb296d8 resourceVersion: '2695' generation: 1 creationTimestamp: '2018-12-17T06:02:23Z' annotations: kubectl.kubernetes.io/last-applied-configuration: > {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"nginx","nginx.ingress.kubernetes.io/affinity":"cookie","nginx.ingress.kubernetes.io/session-cookie-hash":"sha1","nginx.ingress.kubernetes.io/session-cookie-name":"route"},"name":"gw-ingress","namespace":"vick-system"},"spec":{"rules":[{"host":"wso2-apim-gateway","http":{"paths":[{"backend":{"serviceName":"gateway","servicePort":8280},"path":"/"}]}}],"tls":[{"hosts":["wso2-apim-gateway"]}]}} kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/affinity: cookie nginx.ingress.kubernetes.io/session-cookie-hash: sha1 nginx.ingress.kubernetes.io/session-cookie-name: route spec: tls: - …

2
組織へのSREの導入を促進するデータポイント
サイト信頼性エンジニアリング専用のstackexchangeがないため、これは1つに近いことがわかりました。 SREの原則についてのスライドデッキのインスピレーションとして使用する優れたリソースがいくつかあります[SREスライド]。 まだ見つかりません: ショート 簡潔な 例 組織にSREを実装するための支出リソースの動機付け。 私の職業生活で経験したことのほとんどは、機密性の高い事件と数でした。私は、SREが知っているほとんどの数値が、企業内で提示されるために「内部」のままであることを懸念しています。 ただし、いくつかの調査(できれば一連の)死後のすばらしい例(1つずつでも良い)を知っている可能性があるため、「nから成長した変更の組織速度にSREモデルを導入した後」などの強力な議論を行うことができます。 xあたりのmのリリースプッシュに、yによる可用性の向上とz "(ブレーンストーミング)または他のハードデータポイントによるコストの削減を伴いますか? [SREスライド]-いくつかの例: サイトの信頼性エンジニアリング:ITSM Academy、Inc.によるエンタープライズ導入ストーリー(ITSM Academyウェビナー) Squareのプラットフォームエンジニア、Grier JohnsonによるSRE From Scratch GOTO 2017•Googleでのサイト信頼性エンジニアリング•Christof Leng PSこの質問を、このサイトのガイドラインによりよく適合するように言い換えることができる場合は、コメントで提案を提供し、改善のための変更を提供してください。それ以外の場合は、他の優れたプラットフォームに感謝します(ただし、reddit.com / r / sreは私に大きな印象を与えませんでした)
8 sre 

4
Azure-Key Vaultの接続文字列とアプリケーション設定
Azure FunctionsとWebJobsの場合、接続文字列をアプリケーションの設定に直接配置するのではなく、Key Vaultにシークレットとして配置する(およびConfigurationManager.ConnectionStringsを使用して参照する)ことにメリットはありますか?Azure Key Vaultシークレットは、Azure FunctionsやWebJobsではなく、主にVMなどを対象としていますか? 開発(Key Vaultのシークレットとアプリケーション設定のシークレットIDを更新する)と実行時の追加のステップ(Key Vaultからの追加の取得)の両方を追加するだけのようですが、唯一の利点はシークレットです。アプリケーション設定のは、実際のシークレットではなく識別子です。ここにはセキュリティ上の利点はありませんが、不利益があります。
8 azure 

1
Webアプリケーションのワーカープロセスを別のコンテナーに配置する必要がありますか?
私のセットアップは、PostgreSQLとRedisデータベースを持つFlaskアプリに基づいています。さらに、ワーカープロセスは、電子メールの送信などの非同期タスクを処理するために開始されます。私はGunicornを使用して複数のアプリプロセスを作成しています。アプリプロセスからワーカープロセスへのジョブの受け渡しは、Redisを介して行われます。 問題は、同じコードに基づいているにもかかわらず、ワーカープロセスを別のコンテナーで開始する必要があるかどうかです。現在、私は関連するビットで開始スクリプトを使用しています: gunicorn --bind=0.0.0.0:8000 --workers=3 manage:app & python -u manage.py run_worker また、それらを分離する必要がある場合、どのようにして、共通のファイルシステムコンテナーを確実に再利用することができますか?さらに、メインアプリまたはワーカープロセスでGunicornをスケーリングする場合、コンテナーの追加インスタンスを作成するか、コンテナー内のプロセス数を増やす必要がありますか? 関連:異なるコンテナーでnginxとphpをドッキングする利点は何ですか?

4
AWSで未使用のリソースを追跡するにはどうすればよいですか?
しばらくAWSを使用しています。AWSリソースとそれらがどのように相互接続されているかを追跡するのは常に困難です。明らかに、私はTerraformを使用していますが、それでも、私の可視性を低下させる特別な操作が常にあります。 存在しているが使用していないリソース/サービスに対して複数回課金されたため。 未使用のサービスには、他のサービスを指していないがAWS環境に存在するリソースが含まれます。 ツールの提案も歓迎します。

2
Beser構文を使用したsudo no passwordコマンドでAnsibleを実行する方法
rootとして実行する必要があるいくつかのコマンドがあるホストマシンに対してansibleを実行すると、sudoで実行するのではなく、rootとしてコマンドを実行するため、これらを "become"で実行できません。 私がやっていることはcommand: sudo ... 、警告を使用して抑制しているだけです args: warn: no sudo sans passwordを使用してLinuxコマンドラインを実行するより良い、より標準化された方法はありますか?

3
クラウドでの管理されていないハードウェアセキュリティモジュール(HSM)の実行
パブリッククラウドにハードウェアセキュリティモジュールを配置することが可能かどうか、つまりGoogle、Amazon、Azureを使用できるかどうかを尋ねたことも、尋ねられたこともないことを認めなければなりません。 誰かが組織が完全に管理するHSMを使用できるようにするためのテクニックを見つけましたか? クラウドとHSMの2つの概念は基本的に互いに矛盾しているように見えます。クラウドは一般に「アウトソーシング」またはオペレーティングサービスのリスクをクラウドサービスプロバイダーに転送するためです。 AzureとAWSで見られるように、フルマネージドHSMに関しては明らかに中立的な立場があります。 Azure KeyVault:Key Vaultを使用すれば、HSMとキー管理ソフトウェアのプロビジョニング、構成、パッチ適用、保守を行う必要はありません。新しいボールトとキーをプロビジョニングして(または独自のHSMからキーをインポートして)、キー、シークレット、ポリシーを一元管理します。 AWS CloudHSM:AWS CloudHSMは、クラウドベースのハードウェアセキュリティモジュール(HSM)で、AWSクラウドで独自の暗号化キーを簡単に生成して使用できます。CloudHSMを使用すると、FIPS 140-2レベル3検証済みHSMを使用して独自の暗号化キーを管理できます。 さらに、キー管理に対する非HSMベースのソリューションがいくつかあります。 クラウドキー管理(Google):Cloud KMSはクラウドでホストされるキー管理サービスで、オンプレミスと同じ方法でクラウドサービスの暗号化を管理できます。AES256暗号化キーを生成、使用、ローテーション、破棄できます。Cloud KMSはIAMおよびCloud Audit Loggingと統合されているため、個々のキーに対する権限を管理し、それらがどのように使用されるかを監視できます。Cloud KMSを使用して、Google Cloud Platformに保存する必要がある秘密やその他の機密データを保護します。 すべてのクラウドマーケットプレイスで利用可能なさまざまなセキュリティアプライアンス。 誰かが組織が完全に管理するHSMを使用できるようにするためのテクニックを見つけましたか?

3
`docker-compose up`が実行されたときに名前のないボリュームが作成され、` docker-compose down && docker-compose up`を発行した後にこれらが二重に実行されるのはなぜですか?
docker composeアプリケーションを起動すると、最初に名前付きボリュームが作成され、起動するたびに追加のボリュームが作成されます。これは増分ボリュームを作成するという点で正常な動作ですか、それともdocker-composeファイルが壊れていますか?さらに、を実行した後docker volume prune、名前のないボリュームのうち2つを削除しました これは、2回開始した後の出力です。 DRIVER VOLUME NAME local 2b33c81e6e955ff36061f4120b7181c7efc7aebded2f87eaa7290027f1e7a725 local 74301eadc75018d6f7da76aec44bcf743e03261492cfcc33211941684a570030 local c42b1e2c17342c52b4b9e90f4d4b7fa24ccb30de5479e65cf4366e2373dfb0bf local dcfa63dbf99362fc92fe3b981f50abebfe1bba03063d4dd9dd790f4c058817cf local dockerinfluxdbgrafana_grafana-data local dockerinfluxdbgrafana_influxdb-data 参考までに、私のdocker-composeファイル version: "3" services: influxdb: image: influxdb:latest container_name: influxdb ports: - "8086:8086" env_file: - 'env.influxdb' networks: - backend volumes: - influxdb-data:/var/lib/influxdb grafana: image: grafana/grafana:latest container_name: grafana ports: - "3000:3000" env_file: …

2
Azureの機密コンピューティングは本質的に暗号化されたRAMですか?
私は、Azure 機密コンピューティング サービスに頭を抱えようとしています。 AWSはアプリケーションレベルでの暗号化を提供していないようです(これの意味については、図を参照してください)。 私の質問は、Azureの機密コンピューティングは本質的に暗号化されたRAMですか?

2
自動スケーリングされたグループでデータベースの移行を実行する方法
モノリシックアーキテクチャから自動スケーリンググループに移行しようとしていますが、データベースの移行をどのように実行すればよいかわかりません(Laravel)。 新しいボックスがオンラインになったときにスクリプトが実行されると思います。これにより、最新のコードがgit pullされます。このスクリプトでデータベースの移行も実行する必要がありますか?1つのボックスだけで実行する方法がわかりませんか?

3
リモートホストへのAnsible接続に関する質問
Ansibleの動作についていくつか質問したいと思います。 1-リモートホストにログインするときにAnsibleが使用するシェルはどれですか? /ubuntu/937354/track-logins-made-via-non-interactive-shells/937716?noredirect=1#comment1486867_937716 2-プレイブックに10個のタスクがある場合、ansibleはリモートホストへの接続を10回行うか、単一の接続を使用してこれらの10個のタスクすべてを実行しますか? 3-2つのホストで10のタスクを実行している場合、 最初のタスクはホスト1で実行され、次にホスト2で実行され、次に2番目のタスクがホスト1で実行され、次にホスト2で実行されます。など 。 だから、ここでも接続は両方のホストに持続しますか? または 最初にホスト1に接続してタスク1を実行してから切断し、さらにホスト2に接続してタスク1を実行してから切断しますか?
8 ansible 

3
複数のgitブランチ用のステージングサーバーを作成する方法
開発とテストのための新しいステージングプロセスを作成する必要があります。 常に、活発に開発およびテストされているgitブランチは約4つだけです。各gitブランチ内には、実行する必要のあるデータベースエボリューションスクリプト(ストレートSQL)と、より重い処理のためのバックエンドからのエボリューションスクリプトがあります(これらは、データベースを実行する管理者資格情報を使用してアプリ内で呼び出す必要があるHTTPルートです)移行や、前述のプレーンなSQL進化スクリプトでスクリプトを作成することが困難または不可能であるその他の変更)。 私たちのライブDBは、適度なサイズの4.2 GBです。セットアップの準備ができて、使い捨ての真新しいDell PowerEdgeサーバーがあります。 次の質問についてのアドバイスと、経験豊富なDevOpsがこれにどのように取り組むかを知りたいです。 ステージングサーバーでいくつかの異なるブランチを実行するにはどうすればよいですか?これらのブランチは、QAに合格し、マスターにマージされて解放されると、頻繁にポップアップして消えます。 各ブランチに常に適切なDBがあることを確認するために、DB進化システムをどのようにセットアップしますか?各ブランチは、マージされるまで相互に互換性があるとは限らないさまざまな方法でDBに変更を加える場合があります。 これらのブランチを最新の状態に保つにはどうすればよいですか?各ブランチでコミットを自動プルする方法はありますか? これをすべて設定する方法について少し迷っていますので、これ以上の入力は大好きです。現在のワークフローは関係者全員にとって困難です。開発者は完全に分離されたアプリのローカルコピーをローカルで実行しており、QAは3〜4台のラップトップをローテーションしてステージング「サーバー」として機能させます
8 git  testing  builds  branch  mysql 

1
Kubernetes Service LoadBalancerサービスからのBackendConnectionErrorsのデバッグ
最近、一部の本番インフラストラクチャをKubernetesに移動しました。LoadBalancerAWSのサービスを通じて多くのポッドが公開されています。これにより、ELBが作成され、クラスター内の各ノードがELBに登録され、ELBポートをポッドにマップするようにノードポートが構成されます。私たちのアプリケーションはロードバランサー経由で接続できますが、BackendConnectionErrors(cloudwatchによって報告された)量はリクエスト数の5-7倍です。これをデバッグする方法がわかりません。 報告されたバックエンド接続エラーの数は、アプリケーションレイヤーのエラーメトリックと相関していません。これにより、ある種のインフラストラクチャの問題がおそらく再試行によって増幅されていると結論づけることができます。ただし、この問題のデバッグ方法がわかりません。 私の仮説はこれらの1つまたは両方です。 接続管理のためにELBに欠けているいくつかの奇妙なAWS設定 クラスター内のノードには、sysctl設定またはELB経由の接続の量をブロックするその他のネットワーク構成があります いくつかの中間的なネットワークインフラストラクチャが接続を乱しています。 私の質問は、クラスター内のインスタンスのTCP /ネットワーク関連のメトリックをデバッグ/トレースするにはどうすればよいですか? 問題のCloudWatchメトリックスに関する詳細情報。

3
変数への相対パスがないプレイブック
私はすでにたくさんのプレイブックを持っていたので、それらをプレイブックディレクトリに整理し始めました。これにより、varsファイルへの相対パスが必要になります。 実際の脚本: --- - hosts: aws_instance.jenkins-agents user: ec2-user vars_files: - ../../../vars/main.yaml - ../../../vars/vault.yaml ... dir構造を維持する方法はありますが、lochnessファミリー(../../../)は避けますか? 私は役割について知っています。それらへのパスを指定できますが、vars_filesに類似するものは見つかりません プロジェクト条件: プロジェクトのルートからプレイブックを実行する必要があります varsとplaybooks dirの両方がプロジェクトのルートにあります このプロジェクトには静的なインベントリ/ホストはありませんが、プレイブックを実行するとオンザフライで生成されます
8 ansible 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.