Migrating Dress4Win to the Cloud: Architecture, Requirements, and Solutions

Dress4Win Cloud Migration: Components, Challenges, and Solutions

Question

Dress4Win is a web-based company that helps their users organize and manage their personal wardrobe using a web app and mobile application.

The company also cultivates an active social network that connects their users with designers and retailers.

They monetize their services through advertising, e-commerce, referrals, and a freemium app model.

The application has grown from a few servers in the founder's garage to several hundred servers and appliances in a colocated data center.

However, the capacity of their infrastructure is now insufficient for the application's rapid growth.

Because of this growth and the company's desire to innovate faster, Dress4Win is committing to a full migration to a public cloud.

Solution Concept - For the first phase of their migration to the cloud, Dress4Win is moving their development and test environments.

They are also building a disaster recovery site, because their current infrastructure is at a single location.

They are not sure which components of their architecture they can migrate as is and which components they need to change before migrating them.

Existing Technical Environment - The Dress4Win application is served out of a single data center location.

All servers run Ubuntu LTS v16.04

Databases:MySQL.

1 server for user data, inventory, static data: - MySQL 5.8 - 8 core CPUs - 128 GB of RAM - 2x 5 TB HDD (RAID 1)Redis 3 server cluster for metadata, social graph, caching.

Each server is: - Redis 3.2 - 4 core CPUs - 32GB of RAM Compute:40 Web Application servers providing micro-services based APIs and static content.

" - Tomcat Java - - Nginx - 4 core CPUs - 32 GB of RAM20 Apache Hadoop/Spark servers: - Data analysis - Real-time trending calculations - 8 core CPUs - 128 GB of RAM - 4x 5 TB HDD (RAID 1)3 RabbitMQ servers for messaging, social notifications, and events: - 8 core CPUs - 32GB of RAMMiscellaneous servers: - Jenkins, monitoring, bastion hosts, security scanners - 8 core CPUs - 32GB of RAM Storage appliances:iSCSI for VM hostsFiber channel SAN " MySQL databases - 1 PB total storage; 400 TB availableNAS " image storage, logs, backups - 100 TB total storage; 35 TB available Business Requirements -Build a reliable and reproducible environment with scaled parity of production.Improve security by defining and adhering to a set of security and Identity and Access Management (IAM) best practices for cloud.Improve business agility and speed of innovation through rapid provisioning of new resources.Analyze and optimize architecture for performance in the cloud.

Technical Requirements -Easily create non-production environments in the cloud.Implement an automation framework for provisioning resources in cloud.Implement a continuous deployment process for deploying applications to the on-premises datacenter or cloud.Support failover of the production environment to cloud during an emergency.Encrypt data on the wire and at rest.Support multiple private connections between the production data center and cloud environment.

Executive Statement - Our investors are concerned about our ability to scale and contain costs with our current infrastructure.

They are also concerned that a competitor could use a public cloud platform to offset their up-front investment and free them to focus on developing better features.

Our traffic patterns are highest in the mornings and weekend evenings; during other times, 80% of our capacity is sitting idle.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

A.

Dress4Win is a web-based company that wants to migrate their entire infrastructure to a public cloud due to their rapid growth and the desire to innovate faster. They have already decided to start with the migration of their development and test environments and build a disaster recovery site, and they are unsure about which components of their architecture they can migrate as is and which they need to change before migrating.

The existing technical environment of Dress4Win is served out of a single data center location and consists of multiple servers running Ubuntu LTS v16.04, databases using MySQL, Redis 3 server cluster for metadata, social graph, and caching, web application servers, Apache Hadoop/Spark servers for data analysis and real-time trending calculations, RabbitMQ servers for messaging and social notifications, and miscellaneous servers such as Jenkins, monitoring, bastion hosts, and security scanners.

Dress4Win has some business and technical requirements for their migration to the cloud. Business requirements include building a reliable and reproducible environment, improving security by defining and adhering to a set of security and Identity and Access Management (IAM) best practices, improving business agility and speed of innovation through rapid provisioning of new resources, and analyzing and optimizing architecture for performance in the cloud. Technical requirements include easily creating non-production environments in the cloud, implementing an automation framework for provisioning resources in cloud, implementing a continuous deployment process for deploying applications to the on-premises data center or cloud, supporting failover of the production environment to the cloud during an emergency, encrypting data on the wire and at rest, and supporting multiple private connections between the production data center and cloud environment.

Out of the four given options, the best choice for Dress4Win would be option D, which is to deploy Jenkins, monitoring, bastion hosts, and security scanners services on custom machine types.

Option A, which is to deploy web applications using App Engine standard environment, may not be the best choice for Dress4Win because it does not provide enough control over the underlying infrastructure and may not allow the company to easily create non-production environments in the cloud.

Option B, which is to deploy RabbitMQ using an unmanaged instance group, may not be the best choice for Dress4Win because it does not support failover of the production environment to the cloud during an emergency.

Option C, which is to deploy Hadoop/Spark using Cloud Dataproc Regional in High Availability mode, may not be the best choice for Dress4Win because it may not be necessary for the company to use this solution for data analysis and real-time trending calculations, and it may not be cost-effective.

Therefore, Dress4Win should choose option D, which is to deploy Jenkins, monitoring, bastion hosts, and security scanners services on custom machine types, as it allows them to easily create non-production environments in the cloud, implement an automation framework for provisioning resources in the cloud, and support failover of the production environment to the cloud during an emergency. This option also provides the company with the control and flexibility they need to optimize their infrastructure for performance in the cloud and encrypt data on the wire and at rest while supporting multiple private connections between the production data center and cloud environment.