【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具

【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


1、Kubernetes

Kubernetes(又名K8s)在過去幾年裡有驚人的增長。它曾經是眾多容器編排系統中的一種,但現在它正在迅速成為普遍的標準平臺,無論是在主要的雲提供商,還是在本地的企業級安裝中。如果你處於運營領域,那麼花時間在Kubernetes上將有可能獲得回報,因為開源項目將繼續其無情的進軍。


基於十年來運行Google海量數據中心的想法和經驗教訓,Kubernetes是一個經過實戰考驗的平臺,用於在大型集群中部署,擴展和監控基於容器的應用程序和工作負載。在過去的一年中,Kubernetes的發佈帶來了重大亮點,例如存儲大修,移動到容器存儲接口,TLS安全的Kubelet引導以及改進的Microsoft Azure支持。


我們還看到了核心Kubernetes堆棧的重要補充,例如Istio,它定義了一個服務網格,可以更好地控制部署,可觀察性和安全性。我們已經看到了更多專門的框架,例如Kubeflow,它允許你輕鬆地在Kubernetes上啟動TensorFlow或PyTorch機器學習流水線,所有這些都由同樣在集群上運行的Jupyter筆記本控制。


旨在簡化Kubernetes管理某些方面的第三方工具和框架的數量,從簡化應用程序定義到監控多個集群,似乎每天都在增長。與Kubernetes採用者的數量一樣,2018年的主要公告和推薦來自IBM,華為,Sling TV和ING等。 哎呀,即便是福樂雞(Chick-fil-A)在每家餐館都經營著Kubernetes。 是不是你也應該登上K8S的大船?


--Ian Pointer


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


2、Firebase

不久的將來,我們可能還沒有量子計算,思維閱讀AI和次線性算法來解決郵差問題,但無論如何,我們肯定會用到“數據庫”。所有優秀的軟件技術最終被DBA所管理的Borg吸收。Firebase的出現就是如何實現這一目標的一個很好的例子。


乍一看,Firebase看起來像一個簡單的存儲解決方案,用於密鑰及其附帶的值。換句話說,就像其他NoSQL數據庫一樣,一對保持合理一致的對。但多年來,谷歌一直在增加一些功能,讓Firebase可以做更多基於雲的網絡應用程序可能做的工作,谷歌甚至開始將Firebase稱為移動平臺。


還記得當互聯網不完美時你在客戶端上緩存數據的挑戰嗎? Firebase團隊意識到保持數據庫一致性的同步例程也是從移動客戶端推送和提取數據的理想工具。他們打開了同步過程,現在你的代碼不需要處理一些複雜的算法來握手或擺弄網絡。你只需將其遷移到Firebase,就像魔術一樣,它們出現在手機的副本中。它只是一個大數據庫,你的服務器例程和客戶端例程只是從公共池讀取和寫入。


隨著將Firebase與其餘部分集成在一起,Google不斷添加更多內容。驗證你的社交登錄到Facebook、谷歌,讓你的用戶訪問正確的數據庫片段。分析、託管、消息,Google的所有解決方案都逐漸被數據庫所覆蓋。包括機器學習,對於想要分析數據庫中已有的鍵/值對的Firebase用戶,它已經是測試版選項。從某種意義上說,我們已經開始將AI與數據庫合併。


--Peter Wayner


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


3、Serverless

租用服務器的第一代雲,通過解除所有繁瑣的硬件相關職責,為我們節省了時間。服務器放在遙遠的建築物裡,加熱,冷卻和維護都是別人的問題。下一代雲技術正在擺脫服務器,至少在名義上,並且不僅節省了對操作系統補丁和更新的煩惱,而且避免了與應用程序交付相關的大多數麻煩。


我們的代碼仍然存在服務器硬件和操作系統,但現在更多的是其他人的責任。我們可以上傳函數,讓其他人的軟件堆棧評估它們,而不是通過root訪問獲得事物。我們可以專注於功能,並將其他一切留給那些讓雲保持運行的技術。


但是仍有挑戰,無服務器意味著重新思考技術架構。依賴事件和異步隊列需要將應用程序重構為整齊劃分的任務。雖然已經有了一些工具支持,但仍需要弄清楚:集成調試,分佈式監控,部署打包,功能版本控制等。


然後有供應商鎖定擔心。領先的FaaS(函數即服務)提供商:AWS Lambda,Microsoft Azure功能和Google Cloud Functions,都有自己專門的部署和操作方法。


