Child pages
  • Repeatable Deployment Plan
Skip to end of metadata
Go to start of metadata

Eucalyptus Production Deployment

Few large scale production software deployments (Eucalyptus, and otherwise) go exactly as planned. This document outlines a staged approach to deploying Eucalyptus for production, to help keep a production deployment project on track, help with communication between users and Eucalyptus teams, and to promote a metered approach to production data center + Eucalyptus deployments. This document does not intend to imply that all deployments will follow this plan exactly, but rather that it should be used to either organize and communicate (set expectations for) a brand new deployment, and to aid in moving a jeopardized deployment back on track.

One important aspect of these stages is that each stage is designed to provide a result that can be safely built upon while moving through a deployment project.  The following diagram illustrates this point by grouping some of the stages into layered foundations.  For a quick presentation using this abstraction, Click Here.

 

Eucalyptus teams will be involved at each stage for the most active engagements, and only for certain stages for less active engagements. When Eucalyptus teams are not involved at every stage (an experienced/motivated user could certainly go through these stages entirely by themselves), the task of Eucalyptus teams should minimally be to communicate these general deployment stages, recommend a sequential approach, and stay in touch with user with enough frequency to know which stage they are in if they run into trouble so that we can provide quick help.All test/production deployments of Eucalyptus are carried out in stages (explicitly or not), whether they are done entirely by a user, by Eucalyptus teams, or in combination. However, when these stages are performed out of order, or if too much parallelism of stages is employed, we have observed that achieving the goal of carrying out a smooth production Eucalyptus deployment is compromised.

Following are the stages in brief that link to sections further in the document that describe the teams, criteria, and watch-outs involved at each stage.

Stage 1: Use case analysis, production timeline, and infrastructure discovery

The first stage of a deployment is centered around understanding the use case, project timelines, physical resource availability/budget, and the roles of the people involved in the deployment project.

Eucalyptus Teams Involved:

  • Sales, CS, Engineering

Eucalyptus team tasks:

  • Produce customer profile by leading investigation discussions with customer around use case, status of physical infrastructure availability, timelines, and setting of project expectations.
  • Identify customer teams (people) who will be involved in deployment.
  • Identify level of engagement from Eucalyptus WRT overall production deployment plan, ensure that customer has purchased/has access to the appropriate level of engagement and support from Eucalyptus.

Know that this stage is complete when:

  • Customer profile is completed
  • Customer teams have understanding of overall deployment plan and timelines
  • Level of Eucalyptus team engagement is understood/allocated

Stop at this stage and re-plan if:

  • Customer profile does not exist
  • Customer is not on the same page WRT level of Eucalyptus engagement (i.e. has not purchased prof. services, but needs it. Has not purchased support, but expects it, etc)
  • Customer profile shows that use case / infrastructure / customer teams implies a low chance for success

Stage 2: Deployment planning

At this stage, the general objective is clear and a reasonable/practical timeframe has been agreed upon for getting the deployment done.  Here, we start to discuss the deployment itself, using the prior stage information as a guide. At this stage, we should be basing the discussion on one of the pre-defined reference architectures, if possible.

Eucalyptus Teams Involved:

  • CS, Engineering

Eucalyptus team tasks:

  • Lead discussions with appropriate customer teams on deployment plan.
  • Produce diagrams for network layout, eucalyptus topology, storage topology.
  • Produce all required Eucalyptus configuration parameters that are site-specific (networking parameters, network/network device names, VLAN range, storage locations, data-paths)
  • Identify and discuss configuration options that dictate 'maximum capacity of this deployment', accoring to customer profile from previous stage.
  • Update customer profile

Know that this stage is complete when:

  • All physical hardware requirements are understood
  • Deployment diagrams exist and have been reviewed
  • Timelines are agreed upon

Stop at this stage if:

  • Solid deployment diagrams do not exist
  • Discussed timelines are unrealistic
  • Deployment plan has significantly altered customer profile
  • Customer profile shows that use case / infrastructure / customer teams implies a low change for success

Stage 3: Infrastructure purchase, physical deployment

At this stage, we work to ensure that all of the necessary infrastructure is available and set up, explicitly attempting to avoid cases where we proceed with a partial deployment that is difficult to move into a complete deployment later.

Eucalyptus Teams Involved:

  • CS

Eucalyptus team tasks:

  • Lead discussion to keep deployment diagrams up-to-date

Know that this stage is complete when:

  • All required physical infrastructure is in place
  • Physical infrastructure is adequately allocated and ready for configuration
  • Access to required Eucalyptus resources is understood (people/roles who have access to configure/re-configure Eucalyptus required resources)

Stop at this stage if:

  • Required resources are not all available (i.e. stop if 'everything except the SAN' is ready)

Stage 4: Infrastructure configuration and management installation

