Apache Kafka is an open-source stream processing platform developed by the Apache Software Foundation written in Scala and Java. The Kafka event streaming platform is used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
N/A
Microsoft IIS
Score 8.0 out of 10
N/A
Microsoft IIS is an application server and infrastructure.
Director, eCommerce Analytics and Digital Marketing
Chose Microsoft IIS
In terms of the configuration on a shared volume perspective, I think the Apache HTTP Server does a better job here. The Apache angle on this problem is more efficient from a man power perspective and ends up costing a little less in the long run over time. IIS tends to scale …
Apache Kafka is well-suited for most data-streaming use cases. Amazon Kinesis and Azure EventHubs, unless you have a specific use case where using those cloud PaAS for your data lakes, once set up well, Apache Kafka will take care of everything else in the background. Azure EventHubs, is good for cross-cloud use cases, and Amazon Kinesis - I have no real-world experience. But I believe it is the same.
Publishing applications or websites is easy with Microsoft IIS. You don't need external software or complicated tutorials involving command lines and editing configuration files. On other hand, sometimes the troubleshooter needs a high knowledge of Windows Server, Registry, and tools to debug the application. If you need to host non-Microsoft technology as PHP pages or have a low budget, I recommend IIS equivalent software as Apache.
Really easy to configure. I've used other message brokers such as RabbitMQ and compared to them, Kafka's configurations are very easy to understand and tweak.
Very scalable: easily configured to run on multiple nodes allowing for ease of parallelism (assuming your queues/topics don't have to be consumed in the exact same order the messages were delivered)
Not exactly a feature, but I trust Kafka will be around for at least another decade because active development has continued to be strong and there's a lot of financial backing from Confluent and LinkedIn, and probably many other companies who are using it (which, anecdotally, is many).
A big advantage that we use all the time is reviewing the logs that automatically get generated in IIS. It has helped us troubleshoot various problems in our applications over the years.
IIS integrates really well with Visual Studio and TFS. We are able to quickly deploy new applications and changes to applications when requested by the business.
IIS has proven that it is easy to configure and maintain with minimal effort.
Sometimes it becomes difficult to monitor our Kafka deployments. We've been able to overcome it largely using AWS MSK, a managed service for Apache Kafka, but a separate monitoring dashboard would have been great.
Simplify the process for local deployment of Kafka and provide a user interface to get visibility into the different topics and the messages being processed.
Learning curve around creation of broker and topics could be simplified
We have no intention to replace all applications running on top of the IIS platform. Not all applications support other platforms and not all support staff are skilled in Linux/Apache platform support. Whereas IIS may not be the best performing or most secure web platform available, for the aforementioned reasons, it is impossible not to continue use of this product.
Apache Kafka is highly recommended to develop loosely coupled, real-time processing applications. Also, Apache Kafka provides property based configuration. Producer, Consumer and broker contain their own separate property file
As I've mentioned earlier, Microsoft IIS is very simple and easy to use. The user interface is a little bit overloaded with a huge number of different options, but once you have a little clue of what you are doing and what you need - no issues at all.
ARR (application request routing) in Microsoft IIS Server enables the web-admins to increase the web app reliability and availability through the rule based routing and load balancing of HTTP requests which in turn provides highly available server. IIS 7.0 Manager also provides kernel as well as user mode caching for faster performance and in case if the server fails, the IIS server has good amount of details logged in its log files which help understand and debug the cause quickly. Load balancing facilitates IIS server to fight against availability issues.
In my experience, I have never had significant issues with IIS performance. Sometimes I've experienced issues with loading time, but it is mostly related to the web site code. However Amazon, Microsoft and Google providing free cloud services with very limited resources, and in that scenario, "heavy" websites on IIS could be the issue. In other situations - performance is good.
Support for Apache Kafka (if willing to pay) is available from Confluent that includes the same time that created Kafka at Linkedin so they know this software in and out. Moreover, Apache Kafka is well known and best practices documents and deployment scenarios are easily available for download. For example, from eBay, Linkedin, Uber, and NYTimes.
As mentioned earlier there is so much documentation or guides or stack overflow questions out there that someone will have faced the same or very similar scenario to what you are going through that you will almost certainly find a solution to what you are after.
I used other messaging/queue solutions that are a lot more basic than Confluent Kafka, as well as another solution that is no longer in the market called Xively, which was bought and "buried" by Google. In comparison, these solutions offer way fewer functionalities and respond to other needs.
Apache is java. Java is unnecessary complex. No developer wants to invest in learning all the hundreds of text based configuration files to get something done. Also, apache gives you the most evil and un-usable user interface possible. [Microsoft] IIS makes [life] after development easy, which is already complex enough to be bothered by something as mundane as exposing your work over the internet.
Microsoft IIS Server is scalable if the underlying server configuration is done correctly. Use x64 edition v/s 32bit and using 32bit mode application pools are some of the tweaks to be done to make the IIS server scalable. There are too many small configurations need to be carried out in order to make a highly scalable IIS server hence not giving full score in this area.
Positive: Get a quick and reliable pub/sub model implemented - data across components flows easily.
Positive: it's scalable so we can develop small and scale for real-world scenarios
Negative: it's easy to get into a confusing situation if you are not experienced yet or something strange has happened (rare, but it does). Troubleshooting such situations can take time and effort.