古いコードフレームワークを安全にアップグレード
単発 · 永久にあなたのもの制作期間 1〜3日古いフレームワークや言語バージョンから抜け出せないソフトウェアチーム向けです。AIエージェントがコードを少しずつアップグレードし、変更のたびにテストを実行して合格したものだけを残し、チームがレビューできる小さな変更単位で進めます。
ソフトウェアの最新状態を維持し、テストと安全な変更をサポートします。
古いフレームワークや言語バージョンから抜け出せないソフトウェアチーム向けです。AIエージェントがコードを少しずつアップグレードし、変更のたびにテストを実行して合格したものだけを残し、チームがレビューできる小さな変更単位で進めます。
コードを実行する前に、開発者がある種のミス全般について警告を受けられるようになります。小規模でレビュー済みの変更として型をコード全体に追加し、それによって見つかった実際のバグを修正し、二度と後戻りしないようチェックを設定します。
ソフトウェアの一部が他のすべての足を引っ張っている場合、それを独立したサービスとして切り出します。まず実際のトラフィックに対してバックグラウンドでテストし、その後、各段階で元に戻せる状態を保ちながら利用者を段階的に移行します。
コードが多くのリポジトリに分散している場合、履歴を一切失わずにそれらを1つにまとめ、変更された部分だけが再ビルド・テストされるようにビルドを設定します。
アプリが受け取る実際のリクエストから個人情報を除いたサンプルを取り、リリース前に新しいバージョンごとにリプレイします。本来変わるべきでない応答が新バージョンで変わった場合、リリースを止めます。
開発者が変更のたびにテストを長く待っている場合、各ファイルがどのテストに影響するかをビルドシステムに学習させ、それらを先に実行するようにします。安全策として、全テストは毎晩引き続き実行します。
最大級のデータベーステーブルが全体を遅くし始めたり、ID番号が足りなくなりそうになったりした場合、アプリを稼働させたままバックグラウンドで再構築し、入れ替えます。
データベースのコストが高すぎる、または足かせになっている場合、アプリをより適したデータベースに移行します。新しいほうが完全に同じ結果を返すようになるまで、実際のトラフィックで両方を並行して稼働させ、その後切り替えます。
アプリが注文を保存したのに、次のシステムへのメッセージが届かない、または2回届くことがあります。コードがメッセージを送る方法を修正して確実に届くようにし、欠落を見つけるチェックを追加します。
誰かが「購入」を2回タップしたり、スマートフォンの電波が途切れたりすると、注文が2件になってしまうことがあります。繰り返されたリクエストを認識して1回だけ処理するようシステムを変更し、自動でテストします。
運用しているすべてのソフトウェアとその担当者を把握し、テスト、デプロイ、監視が設定済みの新しいサービスを始められる、エンジニア向けの社内ウェブサイトを構築します。
アプリのホスティングプラットフォームのコストが高くなった、または制約が多くなった場合、アプリ、データベース、バックグラウンドジョブを自社のクラウドアカウントに移し、チームはこれまでと同じ簡単な方法でデプロイを続けられます。
ほとんど変化しない処理のためにクラウドの請求額が増え続けている場合、お客様がレンタルする専用サーバーへ移行し、バックアップとフェイルオーバーを維持します。すべてお客様ご自身のアカウントのサーバー上で稼働します。
クラウドが画面操作で構築された場合、誰も安全に変更や再構築ができません。稼働中の内容と完全に一致するコードとしてすべてを書き起こすので、今後の変更は事前にレビューされます。
コードリポジトリで承認された内容をサーバーが自動的にそのまま実行するよう設定します。誰も自分のノートPCから変更を反映することはなく、すべての変更にレビュー済みの記録が残ります。
古いクラスターのバージョンは修正の提供が止まります。壊れるものをすべて見つけて修正し、コピーで練習したうえで、アプリを稼働させたままクラスターを1段階ずつアップグレードします。
監視の請求額はログが増えるたびに膨らみます。チームが実際に使っているデータを見極めてそれを残し、残りは移動または削減するので、アラートとダッシュボードを機能させたまま請求額を減らせます。
多くのクラウドでは、より安価になりうるARMサーバーが提供されています。アプリをARM上でビルド・実行できるようにし、それぞれを公平にテストして、良い結果が出たものだけを移行します。
アプリケーション全体をパッケージ化し、どの開発者もサンプルデータ込みで、1つのコマンドで自分のパソコンやブラウザ上で起動できるようにします。
古いコードは積み重なり、あらゆる変更を遅くします。稼働中のシステムが実際に実行しているコードを数週間にわたって観察し、まったく使われていないものを安全に削除します。
ランダムに発生して再現できないバグは、多くの場合、処理が同時に起こることが原因です。それを検出する特別なビルドを実行し、修正を証明するテスト付きで1つずつ修正します。
サーバーを毎晩再起動する必要がある、またはしばらくするとクラッシュする場合、何かが少しずつメモリを消費しています。稼働中のシステムで原因を見つけて修正し、今後のすべてのリリースでその問題をテストします。
コードのどの部分が最もサーバーの処理能力を使っているかを常時測定し、最も問題のある箇所を修正し、新たに遅い箇所が現れたらすぐにわかるよう監視を続けます。
Pythonソフトウェアの一部が遅い場合、その部分だけを、はるかに高速な言語であるRustで書き直し、まったく同じ結果を返すことをテストしたうえで、他には一切手を加えずに組み込みます。