亞馬遜是如何實現自動將美國國防部大型機cobol重構到政務雲Java?

banq發表於2019-05-07

亞馬遜的AWS團隊將美國國防部在大型機上執行的COBOL系統成功遷移到基於x86 Red Hat Enterprise Linux(RHEL)的Java系統中:
目標是透過利用Amazon Web Services(AWS)來引入敏捷性,降低成本,使技術堆疊現代化並增強安全性。我們使用自動程式碼轉換工具和技術完成了這項工作,同時保留了所有功能,螢幕和報告。
現代化目標是建立基於亞馬遜的政務雲:AWS GovCloud(美國),以解決國防部嚴格的安全和合規要求,如美國公民身份。

背景和目標
老系統的一個主要元件有54年曆史,用COBOL編寫,並提供零售級業務邏輯。該元件執行在已經證明極難更改和管理,但是現在需要對元件進行現代化,以降低運營成本並轉移到開放平臺,同時保留所有功能。
過去,由於任務的龐大規模和複雜性,使元件現代化的嘗試失敗了。事實上,元件的現代化被認為是一項艱鉅的任務,它在2003年的“ 現代化遺留系統:軟體技術,工程流程和商業實踐”一書中得到了強調。
經過54年的運營,維護和擴充套件,元件的程式碼記錄得很糟糕。現有系統的技術設計是支援現代化工作所必需的,必須從現有系統和程式碼中獲得。
該元件的主要特徵包括:

  • 年運營成本超過3000萬美元,主要歸因於大型機託管和維護成本。
  • 130萬行COBOL原始碼行(SLOC)。
  • 一個資料管理系統,由120萬行COBOL程式碼組成,每天支援大約500,000個事務。
  • 幾乎沒有剩下的主題專家(SME)。
  • 難以找到合格的,負擔得起的COBOL程式設計師。

該元件需要進行現代化並遷移到經濟實惠的開放系統和託管環境,無需停機,資料丟失,功能丟失,效能損失和最小的任務風險。國防部從未做過這樣的事情

現代化方法與解決方案
多年來,我們的團隊透過提供改變和改善供應任務的解決方案,與國防部專案管理辦公室建立了可信賴的關係。2015年,國防部與我們的團隊簽訂合同,對元件進行現代化改造,使其成為整個系統的一個整體和可持續發展的組成部分。
我們透過識別和評估解決方案選項來啟動專案:

  • 完全手動重寫和重新構建解決方案無法滿足程式的時間限制,成功率一直很低(高風險),並且成本太高。
  • 未選擇替代解決方案,因為國防部需要保留所有當前的業務規則。
  • COBOL模擬器重新託管解決方案是一種權宜之計,無法達到J2EE / RHEL / SQL DB架構未來的狀態要求。

這種分析導致我們決定使用COBOL-to-Java程式碼自動重構解決方案。此選項將採用低風險,漸進的方法,並應用混合的敏捷/傳統方法和工具,以確保快速,高質量的軟體交付。

元件現代化階段
一旦選擇了COBOL-to-Java程式碼自動重構解決方案,就會出現一個三階段方法來滿足DoD的全部要求以及成本,進度和風險限制。

  • 階段1(18個月):COBOL-to-Java程式碼自動重構到x86 / RHEL平臺 這是最複雜和最危險的階段,因為我們在虛擬化的x86 RHEL平臺上自動將大型機的COBOL程式碼重構為Java程式碼,同時不會丟失任何程式碼功能或效能。生成的Java程式碼包含COBOL的設計殘餘,並且開發和測試環境已移至AWS Cloud。
  • 第2階段(12個月):程式碼高階重構以消除COBOL設計暗語。 我們對Java程式碼庫進行了更多重構,以消除殘留的COBOL殘餘,暗語和設計元素,從而提高可維護性。
  • 階段3(3個月):基礎設施遷移到AWS GovCloud(美國)我們將所有剩餘環境遷移到AWS GovCloud(美國),包括登臺和生產。AWS GovCloud(美國)使我們能夠滿足國防部的許多網路威脅安全要求。


得到教訓
自動重構專案是一種可行的方法,可以對主要的遺留系統進行現代化,包括基於COBOL的複雜大型機,以便在經濟高效的開放系統中保留現有的業務規則。
我們可以強調在該專案中學到的具體經驗:

  • 透過自動重構進行程式碼轉換是一種低風險的方法,可以放棄傳統平臺並遷移到AWS雲。
  • 將努力分為幾個階段(現代化,遷移等)可以降低風險並確保任務成功。
  • 脫離傳統的COBOL可以實現全新的維護機會,例如勞動力和工具。
  • 敏捷開發模型可實現實時課程更正並降低交付風險。
  • 最大程度的自動化對於轉換數百萬行程式碼同時保留功能等同性,降低風險和縮短專案時間表至關重要。
  • Java語言目標允許從各種經濟高效的可靠計算選項中進行選擇。在這種情況下,它允許彈性和可擴充套件性,以滿足任務關鍵型DoD系統的需求。
  • 從傳統的專有大型機和COBOL遷移到開放的Java平臺,可以訪問大量有才華的建築師和專家進行設計和操作。
  • 抑制專有的COBOL技術可以提供更具成本效益和可靠性的應用伺服器和資料庫。

相關文章