Founded in 2015, Prefapp was born from a team of developers and DevOps specialists, which originated from their work as system programmers. They saw a gap in the market regarding cloud functionalities and this led to the creation of their solution, which adapted the infrastructure to each client and improved delivery times through containerization and task automation.
Prefapp’s tech & tool stack
Prefapp employs a diverse array of technologies in its deployment infrastructure. They use cloud services such as AWS, Azure, Digital Ocean, Google Cloud, Azure Pipelines, and GitLab for development workflows and CI/CD. Their containerization and orchestration strategies involve Docker for image creation and management, along with Docker-compose and Kubernetes for orchestrating deployments, including automation with Helm. In terms of automation and monitoring, Prefapp utilizes Chef, Ansible, Jenkins, and Terraform for system automation.
To better serve their client’s needs, Prefapp sought to reduce the complexity of creating and managing cloud infrastructure, whilst simplifying the management of cloud-native applications, as the current platforms and technologies leveraged did not meet their requirements.
To enhance their service offerings and address the evolving demands of their clients, they looked for an approach that was pivotal in ensuring that their clients could benefit from more agile and efficient cloud solutions, thereby optimizing both development and operational workflows.
Recognizing the need for a robust and scalable solution, Prefapp identified the necessity of a comprehensive framework. To this end, they sought the collaboration of Napptive to create a framework and platform that would significantly improve the development processes, facilitating faster and more reliable software releases. This was particularly important in an environment where rapid deployment and frequent updates are essential for their clients to remain competitive.
Napptive opted for a tiered and technologically diverse solution in their approach. Leveraging technologies such as the Napptive Playground, KubeVela, and OAM, the solution allowed for a highly modular and scalable architecture, ensuring seamless portability across diverse cloud providers. This was crucial as it meant that applications could be transferred between environments without the need for reconfiguration or alteration of their underlying specifications.
Key elements of the solution included:
- Framework Development. Using Napptive Playground and KubeVela, Napptive established a framework for more efficient development, deployment, and management of applications.
- Application Modularity. OAM was used to adopt a modular design for applications, enabling separate development, testing, and scaling of individual components.
- Cloud Portability. The solution ensured that applications could be moved between cloud providers without major adjustments, providing flexibility for clients.
- Simplified Kubernetes Deployments. Integrating Napptive Playground and KubeVela streamlined the deployment process in Kubernetes environments.
- Cloud-Native Technology Integration. The solution incorporated technologies like FluxCD for GitOps, improving automation in continuous integration and deployment.
- Infrastructure as Code (IaC) Integration. Napptive used KubeVela with Terraform, allowing detailed management of software and infrastructure components and making development processes more efficient.
Overall, Napptive’s comprehensive solution marked a significant advancement in cloud application management, offering a blend of modularity, portability, and integration that catered to the evolving needs of modern cloud computing.
The project has yielded enhancements in the development and production deployment processes of applications for Prefapp and continues to aid them in creating necessary software resources.
The use of the Napptive Playground and KubeVela was adopted, as it greatly simplified the deployment of applications in a Kubernetes environment since harnessing the full potential of Kubernetes requires significant learning. The chosen technologies empower developers to leverage the benefits of a complex environment like Kubernetes without needing in-depth interaction at a low level.
The Open Application Model (OAM), an extensible language for multi-service application specifications, has allowed for a modular and extendable description of application components, enabling portability across different cloud providers without the need to change their specifications.
The project also explored the integration of these solutions with other cloud-native technologies. It researched integration capabilities with Backstage, a tool for creating customized development portals, allowing the integration of OAM applications within its control panel. It also explored the potential for GitOps use cases using the proposed technologies.
KubeVela’s integration with FluxCD was used for monitoring and reconciling information in this context. Additionally, the project delved into Infrastructure as Code (IaC) use cases, integrating KubeVela with Terraform. This approach allows applications to specify not only software elements but also infrastructure components (object storage, managed databases, key services, etc.) necessary for their proper functioning.
Napptive plans to explore further improvements, including cost reduction through infrastructure sharing, agile creation of development and testing environments, and integration of monitoring systems for better operational insights and error debugging.