Panel Discussion Continuous Deployment in SaaS
-
Upload
jonas-cheng -
Category
Software
-
view
209 -
download
3
Transcript of Panel Discussion Continuous Deployment in SaaS
Continuous Deploymentin SaaS
Jonas Cheng Andy Tzeng / Aimee Shen / Gaia Server
Continuous Delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.
Continuous Deployment in SaaS
•software engineering approach•be reliably released at any time•releasing software faster and more frequently•reduce the cost, time, and risk of delivering changes•repeatable deployment process
Continuous Deployment in SaaS
Continuous Deployment in SaaS
Continuous Deployment in SaaS
Zero Downtimein Production Deployment
Continuous Deployment & Zero Downtime
• Challenges• Consistent Quality• Live Data Migration• Backward Compatible
Continuous Deployment & Zero Downtime
• Rolling deployments• Canary deployments• Blue-green deployments• Multi-tenant deployments• …
Live Data Migration
• Move Tellus from DCS to AWS
• 100 GB DB
• Encrypt PII thru KMS
• 500M Accounts
• Offload device report from Redis to DynamoDB
• 100 GB -> 30GB in Memory
• 70 GB in DynamoDB
Backward Compatible
• Adopt ReactJS in web portal
• Compatible with Backbone
• Multiple Store Layer (Redis - DynamoDB - S3)
• Trigger-base update from OMEGA
• Compatible with Polling
What’s your Confidence Level of Uncertainty?
• How much experience does benefit next release?
• How much time did you deal with design debt?
• How much time did you spend on deploying?
Consistent Quality
Quality is not an act, it is a habit- Aristotle
Real world release mgmt - top SaaS players practice
• An interesting find: All the researched players strongly recommend and implement small batch & frequent release. They still have major/big batch release, but prefer small batch release for agility consideration and reducing the risk of release mgmt
How Frequent? Daily? Weekly? Monthly?
Real world release mgmt - top SaaS players practice
• No matter a team implement daily release or weekly release, should build the ability of continuous release.
• “How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis?” Faster is better.
Our Frequency
PDLC Transformation
Testing Automation• Construction with test case
• To Meet Specification
• To Cover External APIs
• To Cover Minimal Error Handling
• To Secure UI Specification
• Fix issue with test case
• To Prevent Side Effect and Re-appear
NOT in Testing Automation
• Performance
• System Error Handling
• Out of Memory, Disk Failure, …
• I18N
• Truncation, Localization, …
Tool Chain
High Satisfaction
High Satisfaction
Reduce Release Cycle to Weekly basis
Next Challenges
• Detects Performance Impact
• Detects Automation Coverage
• Automate with AWS new Service - Lambda, API Gateway…etc.
• …
Q & A