今天下午芝薇,學習AWS DevOps的白皮書魁索,剛好看到Continuous Integration and Continuous Delivery (CI/CD)部分,回憶起之前做AWS SAP練習題有一道相關題目如下:
A company is using AWS to run an internet-facing production application written in Node.js. The Development team is responsible for pushing new versions of their software directly to production. The application software is updated multiple times a day. The team needs guidance from a Solutions Architect to help them deploy the software to the production fleet quickly and with the least amount of disruption to the service. Which option meets these requirements?
A. Prepackage the software into an AMI and then use Auto Scaling to deploy the production fleet. For software changes, update the AMI and allow Auto Scaling to automatically push the new AMI to production.
B. Use AWS CodeDeploy to push the prepackaged AMI to production. For software changes, reconfigure CodeDeploy with new AMI identification to push the new AMI to the production fleet.
C. Use AWS Elastic Beanstalk to host the production application. For software changes, upload the new application version to Elastic Beanstalk to push this to the production fleet using a blue/green deployment method.
D. Deploy the base AMI through Auto Scaling and bootstrap the software using user data. For software changes, SSH to each of the instances and replace the software with the new version.
答案:C
題目難度:低
題目解析:題目中提到應用會在一天內(nèi)產(chǎn)生多次更新虎囚,要求實現(xiàn)應用的快速發(fā)布郊霎,并將由此造成的服務影響降到最低悍引。這是一道典型的考察CI/CD概念的題目凰慈。
選項ABD均涉及使用不同方法通過AMI啟動實例來完成應用發(fā)布官紫。姑且不論方案是否可行,僅從AMI啟動實例就可能需要中斷應用服務十幾到幾十分鐘不等狂芋。
而選項C中提到的Blue/Green Deployment榨馁,是指使用AWS CodePipeline部署相互隔離且完全相同的兩套AWS Elastic Beanstalk環(huán)境(Blue/Green),從而實現(xiàn)開發(fā)帜矾,測試翼虫,部署應用程序的同時,提高系統(tǒng)可用性并降低風險屡萤。因此是最符合題目要求的選項珍剑。
參考:https://amazonaws-china.com/quickstart/architecture/blue-green-deployment/