Keeping a Popular Web Application Up and Running While Re-building It

Blog on All Things Cloud Foundry

Keeping a Popular Web Application Up and Running While Re-building It

Pavel Tsiukhtsiayeu

When re-designing the Web application architecture for one of our customers, we had to pay extra attention to availability. Since the project—an interactive community for childcare providers—was already a popular site, the uptime was crucial for the customer. The Web application had to be up and running throughout the whole development and integration process. Even more, the outdated code structure made adding new modules, integration, and testing quite a challenge.

Step-by-step code updates

To minimize the downtime when applying the changes, we decided to perform the integration and code updates in stages. Replacing the whole working modules step by step could help avoid affecting the performance of the entire application.

First, each unit of the existing code was carefully tested to find out how it behaves. This gave us the necessary information on what actions and results we should re-produce.

Second, all the updates and the new code were also completely covered with tests. When a new piece of the code was created, we wrote new tests for it. As soon as all the tests had been passed, the new code was uploaded to staging, where real users and QA engineers tested it in the environment close to the production server. The new module was moved to production after we made sure everything was OK. These step-by-step code updates guaranteed that each new unit functioned properly and would not damage the system.

(more…)

2 Comments

How to Omit Inaccuracy in Receiving Position and Distance Data from GPS?

Igor Zubchenok

It’s no secret that there are natural inaccuracies in computing objects’ coordinates through GPS. When a receiver stays in a single location for a certain period of time, the system detects a set of different coordinates that lie within 5 to 100 meters from each other, instead of detecting the same coordinate. If this data is sent and saved in the database, it will cause redundancy and inaccuracy.

For example, it may seem that a truck is moving, while in reality it stands still. As a result, the system will be winding mileage. We faced such a challenge when developing a route-tracking module based on the GPS technology for one of Logistics and Warehousing applications. We’d like to share the solution found to give you ideas on how to prevent major problems with GPS navigation on Pocket PC devices.

 
Too many records mean too much traffic

Imagine that a truck is parked overnight and the driver does not turn off the Pocket PC device with GPS that sends its coordinates to the server. In case the truck stays in a parking lot for 10 hours and its position is calculated every second, the server will receive 36,000 records overnight! It will cause data redundancy, traffic overload, and total cost increase. If a record requires at least a dozen of kilobytes, irrelevant data sent over night can occupy hundreds of megabytes.


Locating a GPS device

(more…)

No Comments

Cloud Platforms: Windows Azure—Ideal Cloud Architecture for .NET Developers

Sergey Bushik

This blog posting—that continues the Cloud Platforms series—will be dedicated to evaluation of Microsoft’s Windows Azure cloud operating system.

Description

Windows Azure Services Platform is a Windows-resembling cloud computing architecture. Architecturally, it is a Platform as a Service (PaaS), which means the delivery of a computing platform and solution stack as a service, not an Infrastructure as a Service (IaaS). Microsoft’s Windows Azure cloud operating system can be deployed as a run-time for applications and includes three main components: Compute (computation environment), Storage (scalable storage), and Fabric (hosting environment). Azure also offers five services: Live Services, SQL Azure (formerly SQL Services), AppFabric (formerly .NET Services), SharePoint Services, and Dynamics CRM Services, which the developers can use to build the applications that will run in the cloud.

(more…)

No Comments

Cloud Platforms: Amazon EC2—Extremely Scalable Cloud Computing Environment

Sergey Bushik

Today’s posting will go into short evaluation of Amazon Elastic Compute Cloud (EC2), the capabilities it offers to various businesses and some challenges that one may face dealing with it.

Description

Amazon Elastic Compute Cloud (EC2) is a part of the Amazon Web Services offering that provides an extremely scalable virtual computing environment. It allows for working with virtual machines and application images based on Amazon Machine Images technology. Amazon EC2 is basically an Amazon’s own data center with WS or REST API on top of that it allows the users to deploy their images on Amazon’s computers. It also provides various services, such as S3 or SimpleDB, that are available as long as the user runs on their infrastructure (again, as WS or REST APIs). Amazon EC2 provides scalability for Windows Server, Red Hat, OpenSolaris, Fedora, openSUSE, Gentoo, Oracle, Ubuntu Linux, and Debian-based applications.