無服務器框架特有的功能是提供了一個針對特定於供應商的實現的抽象層,以簡化應用程序部署。開源框架為你提供了方便的方法來測試和部署您的功能到各種雲提供商,並通過常見的YAML文件簡化配置更新,同時還提供豐富的功能管理和安全功能。


除了這些專業,Serverless Framework還支持Kubeless,一個用於在Kubernetes集群上部署FaaS的框架,以及Apache OpenWhisk,這是一個支持IBM Cloud Functions的基於Docker的平臺,提供廣泛的語言支持和獨特的功能來處理更持久的連接。


無服務器計算既不成熟也不是每個用例的銀彈,但經濟性和效率難以抗拒。藉助無服務器框架來緩解困難,為什麼不加入越來越多的企業轉向無服務器以降低運營成本並加快部署速度?


-- James R. Borck


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


4、Elastic Stack

如果你現在正在運行面向用戶的Web應用程序,則無法提供複雜的搜索功能。不斷給用戶提供自由文本搜索界面,可以修復拼寫,自動建議替代短語,並突出顯示搜索結果,以顯示返回某些結果的原因。無論喜歡與否,這些都是你必須遵守的搜索標準。


幸運的是,Elastic Stack將滿足你的所有搜索需求等等。Elastic Stack主要由Elasticsearch,Kibana,Logstash和Beats組成,支持許多用例,包括面向用戶的文檔搜索和集中式日誌聚合和分析。將文檔一次索引或大量索引到Elasticsearch中幾乎可以從任何語言編寫索引,並且可以對所有字段的映射類型進行最佳猜測(請考慮關係數據庫中的列數據類型)。現在你可以使用完整的搜索API,包括模糊搜索,突出顯示和分面搜索結果。將它與Searchkit等前端工具配對,你就可以立即快速獲得分面自由文本搜索原型。


使用Logstash和Beats從任意數量的單獨服務聚合日誌變得更加容易,允許你將日誌行發送到集中式Elasticsearch集群,以便更輕鬆地進行故障排除和分析。將日誌數據編入索引後,使用Kibana構建圖表並組裝儀表板以使系統健康狀況一目瞭然, Elastic Stack是當今任何新Web項目的必備之一。


--Jonathan Freeman


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


5、DataStax Enterprise

Apache Cassandra是一個開源的大型分佈式列系列數據庫,受Google的Bigtable論文的啟發,是運行大規模可擴展的全球數據基礎架構的絕佳方式。無主設計非常適合運行多種類型的高吞吐量雲應用。


但是,Cassandra並不是最容易部署和管理的系統。當嘗試執行涉及分析,搜索和圖形操作的各種類型的應用程序時,它也會讓你失望。DataStax Enterprise(又名DSE)增加了這些功能以及改進的性能和安全性,大大改進了管理,高級複製,內存中OLTP,批量加載器,分層存儲,搜索,分析和開發人員工作室。


與Bigtable和Cassandra一樣,DataStax Enterprise最適合大型數據庫,兆兆字節到千兆字節,最好與非規範化架構一起使用,每個row有很多列。DataStax和Cassandra用戶傾向於將其用於非常大規模的應用程序。例如,eBay使用DataStax Enterprise存儲250 TB的拍賣數據,每天寫入60億次,每次讀取50億次。


DataStax Enterprise 6在2018年帶來了DSE Analytics,DSE Graph和DSE Search中的幾項新功能,以及更精細的安全設置。DataStax Studio的改進跟蹤DSE Analytics的改進,例如對Spark SQL的支持,以及對帶有交互式圖形的DSE Graph的擴展IDE支持。最重要的是,基準測試顯示DSE 6比Cassandra快倍數。


— Andrew C. Oliver


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


6、Apache Kafka

老實說,想象一個沒有Apache Kafka的世界是奇怪的。分佈式流媒體平臺將很快慶祝其八歲生日,該項目仍然是流媒體應用程序的堅實開源選擇,無論是要添加Apache Storm還是Apache Spark等處理或使用由Apache Kafka本身。Kafka可以輕鬆處理低延遲應用程序,其基於日誌的存儲使其成為需要可靠性的絕佳選擇。


為了與數據庫和其他數據源進行交互,Kafka Connect包含許多連接到流行產品的連接器,如Microsoft SQL Server,Elasticsearch,HDFS,Amazon S3等等,允許通過編輯數據流將數據流入Apache Kafka集群、配置文件。想象一下,設置從數據庫到Amazon S3的整個管道,而無需編寫自定義代碼或觸摸任何Java代碼。


Confluent是Apache Kafka的主要開發者之一,包括最初的創建者:Jay Kreps,Neha Narkhede和Jun Rao,提供了一個基於開源產品的平臺。雖然這包括傳統的企業好東西,例如更好的操作用戶界面,但它還包括KSQL,這是一個庫,使你能夠使用直接SQL查詢和處理Kafka主題中保存的數據。


如果你不自己完成運行Apache Kafka的任務,那麼Google會提供一個與Confluent結合使用的託管平臺,而亞馬遜則為Kafka(Amazon MSK)提供Managed Streaming。亞馬遜MSK目前正在進行公開預覽,有可能在2019年的某個時候達到普遍可用性。


--Ian Pointer

【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


7、Apache Beam

Apache Beam採用一種前瞻性的方法來開發批處理和流處理流水線。與大多數平臺不同,Beam將開發語言從最終的執行引擎中抽象出來。可以使用Java、Python或Go編寫流水線,然後混合並匹配運行時引擎以滿足你的特定需求,例如,針對內存中的作業使用Apache Spark或針對低延遲性能使用Apache Flink。


Apache Beam不僅為處理分佈式ETL,實時數據分析和機器學習管道提供了可靠的引擎,而且還可以通過未來證明你的投資的方式實現這一目標。


--James R. Borck


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


8、Redis

這是NoSQL數據庫!這是內存緩存!這是消息中間件!Redis是以上所有並且提供更多功能。Redis在一個包中提供了許多有用的功能,所謂的“內存數據結構存儲”已成為現代Web應用程序堆棧的主要內容並不奇怪,幾乎所有編程語言都可以選擇庫支持使用。


Redis提供的工作能力僅限於給定工作所需的複雜性和功能。如果你只需要一個簡單的數據片段內存緩存,你可以在幾分鐘內設置Redis並使用您的應用程序。如果你想要什麼相當於磁盤支持的NoSQL系統,具有不同的數據結構和你選擇的緩存驅逐方案,你可以只需要更多的努力。


Redis 5.0於2018年10月發佈,它引入了許多強大的新功能,其中最重要的是新的流數據類型。這種類似日誌的附加數據結構使得用Redis構建類似Apache Kafka的消息傳遞系統成為可能。Redis 5.0中的其他改進包括更好的內存管理和碎片控制,以內存存儲為基礎的系統的重要性能增強作為其主要隱喻。


--Serdar Yegulalp


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


9、Visual Studio Code

Visual Studio Code的優點在於它可以與你希望的一樣多,也可以一樣少。Visual Studio Code將作為一個快速輕量級的編輯器,如果你只需要它,或者成為一個成熟的開發環境,這要歸功於當今使用的幾乎所有主要語言或運行時的插件和附加組件。Python,Java,Kotlin,Go,Rust,JavaScript,TypeScript和Node.js(更不用說微軟自己的.Net語言)都有很好的支持,像Markdown,HTML,reStructuredText和LLVM IR這樣的補充文檔格式也是如此。


除了廣泛的支持和廣泛採用之外,Visual Studio Code還為產品提供了無情的改進和補充。沒有忽略任何功能區域。因此,你將獲得對Git,Team Foundation Server,Docker,代碼linting,重構,大型文件等的強大支持。甚至可以在自包含目錄中運行Visual Studio Code,從而打開重新打包Visual的大門Studio Code是一個獨立的環境,可以滿足夢寐以求的新目標。


— Serdar Yegulalp


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


10、.Net Core

有人說,將軟件項目轉換為開源是最好的,也可能是最糟糕的事情。就微軟的.Net Framework而言,開放源代碼的一部分功能為.Net Core一直是一個鮮明的積極因素,導致更輕量級的運行時具有開放的開發流程,跨平臺優先的理念,以及兼容性橋接到需要它的應用程序的主.Net Framework。


2018年5月發佈的2.1版本推出了許多功能,補充了這個更大的計劃。其中最大的:.Net Core Global Tools,一個用於部署和擴展用於管理.Net應用程序的命令行工具的新系統; Windows兼容包,提供對用於Windows原生應用程序的大哥.Net Framework中使用的20,000個API的訪問;用於在移植Windows應用程序時識別Windows API依賴關係的API分析工具;和捆綁最新運行時的自包含.Net核心應用程序的機制。


— Serdar Yegulalp


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


11、LLVM

乍一看,LLVM似乎是我們獎項的深奧選擇。用於構建編程語言編譯器的工具包?但LLVM編譯器框架的強大功能是許多A-list項目的核心:Clang,Rust,Swift,Julia以及許多其他推動編程語言發展的創新項目。


