My favourite Hobby

As now when it comes to my favourite hobby, I can say many things like Singing, doing musically, roaming out with my friends, playing cricket, etc.. I would say that Hobbies are the best stress…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Which technology is best for your product?

The choice of technologies for your emerging company is not an easy one and may be overwhelming. You must be willing to dive deep into the intricacy of software development or computer programmers’ specific philosophy to understand well the complexities around different languages. Should you pick PHP over Java or perhaps move to a new wave of JavaScript development? These decisions are fundamental for a startup and might affect your business in ways you had never imagined.

In a nightmare scenario, you can be left behind with an application that just cannot handle the intake of your new customers or with a technology for which you won’t be able to find suitable engineers. However, the good news is that all companies big and small deal with these issues every day and we can learn a lot from tech giants, unicorns and successful startups, which built their strength on quality software. Let’s name just a few and take a look at the technological decisions they made and the consequences for their business.

The film-streaming giant has been running a Java-based microservice ecosystem backed by an infrastructure of both open source and in-house made tools. While avoiding the adoption technologies until they’re well-established, the engineers at Netflix have gone all the way and run their services using Spring Boot, a relatively new module of Spring Framework, an open source set of tools for the Java language. We have been using Spring Boot at XSolve too, finding it to be a perfect solution to quickly get applications up and running.

Netflix engineers are authors of Netflix OSS which is a set of frameworks and libraries that Netflix created to solve some interesting distributed-systems problems at scale. The solution enables you to quickly introduce into the application patterns like service discovery, load balancing or fault-tolerance. Furthermore, their work is available for everyone and developers are able to take a look at the code thanks to the open source license. Netflix is now able to handle 550 billion events per day, with as much as 8.5 million events and 21 GB per second during peak times.

After an infamous breakdown in 2010, when Twitter’s unscalable monolithic design could not handle the heat of the World Cup final with over 2000 tweets per second, the company had to develop a strategy for improvement. Instead of adding new servers to their infrastructure, they had their engineers hunt down performance issues in their application written in Ruby and started breaking the system down into Java-based microservices.

Using the scaling power of microservices and JVM tools, the company broke a new record of over 140k tweets per second without any further glitches.

In contrast to Twitter, Facebook was not willing to rewrite all of its PHP code to another programming language when their number of users doubled in 2009. Anticipating that the next version of PHP would boost the application’s performance but not knowing the precise release date of PHP7, the action they took was radical.

Instead of rewriting the application, they invented HipHop Virtual Machine, a programming environment which translated PHP code into C++. Since PHP7 was eventually released in 2017 — and we adopted it at XSolve as well — its performance has been comparable to the one served by Facebook’s HHVM.

The world’s best-known e-commerce has been a faithful user of Java technologies since 2000’s when it converted from Perl and static HTML pages. Their Java microservices (among others, written in node.js), are based on Spring Boot, just as it is in case of Netflix. The example eBay demonstrates an interesting point. The performance of Java compared with C++ is not much of an issue in case of JVM server running for a long time with JIT (Just In Time), which takes care of continuous optimization of the executing code.

This is an extremely interesting case. In 2013 PayPal adopted Node.js, a relatively new technology in which server code is being written in JavaScript, to replace their outdated C++/XSL and Java/JSP web applications. The initial reason for this choice was quite a unique one: to unify the programming languages on the front- and backend and improve developers’ communication.

However, this experiment ended up in two applications with identical functionality being set up, one written using Java technologies, the other fully based on JavaScript stack. As it turned out, in this setting Node.js was performing twice as good as JVM, despite operating in a single-threaded environment. Following that experiment, PayPal has been moving towards Node.js with full speed ever since.

Photo: Sandeepnewstyle

The trendy alternative to traditional taxis used to operate on a single monolithic application written in Python and Node.js. However, as Uber started to gain new customers in mass numbers, the company started to split their application into scalable microservices. This time JVM technologies were used: Java and Go — a recently created language, which natively supports concurrency.

Anecdotal evidence suggests that 90 percent of Fortune 500 companies use Java to create their software. Free documentation, great tools for profiling monitoring, the huge amount of various open source libraries, and portability (Java runs on almost anything), are just a few advantages of choosing Java.

Photo: Kārlis Dambrāns

If you would like to create a simple app, with rapid development, probably a good choice would be the PHP language. Also, using a PHP app would be cheaper than a JVM app as you don’t have to run Java Virtual Machine for each instance, which is usually more expensive than single Web Server allowing developers to cover a lot of various apps.

As the examples above companies show, it was the unscalable monolithic design that the companies stumbled upon rather than the choice between PHP and Java, or other backend technologies. Breaking the system down into separate microservices has one more significant advantage — you can combine and add them irrespective of the language they were written in, which frees you from making a choice once and for all.

— Image credits:

Add a comment

Related posts:

The Titanic Curse Lives On

Many would remember it as the movie, but it was real and thousands of lives perished on the Titanic once hailed as unsinkable. It was in 1985 when the wreckage was discovered by Robert Ballard and…

Master Thy Thoughts

When I woke up this morning, I was pissed. I do not know why I was. I didn’t sleep well and had a terrible headache. Usually when this happens it affects my entire day. My very outlook on life…

7 Devotions on Hope for Advent Season

7 Devotions on Hope for Advent Season. Here are a set of short devotions on the theme of Hope. You can also listen to them at www.anchor.fm/tony-franklin..