亞馬遜是如何實現自動將美國國防部大型機cobol重構到政務雲Java?
亞馬遜的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技術可以提供更具成本效益和可靠性的應用伺服器和資料庫。
相關文章
- 亞馬遜將如何拯救美國郵政亞馬遜
- 政務雲參考架構架構
- Java是新的COBOL嗎?Java
- 大型教育機構如何應用RPA自動處理發票
- 如何在Java服務中實現自動化的健康檢查與自愈機制Java
- 如何在Java中實現事件驅動的微服務架構Java事件微服務架構
- 唯品會架構師是如何實現架構重構的架構
- Google 雲服務搭建 git服務,實現Hexo自動部署GoGitHexo
- APP是如何實現自動續費的?APP
- 華納雲:如何實現tomcat自動化部署Tomcat
- 信創雲安全建設實踐|構建更加智慧、安全的政務雲服務體系
- 亞馬遜智慧手機將威脅到誰?亞馬遜
- CentOS 7 - 配置服務實現開機自啟動CentOS
- Dledger是如何實現主從自動切換的
- 騰訊雲ClickHouse如何實現自動化的資料均衡?
- vue重構自動建站Vue
- 用Ant實現Java專案的自動構建和部署Java
- 華納雲分享如何將網站掛載到美國伺服器上?網站伺服器
- 美國國防部機密檔案銷燬演算法演算法
- 美國國防部從“中國”購買資料傳輸服務
- Spring Boot自動配置的"魔法"是如何實現的?Spring Boot
- 達觀RPA+AI打破資訊孤島,助力政務機構實現“一網通辦”AI
- Python 實現斷網自動重連Python
- IT 自動化:如何去實現
- 如何將手機裡的資料自動備份到鐵威馬NAS?
- 教育機構如何智慧自動排課?
- 大型系統的重構
- 事務機制如何實現
- 安全穩定可信賴 亞馬遜雲科技如何構建可靠的雲服務亞馬遜
- 大型網站如何選擇比較好的雲主機服務商?網站
- 大型電子政務專案問題總結薦
- 財務rpa機器人 快速實現企業財務自動化機器人
- 到明年底 亞馬遜將在美國擁有100家線下快閃店亞馬遜
- Java不是新的CobolJava
- Java如何實現定時任務?Java
- Python實現騰訊雲CDB備份檔案自動上傳到COSPython
- 多雲環境下,如何實現自動化的安全防護?
- 人臉識別閘機驚豔美國運動員 背後的黑科技是如何實現的?