微信公衆番号テスト生産環境分離実践
5914 ワード
微信公衆番号テスト生産環境分離実践
背景
最近、微信の公衆番号を開発し、一部の機能がオンラインになった後、オンラインの正常な使用に影響を与えないことを保証するために、新しい機能の開発テストで出会った問題と解決すべき問題は以下の通りである.
ソリューション
公衆番号のテストとドメイン名のテストを申請する
需要者にテストdemoをプレゼンテーションし、オンラインになるインタラクティブな体験と一致することを保証するために、最も簡単な案は公衆番号を再申請してテストのために使用することだと考えています(幸いにも学校研究院の名義で、個人的に申請しないとだめです.,);また、フロントエンドクッキーが2つの公衆番号で衝突しないことを保証するため、テスト時に生産環境とは異なる2級ドメイン名を使用し、クッキー隔離を行う
バックエンドの構成の分離
現在、クラウドサーバが1台しかないため、バックグラウンドエンジニアリングの構成が分離されています.テストと生産エンジニアリングのポート番号、データベース、redisライブラリ、微信開発者IDと鍵、ログが含まれています.
プロジェクトはspringbootを使用しており、プロファイルディレクトリは次のように断面されています.
プロジェクトをローカル(dev)、テスト(online-test)、生産(online)の3つの環境に分け、アプリケーションに協力する.propertiesベースプロファイルは、環境に関する変数を対応するpropertiesに書き込む分離するために使用され、以下にアプリケーション-online-testを挙げる.propertiesの構成内容:
注意:データベースの分離は、新しい異なるライブラリを作成してアクセスを区別し、redisはライブラリ番号でアクセスを区別し、ログはログ名で区別します.
バックエンドの配置の分離
バックエンド配置スクリプトによって実行されるプロセスは、次のとおりです.
mavenを使用して異なるjar名を生成するにはpomを変更する必要がある.xml
online-test
" jar "
online
" jar "
${project.name} // project.name profile properties
.....
最後にコマンドmvn clean package-Ponline-test-ドマvenを実行します.test.skip=true,-Pの後にprofileのid名を付けて、異なる名前のjarを生成することができます
最後にクラウドサーバの起動スクリプトを実行すると、新しいjarサービスが起動します.
nohup java -jar 'jar ' --spring.profiles.active=' (online online-test)'> /dev/null 2>&1 &
フロントエンドの配置分離
フロントエンドの構成変数には、リクエストテストが本番ポート番号と異なり、ドメイン名が異なり(ライセンスなどのリダイレクトリンクの違いに関連)、微信公衆番号のIDが異なる.
コードはこれらの変数をグローバルに1つの呼び出しに書き、スイッチ注釈によって分離制御する.
フロントエンドの配置の分離
単一のクラウドサーバを使用するため、テストと生産環境のフロントエンドエンジニアリングは80ポートまで使用する必要があります.微信の高度なインタフェースには80ポートプログラム呼び出ししか許可されていないものがあるため、ngnixの構成にはダミーホストを構成するスキームが使用されています.
具体的な手順は次のとおりです.
server {
listen 80;
server_name //
root // ;
index index.html index.htm;
...
}
フロントエンドエンジニアリングの導入スクリプトプロセスは、コードを対応する構成のディレクトリに置き換え、ngnixをスムーズに再ロードすることです.
systemctl reload nginx.service //reload ,
シナリオのまとめ
新しいテスト公衆番号を申請することによって、異なるドメイン名をサブメニューに配置することで、オンライン公衆番号と同じインタラクションを達成することができ、フロントエンドはバックエンドの異なるインタフェースのサービスにアクセスすることによって、データベース、redisキャッシュ、ログ情報はバックグラウンド構成を通じて生産とテストの完全な分離を実現し、上述の解決策は、列挙し始めたすべての需要点を満たしていると言える.最終的に、前後の導入をスクリプト自動化し、導入時間を節約し、開発テストの効率を向上させます.
解決すべき問題
テストと生産環境を分離した後、テストに合格した機能に対してオンラインになる必要がある場合、オンライン上の配置スクリプトを実行する必要がある.この場合、フロントエンドとバックエンドコードの配置は依然としてオンライン上のサービスが一時的に利用できないことを招くが、現在は1台のサーバーしかなく、階調の発表などの戦略を実現してサービスの高利用を高めることは少し難しいように見える.
実践微信