(more…)

No Comments

Cloud Platforms: Scalable Cloud Computing Hosting with GoGrid

Sergey Bushik

This posting will be dedicated to a short overview of GoGrid, a Cloud Computing hosting service, the capabilities it provides to various businesses and some challenges that one may face when using it.

Description

GoGrid is a division of ServePath, a company with extensive expertise and experience in Web hosting infrastructure, the GoGrid name also stands for the Cloud Computing hosting service for deploying and scaling server infrastructure on demand. It hosts Linux and Windows virtual machines managed by a multi-server control panel, supporting Windows Server, Red Hat, and CentOS Linux.

(more…)

No Comments

Unity and AOP: Cross-cutting Security Functionality

Aliaksei Yenzhyieuski

Hi, everyone. After Unity 2.0 (http://unity.codeplex.com/) was released, I wondered on AOP (http://en.wikipedia.org/wiki/Aspect-oriented_programming) capabilities of this framework. In this post, I would like to show them on the example of cross-cutting security functionality injection.

Problem definition

For example, we have a set of repositories (http://martinfowler.com/eaaCatalog/repository.html) responsible for domain objects access. This domain objects can be stored in the different types of storages: Employees (in Active Directory), Orders (in external ERP), Devices (in locally stored XML file), etc. So, every repository has absolutely different underlying storage with which it works and it is difficult to control user permission based on every type of underlying storage. We also have requirements that only users with the ‘Admin’ role can perform create/edit/delete operations for domain objects and any user can read these objects in our application.

(more…)

No Comments

Revision Control Systems: Quick Git Notes

Vladislav Rovda


Git: Short introduction

Some time ago I was freelancing for a small Web development company that was creating medium-sized Web sites. The company’s employees didn’t use any version control system, because, according to them, working with any version controller takes more time than working without it. However, the working process was poorly organized. There were no documentation, iterations, builds, detailed tasks, or change requests. I was receiving most information from the Skype chats.

As usual, several developers worked for the project. Sometimes these developers made changes in the same place of the program, because they didn’t know what their co-workers were doing, or made changes that had a part of the project broken. So, we needed more time to solve that problem. It was a bad situation, and I thought that the company would never be successful with a development process like that.

(more…)

No Comments

A Panel on Ruby on Rails: How to Start a Career in RoR?

Alex Khizhniak

On June 22, 2010, Minsk Institute of Management, Belarus Ruby on Rails User Group, and Altoros held a roundtable on the future of Ruby on Rails development and career success in IT. A number of Rails experts who were involved in the first RoR projects in Belarus attended the seminar and shared their expertise.

During the roundtable, graduates and Rails newbies had an opportunity to ask expert Ruby on Rails developers about the demand for RoR in Europe, the ways to find new projects, the employment opportunities, and how to start Ruby on Rails development.

Panel on Ruby on Rails Development

(more…)

No Comments

Some Tricks on How to Optimize an Auto-Complete Combobox Using ZK and Java

Sergey Titov

In this post, I’m going to elaborate a bit on ZK, one of intriguing frameworks I worked with over the last seven months. I am not intended to write a lot about what it really is and what are the pros and cons of using it. To learn about such things, feel free to go to http://zkoss.org/product where you can find almost everything you need to know about ZK. Why did I say “almost”? In my opinion, the framework lacks detailed documentation.

However, let’s take a look at a real-world scenario—say, an auto-complete combobox—and describe its implementation.

(more…)

1 Comment

Resolving a TFS 2010 Issue: The Same Names for Different Assemblies

Petr Pruidze

The issue

One of our projects utilized Team Foundation Server assemblies, and the need to use both TFS 2008 and TFS 2010 assemblies aroused when TFS 2010 was released. In short, the names of the assemblies stayed the same, while their versions were different. In this post, I’d like to describe how our team elaborated on several ways to solve this problem.

(more…)

No Comments

Benchmarks and Research

Subscribe to new posts

Get new posts right in your inbox!