AgriTech is transforming farming and food systems at a pace faster than imagined before, and, at CropIn, we are in the habit of leading innovation. We continue to explore new, cutting-edge technologies and digitally empower diverse actors in the agroecosystem to achieve their respective objectives. Considering that CropIn is empowering clients in over 70 countries to maximise their per-acre value, it is critical for us to provide services that are consistent across geographies and deliver an excellent user experience. To achieve this, we recently adopted containerisation and a microservices-based approach to design our applications. So what does that mean?
Container technology, a term that was borrowed from the shipping industry for obvious reasons, has revolutionised the way applications are packaged to enable faster app deployment. It also made the servers more efficient than ever before and guaranteed that the software runs reliably, regardless of the operating system (OS). It eliminated several problems that systems faced earlier, such as the high amount of CPU overhead and resources required to build and run a virtual machine (VM), the limit on the number of applications that can be run efficiently, the incompatibility arising due to OS differences, storage requirements, and the time taken to boot the OS, among several others. Containerisation provided an effective way to handle these problems.
We might have come across at least images of cargo ships carrying uniformly-sized containers that are convenient for cranes to load and unload them anywhere in the world. Much the same way, in the digital space, a container typically includes not only the software but all its other dependencies, such as the configuration files, and binaries and libraries (bins/libs). Containerisation also reduces the size of a single unit considerably, bringing it down from several gigabytes that VMs occupy to only about a few tens of megabytes. In other words, a single container unit with all the runtime components is abstracted from the host OS, thus making it portable and ready to run on any platform or cloud.
Containerisation also makes it possible to break down a full-size (monolith) application to smaller modules referred to as microservices, which communicate with each other through application programming interfaces or APIs. The modularity of the microservices-approach also makes it convenient to develop, deploy, and scale them independently and make isolated changes to only some parts of the application instead of rebuilding the whole. As a result, developers can achieve a shorter turnaround time and improved process efficiency. The other benefit of microservices is that they are lightweight, which makes them available and ready to go almost instantly. Furthermore, microservices are platform and device agnostic, which translates into apps that deliver consistent user experience irrespective of the underlying infrastructure.
Container technologies, such as Docker, CoreOS rkt, LXC, Mesos, and several others, enable a novel approach for developers to code and deploy application software. However, building complex applications, which comprise several components packaged into innumerable containers, require container orchestration platforms or cluster managers to help make sense of these individual units.
One such container-centric management software is Kubernetes, a software project that was first conceived by engineers at Google. Also called by names such as K8s or Kube, it automates diverse manual processes associated with deploying, managing, and scaling containerised applications. Given that Kubernetes is open source, it comes with very few restrictions on how it can be used, giving organisations the liberty to utilise it unhindered and almost anywhere, be it on-premise or public, private, or hybrid clouds.
Kubernetes is regarded as the ideal platform for hosting cloud-native applications, including CropIn’s, for the simple reason that it facilitates accelerated and elastic scaling, monitoring of resources, easier roll-outs and roll-backs, performing health-checks, and self-healing with functions such as auto-placement, auto-restart, auto-replication, auto-scaling. It is a production-ready, enterprise-grade platform that can be utilised for any architecture deployment.
It works by placing the different containers into groups, and naming them as logical units, and distributing the load amongst them. This now allows for environment-agnostic portability, easy and efficient scaling, and flexible growth.
Some of the tasks that Kubernetes allows an organisation to perform are:
Presently, the microservice architecture is the go-to choice for software development owing to its benefits of rapid and frequent delivery of complex applications, and that too in a reliable manner. While several hyper-growth organisations such as Amazon, Netflix, Uber, SoundCloud, and eBay have adopted microservices, this approach is still in its nascent stages in the agritech industry, and CropIn is one of the early adopters.
Moving our flagship platform to Kubernetes has enabled us to stay cloud-native and also run workloads effectively. It is now possible for us to:
With microservices and containers, instead of a large chunk of application, we will now have smaller functional modules that will work together to achieve the same results more effectively. This approach helps us reach a scale higher than what was possible previously in the agritech space. Furthermore, an automated CI/CD (Continuous Integration/Continuous Deployment) pipeline will allow us to go from an idea to the production of all our exciting features at a much faster pace with and reduce downtimes to make sure all the services we offer are always available.
The use of microservices ensures that our end-users will get to benefit immensely from an agritech solution that not only caters to their objectives but is also easy to install on any OS and upgraded with more new features at frequent intervals. Our applications are primed to scale the requirements of our rapidly-growing clientele, making sure that the end-users have everything they require, at the right moment, to run their business operations smoothly.
AgriTech is transforming farming and food systems at a pace faster than imagined before and, at CropIn, we are in the habit of leading innovation. Considering that CropIn is empowering clients in over 70 countries to maximise their per-acre value using our suite of products, it is critical for us to provide services that are consistent across geographies and deliver the finest user experience.
During the coming weeks, some of our advanced apps transition from a monolith architecture to one with microservices powered by Kubernetes. How will this affect CropIn’s offerings?
Not just this but there is more happening at CropIn. Stay tuned for updates!