With the popularity of mobile Internet in recent years,more and more applications in different forms and fields are coming out one after another.The growth of application scale and the number of users make developers pay more attention to network,storage,and machine performance when deploying applications.Not only that,application scaling and dynamic adjustment become difficult and troublesome,which results in the growth of the complexity of traditional deployment and distribution for physical and virtual machine.With the development of cloud computing technology,the problems of complex deployment in traditional ways are gradually solved.Further,with the development of microservices,Docker,Dev Ops and other related technologies and concepts,the concept of cloud-native emerged.And finally the wave of cloud-native is set off with the birth of Kubernetes as the representative.In this process,container deployment gradually emerged and serves as the infrastructure of cloud-native technology system for cloudnative applications.For Software Engineering Education Cloud,there are already several systems and services such as examination system,developer system,teaching support system,ability assessment system,etc.Under the cloud-native environment,the traditional physical and virtual machine deployment platform is difficult to meet the requirements of personalized deployment environment of software engineering education cloud due to its fixed deployment mode and language,and the communication between applications and services is also difficult to manage.In order to promote the cloudization process of software engineering education cloud,a Software Engineering Education Cloud deployment platform based on Kubernetes is designed and implemented by this thesis.This thesis takes the application as the entry point,regards the application as a whole that can provide services independently for scheduling and management.Firstly,through Docker’s multi-stage build technology,the build environment and runtime environment are isolated,so that the construction of the application image becomes more flexible.Then a highly available image storage repository based on Nexus is implemented by this thesis,which provides fast rollback capability for applications through version and timestamp markers.In order to solve the problem that traditional container deployment platform is difficult to distinguish different environment configurations,this thesis extracts several configurations from Pod and implements a configuration inheritance and adjustment mechanisms to improve the efficiency of application development and verification in different environments.A core concept of cloud-native applications is microservices,Further,a structural framework of cloud native application is built in this thesis through Kubernetes’ mechanisms such as Deployment,Service and Ingress,which ensures the stability of applications and services in examination situations.For the data output in the Software Engineering Education Cloud,this thesis realizes the persistent storage of the application based on Gluster FS distributed file system combined with Storage Class,which makes full use of physical storage resources.Finally,in order to facilitate application initialization,data migrating and log viewing,this thesis implements the Web Terminal based on Kubernetes’ Exec Api.At present,the platform has been running for eighteen months,supporting the teaching of many courses such as Software Engineering I,Software Engineering II and Computer Organization and Structure in the School of Software of Nanjing University.Also the platform supports dozens of applications and services such as examination system,developer system,teaching support system and knowledge system,and serves more than eighty developers of the Software Engineering Education Cloud.What’s more,the platform also serves forty thousand users of MOOC online and more than one thousand undergraduate students majored in Software Engineering offline,which has brought great help to the Software Engineering Education Cloud. |