左耳マウス: Go言語、Docker、新しいテクノロジー

左耳マウス: Go言語、Docker、新しいテクノロジー

最近、ベテラン Unix ハッカーであり、Go 言語の 3 人の創始者の 1 人である Rob Pike 氏が、新しい記事「Go: 10 年の歩みと成長」で Go 言語の開発プロセスをレビューしました。過去10年間のGo言語の急速な発展は彼ら自身も予想していなかったほど大きく、クラウドコンピューティングの分野における新世代の開発言語となっていると言及されました。また、中国のプログラマーの Go 言語に対する愛情は彼らの想像を完全に超えており、それが真実であるとさえ信じられないとも言われました。

これは、2015 年 5 月に私がベイエリアにある Docker 本社を訪問したときのことを思い出させます。Docker の責任者は私に同様の感想を述べました。彼らは、中国でこれほど多くの人が Docker を好んでおり、これほど多くの人が Docker に貢献しているとは予想していなかったので、非常に驚​​いた、と。さらに、彼は、米国以外で Docker 技術をこれほど好んでいる国は中国であり、これは他の国では見られないことだとも話しました。

[[208811]]

まさに彼らの言う通り、Go 言語と Docker はクラウド コンピューティング技術の新世代となり、その発展の傾向が非常に急速であることがわかります。中国も米国と同様に、この2つの技術を積極的に推進する国となっている。これは実に喜ばしいことです。なぜなら、中国は時代の流れにうまく対応してきたからです。

しかし、2014年から2015年にかけてアリババでDockerとGo言語を推進する苦労と失敗の過程で、そして何年もの間、多くの人から、Go言語を学ぶべきかどうか、Dockerを学ぶべきかどうか、GoとDockerを生産ラインで使用できるかどうか尋ねられてきました。これらの質問は、国内のテクノロジー界において、かなりの数の人々やグループが依然として Go 言語や Docker テクノロジーを待っていたり、信用していなかったりすることを示しています。

そこで、この記事では、2つの側面から私の見解と意見を述べたいと思います。

  • 一方では、Go 言語と Docker がクラウド コンピューティング テクノロジーの新世代となる理由について説明します。
  • 一方、技術者として、どのような新しい技術が将来のトレンドになるのかをどのように見極めるのでしょうか?

これら 2 つの問題は互いに補完し合うので、一緒に説明します。

Go 言語は 2009 年末にオープンソース化されましたが、私が Go 言語に触れて学び始めたのは 2012 年になってからでした。Go 言語を学ぶのにかかったのは週末の 2 日だけで、その 2 日間で、実際に動作する Web クローラーと、以前にクロールした Web ページの主要なコンテンツを抽出するためのシンプルな高並列ファイル処理サービスをすぐに作成しました。どちらのプログラムも非常にシンプルで、コードの合計行数は 500 行未満です。

当時私はGo言語の経験がありました

***、シンプルな言語、簡単に始められます。 Go 言語の構文は非常に単純なので、これを使ってトリックを行うことはほとんど不可能です。簡単で、学習曲線も緩やかで、すぐに使い始めることができます。

第二に、並列プログラミングと非同期プログラミングはほとんど苦労しません。 Go 言語の Goroutine と Channel は、並行プログラミングと非同期プログラミングに大きなメリットをもたらします。 C、C++、Java、Python、JavaScript などの言語における並行性と非同期性は制御が複雑すぎてエラーが発生しやすくなりますが、Go はこの問題を非常にエレガントかつスムーズに解決します。これは、長年プログラミングにおける並行性と非同期性に悩まされてきた私にとって、まったく目から鱗が落ちる経験でした。


(Medium からの画像: なぜ Go を学ぶべきなのか?)

3 番目に、Go 言語の lib ライブラリは小さいながらも完全です。 Go 言語の lib ライブラリには、基本的によく使用されるライブラリのほとんどが含まれています。いくつかのライブラリはあまり良くありませんが、これらの問題は将来の開発で解決されると信じているため、問題ではないと思います。

