June’s Intentional Learning topic is Reclaim Cloud / Jelastic. This is my first time writing about Reclaim Cloud here so for those of you who don’t know what I’m talking about, Reclaim Cloud is a new service offered by Reclaim Hosting and scheduled to launch at the end of the summer. I’m completely new to cloud-native container-based hosting and there’s quite a bit to unpack in this new environment, so I plan to record some of my findings here. At times that may look like unorganized note-taking or word vomit, but I suppose its all in the name of #learning! My goal in all of this is to be able to translate and communicate the super powerful possibilities of Reclaim Cloud to a non-developer. (Hi, hello, former English major here.) And the first step to getting to that point is to fully understand it myself. I’m excited for you to join me on this journey, and in the meantime if you’re interested in learning more about Reclaim Cloud, I encourage you to read the following:
I was a little overwhelmed the first time I logged into the dashboard for Reclaim Cloud, so before really playing around with the available applications, I set out to make the dashboard feel less scary. This meant reading through documentation, creating test environments over and over again, and taking notes like I was back in college. But! The good news is I now feel like I have a solid (read: slightly better) grasp how navigate through Topology Wizard. Here’s some new language I’m now using:
Ordered from Smallest to Biggest
- Cloudlet: Jelastic’s unit of measurement based on usage for pricing on an hourly basis; 128MB RAM & 400MHz CPU
- Reserved Cloudlets: reserved in advance; always charged; can incur discounts when increased
- Dynamic Cloudlets: your resource ‘ceiling’; only pay for what you use
- Container (node): isolated virtualized instance; could be anything from an app server to a database to a load balancer; each container can be scaled vertically & horizontally
- Vertical Scaling: paying only for the RAM & CPU that you use; your resources change dynamically according to your current demands.
- Horizontal Scaling: automatically changes the # of containers within a layer based on incoming load; you can set custom conditions called “tunable triggers” for adding/removing containers as needed
- Layer (node group): set of similar containers in a given environment; designed to perform different actions at once
- Environment: interconnected container layers running application services; can be stopped, started, cloned, migrated, shared
- Application: combination of environments for running a project. // note: a simple application will likely only need 1 environment to run properly.
- Host: physical server or big virtual machines sliced into isolated containers
- Environment Region: set of hosts orchestrated within a single isolated network; one type of hardware
- Jelastic Platform: Group of environment regions where each one can be physically located in a different data center
Ok, so there’s two main ways to ‘install’ or ‘set up’ a tool/application/etc. on Reclaim Cloud. The first is by using the one-click installers in the Marketplace (comparable to cPanel’s Installatron & pretty self-explanatory). The second is to create an environment manually using the Topology Wizard shown above. That’s what I’ve spent the majority of my time wrapping my head around so far.
The recommended order for setting up an environment:
- Choose Programming Language or Deployment Solution
- Configure Topology (layers structure)
- Configure Nodes resources & specific settings
1. Choosing Programming Language / Deployment Solution
From what I’ve gathered, choosing a programming language on Reclaim Cloud means to choose a Certified Container. These software stack versions are configured, updated and patched by Jelastic. Your options are Java, PHP, Ruby, Node.Js or Python.
The alternative option (i.e. the Docker tab) would be to choose a Jelastic System Container. This is the oldest container type; it is an operating system solution that behave like a standalone system, meaning it doesn’t require specialized software or custom images.
2. Configuring Topology
Configuring Topology comes next. You can choose from the following:
- Load Balancers: stacks that operate as an entry point for the environment to distribute incoming requests and even the load across other containers
- Application Servers: runs the application
- Databases: database solutions to storage and manage data
- Cache: caching system for speeding up applications by alleviating database load
- Shared Storage: dedicated storage node
- Elastic VPS: Virtual Private server on top of CentOS, Ubuntu or Debian
- Build Node: a build automation tool for Java projects
- Extra/Other: any of the tools mentioned above
Once that’s selected to preference, choose your method for SSL. You can 1) use the built-in SSL method; 2) upload your own SSL cert; 3) Install try Let’s Encrypt SSL Add-on afterwards in Marketplace.
3. Configuring Nodes Resources & Specifics
After setting topology structure, you can then adjust each particular layer by:
- toggling on/off
- configure vertical scaling (i.e. set reserved & dynamic cloudlets)
- configure horizontal scaling (i.e. define # of nodes within each layer; similar reserved/dynamic concept; choose scaling mode)
- Stateful scaling mode- sub-sequential creation of new nodes; configuration settings are copied over from master container
- Stateless scaling mode- simultaneous creation of nodes from the base image template
- Stateless is faster because nodes are created at the same time, but configurations aren’t copied over. Therefore the stateful scaling mode is usually recommended. Also noticed that when you switch between different containers, the scaling mode changes by default. So unless you really know what you’re doing, I would think that the default mode is best.
- Configure additional settings (different options will show up depending on what programming language/ container you’ve selected. This might look like: Auto Clustering, Disk Limit, Restart Delay, High Availability, Public IPv4/IPv6
- High Availability: due to DNS Round Robin load balancing across multiple data centers; configures 2 application clusters with the same content at different data centers so in case 1 data center goes offline, all incoming requests will be redirected to another region; binds multiple IPs to a single domain name
- Additional buttons for advanced configuration: variables, links, volumes, ports, command/entry point management
4. Reviewing and Confirming Environment Creation
After the configurations are done, you can review allocated resources and estimated costs for the environment you want to create. Reserved and Dynamic (or scaling limit) cloudlets are available for review.
As I begin to understand the environment wizard, I really begin to appreciate just how slick it is! I love that it color coordinates the reserved cloudlets based on the container they’re coming from. That was something I missed during my first glance.
You can also change the estimated cost from hourly to daily and monthly to get a estimated cost. So even if you hit your ceiling, you know exactly what to budget.
Final piece: create a subdomain name for your new environment and click ‘create’. Supposedly you can point and map Top Level Domains to the environment, but I’ll save that for another post once I figure it out. :)