Serverless App Engine (SAE) helps you quickly migrate applications to the cloud. You do not need to manage or maintain the underlying infrastructure. SAE helps you reduce development and O&M costs. You can manage the lifecycle of an application in the SAE console. This topic describes how SAE and Jenkins help Seeyii implement cloud-native DevOps.
Background information
Seeyii is a big data financial information service provider that focuses on primary market, corporate credit, industrial planning and investment, and multi-level capital market. Seeyii deeply understands the data requirements of customers, such as large banks, financial institutions, public service sectors, and enterprise groups, provides professionally transformed data to customers. Seeyii provides an integrated data analysis platform that contains the following capabilities: integration of enterprise data, industrial data, and financial data, data processing, data mid-end, system development, and big data model analysis and consulting.
Challenges
The security, stability, and efficiency of data are key to serving large customers. Seeyii was unable to obtain the full, real data of customers in a test environment. Before Seeyii can release applications, Seeyii must frequently release and test versions in a canary release environment that is similar to a staging environment. The following table describes the challenges that Seeyii faced during a release process. The table also describes the benefits of SAE.
Challenge | Benefit |
Challenge | Benefit |
Low development iteration efficiency: Information silos exist across the original data analysis platform. Business code was tightly coupled and the development efficiency was low. | SAE uses a serverless architecture and blocks the underlying details of IaaS O&M and Kubernetes clusters. Compared with FaaS, SAE eliminates the need to modify any programming model or code. |
Complex release process and high costs: Code was managed in Apache Subversion (SVN) and applications were manually deployed. The original data analysis platform did not have a standardized DevOps process. To release an application, Seeyii must perform 20 to 30 data verification operations in a canary release environment and frequently release and test versions. The development and O&M workloads were large. | SAE provides namespaces to logically isolate runtime environments such as development, test, and production environments. You can efficiently manage applications, perform one-click application start and stop, and improve application security. SAE allows you to use the phased release method or canary release method to iterate and upgrade an application. If an error occurs in the current version, you can roll back the application to an earlier version. |
High costs of self-managed containers: Seeyii tried a solution that combines Elastic Compute Service (ECS) instances and Docker containers. However, manual O&M operations and development were required for Docker daemon upgrade, image registry management, configuration management, and scheduling and de-scheduling. | SAE allows you to manage the lifecycle of applications in the SAE console with a few clicks. This simplifies the O&M process. |
No automatic capacity estimation: To host a marketing activity or an important event, for example, to publish the Xinhua Financial (XHF) Index, Seeyii must prepare ECS instances at least one week in advance. Issues such as inaccurate capacity estimation, idle resources, and risks may occur. | SAE provides multiple types of auto scaling policies to perform scaling operations within seconds. SAE can ensure business SLA when burst traffic occurs. |
Solution
The following figure shows the solution that is used by Seeyii.
SAE helps Seeyii build a cloud-native DevOps system that integrates Git, Jenkins, and SAE. Seeyii changed the ECS-based monolithic architecture to a serverless architecture that integrates microservices capabilities and Kubernetes capabilities. SAE classifies applications into environments, such as canary release environments and production environments, by namespace. SAE allows Seeyii to configure various auto scaling policies and release policies, manage the lifecycle of applications with a few clicks in the SAE console, enable diversified monitoring and analysis features, and configure enhanced microservices capabilities. This simplifies O&M operations and reduces costs. To implement automatic deployment, the developers of Seeyii need to only submit the related code to Jenkins. SAE also provides the real-time log collection and file log collection features. The R&D engineers of Seeyii can aggregate and analyze logs and connect the aggregation and analysis results to business logs.
Effect
Seeyii uses SAE to convert each business requirement to an application, and then releases the applications in phases to allow more traffic based on the specified canary release policy.
Standardized deployment process and reduced O&M costs: SAE allows the R&D engineers of Seeyii to perform continuous integration and continuous deployment (CI/CD) without the help of O&M engineers. This improves business release efficiency. The O&M engineers no longer need to handle the complex transactions that are related to releasing vertical business, and can focus on building horizontal high-availability systems and monitoring platforms. SAE helps Seeyii improve the O&M efficiency by 60%.
Low barriers to microservices architecture transformation: After a business is converted to a microservices application, Seeyii does not need to manage microservices peripheral facilities or configure stable disaster recovery. SAE is a one-stop and out-of-the-box service whose complete microservices capabilities are verified by Double 11.
Scalability within seconds without capacity planning: Thanks to the auto scaling policies of SAE, Seeyii no longer needs to prepare ECS capacity in advance. Scale-out operations can be automatically performed within seconds during the peak hours of marketing activities, and idle resources can be automatically scaled in during off-peak hours to reduce costs.
Easy utilization of Kubernetes and convenient method to view logs: SAE helps Seeyii implement containerization with ease and use its original deployment methods to manage applications. Seeyii can use SAE and Log Service to view logs without the need to manage Bastionhost-related permissions or server accounts and passwords.