4つ目は、C言語の考え方とPythonの考え方です。 C 言語の哲学は、プログラマーを信頼し、言語を小さく保ち、基礎となる層を隠さず、基礎となる層に優しくし、言語の実行効率とパフォーマンスに重点を置くことです。 Python のアプローチは、できるだけ少ないコードでできるだけ多くのことを達成することです。つまり、Go 言語は C と Python を統合したいと考えていることが感じられ、それは素晴らしいことです。


(Medium からの画像: なぜ Go を学ぶべきなのか?)

そのため、Go 言語にはガベージ コレクション、例外処理、ジェネリック プログラミングなど多くの問題がありますが、上記の利点と比較すると、これらの問題は小さな問題であると思います。それで私は迷わず飛び込みました。

もちろん、技術が発展できるかどうかは、3 つの重要なポイントによって決まります。

もっと良いコミュニティはあるでしょうか? C、C++、Java、Python、JavaScript などの言語のエコシステムはすべて非常に豊富で人気があります。 Linux コミュニティなど、多くの商業組織が関与するコミュニティは特に人気があります。

業界標準はありますか? C、C++、Java などの言語にはすべて標準化団体が存在します。特に Java は、アーキテクチャの面では J2EE などのエンタープライズ レベルの標準も開発しています。

キラーアプリは1つ以上ありますか? C、C++、Java のキラー アプリケーションについては、あまり説明する必要はありません。まだ良いプログラミング言語とはみなされていない PHP も、Linux 時代の最初のキラーソリューションである LAMP のキーテクノロジーであるため、発展してきました。

上記の3点は非常に重要です。新しいテクノロジーがそれらの 1 つまたは 2 つを占有するだけでも、すでに非常に優れています。さらに、Java などの一部のテクノロジには、これら 3 つのポイントがすべて備わっています。それが Java がこれほどうまく発展した理由です。もちろん、上記の 3 つの重要な要素に加えて、次のような他の影響要因もあります。

  • 学習曲線は低く、始めるのは簡単ですか?これは非常に重要であり、C++ ではこの点が悪化しています。
  • 開発効率を向上させるための優れた開発フレームワークはありますか?たとえば、Java の Spring フレームワーク、C++ の STL など。
  • それを後援する巨大テクノロジー企業は 1 社以上あるのでしょうか?たとえば、Java と Linux の背後には IBM と Sun がいます...
  • ソフトウェア開発における問題点に対する解決策はあるでしょうか?たとえば、Java は C および C++ のメモリ管理の問題を解決します。

これらの基準を使用して Go 言語を測定すると、次のことがはっきりとわかります。

  • Go 言語は簡単に習得できます。
  • Go 言語は、並行プログラミングと低レベルのアプリケーション開発効率の記述の問題点を解決します。
  • Go 言語は世界最大のテクノロジー企業である Google のサポートを受けています。
  • Go 言語のキラー アプリケーションは Docker であり、Docker エコシステムはここ数年で爆発的に成長しました。

したがって、Go 言語の将来は無限です。もちろん、私個人としては、Go が多くの C、C++、Java プロジェクトを飲み込む可能性があると考えています。ただし、Go 言語が使用する主なプロジェクトは、非常に低レベルのプロジェクトでもビジネス レベルのプロジェクトでもなく、中レベルのプロジェクトである必要があります。

言い換えれば、Go 言語は C や C++ のような低レベルのプロジェクトを飲み込むことはなく、Java ビジネス レイヤーのような高レベルのプロジェクトを飲み込むこともありません。 Go 言語は、一部のメッセージ キャッシュ ミドルウェア、サービス検出、サービス プロキシ、制御システム、エージェント、ログ収集など、PaaS 上のプロジェクトにのみ使用できます。複雑なビジネス シナリオはなく、最下層 (オペレーティング システムなど) に到達できる中間プラットフォーム層のソフトウェア プロジェクトやツールではありません。 C と C++ は下位レベルに格下げされ、Java は上位ビジネス レベルに格下げされます。これは私の判断です。

