Gadget Software deployed its software as a service (SaaS) platform on Oracle Cloud Infrastructure to reduce cost and to free Gadget Software's development team to focus on their core business.
Gadget Software is an AI-driven, document virtualization platform that transforms standard documents into friendly, easy to follow, mobile-first applications that customers can retrieve with QR codes and view on any device.
Gadget's software-as-a-service (SaaS) platform uses multi-tenant environments, databases, Kubernetes, and business-to-business (B2B) applications. Their customers are multiple other companies and users who upload their documents to Gadget Software's AI-driven platform.
Early in their assessment, Gadget Software realized that they needed the following features:
- Functionality to enable deployment of new services and features
- Speed and agility to deploy new development, test, and QA environments
- Reduction of administration overhead (specifically database)
- High availability and dynamic scaling especially for the Kubernetes environment
Oracle Cloud Infrastructure resolved these challenges with the following resources:
- Rapid deployment of new resources and tools
- Vast set of features and tools, such as Kubernetes, load balancers, security, and identity management
- Easily scaling and management of Oracle Cloud Infrastructure Container Engine for Kubernetes, minimum number of processes, and high availability
- Multiple database offerings on virtual machines (VMs), bare metal, fully managed Oracle Database Exadata Cloud Service, and Oracle MySQL Database Service
- Tools to manage and monitor production environments
- Many regions, availability domains, and fault domains (within availability domain) for high availability and disaster recovery
These features and tools have enabled Gadget Software to greatly reduce their operating and capital expenses and have enabled their development team to focus on their core business. Instead of writing management scripts for the relational database, the team is using the tool suite provided by Oracle Cloud Infrastructure. Gadget Software's development environment is deployed in two locations within Oracle Cloud Infrastructure. They had a great experience working with the Oracle team, who paid great attention to every requirement and implementation detail and addressed any design challenges.
Gadget Software use Oracle Cloud Infrastructure to deploy their algorithm for cluster establishment (ACE), their document management component, and the data tier.
ACE nodes use a collection of tools and software components to analyze documents, gather information about the documents themselves, look at different components of the documents, and to format and transform the documents for presentation on small-screen devices and for industrial users. This transformation produces a rich experience beyond a simple paper document.
ACE nodes are a Python-based tool with significant data analysis, artificial intelligence (AI), and machine learning (ML) logic. The ACE cluster node is a virtual machine running multiple containers. Some of the functions executed by these containers are:
- Document depot
- Electronic document management system (EDMS)
Gadget Software deploys the ACE cluster in a primary-standby environment. Document data is stored in a resilient and redundant database on the backend. The core engine also hosts a desktop environment and, by using Oracle Cloud Infrastructure Container Engine for Kubernetes, can easily scale up or down as new customers are brought in. They can create repositories for new customers, expand repositories for existing customers, and create new, fully-isolated or shared database environments for their customers.
The following diagram illustrates this reference architecture.
With their success using Oracle Cloud Infrastructure, Gadget Software is now planning to migrate their core content and core engine as well. In addition, Gadget Software plans to deploy a new Core Services application that will scale and deploy additional Oracle Cloud Infrastructure services:
- Load Balancers
- API Gateways
- File System Storage
- Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)
- Oracle MySQL Database Service in high availability mode
The following diagram illustrates these future plans:
The architecture has the following components:
An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).
All the resources in this architecture are deployed in a single region.
- Availability domains
Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains don’t share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain is unlikely to affect the other availability domains in the region.
All the resources in this architecture are deployed in a single availability domain.
- Fault domain
A fault domain is a grouping of hardware and infrastructure within an availability domain. Each availability domain has three fault domains with independent power and hardware. When you distribute resources across multiple fault domains, your applications can tolerate physical server failure, system maintenance, and power failures inside a fault domain.
- Virtual cloud network (VCN) and subnets
A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you complete control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.
- Security lists
For each subnet, you can create security rules that specify the source, destination, and type of traffic that must be allowed in and out of the subnet.
- Network address translation (NAT) gateway
A NAT gateway enables private resources in a VCN to access hosts on the internet, without exposing those resources to incoming internet connections.
- Internet gateway
The internet gateway allows traffic between the public subnets in a VCN and the public internet.
- API gateway
Oracle API Gateway service enables you to publish APIs with private endpoints that are accessible from within your network, and which you can expose to the public internet if required. The endpoints support API validation, request and response transformation, CORS, authentication and authorization, and request limiting.
- Load balancer
The Oracle Cloud Infrastructure Load Balancing service provides automated traffic distribution from a single entry point to multiple servers in the back end.
This architecture includes a public load balancer.
- Object storage
Object storage provides quick access to large amounts of structured and unstructured data of any content type, including database backups, analytic data, and rich content such as images and videos. You can safely and securely store and then retrieve data directly from the internet or from within the cloud platform. You can seamlessly scale storage without experiencing any degradation in performance or service reliability. Use standard storage for "hot" storage that you need to access quickly, immediately, and frequently. Use archive storage for "cold" storage that you retain for long periods of time and seldom or rarely access.
- File storage
The Oracle Cloud Infrastructure File Storage service provides a durable, scalable, secure, enterprise-grade network file system. You can connect to a File Storage service file system from any bare metal, virtual machine, or container instance in a VCN. You can also access a file system from outside the VCN by using Oracle Cloud Infrastructure FastConnect and IPSec VPN.
- Block volume
With block storage volumes, you can create, attach, connect, and move storage volumes, and change volume performance to meet your storage, performance, and application requirements. After you attach and connect a volume to an instance, you can use the volume like a regular hard drive. You can also disconnect a volume and attach it to another instance without losing data.
- Container Engine for Kubernetes
Oracle Cloud Infrastructure Container Engine for Kubernetes is a fully managed, scalable, and highly available service that you can use to deploy your containerized applications to the cloud. You specify the compute resources that your applications require, and Container Engine for Kubernetes provisions them on Oracle Cloud Infrastructure in an existing tenancy. Container Engine for Kubernetes uses Kubernetes to automate the deployment, scaling, and management of containerized applications across clusters of hosts.
- Oracle MySQL Database Service
Oracle MySQL Database Service is a fully managed Oracle Cloud Infrastructure (OCI) database service that lets developers quickly develop and deploy secure, cloud native applications. Optimized for and exclusively available in OCI, Oracle MySQL Database Service is 100% built, managed, and supported by the OCI and MySQL engineering teams.
Oracle MySQL Database Service has an integrated, high-performance analytics engine (HeatWave) to run sophisticated real-time analytics directly against an operational MySQL database.
Learn more about the features of this architecture.