15 years in this industry has been illuminating for me in a lot of ways. Having witnessed both progression and downfall of various technologies, I have learnt that moving forward without a sense of direction, not knowing where you are headed will not work; you need to put some firm steps to stay in business.
After providing an overview of various technologies in my earlier journals; I would like to share this knowledge in a different style from now onwards. Each of my further blogs will be my experiences with a particular technology and what I learnt from them, while actually working on it and delivering real world projects. After reading this blog you will be able to get an idea of the journey covered so far and the format of my further write-ups too.
Let me start with Google Cloud Endpoints which is a baby of Google Cloud and part of the bigger Cloud Computing ecosystem.
Scenario before Cloud Computing
The first set-up that comes to my mind is of the days, when running an IT firm meant heavy investment in a variety of software and other tools that each programmer would require. With increasing workforce, organizations found it somewhat difficult to manage both ends of hardware and software escalation. The former could be managed but the burdening investment in the latter was becoming a major issue.
And then came the revolution in the form of cloud computing. It completely changed everything!
With just an interface software and browser, our burden of executing applications was divided and subsequently reduced. Not only did the expenditure plunge but the issues of accessibility were also solved.
Although most of you are well-acquainted with cloud computing, yet here’s just a different perspective from my side.
Adding a story always helps in making the account more interesting!
Let’s start with a smaller picture of you with your computer, an internet connection and a remote server. It is your server which is taking all the load when you are browsing or running a program. In this case the load is comparatively less.
Now consider the bigger picture, where you are working in a team and there are more devices involved, for instance let’s include your colleagues’ computers, your personal computer (if you want to work from home as well), the mobile devices of the marketing guy of your company (these guys love to be on the field and badger you with little details).
The pressure on the server has increased, hence you need faster and more efficient measures to handle the increased burden. This is where cloud computing comes into the scene. It will take care of the data storage set-up, while your internet connection will be meant to open the web browsers and let you do the R&D.
Another requirement which will arise, is the need of a technique to keep all of you connected with the main server, so that all the required data is accessible to everyone involved in the process. Well, if you have Clouds to the rescue, there’s hardly any reason to be worried. There is a login account and password and you are good to go.
With just a device competent enough to handle Internet connection, you can reap the benefits of some of the most efficient technologies which otherwise your system might not collaborate with.
So, What Makes Google Cloud so Special
The biggest factor is trust, which Google has gained considerably over the years and it is all because of the following reasons:
- Quick access to databases using Cloud SQL and Datastore along with caching facility.
- Global connectivity using software-defined networking technology ensures, fast delivery of content anywhere without any hiccups.
- Database management, sharding, load balancing are all taken care of by Google Clouds; leaving you with the only option of concentrating on the escalation of your core work.
- The built-in live-migration technology prevents any sort of suspension in the processing; even during the maintenance period.
- Communities like Stack Overflow and Google+ help you connect with professionals for suggestions.
- You can manage your increasing traffic and number of users with the aid of Datastore and App Engine.
- The advantage of API client libraries and other SDKs for developers.
- The biggest benefit of associating with Google Clouds is its continuous backend support.
Some of the most successful internet brands like Khan Academy, Rovio and Udacity have adopted the Google Clouds services for its reliability and the number is on a rise. To know more about Google Cloud and its benefits you can read this post here
What exactly is Google Endpoints
When was the last time you spent a lot of time in coding, to develop a backend for your iOS or Android mobile app? Wouldn’t it be great, if there’s a technology to reduce your efforts considerably in creating these backends?
Google Cloud Endpoints assists you in this quest!
When handling multifarious clients on diverse platforms, the biggest challenge especially for mobile developers is linking their apps with the client libraries, hence Google Cloud Endpoints was designed for general availability. It helps develop a shared web backend so you get rid of unnecessary hassles, otherwise involved in the process.
Now generating APIs from the App Engine application is no more fatiguing. The tools and libraries of Google Cloud Endpoints are the bridge to your backend. Since you are using an App Engine application, there are other assets too, mentioned below as benefits.
Let me share an example to help you get a better understanding of Google Endpoints.
Say, there is a firm providing agile management in the web and mobile applications development field. What will be the biggest and toughest conditions they will be dealing with? Sharing information and taking decisions with different teams working on the same project; the designers, developers, co-ordinators and the client. Moreover, they will also require building a backend which complicates the matter more for developers.
We know that they will overcome this obstacle with the aid of Google Cloud Endpoints, but the question remains as to how will they do this?
Endpoints assists the backend developers in generating an API with their Java and Python codes and hosting it on Google App Engine, thereby solving a big chunk of the problem. This adaptable API begets other advantages too, which are mentioned below.
Coming back to our enterprise, they are now able to make use of the auto generated client libraries and focus better on their coding. A relief for developers struggling to find simpler means of creating client libraries and generating APIs. Google Cloud Endpoints is not simply a tool but a handler of complicated codes; and creator of products that makes communication effortless.
The only monition is picking a platform which Google supports.
There are numerous such customers of Google App Engine who are now reaping the benefits of this association. It helps you get rid of a big burden and you learn to implement a better version of technology too.
Benefits of Google Endpoints
Single Gizmo for Various Clients
The Application Programming Interface of Endpoints creates backends for all sorts of apps, whether web-based, Android or iOS. What more will you ask for, it is accessible in Java, PHP and Python too. So you have reachable libraries of your documented data in almost every variety.
Your Data Library on Your Mobile Too
OAuth 2.0 validation eases your cloud storage, access to data rooms and Task Queues right from your mobile. So, if you have a Smartphone, Endpoints gives your smarter ways to use it.
Pay Only for the Services You Use
You have an incessant running process that requires continuous backend storage support; the App Engine not only makes it all manageable but also reasonable. You get rid of the server maintenance issues and benefit from Google Cloud support too. And it’s free for App and Compute Engine Applications.
Create Libraries for Your Clients
Build Your Application and Share It with Your Clients
The Google App Engine is being praised for its efficiency and ease of usage. For a developer it’s like several cuisines served in a buffet.
Available in All Popular Languages
The Compute Engine allows you to pair-up with technologies you are more familiar with. There are endless options for you to make the development process comfortable.
Making it Easier for Coders
Load balancing, sharding, server configuration etc. will now be handled by Endpoints. All you have to do is focus on the development, compartmentalizing your app and multitenancy support come as added advantages.
- Creating App Engine Backend Project
- The GCM advantage for notification of changes to API on the App Engine
Shall I call it relief or liberation, with such strong backend support, there were reduced coding conflicts hence, we could utilize the time saved, towards neater and productive outputs.
And who doesn’t like working in a responsive environment, which supports all languages and improves your interaction with the latest devices?
Sounds like a smooth sail to cloud nine? Wait! Need to cross some hurdles before that.
I would like to share an enlightening experience we (by ‘we’ I mean my team of developers) had with Google Cloud Endpoints; it turned out to be a really helpful one too.
It all started little troubles in the initial stages; not to forget we were dealing with a new technology and it would take some time, before we were thoroughly acquainted with it.
While working on a project for Android Application development, we learnt some weighty facts I would like to share here:
- Setting up Android studio is must for Endpoints support
- Using a service object is obligatory for backend API requests, so is providing credentials for authenticated calls
- One lesson we learnt the hard way was, your requests should be put in relevant threads or be ready for a big mess
- Provide your parameters while making the request
After handling this project I came to the conclusion that working on Google Cloud Endpoints is like brewing a stimulating cup of tea. If you know when to add the tea leaves to boiling water, you will know how to sieve it in your cup effortlessly.
Once you have adjusted to the nuances of Google Cloud Endpoints, you can reap the benefits of:
- Flexibility in generics that gives way to parameters of coding
- No memory leaks or getting bugged with sudden shutting down of files and resources
- Availability of resources to handle method invocations, in absence of static type information
- It even allows you to make use of some of its own API tools and your existing Android App can also be updated effortlessly
Surely, Google provides you with freebies like Datastore, ImagesService, BlobStore etc. and one definitely finds them useful. Its simplicity of usage has made it popular and chosen over others. Although there are drawbacks too; for instance, there are no annotations error warnings; failure in client library generation is resolved by burrowing the error logs.
If you have the talent to search and integrate some more useful tools with your program, the quest will turn into fun. There are programmers from across the world who have approved of Endpoints as a multiple tester program.
However, as a developer faces dissimilar challenges at every project, implementation of this program might not always show the same output. Yet Google Cloud Endpoints can be considered not only as a problem solving platform but also a transfiguring step in the technological world.
Getting a mobile app has become inevitable for every business today, so has the need for simpler methodologies for the developers. With tools like Endpoints in hands we are looking forward to more updates to handle these complications.