さて、上記の定規を使って Go 言語のキラー アプリケーション Docker を測定してみましょう。基本的に同じであることがわかります。

  • Docker を使い始めるのは簡単です。
  • Docker は、運用と保守における環境問題と、サービス スケジューリングの問題点を解決します。
  • Docker のエコシステムをサポートする大企業が存在します。たとえば、Google。
  • Docker は業界標準の OCI を作成しました。
  • Docker のコミュニティとエコシステムは、すでに Java や Linux と同様の傾向を示しています。

そのため、3、4 年前から、Docker は間違いなく将来のテクノロジーになると感じていました。当時はまだ多くの落とし穴がありましたが、これらの大きな要因と比較すると、それらの小さな落とし穴は問題ではありませんでした。少し時間がかかるだけで、これらの小さな穴は今後 5 ~ 10 年で完全に埋められるでしょう。

同様に、サービスとコンテナのスケジューリングの主要テクノロジーとしての Kubernetes が、間違いなく最終的な勝者となることがわかります。昨年の初めに、私はこのことをはっきりと感じました。

Docker についてもう少しお話ししたいと思います。クラウドコンピューティングにおけるPaaSの主要技術です。しかし、Docker が登場する前は、パブリック PaaS を利用したいと思っていたほぼすべての企業や製品は、それができませんでした。例えば:

GoogleのGAE、TaobaoのTAE、SinaのSAEなど、さまざまな国内XAE。しかし、それでもPaaSは世界や業界から深刻に過小評価されているプラ​​ットフォームであると言いたいです。

PaaS 層は、上位層と下位層を接続する重要な技術です。 PaaSを重視しない企業は、技術アーキテクチャを通じて大企業に成長することはできません。 PaaS 層の技術は主に以下の問題を解決できるからです。

ソフトウェア生産ラインの問題。継続的インテグレーションと継続的リリース、および DevOps のテクノロジーは、PaaS を通じて実装する必要があります。

分散サービスの問題。分散サービス指向サービスの高可用性、サービス オーケストレーション、サービス スケジューリング、サービス ディスカバリ、サービス ルーティング、および分散サービス指向サービスのサポート テクノロジーは、完全に PaaS の専門分野です。

サービス可用性 SLA を向上します。サービス可用性 SLA を向上させるために必要な分散型の高可用性技術アーキテクチャと運用および保守ツールも、PaaS レイヤーによって提供されます。

ソフトウェア機能の再利用。ソフトウェア エンジニアリングの中核はソフトウェア機能の再利用であり、これは PaaS プラットフォームのテクノロジにも最もよく反映されています。

正直に言えば、これらの問題の重要性は、テクノロジーベースの企業の研究開発能力が信頼できるかどうかを判断するのに十分です。これらのテクノロジーがなければ、テクノロジーベースの企業が大規模に成長することはほぼ不可能でしょう。

今後、分散サービスと PaaS プラットフォームの重要性について詳しく説明する記事をいくつか書く予定です。

***、これらの新しいテクノロジーが成熟するのを待つのではなく、より早く参入すべき理由についてもお話ししたいと思います。理由はいくつかあります。

技術の開発プロセスは非常に重要です。 Go と Docker のテクノロジーに参入したのは早すぎたわけではなく、遅すぎたわけでもありませんでした。 2012 年に Go を学び、2013 年に Docker を学び、そして今日に至るまで、私はこれら 2 つのテクノロジーのエコシステムの開発プロセスをはっきりと見てきました。私にとって最も有益だったのは、テクノロジーそのものではなく、テクノロジーの変化と業界の発展でした。

このことから、Go や Docker よりも価値のある、非常に具体的な考えやアイデアがわかりました。なぜなら、それは私がすでに持っている技術と既存の問題をより良く解決する方法を再考するきっかけとなっただけでなく、未来を見ることも可能にしたからです。技術的な優位性があるだけでなく、この知識によって技術的なキャリアの可能性がさらに広がります。

これらの重要な新技術は、技術的な優位性をもたらします。これらはすべて、技術的リーダーシップを必要とする個人や企業にとって非常に重要です。

