Kubernetes and Cloud-Native workloads
Many applications used today are cloud-based, which is to say that rather than on an employee workstation the software runs on “a server in the cloud”. These applications need to run somewhere but also need to be monitored, updated, upgraded, scaled and sometimes a staging and acceptance environment needs to exist.
To make the development and deployment of such software people often look to Docker containers. This system makes it easy to run the same software everywhere, and move it around. Kubernetes is the de-facto standard for running these container on the cloud.
What application can you run on Kubernetes (and in Docker)
Any cloud-based software you develop or have developed. Typically, languages used are Python, node.js, Java, Ruby, PHP, Golang but also C++, .NET (core), and many others are supported.
Tools that Leafcloud offers
Leafcloud offers Kubernetes as a Service (Leafcloud Kubernetes Service) fully integrated with Openstack for automatically provisioning Volumes and Loadbalancers. Leafcloud also offers solutions for easily running various databases. Tools that are typically used in concert with these applications include:
- Helm Charts
- Github, Gitlab and other Git repositories
- Continuous integration pipelines
- Databases such as Postgres, MySQL, MariaDB, MongoDB ,
- Message queue’s such as RabbitMQ, Kafka, Redis etc.
Running these applications with Kubernetes on Leafcloud comes with several benefits:
- Workloads can be easily scaled to meet demand, or automatically
- Setting up staging and development environments is easy
Machine Learning and AI
From image recognition, to speech synthesis and from disease detection to autonomous driving, the applications of AI and Machine Learning are endless. Training machine learning models and the running of the models easily surpasses the capacity and manageability of what can be done under a desk. But to train these models and to run them a large amount of computing resources is needed, often also costing a significant amount of money.
Leafcloud solves this by offering scalable, pay-per-hour CPU and GPU compute performance on a platform that is very flexible and allows almost any model to be trained or run.
Technologies often used
There are many different models and frameworks that can be used. But some of the most popular are:
Through partner UbiOps, Leafcloud also offers fully managed pipelines that takes the pain out of the operational aspect of running your models in the cloud.
Companies are increasingly data driven, meaning they need to get insights from many different sources. As the volume of data increases managing the data flows becomes harder and more important. Digging through massive data sets to uncover hidden patterns requires an enormous amount of throughput. Leafcloud provides that in a cost-effective way.
To manage their data companies often look to Open-Source and proprietary applications to load, transform, process and store the data. Popular tools include processing platforms such as:
And storage solutions such as:
- Apache Spark
- Apache Flink
- Apache Hadoop
- Apache Storm
- HPCC Open-source Data Lake
- Object storage (S3-compatible)
Almost every organization uses web applications today. From a public interactive website, to the core of the product that they sell, often an important part of a business goes through web applications. That means running test suites to find bugs and other issues, building and compiling applications, and deploying them fully automatically.
These applications are often deployed on cloud servers. Whether they are normal VM’s, containers or serverless technologies. Often, these web applications are built specifically for the company in code with application frameworks using technologies such as:
- PHP; with Laravel, OctoberCMS
- Single page web applications: React, Vue.js, Angular, Svelte etc.
- Static sites hosted with Nginx or Apache2
Though partners Leafcloud also offers Forest. A streamlined pipeline for deploying these web applications straight from Git to Leafcloud.
Continuous Integration and Delivery (CI/CD)
Continuous Integration and continuous deployment (CI/DC) tools are essential to get your products to market faster. Once your organization has a team involved in the creation of any kind of software, collaboration and code quality assurance can cause friction and delays, unless this part of the software development process is automated.
Continuous Integration is typically a process or running tests that is automatically triggered when software is pushed to a repository. Continuous delivery is the step that comes after that. If all the tests have passed software can be automatically deployed to a staging (or even production) environments; getting software updates and improvements to your customers faster.
Technologies often used to create these CI/CD pipelines include:
- Gitlab CI/CD
High Performance Compute
High Performance Computing (HPC) helps solve complex problems involving millions of variables, or calculations. Some applications require these complex calculations to make simulations. For example, in the fields of fluid dynamics, finite element methods, wave simulations and solutions. The problem these companies face is a finite number of existing resources and limited availability.
To manage this, specialised batch processing workload managers are used to schedule the workloads across many machines. There are several open-source scheduling software options you can use. Including:
- LSF Session Scheduler
Image, movie transcoding, and OCR
Sometimes you find yourself with large amounts of audio and/or video files that need to be converted to a different format for storage, sharing or processing. Another, somewhat related, task that customers have is optical character recognition. Often from documents that are scanned (from archives) or pictured (think receipts and images).
Resizing images and movies is hugely CPU intensive. While most cloud providers would rather see you go, we embrace and re-use the energy consumed.
There are lots of tools that can help with Image, movie transcoding, and OCR on Leafcloud. For example: