Backend-as-A-Service: What It Is, How It Works, and Where It’s Going

backend-as-a-service

As demand increases for enterprise apps, so does the parallel need for rapid development.

Companies are continually pushing their developers to produce apps and other enterprise software faster without sacrificing quality.

BaaS, or “Backend as a Service”, is one tool software developers use to meet those demands.

BaaS Basics

BaaS, also known as mBaaS (mobile Backend as a service) is a middleware approach in which APIs (unified application interface) and SDKs (software developer kits) are used to connect applications to cloud-based backend services rather than building a backend on a client’s own on-site servers.

Simply put: SDKs and APIs connect the frontend to the backend via the cloud.

BaaS takes an “API First” approach. APIs are built first, then serve as the base for building different platforms (like Android or iOS).

Because the backend is provided in the cloud, the client doesn’t need to purchase, build, and maintain their own hardware.

BaaS also allows for management and in-app features like:

  • User management
  • Push notifications
  • Social media integration
  • Messaging/Chat
  • Location services

Benefits of BaaS

Speed

Setting up BaaS is both quicker and easier than building out a traditional backend.

Many tedious or low value tasks involved in backend development are common to most apps.

BaaS seeks to automate most of these. It can be set up in a matter of hours rather than spending weeks writing a regular backend.

Freed of the backend burden, developers can focus on frontend quality. They create the MVP faster, so companies are quicker to realize ROI.

The overall development process is typically half the length of a traditional development approach. In some cases, it’s a mere 25% of the usual time requirement.

Cost

Labor costs for BaaS projects are noticeably lower.

Some of this can be attributed to the fact that a shorter development timeline means fewer labor hours, but it isn’t the only relevant factor.

Developers also need a smaller team for projects using BaaS.

The learning curve for the technology is gentle, too, so less experienced team members can set it up while senior developers handle more complex components.

Those higher-paid developers don’t waste their time on repetitive, low-value tasks.

Hardware is another point of savings. Companies don’t need to build new servers; their app data is stored securely by the BaaS provider and accessed through the cloud.

Besides the lower initial investment, companies can scale their app as it grows without adding more hardware.

All they have to do is upgrade their subscription plan.

When everything is considered, the cost of a software development project can be reduced up to 80% using a BaaS.

BaaS to the Future

BaaS is relatively new but growing in popularity with developers as it matures.

BaaS allows easy access to cloud storage, a broad suite of developer tools, lower upfront costs, and the potential for rapid development.

All this makes BaaS a solid option for building reliable, economical enterprise apps on a tight schedule.

There have been some high-profile failures in the past that damaged public trust. Parse is probably the most recognizable.

It supported over 60,000 apps when Facebook bought it in 2013, but by 2016 Facebook announced it was open sourcing Parse in preparation for a shutdown.

Parse hadn’t been able to establish a reliable revenue stream to compensate for the features it offered.

Even before Parse shut down, though, other options embraced profitable business models that allow them to sustain themselves while still saving clients money over traditional backend solutions.

Today’s providers like Firebase and Appcelerator are more reliable than the early options.

With the fear of platform collapse eased, consumer trust in BaaS has returned in a big way.

The global market for BaaS is projected to reach $31.6 billion by 2020. Major companies like Mitsubishi Electric and Avis Budget Group use BaaS for their mobile apps.

Look for increased growth as the general focus on mobile technologies intensifies.

 

Concepta is proud to use BaaS technologies like Appcelerator to cut development timelines and create stunning apps on a surprisingly reasonable budget. To find out more, schedule your free consultation today!

Request a Consultation

Why is Node.js Becoming the Top Programming Language in Enterprise?

nodejs-review

Digital transformation requires fast development and scalable solutions.

That’s why Node.js is gaining so much space as a development language.

This open source platform for developing server-side and networking applications runs on OS X, Microsoft Windows, and Linux.

It’s very suitable for scaling, but that’s not the only reason for its growing popularity.

Node.js is written in JavaScript, meaning programmers can set up an entire site on a unified JavaScript stack.

Why Backend Matters

Backend technology is one of the most important decisions a developer will make when planning software.

It lays the groundwork for the entire development process, dictating how fast a team can get the software to market and the overall cost involved.

The impact on price stretches into the lifetime of the software, too, as a poorly designed backend leads to higher maintenance costs down the road.

Backend architecture determines the overall performance of software after launch.

Speed, reliability, and scalability are all affected by the backend technology chosen during development.

Programming language is especially important.

Using an inappropriate scripting language results in a site plagued by errors, lag, and frequent site crashes.

What Node.js Brings to the Digital Revolution

Node.js has a lot to offer as a backend solution.

  • Smoother development: Full-stack JavaScript is a force multiplier when it comes to efficiency. The developer can do the front- and backend with the same team, leading to better internal consistency and architecture.
  • Better performance: Node.js powers agile real-time applications. It’s incredibly fast, even faster than one would expect from a JavaScript-based tool. That speed can be attributed to Google’s Chrome V8 virtual machine, otherwise known as the fastest JavaScript engine to date. It compiles JavaScript directly into machine code readable by whatever hardware the software runs on. How fast is Node.js? It handles more HTTP requests per second than PHP and outperforms PHP by 17%.
  • Scalability: Node.js scales better than the average platform. It uses an event-driven, non-blocking I/O model, meaning it can still handle JavaScript requests while waiting on an I/O operation to complete. Node.js relies on a single-threaded model with event looping as opposed to PHP, which uses separate threads to handle each request. As a result fewer node servers can handle same amount of traffic as PHP.
  • Abundant resources: Node.js has the added advantage of a shared library of tools and modules called the Node Package Manager. The NPM holds a wide variety of robust, well-tested tools, from frameworks like Express to development utilities like browserfy. All told there are more than 350,000 free, reusable packages of code contained within the NPM, making it the largest package registry in the world. Since Node.js is open source the library is being continually expanded.
  • Freedom to innovate: Unlike Ruby on Rails, Node.js is highly unopinionated. It imposes very little set direction on developers. Everything is built as desired from the ground up, so developers are free to shape software to their exact needs.

Who’s Using Node.js?

40% of developers report that they use Node.js on a regular basis.

Right now it’s most commonly found in web applications, with enterprise applications just starting to trend.

Node.js is popular among start-ups, but it’s gaining traction among established companies such as:

  • Paypal
  • Netflix
  • Microsoft
  • Ebay
  • Uber

Parting thoughts

Companies undergoing digital transformation need fast, secure, real-time network applications.

Node.js can support them through their transformation and beyond.

Do you need up-to-the-minute updates from your team on the go? Let Concepta’s team of experts build a real-time application to take your team’s communication to the next level.

 
Request a Consultation

NoSQL vs SQL: Which is Right For Your Project? [INFOGRAPHIC]

nosql vs sql

As technology advances, the difference between NoSQL vs SQL databases can do are blurring. Developers flood tech forums with clever workarounds that let them stick to their favorite database, even when it doesn’t exactly fit.

This is a source of confusion for the c-suite seeking guidance on the best database for a specific project. No matter how hard the internet crowd argues that an experienced programmer can make any database work, there are very real structural differences between SQL and NoSQL.

Workarounds that disguise these differences result in unnecessary complexity, decreased performance, and higher development costs.

So how should a responsible leadership team choose? Start by brushing up on the benefits of both formats.

SQL: Orderly and Secure

SQL refers to relational database management systems (RDBMS) written purely in SQL. Data fields are organized into structured tables, and creators must clearly define the schema before adding data.

The rigid structure of a SQL database has some major advantages.

Advantages of SQL

Data Integrity

The format emphasizes data integrity by minimizing redundancy, normalizing data, maintaining referential integrity, and enforcing strict constraints on what data can be entered or altered.

