Guides
Guides

Introduction

Why Crafting?

Crafting Sandbox offers developers production-like cloud-based development environments. Regardless of whether you use Kubernetes, Docker Compose, or haven't yet containerized, Crafting enables your team to quickly launch development environments with just one click.

Thanks to cloud computing, developers can take advantage of unlimited resources and unlock their full productivity potential. At the same time, Crafting continuously monitors usage and automatically suspends unused environments to optimize resource utilization and cost.

Crafting's development environments allow for end-to-end testing of your product, including all services and dependencies. Whether you work with Kubernetes, other container frameworks, or serverless components, you can launch your entire product with a specific version of your code, working from end to end. Furthermore, you can edit any part of your system by modifying code directly on the cloud and see the effects in real-time, significantly reducing iteration time.

Pain-points Crafting Sandbox addresses

If your team experiences any of the following common pain points, Crafting Sandbox can help optimize your development experience and speed.

  • Fragile development environments
  • Long engineering onboarding
  • Slow local machines for development
  • Troublesome to manage dev environments updates
  • Difficult to conduct integration testing
  • Things work in dev environments failed in production
  • Tough to preview product changes end-to-end
  • Trouble to develop and test with Kubernetes
  • Gaps between local dev environments and cloud native services
  • Hard to manage testing data
  • Contention for shared staging
  • Trouble in remote collaboration and pair-programming
  • Laborious to setup demo to stakeholders

Key Benefits for Crafting Sandboxes

Replicable Dev Environments Easy to Manage and Upgrade

One key issue for large teams of engineers using their local laptops for development is how to maintain the a standard dev environments distributed and sometimes heterogeneous machines. Outdated dev environments are fragile, unsecure, and hard to fix. Setting up a new dev environment is often time-consuming and error-prone.

Crafting addresses this issue from the root by providing a cloud version of the dev environments that are centrally managed and quickly replicable on-demand. By allowing on-demand creation of new standardized, up-to-date dev environments for any engineers, it can achieve following benefits:

  • Developers can always get a stable dev environments that's ready-to-code
  • New engineers can onboard quickly to the team
  • Library & toolchain updates and security patches are always fresh on dev environments
  • Providing remote engineers a standardized dev environment that's easy to troubleshoot
  • Preventing code leak from loss of local coding machines

Unlimited Computing for Dev with Saving on Machines

Local machines always have limited computation power. Many limitations including CPU, memory, power, cooling, etc., make local machine very slow for heavy lifting actions in development such as building large codebase, running heavy dependencies, hosting many containers, etc. As a result, developers for modern cloud products often suffer from slow or unusable local machine for the development needs. Buying high-power local machines is costly and only temporarily delayed the problem.

Crafting allows developers to shift the heavy-lifting to power cloud machines while archiving same or better coding experience from the local laptop, with the same IDEs commonly used today. Given developers only need to do heavy operations very occasionally while spending majority of the time with a relatively light code editor, Crafting can actually save the computing cost by resource optimization while providing much higher peak performance. Specifically:

  • Developers can leverage powerful cloud machines with configurations like 64 cores and 256 GB memory
  • The cost of dev laptops can be reduced 70% (even to chromebooks in some cases)
  • The cost of cloud containers are well-controlled by activity-based auto-suspension, result in over 80% resource saving
  • Further sharing of computing resources can be achieved by placing multiple dev containers on a VM

Instant Iteration for Developers to Work on Multiple Services (e.g. Kubernetes)

A common pain-point for working on a multi-service product is integration testing and iteration speed with that. Developers often have to code locally, and wait for a long time for CI pipeline to get the code into a more end-to-end environment to test. If anything goes wrong, the long cycle repeats and cause serious slow-down in development. To make the matter worse, developers usually have to guess the behavior of the services their service integrate with. Moreover, frameworks which are optimized for production environment, e.g., Kubernetes, only makes it even harder to debug.

Crafting solves that challenge by enabling developers to launch many services in a sandbox pre-wired together, including other services you work on, custom containers, databases, etc. With the full context, developers on Crafting don't need to guess the behavior other service anymore, as you can see what's going on live. To make testing and debugging much easier, Crafting Sandbox can:

  • Orchestrate many services running end-to-end, whether you use Kubernetes or not
  • Let developers add logging or modify code for a service in sandbox and instantly see the change live in the end-to-end environment
  • Swap a service in the end-to-end environment with the dev version running locally for hybrid dev and testing
  • Manage development datasets, snapshotting, preloading, etc.

Production-like Previews for Every Code Change

It is often desirable for developers to preview their code changes before merging them in main branch in their source repo. The preview can help peer engineers, product managers and designers in the dev team, or even customers in a sales demo. However, building a robust system to launch and manage production-like preview environments on-demand is challenging.

Crafting lets developers set up ephemeral environments on-demand easily in a resource efficient manner so that you can preview each and every code change in a production-like environment. The preview environments are Internet-facing and secured by access control, allowing any team member (technical or non-technical) to review the product end-to-end before released to customers. Crafting enables developers to:

  • Leverage their existing production config for creating production-like previews
  • Easily integrate with git providers to embed preview links in every PR
  • Open up Internet-facing endpoints for mobile apps and web frontend
  • Work with cloud native resources the way production system does

What’s Next