内部 ConveyThis 技術: ウェブサイト クローラーの構築

効率的な Web サイト管理のための極めて重要な技術コンポーネントである ConveyThis'' Web サイト クローラーの開発の舞台裏をご覧ください。
クレジットカード不要 契約義務なし
G2 High Performer Spring 2023
G2 Easiest Setup Fall 2024
G2 Best Support Spring 2025

· アレックスB · ブログ

この投稿を次のように要約します: 5分で読めます

ユーザーエクスペリエンスの向上: ConveyThis URL管理を導入

Business 1

多くの ConveyThis 利用者は、Web サイトのすべての URL を適切に翻訳することを好みますが、これは、特に複数の言語に翻訳された広大なサイトの場合、困難な作業となる可能性があります。

ユーザーのフィードバックによると、一部のクライアントは最初の開始を見つけました ウェブサイト翻訳 プロジェクトはやや当惑します。彼らは、なぜ翻訳リストでホームページの URL しか表示できないのか、またコンテンツの翻訳を作成するにはどうすればよいのかをよく疑問に思いました。

これは、強化の可能性のある領域を示しました。私たちは、よりスムーズなオンボーディング プロセスとより効率的なプロジェクト管理を促進する機会があると考えました。しかし、その時点では具体的な解決策がありませんでした。

その結果、ご想像のとおり、URL 管理機能が導入されました。これにより、ユーザーは Web サイトの URL をスキャンし、ConveyThis ダッシュボードを介して翻訳されたコンテンツを迅速かつ効果的に生成できます。

最近、この機能は翻訳リストから、より適応性が高く強力な新しい URL ベースの翻訳管理ページに再配置されました。さて、この機能の始まりの背後にあるストーリーを明らかにする時期が来たと私たちは考えています。

Golang の導入: ConveyThis’ 翻訳サービスの強化に向けた旅

Office

パンデミックによる2020年のロックダウンの開始により、時間の制約により脇に追いやられていたプログラミング言語golangをついに学ぶ機会が得られました。

Google が開発した Golang または Go は近年人気が高まっています。静的にコンパイルされたプログラミング言語である Golang は、開発者が効率的で信頼性の高い同時コードを作成できるように設計されました。そのシンプルさは、速度を犠牲にすることなく、広範で複雑なプログラムの作成と保守をサポートします。

Golang に慣れるための潜在的なサイド プロジェクトを考えているときに、Web クローラーが思い浮かびました。これは前述の基準を満たしており、ConveyThis ユーザーにソリューションを提供する可能性があります。Web クローラーまたは ‘ボット’は、Web サイトにアクセスしてデータを抽出するプログラムです。

ConveyThis の目的は、ユーザーがサイトをスキャンしてすべての URL を取得できるツールを開発することでした。さらに、翻訳を生成するプロセスを合理化したいと考えました。現在、ユーザーは Web サイトを生成するために翻訳言語で Web サイトにアクセスする必要がありますが、これは大規模な多言語サイトにとっては困難な作業になります。

最初のプロトタイプは単純でしたが – URL を入力として受け取り、サイトのクロールを開始するプログラム – 迅速かつ効果的でした。Alex ConveyThis’ CTO は、このソリューションの可能性を認識し、コンセプトを改良し、将来の生産サービスをホストする方法を検討するための研究開発にゴーサインを出しました。

Easy install

Web クローラー ボットを完成させる過程で、私たちはさまざまな CMS と統合のニュアンスに取り組んでいることに気づきました。そこで疑問が生じました – ボットをユーザーに提示するにはどうすればよいでしょうか?

最初に、Web サーバー インターフェイスを使用して AWS を使用する実証済みのアプローチを検討しました。しかし、いくつかの潜在的な問題が浮上しました。サーバーの負荷、複数のユーザーによる同時使用、Go プログラムのホスティングの経験不足などについて不確実性がありました。

これにより、サーバーレス ホスティング シナリオを検討するようになりました。これにより、プロバイダーによるインフラストラクチャ管理や固有のスケーラビリティなどの利点が得られ、ConveyThis にとって理想的なソリューションとなりました。つまり、各リクエストは独自の分離されたコンテナ内で動作するため、サーバーの容量を心配する必要はありませんでした。

しかし、2020 年当時、サーバーレス コンピューティングには 5 分間の制限がありました。これは、多数のページを持つ大規模な電子商取引サイトをクロールするために必要になる可能性があるボットにとって問題であることが判明しました。幸いなことに、2020 年初頭に AWS は制限を 15 分に延長しましたが、この機能を有効にするのは困難な作業であることが判明しました。最終的に、SQS – AWS メッセージ キュー サービスを使用してサーバーレス コードをトリガーすることで解決策を見つけました。

インタラクティブなリアルタイムボットコミュニケーションへの旅 ConveyThis

Translation service

ホスティングのジレンマを解決するにあたり、克服すべき別のハードルがありました。効率的でスケーラブルな方法でホストされる機能的なボットが誕生しました。残りのタスクは、ボットが生成したデータをユーザーに中継することでした。

最大限のインタラクティブ性を目指して、ボットと ConveyThis ダッシュボード間のリアルタイム通信を決定しました。このような機能にはリアルタイム性は必須ではありませんが、ボットが動作し始めたらすぐにユーザーにフィードバックを提供したいと考えました。

これを実現するために、AWS EC2 インスタンスでホストされるシンプルな Node。js Websocket サーバーを開発しました。これには、Websocket サーバーとの通信とデプロイメントの自動化のためにボットにいくつかの調整が必要でした。徹底的なテストを経て、生産に移行する準備が整いました。

サイドプロジェクトとして始まったものは、最終的にダッシュボードにその地位を確立しました。課題を通じて、私は Go の知識を習得し、AWS 環境でスキルを磨きました。Go はメモリ フットプリントが低いため、ネットワーキング タスク、協調プログラミング、サーバーレス コンピューティングに特に有益であることがわかりました。

ボットが新たな機会をもたらすため、今後の計画があります。私たちは、効率性を高めるために単語数ツールを書き直し、キャッシュのウォーミングに使用できるようにすることを目指しています。私が共有して楽しんだのと同じくらい、皆さんも ConveyThis’ のテクノロジーの世界をこっそり覗いて楽しんでいただければ幸いです。

関連: WordPress Web サイトに Google 翻訳を追加します

シェア: