Hawtio和Apache JClouds
介紹
我最近花了一些時間為Hawtio開發 Apache Jclouds插件。 盡管還有很多待完成的工作,但我無法激動,想分享……
這個Hawtio到底是什么?
每當我注意到一個很酷的開源項目時,我通常都會訂閱郵件列表,以便我可以更好地了解項目的進度,方向等。遲早總會有一封電子郵件以“ [Discuss] ”為主題– Webconsole for our cool project ”。
這樣的電子郵件經常以冗長的討論結束,這些討論是關于最佳使用什么Web框架,目標平臺應該是什么以及控制臺如何與上游/下游項目集成。
一個很好的例子是Apache ServiceMix 。 ServiceMix在Apache Karaf上運行, Apache Karaf在Apache Felix上運行,并且還嵌入Apache ActiveMQ,并且這些項目中的每個項目都有其自己的Web控制臺 。
控制臺的數量增長得如此之大,以至于用戶不得不雇用個人幫助來跟蹤每個Web控制臺的URL。 好吧,也許這是一個夸大的說法,但您明白了。 而且,如果我們還考慮到某些項目綁定到特定的運行時,而其他項目則沒有,那么我們將迎來一場完美的Web控制臺風暴。
Hawtio通過提供帶有大量插件的輕量級HTML5模塊化Web控制臺來解決此問題。 Hawtio可以在任何地方運行,因為它沒有綁定到特定的運行時,而且它是模塊化的,這意味著它很容易編寫和掛接自己的插件。
為Hawtio編寫插件
Hawtio是一個完整的客戶端框架。 每當需要與后端通信時,都可以使用rest。 為了使事情變得更容易,它還使用Jolokia ,它通過HTTP通過JSON公開JMX。 即使框架沒有提供rest接口,而是通過JMX公開內容,這也使鉤住框架變得非常容易。
一旦與后端的通信進行排序,就很容易創建一個插件。 Hawtio使用AngularJS ,這使webapps的開發成為真正的樂趣。
Jclouds插件
Apache Jclouds還沒有rest接口,也沒有JMX支持。 實際上,從1.6.1發行版開始,它就具有可插入的JMX支持。 您需要做的就是使用ManagementLifecycle模塊創建一個Apache Jclouds Context:
ContextBuilder builder = ContextBuilder.newBuilder(providerOrApi)..credentials(identity, credential).modules(ImmutableSet.<Module>of(new ManagementLifecycle(BaseManagementContext.INSTANCE))).build();注意:使用jclouds-karaf項目的用戶將免費獲得該文件(根本不需要做任何事情)。
使用ManagementLifecycle插件時,它將創建Apache Jclouds MBean并將其注冊到JMX。 如果Hawtio發現了這些mbean ,則會在Hawtio用戶界面中添加一個新選項卡:
Jclouds主插件頁面
EC2 Api詳細信息頁面
從那里,用戶可以瀏覽所有已安裝的Apache Jclouds提供程序, API和服務。 例如,如果您使用MangementLifecycle模塊創建了計算服務上下文,則可以在“ 計算服務 ”標簽下看到它:
計算服務列表– Amazon AWS和存根服務。
通過選擇一種可用服務,將顯示一個詳細信息欄,該欄可幫助您導航到所有特定于服務的選項卡。 對于計算服務,其:
- 節點數
所有正在運行的節點的詳細列表,能夠重新引導,銷毀,掛起和恢復節點。
節點數
- 圖片
圖像列表,帶有操作系統過濾器。
圖片
- 地點
所有可分配位置的列表
該插件不是特定于計算服務的。 它還支持Blobstore。 例如,以下是我的一個S3存儲桶的視圖:
Blobstore瀏覽器
混合搭配
我真正喜歡Hawtio的地方在于,它具有廣泛的開箱即用的插件 ,您可以將它們混搭使用。 這是一個例子:
“幾年前,我創建了一個將Jclouds與Apache Camel一起使用的示例,以自動發送有關在云中運行實例的電子郵件通知。”
Hawtio還提供了一個Apache Camel插件,因此我們可以直觀地查看,編輯或修改發送通知的示例。 很棒的是,在此示例中,我們使用了Hawtio托管的計算服務:
原始示例可以在使用Apache Camel的Cloud Notification中找到。
輪詢EC2以獲取正在運行的實例并發送電子郵件通知的路由的直觀表示
可以與jclouds插件一起使用的另一個很酷的插件是“ Logs插件” ,該日志插件使您可以搜索,瀏覽和過濾日志,甚至查看與日志條目關聯的源:
在日志中搜索與jclouds相關的錯誤
生成日志條目的代碼
結語
這只是jclouds插件的初稿,還有更多很酷的東西要添加,例如執行腳本,下載blob以及創建新服務的更好方法(已經支持了最后一個,但可以進行改進)。
如果您想了解更多有關Hawtio的信息 ,可以看看James Strachan演示的基于駱駝的iPaas ,它基本上是Hawtio + 保險絲織物 + Apache Camel 。
翻譯自: https://www.javacodegeeks.com/2013/10/hawtio-apache-jclouds.html
總結
以上是生活随笔為你收集整理的Hawtio和Apache JClouds的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么检测手机被用过
- 下一篇: 手机电池充满后为什么显示电量不足