Better Control

Using a SQL database provides better control of transactions compared to NoSQL databases.

Easier

A hyper-organized SQL database is also easier to query.

Handling large amounts of structured data

It’s suitable for projects with a large amount of structured data that needs to be regularly referenced and analyzed by non-engineers.

Anyone who knows how to structure simple SQL queries can pull information from the database (within the permissions imposed upon them by the administrator).

Community Support

SQL databases have been on the market for a long time.

There’s a large community of users, so support is easy to find.

Experts

With many skilled developers and database administrators available, upper management can afford to be choosy about who they contract with or hire to handle their SQL database.

Disadvantage of SQL

Cost

The biggest drawback to an SQL database is its price.

Hosting and licensing fees are generally higher than with NoSQL databases. Most companies offer bundle discounts, but costs rise when developers want to mix and match products to more precisely suit their needs.

The leading RDBMS, Oracle, changed its pricing structure in January so that hosting with Amazon Web Services or Azure is significantly more expensive.

However, open source options like PostgreSQL or MongoDB can keep the price within an acceptable range.

NoSQL: Fast and Flexible

The name “NoSQL” is a bit misleading. It means “not only SQL” rather than “no SQL”. In a NoSQL database, data is stored in documents that contain loosely related chunks of information.

Developers don’t need to create schema before adding information; data can be dumped into the database and organized once it’s there.

Advantages of NoSQL

A NoSQL database is useful when the data requirements of a project aren’t clear up front, especially if it’s difficult to estimate how much of the data will be structured versus unstructured.

Use of Unstructured Data

Document databases are perfect for large volumes of unstructured data.

Fast Development

Document databases are ideal for rapid development. Installation is quick and easy. Because there’s less setup involved before adding data, they allow for fast, iterative prototyping.

IDEs are Abundant

In their infancy there weren’t many NoSQL tools, but today developers have a wide choice of integrated development environments (IDEs) to examine their data and run queries.

Compatibility

NoSQL databases are compatible with most development frameworks and platforms which provides flexibility in building the stack.

Inexpensive

Plus, hosting is cheap on the production environment. Although a third party service is recommended afterwards, there are plenty of cost-effective cloud services to choose from.

Scalability

Scalability is a powerful benefit to NoSQL databases. They are designed to be distributed across servers, making them scalable on short notice with little impact on performance.

Accessibility

Data is accessible and very fast compared to most common RDBMS.

Disadvantages of NoSQL

Dip in Quality

Of course, flexibility and performance come with a reduction in accuracy.

Not ACID Compliant

The majority of NoSQL databases are not ACID compliant. Many rely instead on the principle of eventual consistency, trusting that although data may be altered on one server it will become consistent across servers during the next update.

Number of Experts

Finding NoSQL experts may be tricky. There is a growing community, but since it’s a newer concept than RDBMS there’s a smaller pool of trained developers and database administrators. Some supporters have argued that the point of NoSQL is to do away with the need for a DBA, though in practice that isn’t yet feasible.

Making the Choice

As a general guideline, NoSQL databases shine when dealing with real-time big data, content management, and IoT applications. SQL databases take the lead in situations where complex queries need to be done often, as in online transaction processing and banking.

That said, asking whether a RDBMS or a NoSQL database is better without considering the project is futile. It’s about as helpful as asking whether to use a fork or a spoon before the meal has been ordered. Each project has unique needs. While SQL databases tend to be the default choice for developers, there’s no objectively “better” overall database philosophy.

To make the final decision, assess the scope of the project at hand.

Are the data requirements clear up front?

Developers can’t create schemas without direction. When there isn’t enough certainty about what type or how much data will be incoming, a NoSQL database may be the better option.

 How much JSON data will you be handling as a percentage of the total?

