|
子供の頃の私の大きな夢は二つ、消防士になることと宇宙探検家になることでした。どちらの夢も大したことはしませんでしたが、消防士になることは、カリフォルニア州森林火災保護局が主催する火災予防プログラムにボランティアとして参加することで叶いました。宇宙探検家になることは、フィクションもノンフィクションも含め、宇宙に関するあらゆる本を読み漁りました。 私は最近、クリス・ハドフィールド大佐が書いた、宇宙飛行士の生活と地球での生活ガイドに関する本を受け取りました。アジアへの海外旅行中に読むつもりです。 この本を貪るように読むこと(強くお勧めします)に加えて、この本は、私自身の仕事をいかに効率化するか、そして社内の開発者と Samsung 全体にオープンソースの仕事を効率化するためにいかにアドバイスするかについて、常に私にインスピレーションを与えてくれます。 「ゼロ」になる この本の第9章で、ハドフィールドは次のように書いています。 「どんな状況でも…あなたは3つのタイプの人間のうちの1人と見なされます。『ネガティブ』:つまり、非常に有害でトラブルを引き起こす人。『ゼロ』:ニュートラルな印象を与え、バランスを崩さない人。そして『ポジティブ』:価値を付加する人。もちろん、誰もが『ポジティブ』で価値ある人間になりたいと思っています。しかし、最初から『ポジティブ』だと主張することは、あなたがどんなスキル(あるいは価値)を持っているか、実際にどのようにパフォーマンスを発揮しているかに関係なく、自分自身を『ネガティブ』だと宣言するようなものです。」 これはいくぶん敗北主義的に聞こえるかもしれませんが、実際には個人や企業がオープンソース内でどのように活動するかと密接に関係しています。 私は他のことを検討するときにこれに共感し、コミュニティとのやりとりを「謙虚でありながら自信に満ちている」と表現した最近のブログ投稿を含めて記録しました。 ハドフィールド氏の言葉を考えると、彼がまさに同じことを言っていることがはっきりと分かります。オープンソースコミュニティの一員であれば、当然「ポジティブ」(価値を生み出す人)でありたいと思うものですが、特に交流する際には、可能な限り「中立」(バランスを崩さない人)でいる必要があります。 これは個人のオープンソース開発者にも当てはまりますが、企業のために働く開発者にとってはなおさらです。最初から「ポジティブ」(価値創造者)であろうと努めることほど、オープンソースコミュニティから無視されやすく、あるいはさらに悪いことに、反対されやすくする手段はありません。 ということは、表舞台に立たず、公の場で意見を表明するのをやめるべきなのでしょうか?もちろん違います。ここでは、「ポジティブ」(価値を生み出す人)の状態に到達するためのガイドラインをいくつかご紹介します。 宿題をやりなさい オープンソース プロジェクトに参加することを決める前に、事前の準備や調査を行うことは不可欠であり、近道はありません。 その他にも、コミュニティ(メーリングリスト、フォーラム、インターネットリレーチャット(IRC)など)とのコミュニケーション方法を知ることも重要です。また、脆弱性追跡システムやメーリングリストなどを通じてアイデアを提起し、議論に参加する方法も知っておく必要があります。 さらに、コミュニティがどのように統治されているかを理解する上でも役立ちます。Linuxカーネルのように管理者/アシスタントによる階層的なシステムなのか、それともDebianプロジェクトのようによりフラットな構造なのか。これらを理解することで、プロジェクト内の主要人物や影響力のある人物を特定し、変更や新しいアイデアを提案する際に役立ちます。 開発プロセスを理解することは非常に重要です。バグや新機能は、メインラインに組み込まれるまでにいくつの段階を経るのでしょうか?ある側面は他の側面よりも議論の的になりやすいのでしょうか?こうした調査はすべて、バグを修正したり、新機能を提案・実装したりする際に役立ちます。 汚れ仕事をする 国際宇宙ステーションへのアクセス方法を説明する中で、ハドフィールド氏は次のように書いている。 全く新しい環境に貢献する最良の方法は、自分の素晴らしさを証明しようとすることではありません。中立的な影響力を発揮し、その環境に既にいる人々の行動を観察し、そこから学び、適切なタイミングで重要な役割を担うことです。 オープンソースプロジェクトは、まるで宇宙ステーションにいるようなもので、数え切れないほどのタスクをこなさなければなりません。確かに、最も名誉ある仕事はコードを書くことかもしれませんが、私が見てきたほとんどのプロジェクトでは、以下のタスクの1つ(あるいはすべて)を緊急に完了させる必要があります。
これらのタスクのいずれかに継続的に参加することで、これまで持っていなかった専門知識とプロジェクト経験を積むことができます。また、時間の経過とともに、他のコミュニティメンバーに対して、自分が信頼できる人物であり、より大きな責任を担う能力があることを証明できるようになります。 一人ひとりを大切に 近年、メーリングリストやIRCでの辛辣なコメントの多さから、オープンソースプロジェクトは「危険な職場環境」だと評されることが多くなりました。しかし、私はサムスン(そして私が勤務したりコンサルティングを行った他の企業)の従業員にこう言っています。「(オープンソースプロジェクトにおいても)プロ意識を決して失ってはいけません」 他者からのフィードバックを謙虚に受け入れ(たとえ表現に誤りがあっても)、コードをリファクタリングし、提案を取り入れ、メーリングリストで問題に注釈を付けることは、オープンソース環境における効率性を向上させる上で不可欠です。地域の壁を越えた文化交流も重要な役割を果たします。プロジェクトに関わる開発者との個人的なコミュニケーションも同様に重要であることを忘れないでください。 ハドフィールド(カナダ初の宇宙飛行士)は、他者との協働に不向きだったり、医療チームやその他の支援チームを粗末に扱ったりする宇宙飛行士たちの話をしました。彼らは根本的に不適格でした。自分の分野では非常に優秀な開発者であっても、効果的にコミュニケーションを取り、すべての人を尊重することができなければ、オープンソースコミュニティで長期的な成功を収めることは難しいでしょう。 要約すれば これらすべての視点は、一つの事実を示唆しています。それは、自分の環境を理解することです。ハドフィールドはそれを次のように的確に要約しています。 ある程度のスキルはあっても、周囲の環境を完全に理解していないと、それ以上前進することはできません。最悪の場合でも、同じ状況から抜け出せないままです。しかし、行き詰まりは必ずしも悪いことではありません。あなたはまだ問題を解決する能力を身につけていないため、他の人の仕事の質が向上する可能性があります。あなたはそれらの問題を解決できる能力を身につけなければなりません。それまでは、他のことに集中しましょう。 最も重要なのは、彼が苦労して得た(生死を分ける)解決策を本書に収録し、彼の経験を共有することです。一方、オープンソースプロジェクトの有効性は劇的に変化しました。高度255マイルで生活し、異なる民族間の協力の成果として得た彼の経験は、オープンソースコミュニティのメンバー間の信頼構築にも同様に当てはまります。 |
オープンソース コミュニティに統合してオープンソースの作業でより良い成果を上げるための 4 つのヒント。
関連するおすすめ記事
-
LibreOfficeとOpenOfficeの類似点と相違点
-
89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">resource ( s )
2022/07/02 13:17:33 1 つのリソースを作成しています
2022/07/02 13:17:33 1 つのリソースを作成しています
2022/07/02 13:17:33 検出キャッシュをクリアしています
2022/07/02 13:17:33 タイムアウト1 分で4つのリソースの待機を開始
2022/07/02 13:17:39 43個のリソースを作成しています( s )
2022/07/02 13:17:39 5分0 秒のタイムアウトで43のリソースの待機を開始
2022/07/02 13:17:40 デプロイメントの準備ができていません: argocd / argocd - applicationset - controller 。 予想される1 個のポッドのうち0 個が準備ができています
2022/07/02 13:17:42 デプロイメントの準備ができていません: argocd / argocd - applicationset - controller 。 予想される1 個のポッドのうち0 個が準備ができています
……
2022/07/02 13:19:44 デプロイメントの準備ができていません: argocd / argocd - applicationset - controller 。 予想される1 個のポッドのうち0 個が準備ができています
2022/07/02 13:38:27 デプロイメントの準備ができていません: argocd / argocd - dex - server 。 1 個のポッドのうち0 個が準備完了です
2022/07/02 13:38:30 リリースインストールに成功しました: argocd / argo - cd - 4.9.11
2022-07-02 13:38:30 ✔ [ 成功] ツール( argocd / default ) の作成が完了しました。
2022 - 07 - 02 13 : 38 : 30 ℹ [ 情報] -------------------------- [ 処理の進行状況: 4/4 。 ] --------------------------
2022 - 07 - 02 13 : 38 : 30 ℹ [ INFO ] 処理中: ( argocdapp / default ) -> 作成...
2022-07-02 13:38:31 ℹ [ INFO ] application . argoproj . io / dtm - test - go が作成されました
2022-07-02 13:38:31 ✔ [ 成功] ツール( argocdapp / default ) の作成が完了しました。
2022-07-02 13:38:31 ℹ [ 情報] -------------------- [ 処理が完了しました。 ] --------------------
2022-07-02 13:38:31 ✔ [ 成功] すべてのプラグインが正常に適用されました。
2022-07-02 13:38:31 ✔ [ 成功] 申請が完了しました。適用プロセス中、実行状態は定義された状態バックエンドストレージに保存されます。例えば、ローカルストレージを使用している場合、実行状態はルートディレクトリのdevstream.stateファイルに保存されます。合計4つのツールチェーンがあり、最初の2つが完了し、最後の2つが認識された場合、最初の2つのプラグインの状態がこのファイルに保存されます。次回の再適用時には、最後の2つのツールチェーンのみを実行する必要があります。
上記で定義したツールチェーンは、最終的に GitHub 上に Golang Web 用のスキャフォールディングされたアプリケーション コード リポジトリを作成します。
GitHub Actions は、CI 操作と Docker イメージの構築に使用されます。
CI プロセスは最終的にイメージを Docker Hub にプッシュします。
その後、ArgoCD が Kubernetes にデプロイされます。
$ kubectl get pods -n argocd
名前準備完了ステータス再起動年齢
argocd - アプリケーション- コントローラー- 0 1 / 1 実行中0 5 分55秒
argocd - アプリケーションセット- コントローラー- 64 d8c477f4 - 2 wrg6 1 / 1 実行中0 5 分55秒
argocd - dex - サーバー- dbdbf5499 - krmfz 1 / 1 実行中0 5 分35秒
argocd - 通知- コントローラー- b67c4bdb4 - 22 t9l 1 / 1 実行中0 5 分55秒
argocd - redis - df9db799b - 8 gbpv 1 / 1 実行中0 5 分55秒
argocd - リポジトリ- サーバー- 56769 cdd47 - zs65j 1 / 1 実行中0 5 分55秒
argocd - サーバー- 7 d4745f689 - w5pp7 1 / 1 実行中0 5 分55秒最後に、ArgoCDを使用してCD操作を実行し、サンプルアプリケーションをKubernetesクラスターにデプロイします。基本的には、ArgoCDアプリケーションオブジェクトを作成します。
$ kubectl アプリケーションを取得- n argocd
名前同期ステータスヘルスステータス
dtm - テスト- go 不明健康ArgoCD を通じて、デプロイされたアプリケーションの詳細を表示することもできます。
最後に、ツールチェーン全体を削除する場合は、`dtm delete` コマンドを実行するだけです。
プロセス全体は非常にスムーズでした(ただし、何らかの理由でGitHubへのアクセスが非常に遅かった点を除けば)。必要なプラグインを設定ファイルで定義するだけで済みます。プラグインの設定方法の詳細については、公式ドキュメント(https://docs.devstream.io/en/latest/plugins/plugins-list/)をご覧ください。
YAML設定ファイルに必要なDevOpsツールを定義するだけで、たった1つのコマンドでDevOpsツールチェーンとSDLCワークフロー全体を構築できます。DevStreamはまさに魔法のツールと言っても過言ではありません。
Git リポジトリ: https://github.com/devstream-io/devstream。
-
-
クロスプラットフォーム開発フレームワーク Qt 6.5 LTS がリリースされ、Android 12 と Microsoft Windows 11/10 のダーク モードがサポートされました。
-
-
オープンソース コミュニティはいつ隠れんぼをやめるのでしょうか?