技術的優位性を獲得できる企業や個人は、他の企業や個人よりも大きな影響力を持つことになります。将来、業界の需要が爆発的に増加すると、この企業または個人の影響力は比較的大きな防御壁を形成し、すぐに経済的利益を生み出す可能性があります。

最近、中国移動、中国電信、いくつかの株式会社銀行とコミュニケーションをとる過程で、通信業界と金融業界はインターネット企業よりもPaaSプラットフォームをよく理解していることがわかり、過去3年間のこれらの技術に関する研究は私に大きな利益をもたらしました。

そのため、Go と Docker は PaaS プラットフォームの主要テクノロジーとして大きな可能性を秘めています。私はこのトレンドに追いつくことができ、3年前にこのトレンドに気付いていたことを嬉しく思います。現在、私はこれらの技術を使用して、急成長中の企業にこれらの重要な技術を提供できるよう、関連する技術製品の開発にも取り組んでいます。

<<:  300社以上のSaaS企業を調査し、7つの成長体験をまとめました。

>>:  仮想化とクラウド コンピューティングの後、エンタープライズ ローカル展開には何が残るのでしょうか?

推薦する

いつでもすぐにウェブサイトを最適化する方法

ウェブサイトの最適化レベルの向上に伴い、多くのウェブマスターは、振り返ってみると、自分が作成または最...

タオバオ12.12の新しいゲームプレイがウェブサイト運営にもたらす啓蒙について語る

今日、「Taobaoが12.12に新しいゲームプレイを開始、商人と消費者が主人公」という記事を見まし...

vpslot: ドバイ VPS、月額 16 ドルから、帯域幅 1Gbps、中東に最適

主に米国(シカゴ)と中東のドバイVPSを運営しています。独立サーバーは米国シカゴとニューヨークにもデ...

V.PSはどうですか?ドイツAS9929高速ネットワーククラウドサーバーの評価

v.psはどうですか? v.ps ドイツはどうですか? v.ps ドイツのas9929はどうでしょう...

あなたにふさわしいシンプルで実用的なWeiboマーケティングスキル

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス企業がインターネットマー...

マーケティング解釈!ダイソンの新製品はなぜWeChatモーメンツで人気があるのでしょうか?

月給5,000~50,000のこれらのプロジェクトはあなたの将来ですテキスト丨脳を燃やす広告(shu...

日々の話題:P2Pオンライン融資業界が直面するリスク、そして業界の問題が警告され始める

10月5日、ウェブマスターネットワーク(www.admin5.com)によると、招商銀行が​​ひっそ...

パンデミック中に最も人気のあるビデオ会議プラットフォームであるZoomが、Oracle Cloud Servicesへの移行を開始

COVID-19パンデミックの間、ビデオプラットフォームのZoomは間違いなく最もホットなテクノロジ...

vps1Net: オランダの VPS、無制限のトラフィック、月額 2.95 ドルから、毎日の購入をサポート

vps1.net はアラブ首長国連邦のシャルジャに拠点を置く会社です。現在は主にオランダの VPS ...

YTOエクスプレスは民間航空局に航空会社設立を申請した。

中国国際放送、北京、11月27日(記者:肖元)中国国営ラジオの「ニュース夕刊ラッシュアワー」の報道に...

ウェブサイトの重量を改善するための具体的な手順をいくつか紹介します

Googleの公式ガイドラインによると、ウェブサイトのランキングに影響を与える要素は200以上あるそ...

産業用不動産ウェブサイト運営の3つの要素の詳細を理解し、ウェブサイトの成功を支援します

わが国の経済の急速な発展に伴い、実体のある企業が大量に出現し始めています。このような背景から、多くの...

hosteons: INAP(ロサンゼルス+ニューヨーク)を追加、評価データ+複数の割引コードが引き続き放送

Hosteons の INAP データ センターは、実際には数日間稼働しています。最近何かの理由で遅...

WaveCom-エストニア/月額5.6ドル特別価格kvm仮想VPS(1Gメモリ)

Wavecom は、エストニアの老舗企業 (登録番号: 10756058) で、2001 年から事業...

301サーバーがウェブサイトのドメインのブロックやブロックを防ぐ方法

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスドメイン名のブロックとは...