Few projects will have entirely one type of data. If unstructured data is a relatively small portion of the whole and other considerations make an SQL database attractive, the SQL database will be able to handle it.

What’s more important, data integrity or performance?

When data integrity is the overriding priority, use SQL. If not, NoSQL generally has a noticeable edge in performance.

Will you need to cache and share data often?

This is a particular strength of NoSQL databases.

Is this a global or a local app? How fast will you need to scale?

Scaling a NoSQL database is as easy as adding more servers. An RDBMS scales up, not out, making for a slower process.

Are there relevant legal or trade restrictions?

Projects that handle a lot of protected data, such as HIPAA information, need to prioritize security and data integrity.

Concepta NoSQL vs SQL infographic

Once all the information has been gathered, one database style should stand out as the better option. If that doesn’t seem to be the case, take the problem to the developer. There’s a variety of both SQL and NoSQL databases; one may have a set of traits that solves the apparent dilemma. For instance, if a NoSQL database seems like a good fit but consistency is fairly important, the developer may recommend a database such as MongoDB which is strongly consistent (though not ACID compliant beyond the document level).

Still unsure? Concepta can help! Contact us for an assessment of the best technology for your project.

Request a Consultation

Choosing an App Development Platform: Firebase [REVIEW]

Firebase is a backend as a service mobile and web app development platform from Google. Although developers have the option of skipping server-side programming, Firebase’s powerful suite of cloud-based features can expand functionality using server side code.

BaaS

Backend as a Service platforms provide a subscription-based backend so developers don’t have to write one.

App development platform: Software that allows developers to create and deploy applications.

What problem does Firebase solve?

Firebase helps developers build dynamic, scalable mobile apps quickly. It negates most (if not all) of the hassle of creating and managing infrastructure.

Benefits of Firebase

  • Hosting
  • Realtime database
  • Authentication
  • Ad management
  • Analytics
  • App Indexing
  • Remote configuration variables for apps
  • Performance monitoring/Crash reporting
  • User management system
  • Cloud storage and functions
  • Test Lab for Android

Strengths

Users like Firebase for its huge feature set (currently 16 well tested features). Developers don’t have to pay for the complete package; they can pick and choose which features they want to use independently of each other. Besides the features listed above under benefits, Firebase offers push notifications, Google Analytics, dynamic links, invites, cloud messaging, AdMob, and Adwords.

Mobile apps are Firebase’s strong point. It’s cross-platform friendly and optimized for realtime apps. Firebase is also scalable; the number of users can grow very quickly without an appreciable affect on performance.

Firebase excels when it come to prototyping. Freed of the need to recreate a custom stack for each mobile app, developers can focus on building their front end and begin generating revenue up to four times faster than possible through non-BaaS methods. In addition, a mobile developer without backend experience could conceivably test a new idea without involving a full-time backend expert. (To be fair, that method would be much slower than traditional app development since one person would be doing all the work. The savings there would be financial.)

Speaking of financial matter, projects with slim budgets are a good fit for Firebase. The large up-front investment associated with backend development is broken into more manageable subscription payments. Shorter app development also leads to lower labor costs since the time of skilled programmers is one of the most significant costs of any development initiative.

Weaknesses

The biggest weakness of Firebase is that, while it’s great for prototyping and scales well, it only handles a certain level of complexity. Embedding third party services requires adding a server code. Users also need to to create their own API to integrate their app with Firebase. To build a truly robust application developers use cloud functions to create custom logic for different flows and to integrate with other third party services. This means that once an app grows past that certain level of complexity developers can find themselves doing much of the work Firebase was intended to avoid.

As a NoSQL database, Firebase is not the best solution for large amounts of structured data. It doesn’t easily support transactions and is not HIPAA compliant. There are limits on queries imposed by the streaming data structure.

With subscription services like Firebase, it’s important to remember that this leaves apps vulnerable to potential Firebase issues (company changes or closure, fluctuating prices, disruptions to uptime, etc). Closure isn’t a serious threat since Firebase is a Google project, but there have been notable periods of downtime in the recent past. Migrating to another service could be a significantly difficult experience, too.

