Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。_原文(投稿日:2018/11/24)へのリンクThoughtWorksの主任開発者のひとりが、同社のあるクライアントでビルドパイプラインを書き換えた際の、自身のチームの経験談を公開している。チームは、コンフィギュレーション・アズ・コード、パイプライン駆動デリバリ、コンテナのサポート、システムの可視性といった点を重視して、JenkinsからConcourseCIへのスイッチを行った。既存のシステムは中央にJenkinsを配置し、複雑に構成されていた。パイプラインは内部のDSLで記述されていたが、所有権がチーム全体に分散しており、実際の所有者は存在しなかった。セットアップ変更は大変な作業で、作り直すことはほぼ不可能に見えた。チームはまず、新たなシステムに望むものをリストアップした。インフラストラクチャ・アズ・コードの考え方を導入するためには、構成情報をバージョン管理の下に置く必要がある。新たなシステムは、ビルディングブロックとしてパイプラインをサポートし、コンテナをサポートし、ステータスが容易に視認可能な、成熟した、メンテナンスの行き届いたツールでなければならなかった。ownership)を持つ新しいCIシステムを導入することだ。いくつかのツールを評価した後、チームは、UIのシンプルさと宣言的構成の容易さから、ConcouseCIを選択した。AWSオートスケーリンググループによる計算処理に移行するという、大規模なアーキテクチャ再編作業の一環として実施された。チームが最も重視したのは、迅速なリリースを実現することだった。可能な部分でのパイプラインの並列化、複数のリンタ(linter)、ユニットテストとインフラストラクチャテスト、デリバリ対象のコンテナ化などが、これを実現する上では重要な役割を果たした。コンテナは、運用時のアプリケーション実行とビルドパイプライン自体の実行の両方において、安価な分離メカニズムとしても使用された。Fernández氏とコンタクトを取り、マイグレーションの詳細とコンテナの利用について詳しく聞くことができた。2つのコンテナには異なる目標があります。運用コンテナはアプリケーションを実行するためのものなので、インストールするソフトウェアを最小限にして、フットプリントとソフトウェア面での脆弱性を低減したいと考えています。これらのコンテナは、すべてAlpineをベースとしています。ビルドコンテナは、ソフトウェアをビルドし、実装の必要なチェックがパスしていることを確認するためのものです。こちらについては、最適化はあまり必要としないので、もう少し穏やかなものになります。ConcourseCIパイプラインはYAMLで定義されており、ジョブ(パイプラインの動き方)とリソース(ジョブが使用するオブジェクト)という抽象概念で構築されている。今回のパイプラインは、独立してテスト可能なシェルスクリプトを中心に構成された。タスクの複製を避けるため、パイプラインタスクにはパラメータ化による再利用が行われた。パイプラインの一貫性を保つように最初から取り組んでおくことで、後の再利用が容易になった、とFernández氏は述べる一方で、過度な共通化については警告している。問題が表面化するまでは、あまり多くの時間を投入しないようにしています。必要ではなかった複雑性を組み込むことになる場合があるからです。私は、問題をしばらく放置するようにしています。最初にタスクの複製が発生した時点では、共通化のために投資する価値はないかも知れません。それが一般的なものになってくると、メンテナンスの作業量が増加する、あるいはアップグレードが難しくなるなど、チームの負担になる場合があるのです。このような再利用の例としては、独自のリポジトリにあるタスクライブラリがある。このライブラリは、アプリ固有の要件をビルドスクリプトにする形で、ビルドステップの標準化を促進する意味も持っている。bashビルドスクリプトはモジュール化が難しいため、ほとんどのプロジェクト間で複製されている、とFernández氏は説明する。別のスクリプト言語に乗り換えれば、必要のない技術的依存関係が発生する可能性がある。TerraformやServerSpecを実行する非アプリケーションコンテナのビルドにも共有モデルが適用されたが、アプリケーションコンテナは分離されたままとなっている。テストスイートはTypescript、CSS、Terraform用の複数のリンタファイルとDockerファイル、ヘッドレスChromeテストで構成される。インフラストラクチャ用のテストフレームワークであるServerSpecでは、インフラストラクチャリソースが期待どおり動作していることを確認できる。この場合、ConcourseCIは自身のビルドをコンテナ内で実行するため、これらのテストはDocker-in-Dockerを使ってコンテナ内でコンテナを実行する。集合的所有権は、この取り組みの目標のひとつだ。これは白と黒の問題ではない、とFernández氏は言う。システムに関して、今回の場合はCIですが、他より詳しい人は常にいるでしょう。私たちは知識のサイロが作られるのを回避しながら、そういった人たちに対して、自分の好きなことに取り組む機会を提供したかったのです。たくさんのペアリングを行って、全員が折りに触れてプロダクトのあらゆる部分に関われるようにすることが、知識の普及には役立ちます。その間は、ある分野について他より多くの知識を持っている人たちが“アンカー(anchor)”となり、開発しているものの品質の高さを保証します。オープンかつ頻繁な共有もまた、この活動では有効です。チームメンバの離脱は、集合的知識にリスクをもたらす可能性があるので、デリバリとコーチングの両方を重視することが重要になる。利害関係者はトレードオフを理解しなければならない。デリバリのみに注目すると、“チームメンバの離脱を乗り越えられない、アンバランスなチームになる”リスクがある、とFernández氏は言う。“知識の拡散とチームのスキルアップは、通常の開発プロセスの一環として組織的に行う必要があります。IAMを使用している。ConcourseCIは、Terraformスクリプトが使用するAWSインフラストラクチャ生成の権限を持ったロールで実行される。Concourseそれ自体はEC2インスタンス上で動作し、パイプラインフローを視覚化するダッシュボードを持っている。移行作業では、JenkinsとConcourseの違いへの適応、新しいCIの複雑なセットアップ要件とドキュメント不足など、いくつかの問題が発生した。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。