LLVM為開發人員提供了以編程方式生成機器本機代碼的方法,並且無需瞭解他們想要定位的每個體系結構和平臺的變化。明顯的用例是語言編譯器,但LLVM也使各種其他應用程序成為可能。例如,PostgreSQL使用LLVM動態生成加速SQL查詢的代碼。同樣,Numba項目使用LLVM將慢速Python代碼轉換為快速彙編語言,以用於高速數字運算應用程序。


LLVM的2018年兩個主要版本引入了一系列改進:更好地支持更新的英特爾處理器,多處理器方案,緩解常見處理器缺陷,評估特定CPU架構上生成代碼性能的工具,以及LLVM鏈接器LLD的進一步工作,可以跨多個平臺從LLVM生成獨立的可執行文件。


— Serdar Yegulalp


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


12、TensorFlow

TensorFlow是一個使用數據流圖進行數值計算的開源軟件庫。圖形節點表示數學運算,而圖形邊緣表示在它們之間流動的多維數據陣列(張量)。這種靈活的體系結構可以將計算部署到桌面,服務器或移動設備中的一個或多個CPU或GPU,而無需重寫代碼。TensorFlow還包括TensorBoard,一種數據可視化工具包。


在版本1.12中,TensorFlow是迄今為止使用最廣泛且被廣泛引用的深度學習框架。雖然它仍然支持其原始的低級API,但優惠的高級API現在是tf.keras,它是TensorFlow的Keras API標準的實現,包括TensorFlow特定的增強功能。


雖然TensorFlow仍然支持構建數據流圖並在稍後的會話中運行它,但它現在也完全支持急切的執行模式,這是一個必要的,逐個運行的界面。渴望執行模式支持通過tf.GradientTape API自動區分。 tf.keras的一個增強功能是支持急切執行。


Keras API和熱切執行模式都將在TensorFlow 2.0中展示。雖然在2.0版中不推薦使用其他一些API,但除兼容性庫外,還會有現有代碼的轉換工具。


估算器是TensorFlow最具擴展性和生產導向的模型類型。可以使用Google提供的預製Estimators,也可以編寫自己的自定義Estimators。估算器本身構建在tf.keras.layers上,簡化了自定義。使用Estimators創建模型通常比使用低級TensorFlow API更容易。預製估算器使您能夠在比基本TensorFlow API更高的概念級別上工作。


-- Martin Heller


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


13、Keras

Keras是一個高級神經網絡API,用Python編寫,能夠在TensorFlow,CNTK或Theano之上運行。支持其他第三方後端,如MXNet和PlaidML。


在TensorFlow,tf.keras中實現Keras,具有一些特定於TensorFlow的增強功能。Keras並不是構建神經網絡模型的唯一簡化的高級API,但它在TensorFlow中的突出地位突出了其質量和重要性。在TensorFlow之後,Keras目前是第二大被引用的神經網絡API。


Keras的創建是為了用戶友好,模塊化,易於擴展,並與Python一起使用。API是“為人類而不是機器設計的”,並且“遵循減少認知負荷的最佳實踐”。


神經層,成本函數,優化器,初始化方案,激活函數和正則化方案都是Keras中的獨立模塊,可以將它們組合在一起以創建新模型。新模塊很容易添加,作為新的類和函數。模型在Python代碼中定義,而不是單獨的模型配置文件。


使用Keras的最大原因源於其指導性設計原則,主要是關於用戶友好的原則。除了易於學習和簡化模型構建之外,Keras還具有廣泛採用的優勢,支持廣泛的生產部署選項,對多個GPU和分佈式培訓提供強大支持,並得到Google,Microsoft,Amazon,Apple,Nvidia的支持,優步等。


--Martin Heller


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


14、PyTorch

PyTorch是一個用於在Python中創建具有強大GPU加速度的張量和動態神經網絡的庫,目前是TensorFlow和Keras之後引用率第三高的神經網絡框架。動態神經網絡可以從迭代變為迭代,例如允許PyTorch模型在訓練期間添加和刪除隱藏層以提高其準確性和通用性。PyTorch在每個迭代步驟中即時重新創建圖形。


PyTorch集成了加速庫,如英特爾MKL,Nvidia cuDNN和Nvidia NCCL,以最大限度地提高速度。其核心CPU和GPU張量和神經網絡後端-TH(Torch),THC(Torch Cuda),THNN(Torch神經網絡)和THCUNN(Torch Cuda神經網絡) - 作為具有C99 API的獨立庫編寫。同時,PyTorch不是Python綁定到單片C ++框架 - PyTorch的目的是與Python深度集成並允許使用其他Python庫。


