Your SlideShare is downloading. ×
DevOps Patterns to Scale Web Applications using Cloud Services
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

DevOps Patterns to Scale Web Applications using Cloud Services

1,162
views

Published on

Scaling a web applications can be easy for simple CRUD software running when you use Platform as a Service Clouds (PaaS). But if you need to deploy a complex software, with many components and a lot …

Scaling a web applications can be easy for simple CRUD software running when you use Platform as a Service Clouds (PaaS). But if you need to deploy a complex software, with many components and a lot users, you will need have a mix of cloud services in PaaS, SaaS and IaaS layers. You will also need knowledge in architecture patterns to make all these software components communicate accordingly. In this presentation, we share our experience of using cloud services to scale a web application. We show usage examples of load balancing, session sharing, e-mail delivery, asynchronous processing, logs processing, monitoring, continuous deployment, realtime user monitoring (RUM). These are a mixture of development and system operations (DevOps) that improved our application availability, scalability and performance.

Published in: Technology, Business

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,162
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DevOps Patterns to Scale Web Applications using Cloud Services Daniel Cukier Department of Computer Science University of São Paulo ! danicuki@ime.usp.br
  • 2. 16GB dedicated server image processing ! 96GB dedicated MySQL server core core data login backoffice cart photos search emails user stats assets sessions
  • 3. Elo7 (3) Login (2) java server java server core staging env (3) login Rest API (2) rails server REST api http server http server cart queue (1) search (3) memcache (2) solr (lucene) sessions search API DynamoDB search user stats worker (n) image processing redis server http server assyncjobs MySQL (2) core data vitrine data S3 photos assets Vitrine (2) rails server vitrine http server atelier (1) backoffice
  • 4. Store Big Files in Cloud Storages Context: You have a web application that needs to deliver large files to users. These files can be documents, photos, videos, or other binary formats. ! Solution: Serve large static data files using a cloud web storage ! Why: avoid BLOB columns, large files consume resources and disk, backup
  • 5. Queue based solution to process async jobs Context: Needs fast response to end user, have some time consuming tasks ! Solution: Use a queue based solution to process your P background jobs. c1 c2 ! Why: Async threads can harm your application, auto-failover, monitoring, auto-scale c3
  • 6. Load Balancing with memcached user sessions Context: Complex web application, SLA 100%, user information in session, many deploys daily ! Solution: Use memcached session manager (MSM) software to store user session
 Why: hot deploy does not work, availability, no session data loss, Tomcat solution does not scale
  • 7. Cloud email delivery Context: Lots of transactional emails. You need a guarantee that these emails are properly delivered ! Solution: Use cloud mail delivery services that provide easy-to-use REST API ! Why: cost, management, easy to program REST, spam, tracking
  • 8. Cloud logging Context: Complex web application, many logs, no access to production servers, needs log debugging ! Solution: Use a cloud based log service to consolidate your application logs ! Why: manual copy, take care of disk space, indexing files demands work
  • 9. Realtime User Monitoring (RUM) Context: 1M users, many deploys per day, different user behaviors, complex infrastructure ! Solution: Use cloud mail delivery services that provide easy-to-use REST API ! Why: 100% test coverage do not guarantee it will not fail, staging different from production
  • 10. Prefer PaaS over IaaS When use PaaS • Low knowledge about infrastructure • No knowledge about scalability or security • Do not want to monitor infrastructure • Your application does not have have any specific technology When use IaaS • Want to have more control of the infrastructure • Infrastructure is core to your business • You have software components that do not conform to PaaS providers standards
  • 11. Thanks! Daniel Cukier Department of Computer Science University of São Paulo ! danicuki@ime.usp.br

×