Comparison

Kinvey: While Kinvey is easier to implement with a shorter learning curve than Firebase, it’s priced accordingly.

Couchbase: Couchbase is similar to Firebase. While it is open source, it lacks the bevy of features that attract users to Firebase.

Hoodie: Hoodie’s advantage is its offline support. It has a very small developer community, though, and few of Firebase’s trademark features.

Parse Server: Parse Server was popular, but after struggling with some intrinsic faults Facebook (who owned it) decided to shut it down earlier this year. It is still brought up as a comparable tool to Firebase, though it’s been shuttered.

Real-life application

NPR uses the analytics feature of Firebase to improve targeting and insights. Playbuzz employed a combination of Firebase features to increase campaign efficiency. TradeFix.io, a real time stock/option trading company, uses Firebase in its mobile app.

Conclusion

Within its area of focus, Firebase is enormously successful. Most criticisms of Firebase can be attributed to using it outside that area. For rapid prototyping and deployment, there are few tools that match Firebase for features now that Parse Server is out of the picture.

If you need highly experienced backend developers who know Firebase, share with us your challenges and we’ll help come up with the right solution tailored to fit your needs.

Request a Consultation

Choosing a Database: MongoDB Vs PostgreSQL [INFOGRAPHIC]

MongoDB Vs PostgreSQL

Ask a programmer whether you should use MongoDB vs PostgreSQL and you’re likely to open a can of worms. The core philosophies are very different, but loyal fans will argue that their favorite can be used for nearly every application. It is true that there’s a lot of functional overlap between the two databases. However, MongoDB and PostgreSQL have some specific differences that give them the edge in different areas.

MongoDB

MongoDB is a document database, meaning data is stored in cohesive documents that contain all the data about a particular topic. There doesn’t need to be a consistent relationship between the data. Because of this, MongoDB is an excellent choice for Big Data projects and social media applications dealing with large amounts of unstructured data (in short, anything that wouldn’t fit neatly into a table, like a blog post or a video). Use MongoDB for:

  • Storing large volumes of unstructured data
  • Fast, iterative development and prototyping
  • Scalability on short notice
  • Cheap to host, on production environment, third party service is recommended for hosting
  • Lightweight
  • High performance, data is accessible and very fast compared to most common RDBMS database
  • Easy installation
  • Easy to start development
  • Compatible with most of development frameworks and platforms
  • Many IDEs where you can see the data and run queries
  • Numerous hosting/cloud services
  • Large community
  • Good for solutions where you need to cache and share the data

PostgreSQL

PostgreSQL is an object-relational DBMS where data is stored in correlative tables. Although it’s a solid general use database, the focus on defining the relationships between data and enforcing standards makes it a popular choice for those who prioritize data integrity. Even MongoDB’s website credits PostgreSQL with being superior at “complex, multi-row transactions”. Use PostgreSQL for:

  • Applications that are highly sensitive to data loss (Banking, accounting, etc)
  • Enabling complex SQL queries
  • Prioritizing stability over scalability

MongoDB vs PostgreSQL Infographic

Check out this infographic for a comparison between MongoDB vs PostgreSQL:

MongoDB Vs PostgreSQL infographic

The Choice is Yours

It’s important to remember that no project exists in a vacuum; there are dozens of factors that may influence technology choice. A good software developer chooses the best tool for each situation, regardless of whether the project is a typical use case.

For example, you might expect that a tax and customs authority like the UK’s HM Revenue and Customs would use PostgreSQL. Tracking taxes seems to call for the rigid data integrity of an RDMS. There are over 65 million taxable subjects in the UK, however. HMRC badly needed the rapid development possible with MongoDB to get its tax planning and payment tools into the hands of the citizens as soon as possible. Using MongoDB, they were able to move from a glacial two releases per year to putting out 50 releases every week. The result was a 21% decrease in paper filings and wait times reduced by half.

