Get our monthly newsletter for the latest business updates

Kubernetes and 3 reasons why corebapp.com choose it

Kubernetes and 3 reasons why corebapp.com choose it

Kubernetes (k8s/kube) is an open-source system meant to help manage containers in a distributed environment. All important tasks should be achieved with it - from app life-cycle, service health, and world-renowned auto-scaling.

The creator of this sublime software engineering was of course, Google. According to credible sources, Alphabet was running all its services (Mail, Search, Maps, etc.) since 2006 on containers. As a result, they ended up building two different, in-house, container-management systems with Borg and Omega before the rise of Kubernetes.

Why did we choose Kubernetes instead of Docker Swarm? After all, a startup should head towards safest, easiest way to validate an idea and launch the product. To gain traction. To get beta prospects. To get first results in... .But you also need to look at where you need to be in 3-5 years. But you also need to take into account the amount of time and work you have at your disposal. Eric Ries did a much better job at explaining the concept that we've embarked. So, let's get into it.

  1. Kubernetes helps with our application-oriented infrastructure Besides higher levels of utilization, containerization transforms the data center into an application-oriented infrastructure by encapsulating the application environment making life easier for our dear Devs & DevOps. Improvement of application deployment and introspection was made by the early shift towards the management of application rather than machines via management APIs. Moreover, to this subject, Docker container image format hardens this abstraction by eliminating some implicit OS dependencies or user input to share image data between containers. If we see containers as the ‘unit of management’ we have to think of resource limits, metadata for propagation, logging and monitoring, and auto-healing capabilities. This approach proved to have multiple benefits like relieving Devs and DevOps from computing specifications, ease of scalability for new hardware and OS upgrades and application-related telemetry (CPU, memory, disk).Continuous Deployment Strategies
  2. Capacity Planning and Cost Forecasting Because costs are pivotal to our survival in this early stage, one of the most important evaluation criteria in choosing a container-management system was the capability of real-time resource monitoring with the capability of assigning a near-real-time cost to it. Kubernetes does a good job in managing and reporting used/available clusters resources, however, we needed a solution that gave us the overview of our capacity maximums vs cost. After some research and questions among our DevOps friends, we decided to give it a try with Kubernetes Opex Analytics. The tool is licensed under Apache 2.0 and seems to have a qualitative, yet young, standing community. We are happy to support this project, even if it’s a small contribution at this stage. We’ll dedicate a follow-up article for it.
  3. Auto-scaling complexity In an application-oriented infrastructure, scaling is key to performance towards your users. According to our initial tests Kubernetes manages to lead this category as well – not necessarily in terms of speed. K8s native horizontal scaling logic is of course, simple in essence: it’s built on a continuous sensor (see it as a permanent, configurable heartbeat) against a certain threshold. The algorithm complexity however, is a different discussion. Our advice towards people just starting up with Kubernetes is targeted in regards to auto-scaling setup: although simple in concept, it proves to be complex in execution and practice (which is a good thing, since we are control freaks). Nevertheless, before starting to dig into K8s auto-scaling, a best practice advice would be to inform upfront about to the following: (a) kubectl command line is installed (kubectl CLI)(b) configure the k8s aggregator level (c) auto-scaling based on custom metrics (other than default CPU usage) (d)Prometheus Monitoring Tool (e) TLS encryption, using a reverse proxy (f) instrument everything, to the best of your knowledge and capabilities (g) build and test scale down rules during CI/CD.
  4. Continuous Deployment Strategies Application delivery is yet another praised reason that convinced us to adopt Kubernetes for our infrastructure. YAML for K8S gives you awesome advantages like convenience and flexibility while maintenance becomes a simple task (if you add it to source control). We intend to play a lot with maps and lists (or combinations of maps and lists), in order to achieve complex things with it.Speed is of the essence when it comes to app deployment in order to reduce our time-to-market, allow our customers to experience the newest features as fast as possible and obtain the rawest possible feedback. We can look into the vast variety of application deployment techniques, but we strongly believe that this subject is already widely covered by most of the K8s community.

However, we do think that we should point out a few important criteria that you need to take into consideration for your success:

  • choose the right app deployment technique as is crucial to your execution, take your time
  • do weight your impact over app and user experience and try assigning a score to each test
  • do weight your impact over app and user experience and try assigning a score to each test
  • although complex strategies can bring more control, make sure the user test is close to the real app experience
  • some strategies can prove to be costly – double-check it fits your needs

In our journey towards offering the next-gen no code software platform, we have proudly joined the Kubernetes family and we hope we will overcome the burden of complexity ASAP. We have fears about K8s security – we’ll do our best to compensate with our own logic. We like the fact that there’s an abundance of open-source tools (both young or heavily tested) for any task that K8s makes hard. We like the fact that free information is available to everyone.

Get our monthly newsletter for the latest business updates