solaris安装java_Solaris是出色的Java开发平台的原因
solaris安裝java
幾天前,我發(fā)布了“ OpenSolaris的死亡:為Java開發(fā)人員選擇操作系統(tǒng) ”,其中我說Solaris是Java開發(fā)人員的絕佳平臺(tái)。 這篇文章的重點(diǎn)只是想知道自O(shè)penSolaris淘汰以來我將使用哪個(gè)Solaris版本。 正如Neil的評(píng)論使我意識(shí)到的那樣,該帖子未能澄清的原因是您應(yīng)該選擇Solaris作為開發(fā)平臺(tái)的原因。 我決定在這篇文章中寫這篇后續(xù)文章,以快速總結(jié)我最喜歡的文章,并介紹一些在此類技術(shù)派上用場(chǎng)的用例。 軟件可用性
盡管在過去的幾年中,Solaris仍然是一個(gè)小眾的操作系統(tǒng)(無論如何還是有很多其他平臺(tái)),但Sun和社區(qū)在將其推廣為開發(fā)人員的桌面替代品方面做得非常出色。 甚至為開發(fā)人員提供了一個(gè)特定的發(fā)行版 : Solaris Express Developer Edition 。 它已經(jīng)停產(chǎn)了,無論如何如今確實(shí)沒有必要了。 較新的Solaris發(fā)行版(例如SXCE,OpenSolaris,OpenIndiana)包括(捆綁或在官方軟件包存儲(chǔ)庫中):
- 數(shù)據(jù)庫(MySQL,PostgreSQL)。
- Web服務(wù)器(Apache,Java Enterprise System Web服務(wù)器等)。
- 應(yīng)用程序服務(wù)器(Glassfish)。
- SAMP堆棧(Solaris + Apache + MySQL + PHP)。
- IDE(NetBeans,Eclipse)。
- 支持其他流行語言(Ruby,Groovy等)。
- 身份管理(LDAP,Java Enterprise System身份服務(wù)器)。
Solaris還是企業(yè)選擇的平臺(tái),因此支持常見的企業(yè)軟件包,作為Java開發(fā)人員或Java架構(gòu)師,您將不會(huì)錯(cuò)過構(gòu)建開發(fā)環(huán)境所需的部分。 作為Java開發(fā)人員,我經(jīng)常需要的非?;镜能浖?#xff1a;
- Oracle RDBMS。
- Oracle WebLogic應(yīng)用服務(wù)器。
- IBM WebSphere Application Server。
- JBoss應(yīng)用服務(wù)器。
Solaris的技術(shù)
Solaris擁有一些獨(dú)特的技術(shù),而其他UNIX(和類似UNIX的)系統(tǒng)可能缺少作為開發(fā)平臺(tái)使用的技術(shù)(或從Solaris移植過來)。這里重要的不是“自身的技術(shù)”或僅在以下方面有用的技術(shù):大型企業(yè)環(huán)境,但事實(shí)是:
- 它們已經(jīng)很好地集成在Solaris中,并且可以相互利用。
- 在常見的使用案例中,這些技術(shù)確實(shí)對(duì)開發(fā)人員有幫助。
他們每個(gè)人都應(yīng)該自己發(fā)表幾篇文章,但是,我將嘗試舉一些簡(jiǎn)潔的例子。
Solaris服務(wù)管理工具
盡管此技術(shù)可能對(duì)系統(tǒng)管理員最有用,但作為開發(fā)人員,我經(jīng)常利用它。 SMF是為服務(wù)和服務(wù)管理提供統(tǒng)一模型的框架。 基本配方僅需要服務(wù)的XML描述符。 SMF可讓您:
- 定義服務(wù):啟動(dòng)腳本的位置,參數(shù)和語義。
- 建立服務(wù)之間的依賴關(guān)系:
- 服務(wù)和服務(wù)實(shí)例可能依賴于其他服務(wù)實(shí)例。
- 服務(wù)啟動(dòng)是在并行考慮服務(wù)依賴關(guān)系的情況下執(zhí)行的。
- 增強(qiáng)的安全性和基于角色的細(xì)粒度訪問控制:
- 只能為服務(wù)分配運(yùn)行所需的最低特權(quán)集。
- 可以使用Solaris RBAC(基于角色的訪問控制)將服務(wù)管理委派給非root用戶。
- 服務(wù)健康控制:
- 服務(wù)自動(dòng)重啟。
- 與Solaris Fault Manager的合作增強(qiáng)了服務(wù)的運(yùn)行狀況,該功能可在發(fā)生硬件故障時(shí)防止服務(wù)降級(jí)。
- 自動(dòng)inetd服務(wù)包裝器:SMF自動(dòng)包裝inetd服務(wù)。
典型用例
我使用的每個(gè)軟件包都有自己的SMF描述符(隨軟件包一起提供或由我定義),它大大減少了我設(shè)置開發(fā)機(jī)器所需的時(shí)間。 例如,對(duì)于WebSphere Application Server,我具有以下單獨(dú)的服務(wù)實(shí)例:
- WebSphere IHS。
- WebSphere Application Server。
- WebSphere Application Server DMGR。
- WebSphere Application Server集群節(jié)點(diǎn)。
在它們之間定義了依賴關(guān)系,我可以只用一行代碼來啟動(dòng)所需的WebSphere服務(wù):
svcadm enable [websphere-service-name]
SMF將負(fù)責(zé)一切。
SMF的使用模式可以進(jìn)一步增強(qiáng)。 假設(shè)您正在一個(gè)或多個(gè)項(xiàng)目中工作,并且每個(gè)項(xiàng)目都需要一組獨(dú)特的運(yùn)行服務(wù)。 通常發(fā)生以下情況之一:
- 您將它們?nèi)堪惭b并運(yùn)行。
- 您將它們?nèi)堪惭b,并在切換工作項(xiàng)目時(shí)手動(dòng)啟動(dòng)和停止它們。
對(duì)于開發(fā)人員而言,資源總是很少,而對(duì)于節(jié)省資源卻有些偏執(zhí)。 使用SMF,您可以:
- 為每個(gè)項(xiàng)目定義一個(gè)SMF服務(wù)。
- 對(duì)于每個(gè)項(xiàng)目,請(qǐng)定義與所需服務(wù)的依賴關(guān)系。
這樣,您至少可以使用一個(gè)命令啟動(dòng)和關(guān)閉特定項(xiàng)目所需的每個(gè)服務(wù)。 不再:
- 每個(gè)服務(wù)的自定義外殼腳本。
- inetd服務(wù)(例如Subversion,Apache等)的定制配置條目
- 特定的操作系統(tǒng)定制。
- 當(dāng)您不需要服務(wù)并浪費(fèi)資源時(shí)可以運(yùn)行它們,否則可以使用。
以下帖子中提供了SMF服務(wù)清單定制的示例:
- 向SMF注冊(cè)服務(wù)。
- Solaris 10 SMF管理的服務(wù)的憑證和項(xiàng)目 。
- 將Subversion設(shè)置為一個(gè)inetd服務(wù) 。
ZFS
就靈活性和易用性而言,ZFS文件系統(tǒng)是唯一的。 使用極其精簡(jiǎn)的命令集,您可以:
- 動(dòng)態(tài)創(chuàng)建文件系統(tǒng)。
- 動(dòng)態(tài)快照文件系統(tǒng)。
- 動(dòng)態(tài)復(fù)制文件系統(tǒng),幾乎沒有使用空間。
關(guān)于ZFS的文獻(xiàn)很多,我將限制描述我最喜歡的用例。
用例:復(fù)用您的開發(fā)環(huán)境。
軟件安裝只是用戶體驗(yàn)的開始。 通常,我們花時(shí)間:
- 配置我們的環(huán)境。
- 對(duì)它們進(jìn)行微調(diào)。
- 定義我們需要的其他庫集。
- 定義應(yīng)用程序使用的服務(wù)器資源集(JDBC,JMS等)。
等等。 列表是無止境的。
有時(shí)有必要為同一項(xiàng)目的不同項(xiàng)目或不同開發(fā)階段準(zhǔn)備不同的環(huán)境。 為了避免浪費(fèi)時(shí)間和資源來構(gòu)建不同的環(huán)境,我通常將按以下步驟進(jìn)行操作:
- 安裝和配置我的環(huán)境。
- 為它制作一個(gè)ZFS快照。
- 為我需要的所有其他設(shè)置對(duì)其進(jìn)行ZFS克隆。
Oracle JDeveloper是我經(jīng)??寺〉膽?yīng)用程序的一個(gè)很好的例子。 盡管采用了在用戶主目錄中使用按用戶配置目錄的通用方法,但JDeveloper基本上是一個(gè)單一用戶環(huán)境。 我只需要安裝一次,快照它的安裝目錄,然后創(chuàng)建一個(gè)ZFS克隆(每個(gè)環(huán)境一個(gè)),而不必?cái)[弄腳本來設(shè)置每個(gè)用戶的配置參數(shù)。 我自己在用戶主目錄中使用了幾個(gè)JDeveloper環(huán)境的克隆。
ZFS克隆的功能可由Zones基礎(chǔ)結(jié)構(gòu)使用,這將在下一節(jié)中看到,從而進(jìn)一步增強(qiáng)了它的功能。 在處理大型安裝(例如您喜歡的虛擬化技術(shù)的磁盤映像)時(shí),克隆ZFS文件系統(tǒng)也很有利。
我寫的有關(guān)ZFS的其他文章可以闡明其一些用例:
- 設(shè)置開發(fā)人員環(huán)境時(shí),使用ZFS克隆保留磁盤空間 。
- Sun xVM:克隆domU 。
容器和其他虛擬化技術(shù)
我認(rèn)為Solaris是出色的桌面虛擬化平臺(tái)。 再次,用幾個(gè)命令。 您可以輕松創(chuàng)建半虛擬化的Solaris實(shí)例(區(qū)域)。 區(qū)域基礎(chǔ)結(jié)構(gòu)支持ZFS,并且可以利用它。
可以使用其XML配置文件的命令行界面來配置區(qū)域。 創(chuàng)建區(qū)域非常簡(jiǎn)單,并且由于它們是輕量級(jí)技術(shù),因此您可以根據(jù)需要?jiǎng)?chuàng)建任意數(shù)量的區(qū)域。 如果您使用的是ZFS,則克隆區(qū)域的過程非常簡(jiǎn)單且快速。
用例:群集應(yīng)用程序服務(wù)器
在開發(fā)Java EE應(yīng)用程序期間,通常將需要以下一項(xiàng)(或多項(xiàng))的實(shí)例:
- 應(yīng)用服務(wù)器。
- Web服務(wù)器。
- 數(shù)據(jù)庫;
- 用戶注冊(cè)表。
還希望它們?cè)诟綦x的環(huán)境中運(yùn)行,以便您可以模擬預(yù)期的生產(chǎn)配置。 使用區(qū)域很容易:只需創(chuàng)建所需的多個(gè)區(qū)域,它們中的每一個(gè)將表現(xiàn)為一個(gè)單獨(dú)的Solaris實(shí)例:例如,每個(gè)區(qū)域都有:
- 自己的網(wǎng)卡和IP配置。
- 它自己的用戶,組,角色和安全策略。
- 自己的服務(wù)。
您無需準(zhǔn)備多次安裝和配置環(huán)境,而是準(zhǔn)備帶有所需服務(wù)的“主”區(qū)域。 對(duì)于以下每一項(xiàng),我都有一個(gè)“主”區(qū)域:
- WebSphere Application Server。
- WebLogic應(yīng)用服務(wù)器。
- Oracle數(shù)據(jù)庫。
- MySQL數(shù)據(jù)庫。
- LDAP目錄。
等等。 使用一個(gè)簡(jiǎn)單的命令( zoneadm clone [-m復(fù)制] [-s zfs_snapshot] source_zone ),您將在幾分鐘之內(nèi)得到一個(gè)全新的工作環(huán)境。
用例:VirtualBox和ZFS
有時(shí),您寧愿使用其他操作系統(tǒng)的虛擬實(shí)例,例如GNU / Linux,FreeBSD和Windows。 Solaris是出色的VirtualBox主機(jī),ZFS的強(qiáng)大功能將使您:
- 為您需要的每個(gè)操作系統(tǒng)或每個(gè)“操作系統(tǒng)角色”創(chuàng)建“主”映像。
- 即時(shí)對(duì)其進(jìn)行克隆,以創(chuàng)建全新的虛擬OS映像。
就我而言,我有:
- 具有Visual Studio for .NET開發(fā)的Windows 7主客戶端。
- 主Windows Server 2008。
- 帶有SQL Server 2008的主Windows Server 2008(是先前版本的克隆)。
- 熟練的Debian GNU / Linux。
每當(dāng)我需要一個(gè)新實(shí)例時(shí),我只需要克隆磁盤映像即可。 在短短的幾秒鐘內(nèi),我便有了所需的環(huán)境。 我不僅節(jié)省了寶貴的時(shí)間,而且還節(jié)省了大量的磁盤空間。 如果我不使用ZFS技術(shù)而存儲(chǔ)的所有映像(和區(qū)域),則至少需要4倍的磁盤。
用例:虛擬網(wǎng)絡(luò)堆棧
Solaris為您提供了非常強(qiáng)大的網(wǎng)絡(luò)虛擬化功能。 例如,您可以根據(jù)需要?jiǎng)?chuàng)建任意數(shù)量的虛擬NIC,并在Solaris Zones中或作為其他虛擬化技術(shù)(例如VirtualBox)的網(wǎng)卡獨(dú)立使用它們。網(wǎng)卡可以與虛擬交換機(jī)(etherstub)互連,并使您能夠創(chuàng)建“盒子中的網(wǎng)絡(luò)”。 您不僅可以使用虛擬化實(shí)例來模擬您的生產(chǎn)環(huán)境:還可以創(chuàng)建虛擬化網(wǎng)絡(luò)來模擬環(huán)境可能需要的復(fù)雜網(wǎng)絡(luò)策略。
如果您需要測(cè)試一個(gè)環(huán)境,如果沒有其他物理計(jì)算機(jī)就無法復(fù)制其配置,則可以在其中使用虛擬化技術(shù)(例如Zones或VirtualBox)和虛擬化網(wǎng)絡(luò)堆棧。 我正在從事的項(xiàng)目的開發(fā)人員環(huán)境由以下組成:
- 具有兩個(gè)負(fù)載平衡的IBM IHS實(shí)例的兩個(gè)區(qū)域。
- 具有LDAP目錄的區(qū)域。
- 兩個(gè)區(qū)域具有IBM WebSphere Application Server的兩個(gè)集群實(shí)例。
- 具有IBM WebSphere DMGR實(shí)例的區(qū)域。
使用Solaris,我可以在生產(chǎn)環(huán)境中復(fù)制生產(chǎn)環(huán)境,并尊重我們使用的每個(gè)網(wǎng)絡(luò)配置。 沒有這些技術(shù),要實(shí)現(xiàn)這個(gè)目標(biāo)將變得更加困難,否則我將獲得自定義配置(例如,避免端口沖突)。 在所有情況下,如果區(qū)域不是那么容易使用,我將在管理和配置此類環(huán)境上浪費(fèi)更多時(shí)間。
DTrace
DTrace功能非常容易向開發(fā)人員解釋。 同時(shí),如果不親自嘗試就很難掌握其有用性。 Solaris上的DTrace提供了數(shù)以萬計(jì)的探針,其他探針可以即時(shí)創(chuàng)建。 此“探針”為您提供了一種非常有效的方法來解決應(yīng)用程序和基礎(chǔ)操作系統(tǒng)中的問題。 要使用探針,您必須使用D語言編寫的腳本。 幸運(yùn)的是,這種語言在設(shè)計(jì)上非常簡(jiǎn)單,您可以用幾行代碼編寫功能強(qiáng)大的D腳本。
DTrace毫不費(fèi)力,即使在生產(chǎn)環(huán)境中,您也可以立即解決問題,而無需修改應(yīng)用程序。 一些IDE(例如NetBeans)具有強(qiáng)大的插件,可讓您編寫D腳本并以精美的圖形查看探針收集的數(shù)據(jù)。
作為開發(fā)人員,我不止一次地重視DTrace的實(shí)用性。 不必排除必須深入研究源代碼并引入其他代碼的問題(即使在方便的情況下),我也可以使用D腳本從外部觀察應(yīng)用程序并快速收集數(shù)據(jù),以幫助我確定問題可能出在哪里。
此外,在某些情況下,您會(huì)發(fā)現(xiàn)自己正在處理沒有可用代碼的情況。 我可以快速解決帶有D腳本的WebSphere Application Server所遇到的問題,而不是依賴于WebSphere跟蹤工具和解釋日志文件的任務(wù)。
結(jié)論
介紹性文章就這么多。 對(duì)于任何開發(fā)平臺(tái),都必須“盡可能”地構(gòu)建與目標(biāo)環(huán)境盡可能接近的開發(fā)環(huán)境。 此外,我認(rèn)為在盡可能接近生產(chǎn)環(huán)境的環(huán)境中工作不僅在應(yīng)用程序開發(fā)階段為您提供了額外的價(jià)值和見解,而且還應(yīng)視為我們參與的每個(gè)項(xiàng)目的強(qiáng)制性要求。 Solaris提供了開發(fā)人員實(shí)現(xiàn)此目標(biāo)所需的所有工具。
Solaris是一個(gè)復(fù)雜的企業(yè)操作系統(tǒng),具有許多您可能永遠(yuǎn)不會(huì)使用的功能。 然而,正如我在本文中試圖指出的那樣,其中許多其他情況都有一個(gè)用例。 由于其中一些技術(shù)是使用開放源代碼許可證開發(fā)的,因此它們也可以在其他操作系統(tǒng)上使用:ZFS在FreeBSD上可用,并且需要社區(qū)的努力將其移植到OSX。 DTrace在OS X,Linux和FreeBSD上可用。
“ Solaris優(yōu)勢(shì)”是所有這些技術(shù)都是高度集成的,并且可以相互利用。 結(jié)果比它們的總和還有價(jià)值。 這些技術(shù)具有非常完善且易于使用的管理界面:當(dāng)時(shí)間很重要時(shí),“您的工作方式”至關(guān)重要。
我希望這些見解可以幫助您了解Solaris操作系統(tǒng)是否以及何時(shí)對(duì)您有用。 即使您認(rèn)為并非如此,我還是建議您嘗試一下:在工具箱中添加新技術(shù)總是很好的。
參考: The Gray Blog上的 JCG合作伙伴提供了Solaris為什么是 出色的 Java開發(fā)平臺(tái)的一些原因 。
相關(guān)文章 :- Java最佳實(shí)踐
- 使用VirtualBox在PC上安裝Android OS
- Java內(nèi)存模型-快速概述和注意事項(xiàng)
- 適用于Mac OS X的官方Java 7 –狀態(tài)
- Java初學(xué)者指南
翻譯自: https://www.javacodegeeks.com/2011/05/solaris-java-development-platform.html
solaris安裝java
總結(jié)
以上是生活随笔為你收集整理的solaris安装java_Solaris是出色的Java开发平台的原因的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hostinger vs MDDHost
- 下一篇: dateformat线程_Java最佳实