アップデートを受け入れる
開発者として私たちは高品質なソフトウェアを作成し、お客様に提供することに情熱を注いでいます。自分たちが作成したソフトウェアが出荷され、デプロイされ、利用されていることを知るだけでも大きな達成感があります。
そして、いい仕事ができたようです。私たちの生活では身の回りのすべてが高品質のソフトウェアに依存しています。私たちが水、エネルギー、電気、交通、食料などを得るために、ソフトウェアが動く必要があります。開発者には、このソフトウェアを常に更新し、効率的に稼働させるという大きな責任があります。私たちは今日の世界を動かすソフトウェアを書いていますが、コードの効率、生産性、製品の強化を確実に改善する唯一の方法はアップデートを継続的にプロダクションにプッシュすることです。
開発者が直面する大きなハードルは、そのアップデートを速いペースでの提供です。開発者はアップデートを恐れているため、ソフトウェアのアップデートの負担を消費者やエンドユーザーに押し付けてしまいます。以下のイラストのように、エンドユーザーにはアップデートをインストールするためのボタンをクリックしてもらいます。コードから製品までシームレスに流れるリキッドソフトウェアを考えると、これは「ソフトウェアの川」の行く手を阻む大きな岩となってしまいます。
どうすればその岩を取り除くことができるでしょうか?
それは自信を持ってアップデートをすることです。
Liquid Software book: How to Achieve Trusted Continuous Updates in the DevOps World
ソフトウェアを安心してアップデートするために – リキッドソフトウェアのビジョン
ソフトウェアのアップデートは大きく進歩しています。店舗の技術者が携帯電話や車をアップデートしていたのが、無線によるアップデートになりました。今日、ソフトウェア・アップデートは進歩していますが、まだプロセスを改善し続けることができます。
ソフトウェアのバージョンがない世界を想像してみてください。
ソフトウェアを世に送り出し、ユーザーに使ってもらうと同時に、リリースしたバージョンにはない別のものを求められることがあります。私たちは、バグを発見して修正したときにアップデートを行いますが、それだけでなく、変化する世界や環境の要求に継続的に応えていく必要があります。私たちはバグの修正やお客様からのフィードバックなど、あらゆる面でソフトウェアのアップデートを受け入れる必要があります。考え方を変えてみるとソフトウェアのアップデートはソフトウェア開発の中核をなすものだとわかります。1行のコードを書いたらすぐに、このコードはアップデートしなければならないと考える必要があるのです。強力なDevOpsパイプラインを構築するための3つの秘訣は自動化、自動化、自動化だと思います。安全なソフトウェアをより早く提供するためのツールを利用し、より多くの自動化プロセスを構築する必要があります。これをソフトウェアの保守と改良の標準的な方法として取り入れることで、自信のレベルが高まり、継続的なアップデートから恐怖を取り除けるようになります。
これがリキッドソフトウェアのビジョンです。ソフトウェアはもはやパッケージではなく、リキッド(液体)なのです。ハードウェアやKubernetesクラスターにデプロイできるようになった時点でソースコードとの接続が必要になります。私たちはソフトウェアの開発やアップデートをパイプの中を流れる液体のように考える必要があるのです。
JFrogではソフトウェア開発者がアップデートを自動化し、DevOpsパイプラインを自動化し、ワークフローを自動化するためのすべてのツールを作成しています。
- バイナリ、バイナリコード、すべての依存関係、開発したソフトウェアを管理できます。
- すべてのバイナリをスキャンし、攻撃されない堅牢なコードであることを検証します。
- OTA(Over The Air)アップデートをデバイスや組み込み機器に至るまで実施します。
ソフトウェアのアップデートの問題は、ソフトウェアの問題です。ソフトウェアはアップデートされる必要があり、継続的なアップデートとそのアップデートの継続的な配布が解決策となります。イノベーションは毎日起こっています。ソフトウェアを書くときの可能性は巨大なものです。これがソフトウェアの素晴らしいところです。コードを書き、コードをデプロイし、継続的にアップデートしてランタイムに配布し、アップデートを受け入れれば、リキッドソフトウェアを実現できます。