Conclusion

A final word of caution: avoid choosing a DBMS based on outside factors like trends. It is neither easy nor cheap to switch later on if you don’t like how your database is performing. Data migration can cost 25-50% of original set-up costs (not including the potential risk of lost data) and take years to finish. Being open to recommendations from your software developer will save you the expense.

Unsure which database is right for your next app? Let the experts at Concepta help you decide!

Request a Consultation

MongoDB: A Document Database Used for Unstructured Data [REVIEW]

mongodb

What is MongoDB?

MongoDB is a document-oriented database that uses the C++ programming language. It differs from relational databases in that objects are stored in documents as opposed to tables. All data about the same object is found in the same document, which can be as complex as necessary through the use of nested data. MongoDB is innately schemaless, making it a popular choice for projects using large amounts of unstructured data.

History of MongoDB

In 2007 a group of DoubleClick executives founded 10gen. They tried to get a variety of projects off the ground but kept running into scalability problems. After several failures they switched strategies and began work on an easily scalable application stack.

In the early days they simply called their new database “p” for platform, but by 2008 it needed a name. Insiders like to joke that MongoDB got its name from a Blazing Saddles character. DoubleClick do-founder Dwight Merriman admitted that they chose the name from a deck generated by a naming consultant because it meant “big”. Regardless, the name gained popularity as the database did, and in 2013 10gen changed their name to MongoDB, Inc.

Features

  • BSON/JSON format
  • Load balancing
  • Horizontal scaling through Sharding
  • Native replication
  • Automatic failover
  • Supports dynamic queries
  • Data duplication
  • Indexing
  • High availability

Strengths

The schemaless structure of MongoDB allows users to store a lot of unstructured data (emails, videos, social media posts, etc) and perform complicated operations on it. Since as much as 85% of corporate data is unstructured, that covers a lot of ground.

Because the data is typically stored in one document, MongoDB queries are much faster. Users who create complex relational structures inside their documents may see slower returns, but this is mainly the fault of the user trying to apply the wrong tool for a job.

Another reason for MongoDB’s speed is that it uses sharding to distribute datasets and loads across numerous machines. Data is automatically balanced among the machines to avoid an asymmetric load. Sharding bypasses physical limitations of a single machine for faster, more complex operations. It’s also the secret behind MongoDB’s scalability: users can increase capacity by simply adding machines.

Weaknesses

MongoDB doesn’t support ACID transactions above the document level. That makes it less than ideal as a structure for applications “requiring multi-object commits with rollback”. MongoDB is not the best choice for accounting software or any other write-heavy application. (It does shine when an application is read-heavy, though.)

MongoDB has no native data validation; the user is entirely responsible for data integrity. Difficulty managing this has led to data loss scenarios for users without robust maintenance practices. In fact, maintenance in general is more demanding with MongoDB.

Real Life Applications

  • Metlife, the insurance provider, uses MongoDB to compile millions of customer policies.
  • MongoDB powers Scratchpad, Expedia’s innovative multi-platform travel planner.
  • Cisco uses MongoDB to power its collaborative workspace.

Future Outlook

MongoDB is currently ranked fifth among 330 database management systems. It’s capacity to handle unstructured data and lower infrastructure overhead have won it many loyal adherents. CEO Dev Ittycheria announced expansion into Europe, Asia, and Latin America this year, aiming to take market share from competitor Oracle.

However, Microsoft’s DocumentDB (now CosmosDB) has made a play for MongoDB’s customer base by offering support for their wire protocol. CosmosDB is too new to assess how many customers will be tempted by that; many clients prefer MongoDB as a more thoroughly-tested database.

If you have questions about MongoDB and how it might work for your application, Concepta can help. Schedule a free consultation to explore your options.

Request a Consultation