Docker is a platform that enables developers to build apps and run them in mini virtual machines called containers. As a result, developers can just focus on writing code without needing to set up or configure an environment for running that code. Docker also allows easy application sharing because its environment is abstracted away from the host machine. This allows the containerized application to run on any host machine Docker is installed on. Developers can extend the functionality of Docker's desktop application with extensions. But the goodness doesn't stop there. You can use feature flags to control smaller feature components of these extensions without rebuilding and updating them.
As a front-end developer, I spend most of my time writing code and developing front-end applications. Several months ago, I wondered what it would be like to run a tech startup. It turns out that I spend my spare time writing blog articles for such a company. Meet ConfigCat, a thriving tech startup that offers a cloud-hosted feature flagging solution to other tech companies.
Most importantly, I was curious to know how the company was created and the secret behind its success, as well as how they are able to handle high-end user demands while delivering a seamless feature flagging solution. To answer these questions, I decided to conduct an online interview with the core engineering team to satisfy my curiosity and to share what I found with you, the reader.
Ever since the dawn of feature releases, feature flags have become the de facto standard for managing and controlling features in software applications. Many software development methodologies these days such as agile, are heavily focused on releasing continuous updates and features. In addition, a few companies have based their entire business around serving clients a cloud-based feature flagging solution. But in limited bandwidth situations or when you need to optimize the performance of your client-facing applications making API requests may not be ideal. This can be handled by implementing a process called caching with the help of a popular tool called Redis.
The primary goal of many software companies today is to keep end users engaged with their software by releasing new features and updates. This is made possible via a mechanism known as feature flagging. As software applications grow and scale to the ever-increasing demand for new features, another problem arises. It is easy to lose track of where we use feature flags throughout our code. This results in forgetting to remove them when their features have been fully implemented and deployed. How do we fix this?
Feature flagging services have become a crucial part of software development. They simplify the release of new software features by removing the complexity of the feature flagging system and allowing developers to concentrate on their software. In this article, we'll examine the ways of adding a new feature to a React application and compare the use of feature flags by integrating two well-known feature flagging services, ConfigCat and LaunchDarkly, into the application.
Continuous Integration and Continuous Development/Deployment, most commonly abbreviated as CI/CD has changed and improved the way modern software is developed and shipped. When compared to traditional approaches which had a definite end, the CI/CD process is always ongoing with a strong emphasis on automation. As a result, new features and updates are steadily released to end users. This puts a huge overhead on developers and stakeholders to manage features efficiently. But, with the right feature management tool in place, this can be streamlined and simplified without much overhead, if any at all.
Clients with global customer bases often hesitate to use feature flags for specific use cases due to concerns regarding possible latency and slow response time. Feature flags let you launch new features and change your software configuration without (re)deploying code.
That's why fast response time is of great importance at ConfigCat. For context, ConfigCat is a developer-centric feature flag service with unlimited team size, awesome support, and a reasonable price tag.
To that end, ConfigCat provides data centers at numerous global locations to ensure high availability and fast response time all around the globe. These data centers are all equipped with multiple CDN nodes to guarantee proper redundancy and multiple layers of load balancing based on geolocation to achieve speed, throughput, reliability, and compliance. Thanks to a previous DDoS incident, ConfigCat also got the chance to test its infrastructure in real life and made preemptive security improvements.
Before feature flags, releasing a new feature would require taking your application offline to make changes, then redeploying it. In addition, if you find bugs after the release, you'll have to start the process from scratch. Despite being a traditional approach, this won't serve your users and your business well today. A feature flagging solution allows you to release and even roll back features without downtime with just a few clicks.
A/B testing answers the question: "Which of these versions will bring me better results, A or B?". It allows you to test two variations of a page to see which has a more positive impact. This could mean increased sign-ups for a landing page, more purchases on an e-commerce store, or even smoother user processes in an app. It all depends on what you want to improve. How does A/B testing work though?