Onebip’s migration to Amazon Web Services

AWS logo

By Giorgio Sironi, Onebip Tech Team

After several months of preparation, in the last weeks we have finally switched our traffic to hit our Virtual Private Cloud on the Amazon Web Services data centers.

This move lets us spin up and down new servers automatically, depending on the load Onebip is experiencing; this load varies during the day and during the week to peak during weekends and holidays.

For the more technically inclined of you, there is a series of articles that summarize the technical challenges our DevOps team has encountered during the move, along with the process to perform an incremental migration instead of a Big Bang move.

Part 1 focuses on the new architecture and how we started new front end servers in the cloud to experiment without disrupting the service. Optimization of the traffic between the physical and the virtual data centers followed.

Part 2 explains the database physical migration with a master-master configuration, and the new backup strategy which let a daily backup being performed in seconds.

Part 3 is the story of the final night when we took the plunge and move all traffic and web servers, with the corollary of testing payments and deployment processes on the new data center to resume the continuity of service.

Updating PHP Mongo Driver without hurting yourself

In the previous post from my colleague we have unveiled the languages used in the Onebip offices. Since the first one is PHP, lately we had to come up with the upgrade of the Driver to interface us with MongoDB.

The biggest problem in this situation comes from the fact that the version 1.3.0 is a backward compatibility breaking release for the phase of the connection creation (even not formalized on the documentation there are lots of problems to address before the upgrade). How can we address this problems in a simple way?

The answer is to give to you application the ability to choose the way to initialize the connection to MongoDB based on the version of the driver installed in your system.

The trick is done within a DriverFactory class which has the following tasks:

  1. Understand the current version of the MongoDB Driver installed
  2. Check if the configurations to pass to the constructor of the class are correct for the current version
  3. Initialize and return an instance of the right class (Mongo or MongoClient) to the caller
[gist id=5898913]

Tip of the month

Tips of the month

USE OUR CHECK SUBSCRIPTION API AS A QUICK TOOL TO FIND YOUR USERS’ ACTIVE SUBSCRIPTION SERVICES

Editor’s note: This is part of a monthly blog series by Gokmen Atak, Onebip’s Product Offer & Quality Specialist.  Gokmen aims to share his “Tips of the month” which includes product features and updates that Onebip partners can take advantage of to improve their mobile payment offering.  Please feel free to add your comments at the end of the post.

We’re always listening to our customer feedback to ensure we build solutions and features that are beneficial to them. In this case, we received feedback from our customers who were using our recurring billing for subscription service and developed the Check Subscription API to meet their requirements.

In addition to the back office service which allows merchants to retrieve exhaustive and asynchronous information for their subscription based payments in Onebip and the real-time notifications about events and status updates, we have introduced the Check Subscription service. With this service merchants can now make real-time requests to Onebip to retrieve information for a single user to find out the users’ active subscription services and other subscription information.

 

How does it work?

The Check Subscription API should be called on HTTPS, with the GET method, using a simple URL containing the subscriber’s MSISDN. In response, the Onebip API will return an array of information such as service and subscription ID’s, status of the user’s subscription (active, terminated or renewal) and activation date.
For more details about the Check Subscription API and to start using it, get in touch with your Onebip Account Manager or on partner.relations@onebip.com for more information.

 

 

Languages, languages…

The standard language of Onebip is English, but being the development team located in Milan (with a few exceptions while speaking with colleagues from other offices), Italian is what is most commonly spoken during the day.

But since we are programmers, human languages are not the only ones we understand (no Klingon though). It’s just that often we talk (actually, write) to computers; and like people from different countries, they may speak many languages too.

 

phplogo-highres

 

PHP is first and foremost the languages we write in everyday. Even if most of the end users of Onebip see a single page application, there is a lot of backend behind it that is running PHP processes in a web server and with the cli SAPI, triggered by users, external APIs exposed to the carriers and internal timers.

javascript

 

JavaScript runs even on washing machines nowadays. We are covered for the server-side right now – but “talk” JavaScript for two wildly unrelated tasks: 1) the front end, consisting of the payment page and the administration panel; and 2) inside the MongoDB console, and occasionally for writing Map-Reduce tasks.

mysql-logo

MySQL is still a key part of our systems; although MongoDB covers many unrelated persistence mechanisms due to its ease of setup, the transactional power of MySQL is key for a payment system. Race conditions security issues that would make MongoDB unsuitable are handle easily by MySQL transactions. So add SQL in the MySQL dialect to the list of languages to speak.

ruby-logo

 

Last but not least, let me say we aren’t installing Rails anytime soon. However, on the DevOps side our system administrators are starting to work with Ruby as an higher level of abstration with respect to shell scripts. For example Chef, a tool for server configuration management, uses Ruby as its language for specifying which libraries and daemons a new machine should contain.

— Giorgio

An interview with Onebip’s first woman in the Tech team

Manuela Munaretto photo

Editor’s note: We interviewed Manuela Munaretto from Onebip’s Tech team in Milan.  Manuela recently joined Onebip in April 2013 and has agreed to share her insight and advice on what it’s like to be a woman in the tech world.  She also tells us what she likes about her career in technology.

1. How did your career in technology begin?

I started working after high school as a commercial employee and during this experience I realized that the world of computing would be my world! So, I decided to study Computer Science at the “Università Statale” of Milan and during those years I studied and started to work as a developer.     It was a very hard and challenging period, but I also had a lot of satisfaction from my studies!!

I started my career as a web developer. My first real project was a CMS (Content Management System) customization: I wrote a lot of proprietary XML and some JavaScript. After this, I started with Java and my boss told me: “Ok, you can start studying this and if you don’t understand something, ask me” ‘This’ was actually a book by Bruce Heckel ‘Thinking in Java’ and the project was to build programs for a bank. I worked some years with this team and I loved Java and these projects! We were a part of the Internet Banking world: from the web interface (HTML, JSP, css) to the database (SQL, stored procedure, etc); from the Java backend, to the integration with ‘HOST’ and DB2.

Then, people like growing, viewing new technologies, meeting new and other people and the project was always the same.  So, I left for new projects always in Java but more web oriented! And now, for the same reasons and by chance (through an introduction from someone I knew from a previous job), I’m a Onebip developer! I hope to stay here for a long time.

🙂

 2. What is your strongest asset in your technical career?

Maybe it’s my intuition but sometimes I definitely know “the right way” and also if I can’t explain why I’m sure that’s the right solution!

Accuracy and method are precious helpers. I have a “journey diary”: every day I write my notes about tasks in progress, tasks to be done, something I need to remember – it is very useful.

3. What advice would you give other women trying to advance in the tech sector?

Don’t be afraid to be yourself and stop when you think: “he is more qualified, experienced and able than me” just because he is a man. Try to look and evaluate your professionalism and work with a more critical eye. Diversity is a value for your company: think with your own female brain.

😉

4. What made you decide to work for Onebip?

I think that the Onebip tech team is made of great people with strong technical skills and strong values.

Onebip is a very complex domain and still today I’m a bit afraid of this complexity, but I think the Onebip team is a great team and everyone can deal with these complexities in technology and other challenges in all fields of the Onebip domain.

There’s an old African proverb that says “If you want to go quickly, go alone. If you want to go far, go together” It’s simply the truth, so when I say the Onebip team I mean all the other teams: tech team, sales and pre-sales team, product team, marketing team and all people that make Onebip possible.

5. When did you start at Onebip and how has the experience been so far?

I started in Onebip at the beginning of April and I’m happy to work here because I’m learning a lot and I like these people. I also made friends with the other girls in the office who I can gossip with!

6. What do you like most about your job?

Creativity! Developing programs means solving problems and solving problem means inventing! There are rules to follow to write good and readable code; there are patterns to help us to solve the most commons problems; but only creativity can solve the most challenging problems! You always have to respect the rules, but never forget to think with your brain.

By Manuela Munaretto, Onebip Tech Team