At this stage, we have all of the physical resources installed and functional, and we work here to make sure that the underlying collection of Eucalyptus required resources are being managed, are stable, and wont' be changing under the hood when we start installing Eucalyptus.  We also make sure that we understand how to access the system (or not) down the road if Eucalyptus support is contacted to work within this environment.

Eucalyptus Teams Involved:

  • CS

Eucalyptus team tasks:

  • Lead discussions with customer on configuration management/monitoring solutions, specifically on how they should be configured to be ready for Eucalyptus

Know that this stage is complete when:

  • Physical infrastructure has been configured (and/or configuration management in place)
  • Non-eucalyptus services are functional (physical resource monitoring)
  • Access to physical resources (for eucalyptus) has been established
  • Remote access for Eucalyptus troubleshooting has been configured (or is explicitly not allowed by customer)

Stop at this stage if:

  • Any item in 'know that this stage is complete when...' list is unfinished.

Stage 5: Infrastructure testing

At this stage, we ensure that the infrastructure which Eucalyptus will be using is 'burned in' by testing the environment, and simulating realistic infrastructure affecting events.

Eucalyptus Teams Involved:

  • CS

Eucalyptus team tasks:

  • Verify that customer infrastructure is sound, either through discussion or inspection

Know that this stage is complete when:

  • Physical resource configuration and monitoring systems have been tested
  • Physical resource upgrade/maint. windows have been identified (and/or disabled in the case of upgrade)
  • "Burn In" testing has been completed (simulate power failure, high load scenario, node restoration scenario, etc.)
  • Physical resource Eucalyptus requirements have been verified (end-to-end network connectivity, "VLAN Clean" tests, multi-cast testing for HA, firewall interference testing, basic performance testing for physical resources, etc.)

Stop at this stage if:

  • Any item in 'know that this stage is complete when...' list is unfinished.

Stage 6: Eucalyptus installation

At this stage, we install the Eucalyptus software atop a stable, tested environment.

Eucalyptus Teams Involved:

  • CS

Eucalyptus team tasks:

  • Perform installation of Eucalyptus according to customer profile/deployment plan/diagrams (if engaged at this level)
  • Support customer through installation (if engaged at this level)

Know that this stage is complete when:

  • Eucalyptus is installed according to deployment plan
  • Virtual machines, networking, EBS volumes all function (create, describe, destroy cycle)
  • Users/Accounts have been created with credentials stored appropriately
  • EUARE Resource Quotas have been configured
  • Infrastructure configuration and monitoring systems have been integrated with Eucalyptus
  • Customer workflow application (if exists) has been configured to use Eucalyptus
  • Eucalyptus back-up plan/tooling is in place

Stop at this stage if:

  • Any item in 'know that this stage is complete when...' list is unfinished.

Stage 7: Eucalyptus testing

As with the infrastructure testing, here we work to do as much realistic Eucalyptus workload testing as possible, to verify that the deployment model and physical resource configuration that has been chosen and put in place is correct and supports the desired workload.

Eucalyptus Teams Involved:

  • CS

Eucalyptus team tasks:

  • Perform testing of Eucalyptus according to customer profile/deployment plan/diagrams (if engaged at this level)
  • Support customer through testing (if engaged at this level)

Know that this stage is complete when:

  • Have run through real production workload examples
  • Have Tested maximum scale for VMs, EBS, Walrus, Network usage
  • Have Tested failure cases (simulate power outtage, system reboots, network outtage if HA)

Stop at this stage if:

  • Any item in 'know that this stage is complete when...' list is unfinished.

Stage 8: Eucalyptus Hand-over

At this final stage, we provide the necessary information to the user to ensure on-going maintenance and support for the production deployment.

Eucalyptus Teams Involved:

  • CS (Support Engineers)

Eucalyptus team tasks:

  • Lead discussions with customer around long-term maint/support procedures/plans
  • Lead discussion to clearly identify any 'one off' configurations, workarounds, caveats, special considerations that have arisen during production deployment plan execution and add to customer profile.

Know that this stage is ready (never really complete) when:

  • Maint. windows have been discussed and first one is planned
  • Future upgrade procedures have been discussed and process is understood
  • Support access and procedures (response time, remote action, escalation process) has been discussed
  • Basic troubleshooting procedures have been covered
  • Restore from back-up plan has been discussed
  • Customer is ready to manage the cloud, with help from Eucalyptus Support when necessary according to in place support SLA.
  • Customer profile is up-to-date with record of production deployment project

Final Stage: Eucalyptus in Production

At this last stage, there is no end until the deployment is dismantled or re-provisioned as part of a different deployment (in which case, we start over at stage 1).  

Eucalyptus Teams Involved:

  • CS (Support Engineers)

Eucalyptus team tasks:

  • Provide technical support when Eucalyptus issues arise
  • Provide guidance around upgrade procedures, new feature availability, security releases, and other technology updates
  • Stay in touch with customer to understand how the product can be improved (bug fixes, new features) for future releases
  • No labels