PyTorch能夠在張量發生變化時對其進行快照。該框架通過查看該點與先前張量之間的差異來近似每個保存張量的梯度。被稱為“autograd”,這可以加快計算梯度,最多可達三倍。鑑於最陡的下降優化器依賴於梯度,它可以將整個訓練過程加速三倍。 TensorFlow具有相同的功能。


PyTorch主要由Facebook支持,但其他贊助商和貢獻者包括Twitter,Salesforce和Microsoft。微軟已經貢獻了源自其自己的CNTK框架的技術,以增加PyTorch從Torch和Caffe繼承的功能。


--Martin Heller


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


15、Horovod

Horovod是TensorFlow,Keras和PyTorch的分佈式培訓框架,在Uber創建。Horovod的目標是使分佈式深度學習快速且易於使用。Horovod建立在百度實施TensorFlow環allreduce算法草案的基礎之上。


優步最初嘗試使用帶有參數服務器的Distributed TensorFlow。工程師發現MPI模型要簡單得多,並且需要更少的代碼更改。優步聲稱,Horovod系統可以訓練AI模型的速度大約是TensorFlow傳統部署速度的兩倍。


Horovod使用Open MPI(或其他MPI實現)在節點之間傳遞消息,而Nvidia NCCL則使用高度優化的ring allreduce版本。 Horovod在Inception-v3和ResNet-101上實現了90%的擴展效率,在高達512個Nvidia Pascal GPU上實現了68%的VGG-16擴展效率。


2018年12月,優步宣佈它正在Linux基金會的LF深度學習基金會的支持下開放Horovod項目,用於開源人工智能軟件。


--Martin Heller


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


16、XGBoost

XGBoost(eXtreme Gradient Boosting)是一個開源機器學習庫,它為Python,R,Java,Julia和其他編程語言實現分佈式梯度提升。核心項目代碼是用C ++編寫的。


XGBoost提供了一種並行樹提升算法,可以快速準確地解決許多數據科學問題。相同的代碼在單個機器和分佈式環境(Hadoop,MPI,Spark等)上運行。分佈式版本可以擴展以解決比數十億示例更大的問題。


XGBoost通過贏得一些Kaggle比賽而在數據科學界成名。它起源於華盛頓大學的一個研究項目。由Tianqi Chen和Carlos Guestrin撰寫的2016年XGBoost論文解釋了漸變樹增強算法和XGBoost中添加的改進,例如緩存感知預取和稀疏感知。本文還比較了XGBoost與Scikit-learn和R.gbm中用於分類的其他兩種常用的確切貪婪樹提升實現的性能,並對學習排名問題的pGBRT(並行梯度提升迴歸樹)測試XGBoost。


--Martin Heller


【乾貨】目前最好的軟件開發、雲計算、大數據分析和機器學習工具


17、H2O Driverless AI

在將原始數據轉換為預測分析時,H2O Driverless AI憑藉其自動化的簡單性超越了所有人。最佳實踐護欄和路標將非AI專家引導到發現的路徑,使用有監督和無監督的機器學習來發現隱藏的模式。


你提供數據並隔離因變量,H2O的本地算法可以完成特徵工程,模型選擇,培訓和優化。


這不是魔術,你仍然希望瞭解你的數據集和解釋輸出的能力,但H2O的可視化工具和清晰的解釋對於理解業務團隊,IT和數據科學家之間的理解有很長的路要走。


數據科學家和開發人員可以通過Python和R. Jupyter筆記本出口機器學習管道代碼進行生產來提升模型參數並構建功能。無論是在本地還是在雲中,H2O都可以與你現有的大數據基礎架構(如Hadoop或Spark)一起使用,從HDFS,Amazon S3或Azure Data Lake中提取數據,並點擊Nvidia GPU處理以獲得更高的速度。


H2O在2018年推出了幾項重大更新,最重要的是自然語言處理,時間序列預測和梯度提升。視覺決策樹現在以圖形方式逐步引導用戶理解預測的“如何” - 例如,澄清為什麼保險索賠被標記為欺詐。 H2O甚至開始在亞馬遜和微軟雲上直接提供算法。


H2O無人駕駛AI不會讓數據工程師走上街頭或解決每一個先進的機器學習問題。但它提供了從頭開始構建AI的簡化替代方案,減少了企業變得更具預測性和反應性所需的時間。

最後說一下,想要學習大數據的限時領取免費資料及課程

領取方法:

還是那個萬年不變的老規矩

1.評論文章,沒字數限制,一個字都行!

3.私信小編:“大數據開發教程”即可!

謝謝大家,祝大家學習愉快!(拿到教程後一定要好好學習,多練習哦!)



分享到:


相關文章: