次元DBAを運営してpythonを学びますか

3704 ワード

次元DBAを運営してpythonを学びますか
 
個人的には
 
現在pythonは、次元データベースの運用で主に使用されています.
1、いくつかの運行メンテナンススクリプトを作成する
2、運行維持管理プラットフォームの作成
3、インターネット大手工場の運営とメンテナンスのシナリオ/ツールを研究し、
 
特にオープンソースデータベースを運用する場合、3つ目は特に重要です.例えば、MongoDBのzabbix監視データベースのスクリプトは外国人がpythonで書いたもので、中の指標を変更する場合は
pythonは必ず使います
mysql関連ツールなど、インターネット大手のオープンソースのデータベーススクリプトやツールは、基本的にpythonで書かれています.これらのツール/ホイールは必ず使用されます.
だからpythonはこのように重要で、もちろんshellで第1点を完成することができて、もし強硬にpythonで書くならばpythonでいくつかのshellコマンドを呼び出すだけです
しかし、pythonを勉強し、pythonを使って、pythonerを作る以上、すべての仕事はpythonを使ったほうがいいです.一部の人はそう思いません.一部の任務では、shellができるpythonはできません.
pythonはshellコマンドを呼び出す必要があります.これは、shellコマンドを呼び出す以上、shellコマンドを直接使用しない理由です.
しかし、個人的にはshellには最大の欠点があると思います.フォーマット
shellはほとんどフォーマットがなく、簡単なインデントだけで、専用のshellエディタもありません.では、数百行のコードを書いたとき、インデント習慣がなければ、shellスクリプトをreviewします.
のあの人はまるで災難で、専用のshellエディタがないため、shellを書く時間違いやすくて、デバッグしにくいです
 
pythonではこれらの問題はありません.pythonはpytharm(本人はpytharm以外のツールはだめだと思います)や他のツールを使うことができます.pythonは厳格なフォーマットがあり、エディタも非常に強力です.
pdb,ipdb,printデバッグ手段が捕まえられる
 
前にS銀行技術部の求人情報があったのを覚えています.
    shell,           10000 shell     

その时、この要求はとても卵が痛くて、単一のシナリオで10000行以上のshellコードを书くことができるのは高人かもしれないし、SBかもしれないと思っていました.どうせS银行の技术を募集してもいいと思っていました.
私の知っている限りでは、彼らのmysql運営維持もあるデータベースサービス会社にアウトソーシングされています.どうせ大部分はアウトソーシングされています.コア技術は一般的なはずです.
しかし、pythonではshellを全く勉強しなくてもいいわけではありません.結局pythonもshellコマンドを呼び出すので、shellはできません.どうしてshellコマンドを呼び出していくつかのタスクを完了するか知っていますか.
ただshellのプロセス制御文のような複雑な文法を学ぶ必要はありません.
 
 
 
最後に、もう一つの言語、go言語
goはインターネット界のC/C++として発展の歴史は長くないが、ここ数年は確かに火がついており、goは静的言語であり、GC機能を備えている
GCが必要なのでgo言語は向いていません
1、システムプログラミング:システムプログラミングは依然としてC/C++が主導し、GCの関係で、性能はC/C++に及ばない
2、ビッグデータ:依然としてJAVAの天下で、当時hadoopが誕生した時、go言語はまだ生まれていなかったので、ビッグデータ分野はJAVAに取って代わることができなかった.
3、電子商取引:依然としてJAVAの天下であり、JAVAには最も成熟した解決策があり、アリババの業務はJAVAを大量に使用するのが一例である.
 
go言語が似合う
1、クラウドコンピューティング:クラウドコンピューティングの分野では、go言語にはライバルがなく、go言語は一般的に非cpu密集型業務、cdn、オブジェクトストレージ、docker、consul、k 8 sに用いられる.
 
実は性能の上で、go言語はJAVAに比べて見劣りがするべきで、発展の歴史はJAVAが長くなくて、GCの機能はJAVAの完備がありません
 
メンテナンスの分野では、go言語の性能はpythonよりも優れています.静的言語であり、pythonのGILロックの問題がなく、マルチコアの優位性を利用することができます.
しかし、メンテナンスの分野では、パフォーマンスではなく、メンテナンス生態を重視しています.私たちが開発したメンテナンスツールと管理プラットフォームは、実際には高性能を必要としません.
運用次元のエコサポートがない場合、運用次元は非常に困難になります.たとえば、現在、各データベースにpythonドライバ(mongodb、DB 2、oracle、mssql、mysql、pgsql、sqliteなど)があります.
sparkの作成作業もpythonで作成でき、openstackはもともとpythonで開発され、完備したpython APIがあり、kvm管理にも完備したpython APIがあり、
Linuxにはpythonが内蔵されており、Windowsではpythonをインストールするのも簡単です
pythonはWindowsサービスを作成できるライブラリがあり、国内の公有クラウドメーカーにはpython APIなどがあり、ほとんどのツール、システム、ソフトウェアがpythonをサポートしています.
 
このような生態系を維持するには、go言語はありません.なぜなら、go言語は2009年に誕生し、まだ10年しか経っていないからです.pythonは今まで30年の歴史を持っています.
だからpythonはこのようなメンテナンス生態があるので、すべてのツール、システム、ソフトウェアがpythonをサポートします.
例えば、DB 2データベースにはgo言語の駆動がなく、mssqlはgo言語に対してbulk insert構文をサポートしていないなど
また、現在、インターネットの大工場でgo言語で書かれているオープンソースデータベースのメンテナンスツールとスクリプトは非常に少ない.
もちろん、pythonについて何年か経験があり、しっかりしていれば、暇な時間にgo言語を学ぶことができます.
もう一つ注意したいのは、go言語で最も流行しているwebフレームワークbeegoの問題が多く、pythonのdjangoフレームワークほど完備していないことです.
go言語でメンテナンス管理プラットフォームを開発する場合は、このピットに注意してください.
 
 
最后に一言をまとめます:运维あるいはDB运维に対して、个人は本当にgo言语を学ぶ必要はないと思って、结局go言语は静的な言语で、敷居は比较的に高くて、その上go言语は运维生态がありません
もちろん、もし会社の业务の技术のスタックが统一するならば、例えばすべてjava+MySQL+Linuxを使って、それではgo言语で运维の仕事をしてもいけないことはなくて、私は1人の友达が唯品会で运维の主管をします
運行メンテナンスの機械は少なくとも数千台あり、go言語を統一的に運行メンテナンスの仕事の第一言語として使用し、性能的に言えば、確かにgo言語が第一選択である.
 
現在、本人は運行メンテナンスを担当しています:MongoDB、MSSQL、MySQL、PGSQL
使用言語はJavaScript、SQL、Python、Windowsのバッチ、bash shell
 
 
間違ったところがあれば、レンガを撮ってくださいo(∩∩)o
本文の著作権は作者の所有であり、作者の同意を得ずに転載してはならない.