Posts

Optimus Information Helps a Leader in Catering and Takeout Remain Number One

MonkeyMedia Software is a Canadian company with tremendous expertise in restaurant systems for the take-out, delivery and catering segment of the food industry. Their business focus is to help multi-unit restaurant owners execute their off-premises operations to serve their on-demand consumers.

Marketing a Better Sandwich

MonkeyMedia Software approaches its business from a strong marketing and foodservice operations background. The company’s CEO, Erle Dardick, was a restaurant owner who dramatically increased sales through takeout, delivery and catering orders to his local community.

As Dardick’s off-premises sales grew, he needed a better internal system at his deli to maintain, control and scale during the rapid growth. As Chris Roy, MonkeyMedia Software’s VP of Technology, says, “A restaurant can do a great job making a single sandwich for you, but if they have to make a hundred sandwiches fast, then the business model of single-order transactions collapses.” Catering is a different business.

That led Erle Dardick to work with a software developer to solve this dilemma in 1996, a time when the internet was focused on “static web pages”. They used the deli as a platform to design a SaaS-based solution for takeout, delivery & catering.

From Food Sales to Software Sales

As a result, Dardick began to license his software-as-a-service to other restaurant owners and foodservice operators, hosting servers at a nearby location on a private cloud. MonkeyMedia Software was a pioneer in the adoption of cloud technology and by 2002 the company became a SaaS product focused on off-premises operations for the on-demand consumer.

Over the years, MonkeyMedia Software has evolved an ecosystem of technology partners including POS, payment, loyalty, delivery, marketplace, analytics and fraud prevention.

This is where MonkeyMedia Software is leveraging the power of Optimus.

Evolving to the Azure Cloud

Optimus’s relationship with MonkeyMedia Software began with something we know and do very well: testing. In this case, it was regression testing, covering hundreds of thousands of different configurations of their platforms, as the company prepared to move them to Microsoft’s Azure cloud.

Chris Roy describes the task as one of scale. “We were doing lots of manual testing at the time, so automation was a natural evolution. But we had to back-fill and make sure that our older code, some of which was ten years old, was still working as well. It was an enterprise-level system that we had built and now had to test.”

The relationship grew from there. Optimus provides MonkeyMedia Software with deep architecture experience in development and testing services. They have come to rely on us to oversee our testing teams in India on their behalf and to supply top Azure architects with specific knowledge that MonkeyMedia Software doesn’t have in-house – and doesn’t need to acquire.

“Moving our key services, like our credit card payment services, to the Azure cloud gives us more security than we can provide. By using Optimus as our Azure partner, we can not only achieve the levels of compliance that we need, we can also make use of their expertise in this area. Along the way, we have developed a deep level of trust with Optimus,” says Chris Roy.

Relying on Optimus

Optimus Information offers all our clients exactly what MonkeyMedia Software is using: the diversity of our skillset. Currently, we are employing automated testing with MonkeyMedia Software to establish secure credit card gateways in Azure that they can ramp up quickly and efficiently.

We continue to do both automated and manual testing with MonkeyMedia Software, becoming an extension of their QA team on a day-to-day basis. One of our Azure architects has helped to design their APIs and provides expertise on how to integrate even more Azure architecture into their platforms.

“We don’t have the in-house talent or knowledge to do it well on the Azure side,” says Chris Roy, “so Optimus is filling a big hole.”

We’re experts in testing and development in the cloud. We can offer solutions that push businesses to do more and earn more. We invite you to call us today to learn more about our specialized services and talented workforce.

Evolution or Revolution? The Power of Microservices in Azure PaaS

Constant business pressures are demanding more and more from software developers, and they are responding with some remarkable new technologies.

As always, necessity is the mother of invention. Developers are pioneering new architecture that can break down apps into small, independent components, allowing those individual parts to be updated when necessary with speed and reliability, all without impacting the integrity of the overall application while it’s running.

This new app architecture is known as “microservices”.

Traditional app architecture typically has three layers:

  • The front end, which is linked to a website
  • The middle layer, where the business functions occur
  • The back end, typically where the database resides

Restrictive App Design Can Impact Business

This was the style of design used for applications that were static in size and made to suit specific hardware. However, the style did not lend itself well to updating, let alone scaling up; if one component of an app needed improving or modifying in some way, the monolithic design necessitated that the entire app would have to be modified and then tested before going back online.

As recently as a few years ago, many people would see “site under maintenance” messages when they tried to access their banking website or their insurance company’s website, for example. That is no longer acceptable for any business.

So, the time was ripe (and the pressure was ratcheting higher) for a better way forward.

iStock-871030872 Evolution or Revolution? The Power of Microservices in Azure PaaS

Seamless Updates Are the Norm

Microservices provide developers with the means to refresh a single area of an app without taking down the entire site to do so. Likewise, a problem arising with one area doesn’t result in the entire app going down.

“Microservices is very fluid,” says Gurinder Singh-Mann, an Azure architect at Optimus Information. “You have multiple teams working on different areas of an app, with each team ‘owning’ their component and knowing it inside-out. If I’m a business owner with a promotions page on my website that goes down, I don’t want the entire site going down; that would really impact my business. And when I refresh, I want to be able to refresh just that component.”

An app designed with this approach has each of its elements – or microservices – independent from the others to allow for updates, repairs and security improvements specific to that microservice.

The net result is an app that is ready to be scaled, altered or updated in any manner necessary without incurring downtime.

Faster Database Access

Another important characteristic of microservice apps lies with the database. Recall the earlier description of a three-tiered architecture, with the database being the third tier at the back end of the app. Using the microservice approach, each individual microservice can have its own database, pertinent to just its function. Once again, an update or change can be made without impacting the app’s overall function, something not possible using a traditional approach with a single database at the back end.

There is also a dramatic improvement in the time it takes an app to perform a function– from several minutes down to as little as a second, in many cases.

Azure: A Tailor-made Platform

Like so much in technology today, microservices have come into being largely because the cloud is offering developers endless opportunities to innovate. In the case of Azure Cloud, it’s also reducing workloads and saving time.

Every website hosting an app needs to be monitored in real time. It’s important to know how the site is running in different geographic regions, explains Gurinder Singh-Mann, as well as how many instances of the site are running and whether there is an emergency and a need for disaster recovery.

These tasks would ordinarily fall to developers to deal with. They would have to write appropriate code, test it and then deploy it – added steps that extend the time to get an app to market.

Azure takes that major headache away from the developers so that they can focus simply on building out their code for the app. “Azure is pretty remarkable. It can take care of tuning your database and even takes care of disaster recovery automatically,” says Gurinder.

Power Your Business with Microservices on Azure PaaS

Azure and microservices create a powerful combination that allows businesses to maintain a problem-free web presence at all times, along with the ability to alter or update an app seamlessly in real time.

Optimus Information is actively using microservices architecture for our clients. We are experts in Azure cloud migration, optimization, management and support.

Today, over 60% of new apps are using cloud-enabled continuous delivery for faster innovation and business agility. It’s worth contacting the people who know how to make this happen.

Contact us today and we’ll be happy to share our expertise with you and show you how the combination of Azure and microservices can power your business.


More Resources:

Azure Architect Wouter van Eck’s Do’s & Don’ts for Azure Cloud Application Development

The Azure Cloud is transforming application development as we know it. Applications that would have been too costly and time-consuming to develop on legacy infrastructure take a fraction of the resources on Azure. Azure also provides the ability to process big data, further expanding an organizations’ options for innovation in application development. However, developing applications in the cloud is not without a learning curve.

Enter Wouter van Eck, Cloud Solution Architect at Microsoft Canada. “Assess, plan and execute,” advises Wouter. “Assign roles. Ensure those roles are staffed by the right people with the right training. And bring in the experts when needed rather than blindly attempting to do something you are not properly prepared for.”

What follows are Wouter van Eck’s Do’s and Don’ts for developing applications in Microsoft Azure.

Do: KISS – Keep it Stupidly Simple

The more complex a solution, the more problems will inevitably crop up. Keeping your application migration to Azure as simple as possible will:

  • Reduce the time to deploy new functionality.
  • Reduce staffing requirements for developing a solution.
  • Reduce costs associated with maintenance and support.

Do: Choose SaaS, PaaS or IaaS

When architecting your solution, the more infrastructure you can delegate, the better. Examples include:

  • Software as a Service (Office 365)
  • Software as a Service with Customization Options (DocuSign)
  • Platform as a Service (greenfield, app migration, extension)
  • Infrastructure as a Service (last resort, non-cloud ready, legacy or other off-the-shelf apps or systems)

Do: Establish a Cloud-First Enterprise Architecture Vision

After moving to Azure, ensure that you establish further goals for the future. These might include:

  • Who’s responsible for monitoring cloud usage, billing and subscriptions?
  • Who owns the subscription?
  • How will you procure Azure?
  • How will you monitor consumption?

Do: Establish Best-Practices and Architectural Guidelines for your Cloud Application Environment

Designing for services is different than designing services, and you need a plan to reflect this:

  • Be sure to remain agile.
  • Remember to employ the KISS principle.
  • Choose SaaS first whenever possible, followed by PaaS and IaaS when you need more control.
  • Establish a workflow and chain of responsibility for continuous application deployment and integration.

Don’t: Apply on-premises architecture behaviour to cloud solutions

The old approaches won’t work:

  • Applications don’t become more scalable or stable just because you add new servers to the cluster.
  • Traditional security measures such as firewalls represent unnecessary clutter, as all your data is covered by Network Security Groups (NSG).
  • Unlike your static data center, the cloud is ever-evolving. It’s important to keep up with new trends and technology as they emerge so you can refine your best-practices.

“The best piece of advice I can leave you with is this: don’t do it alone,” explains Wouter. “Assemble the right team to help you get it right. And rely on experts. Microsoft partners, like Optimus, do this every day. Reach out to an expert when you need one to get you to your best possible outcome. You’ll be better for it.”

To hear more from Wouter and learn everything there is to know about developing applications in the cloud with Azure, check out our e-Book, The Do’s and Don’ts of Application Development on Azure.

 

4 Ways Azure is Rising to Meet Data Warehouse Demands

In today’s data-first world, IT infrastructure is the foundation for strategic decision-making, with companies requiring larger quantities in shorter periods of time. This is putting the traditional data model – where data from systems like CRM, ERP and LOB applications are extracted, transformed and loaded (ETL) into the data warehouse – under pressure. The problem is compounded by increased data volumes from social apps, connected devices (IoT) and emerging sources of data.

The need to gather data from traditional, transactional systems, like ERP, CRM and LOB, and then integrate this data with social, mobile and connected devices has driven the adoption of big data storage technologies such as Hadoop. At Optimus, we’re finding more and more users demand predictive, real-time analytics to make use of their data, something that can’t be done with traditional data warehouse tools. Consequently, organizations are considering cloud-based solutions such as Azure to transform their data warehouse infrastructure.

Microsoft knows this, and are growing their solution portfolio accordingly. Below are four ways in which Microsoft Azure is adapting to meet the demands of today’s modern data warehouse.

1. Consistently High-Performance for all Volumes of Data

Microsoft is working to solve the problem of achieving high levels of performance for large datasets through MPP technologies, in-memory columnstore and optimizations on core query engine. In particular, Optimus is seeing SQL Server emerge as a leader in performance and scalability. SQL Server supports a large number of cores with complex vector instructions while holding terabytes of memory and contains local flash storage that provides high I/O bandwidth. When optimized for inherent parallelism and concurrency, it is not uncommon for users to outperform large distributed databases.

In one example, Microsoft and Intel teamed up to create a 100 terabyte data warehouse using a single server, four Xeon E7 processors and SQL Server 2016. According to the report, “The system was able to load a complex schema derived from TPC-H at 1.6TB/hour, and it took just 5.3 seconds to run a complex query (the minimum cost supplier query) on the entire 100TB database.”

2. Storing Integrated Data

Companies are looking for ways to store integrated – both relational and non-relational – data of any size, type and speed without forcing changes to applications as data scales.

Enter the Azure Data Lake Store. Data Lake makes it simple for everyone, from analysts to developers and data scientists, to access, add and modify data, regardless of its state.

Facilitating all of this is Azure HDInsight, a cloud-based Hadoop and Spark cluster. HDInsight lets your team create analytic clusters, manipulating data into actionable insights. In addition to a fully managed Hadoop service, Microsoft has included PolyBase in HDInsight, which provides the ability to query relational and non-relational data in Hadoop with a single, T-SQL-based query model.

3. Built with Hybrid Data Storage at the Core

While the cloud continues to gain popularity, companies are realizing that they still need to keep at least some information on-premises. Microsoft is acutely aware of this and has built Azure accordingly. Their data warehousing and big data tools are designed to span on-premises and cloud warehouses. Microsoft’s hybrid deployment is designed to provide the control and performance of on-premises with the scalability and redundancy of the cloud. Optimus is seeing users access and integrate data seamlessly, while leveraging advanced analytics capabilities, all through Azure.

4. Machine Learning and Big Data in Real-Time

Traditional advanced analytics applications use outdated methods of transferring data from the warehouse into the application tier to procure intelligence, resulting in unacceptably high latency and little scalability.

In contrast, Microsoft has transformed integrated analytics with machine learning in the cloud. The Cortana Intelligence Suite, coupled with R Server, can be deployed both on-premises with SQL Server and in the cloud with HDInsight. The resultant solution is one that solves for hybrid, scales seamlessly and enables real-time analytics.

There are many factors driving companies to consider an Azure Cloud data warehouse migration. To learn more, check out our e-Book, Building a Modern Data Warehouse on Azure.

Does Your Data Warehouse Belong in the Azure Cloud? Here are Some Things to Consider

It’s no secret: Microsoft Azure is hot right now. This is demonstrated by their 97% growth in Q2 2017. With more organizations migrating their data infrastructure to the cloud every day, some companies are asking themselves: does my data warehouse belong in Azure? While there’s no simple answer to this question, there are some ways in which you can begin to assess your current data infrastructure’s suitability for an Azure Cloud migration.

The Cost Factor

The team at Optimus has found cost to be one of, if not the top driver for cloud adoption. There are several factors businesses should consider where cost in the cloud is concerned:

  • If your business is cyclical (i.e. retail with high volume throughout the holiday season), the cloud pay-as-you-go model makes strong financial sense. Cyclical companies can burst to the cloud when they need to, saving them from buying new servers that may only be required a few weeks per year. Conversely, it may not be cost effective to move workloads that are required to run at a stable level 24/7/365 to the cloud, especially if they are running on equipment that does not need upgrading in the foreseeable future.
  • At Optimus, we have found that many organizations prefer opex over capex. Opex tends to be easier to manage over the long term, especially for fast-growing businesses where a significant capex could stall growth. The more a business transitions to the Azure pay-as-you-go model, the more they shift their data warehouse costs from a capex to an opex.
  • The apportioning of data costs across departments is significantly simplified in Azure. Pricing for individual workloads is made transparent, and data usage is easily tracked.

When considering leveraging Azure for your data warehouse, it is important to remember that a cloud migration is not an all-or-nothing endeavour. Every business will have certain workloads that make financial sense in the cloud and certain workloads that should remain on-premises. Perform an accurate assessment of your current data infrastructure to determine your cloud suitability.

What are Your Data Governance Requirements?

Meeting data governance and regulatory requirements is at the forefront of the mind of anyone considering an Azure migration, and for good reason. Moving an on-premises legacy data infrastructure to the cloud is a difficult landscape to navigate.

Your industry may determine your suitability for an Azure Cloud data warehouse migration. Certain sectors, such as financial and healthcare, have strict data governance laws to comply with. You need to make sure your – and your client’s – data remains within certain jurisdictions, something that may prove challenging and will influence your choice of what data to move to Azure.

Do you need to retain control over user authentication? If yes, you’ll need to look at the feasibility of this with various applications. Your service provider will be able to assess this with you and make the right recommendations.

Latency: Still a Consideration?

The short answer is yes. In particular instances where the speed of data transaction is mission-critical, an internal data warehouse may be required. This is common in the financial industry, where trading companies are under increasing pressure to host their servers physically close to a stock exchange’s computers. In an industry where transactions are conducted in microseconds, speed is priority number one.

While Azure has made significant improvements to latency times, the fact remains that the closer two computers are to each other, the faster they can communicate. At Optimus, we have seen companies with these types of operational concerns benefit from leaving some of their data on-premises. However, because the amount of data required to perform at a high level is typically small, leveraging the public cloud is still a viable option for most organizations.

There are many factors to keep in mind when considering a data warehouse migration to Azure. To learn more, check out our e-Book, Building a Modern Data Warehouse on Azure.

Infographic – The Modern Data Warehouse Framework

Check our latest infographic, The Modern Data Warehouse Framework!

As organizations are collecting and processing increasing amounts of data from a growing number data sources, data systems must evolve to keep up. In order to make the best data-driven decision possible, you need to reimagine the way you look at data warehousing.

We took a look at how to transition your data warehouse to the cloud and put together our top 8 recommendations for building a modern data warehouse on Azure.

 

Download the PDF here

 

The-Modern-Data-Warehouse-Framework Infographic - The Modern Data Warehouse Framework

Infographic – The Modern Data Warehouse Framework

 

 

 

Three Trends Influencing the Rise of Application Development on Microsoft Azure

In today’s always-on, data driven world, organizations will either disrupt, or be disrupted. For those that choose the former, a fast application development cycle is critical for success.

This is why companies are turning to Azure for application development. Azure can help cut costs and reduce development wait and integration time. Additionally, the flexibility of the Azure Cloud architecture enables quick access to resources and a streamlined development process that gets projects off the ground quicker.

Below are three trends that are influencing the rise of application development in Azure.

1. Managed Infrastructure Means More Developer Cycles

The rise of Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS) have been one of the dominant trends helping to facilitate  application development in the Azure Cloud.

IaaS is where Azure manages virtualization, servers, storage, networking and data centers. It leaves users with the most flexibility, coupled with the most responsibility.

PaaS takes things a step further than IaaS. In a PaaS model, Azure manages everything in the IaaS level in addition to security, databases and operating systems. While less flexible than IaaS, it provides developers with the ability to customize applications without the headache of infrastructure management. Without having to worry about infrastructure maintenance, IT teams are free to focus on innovation and development. As a general rule, we’re seeing that PaaS is the preferred model for application development

2. Faster Development with Azure Services and Open-Source Capabilities

Cloud infrastructure is enabling developers to spend more time on innovation, making their apps unique, and less time on infrastructure and plumbing.

One of the Azure services we like is Azure App Service. It’s a PaaS solution that enables developers to create applications at a significantly faster rate than would have been possible with traditional legacy solutions. Aside from the benefits of a managed PaaS model, the team at Optimus finds there are a number of advantages with Azure App Service:

  • Optimized for DevOps: Apps can be managed using Azure PowerShell, or the cross-platform command-line interface (CLI). This enables continuous integration and deployment with GitHub, Visual Studio Team Services or BitBucket.
  • Highly scalable: You can spin up or shut down VMs instantly. Apps can be hosted anywhere in the Microsoft global datacenter infrastructure. For one of our clients – they were able to expand from North America to APAC in only a few days. This instant scalability helped them grow revenues rapidly without having to worry about cost or risk.
  • Visual Studio integration: At Optimus, we’re seeing more and more developers taking advantage of Visual Studio. The ease with which it lets users create applications for any operating system, coupled with the ability to manage and deploy those applications on your preferred platform and device, significantly simplifies application development in Azure.
  • Support for multiple languages and frameworks: ASP.NET, Node.js, Java, Python and PHP are all supported by Azure App Service. This lets developers work with the tools they’re most comfortable with. It also means they don’t have to spend time rewriting legacy applications that they want to integrate into their cloud environment.

What we’ve found is that application development teams who have moved to Azure have actually decreased their development times because of Azure’s support  of third-party services. For example, Azure supports stacks such as MongoDB, Cassandra and Hadoop, alongside Microsoft MySQL. Azure App Services also offers an extensive array of templates that let devs use a wizard to install open-source software such as Drupal, Joomla and WordPress.

However, most of our clients are working in hybrid environements. This means a need to integrate with legacy, on-premises infrastructure. This is a strength of Azure and means that developers aren’t wasting time trying to get things to work together.

3. Pay for Usage, not Hardware

As most know, traditional on-premises application development involves a significant hardware capital expenditure (CapEx). In contrast, the Azure Cloud does not require any up-front investment, instead offering a pay-as-you-go model. This converts CapEx into an operational expense (OpEx). The result is twofold:

  1. Devs can spin up a VM and begin testing new applications within minutes, as opposed to the days, weeks or months it would take to acquire new hardware.
  2. Applications that previously would have been too risky to justify the purchase of expensive hardware can now be developed.

The ability to transform application development from a CapEx to an OpEx not only allows developers to work faster; it enables them to innovate in ways that were previously unfeasible.

For more information on application development in the cloud, check out our e-Book, The Do’s & Don’ts of Application Development on Azure.

 

 

Cloud Data Warehousing with Azure SQL

If you are running an on-premise data analytics stack on Microsoft’s SQL Server, but running into maintenance, cost and scaling issues, you can consider moving your data system to a cloud-based database service such as Azure SQL Database. Especially for your first data analytics stack, Azure SQL Database provides low startup costs with the ability to easily expand as business grows.

Advantages of Azure SQL Database

There are several benefits to moving on-premise SQL Server infrastructure to Azure:

  • Physical acquisition, provisioning and maintenance of SQL Server deployments are a thing of the past. Furthermore, decreasing or increasing data infrastructure is instantaneous with SQL Database elastic pools.
  • Azure assists existing database migration to Azure SQL Database with wizard-based tools.
  • All stored and transmitted data are encrypted via client-side keys.
  • Microsoft accommodates third-party and open-source technologies, such as Python, Java, node.js, PHP and Python.
  • SQL developers feel right at home using SQLCMD or SQL Server Management Studio for development.

SQL Database Limitations

Although all SQL Server components, SSIS, SSAS and SSRS are available on Azure, there are still areas where the Azure version is not completely fleshed out. For instance, only a growing subset of T-SQL features are yet available such as cursors, transactions, triggers, all data types, all operators plus logical, arithmetic and string functions.

Additionally, many T-QSL statements in SQL Database do not support every option available in SQL Server 2016, such as CREATE/ALTER for databases, logins, tables, users and views. Collation of system objects, cross-database queries with three- or four-part names, database collector, diagrams and mail, some events and certain database characteristics that were managed manually in SQL Server but are automatic in SQL Database are also missing.

For a full list of deficiencies, see Azure SQL Database Transact-SQL differences

Additional Azure Capabilities

SSRS is actually replaced with a separate service, SQL Reporting, which incurs a separate charge for reports. It is not a general reporting service since it only works with SQL databases. It does offer a nearly identical development interface to traditional SSRS.

Azure Tables is a storage service targeted at non-relational database storage, which is a type preferred for data analysis processes. It stores up to 100TB of data via an Azure Storage account and supplies data in row form. Additional advantages include less cost than straight Azure storage and easy scaling.

Built on top of Hadoop, HDInsight offers unstructured data storage plus a number of tools, such as Sqoop, Pig and Hive for query processing. Your in-house SQL Server, Excel or SQL Database are all able to connect to this service.

Data Factory is Microsoft’s SaaS analogue to SSIS. It visually coordinates other services to transform raw, unstructured data via data flow pipelines into clean, transformed data ready for analysis engines such as HDInsight or Azure Machine Learning for predictive analytics.

In lieu of SQL Reporting, you can utilize Microsoft’s SaaS Power BI for report, dashboard and visualization creation. You can use this tool in conjunction with your on-premise SQL Server installation or stored spreadsheets too.

Steps to Migrating from SQL Server to SQL Database

SQL Database is, in theory, backward-compatible all the way to SQL Server 2005. In spite of this, the first step in migration is to test and fix any compatibility issues that may exist with SQL Database V12.

There are several methods to determine compatibility including the use of SQL Server Data Tools, the SqlPackage utility, SQL Server Management Studio’s Export Data Tier wizard and the Azure SQL Migration Wizard. SSDT, SSMS and SAMW can be used to fix any migration issues with your database also.

The next step is to create an Azure SQL Database logical server and migrate your existing data to it. Although other methods exist, the use of SQL Server transaction replication is the recommended solution since it minimizes live database downtime. Other solutions are to export/import BACPAC files when connection bandwidth is low or unreliable or use the SSMS database deploy wizard for smaller databases.

Running SQL Server in the Cloud Directly

There is nothing stopping you to begin or continue your SQL Server-based data analytics development and deployment without Azure SQL Database. Amazon AWS provides any level of SQL Server instantiation online with the advantages of computational, networking and storage elasticity on a pay-as-you-go basis. With a bit more lifting, you could do the same thing on Azure or AWS by utilizing their Virtual Machine services directly for your own SQL Server deployment.

Conclusion

Running data analytics in the public cloud brings all the usual benefits of cloud-based operation, the most important of which are elastic storage for big data crunching systems and high availability in-house or mobile across the enterprise.

Whether or not your business should consider a cloud-based data analytics deployment depends on several factors including TCO, data volume, bandwidth requirements, security and the need to scale operations up or down quickly.

A wise approach is to work with an experienced Optimus data analytics consultant to collate all factors and develop a full data architectural solution. Our experts can guide you towards the best solution for your needs.

 

 

 

How to Setup iOS Push Notifications on Windows Azure

In this post I’ll give a quick overview of how to add Push Notifications to the iOS application we created in our previous blog post entitled “How to Setup Windows Azure for iOS in under 5 minutes.” It will be helpful to use that sample app as a starting point for this tutorial.

On the Azure website, they have a detailed tutorials on how to get Push Notifications working for iOS; however, if you’re pretty comfortable in the Apple Developer center you can follow the simple steps outlined below.

There are three main areas that need to be configured: the Apple Developer Center, Azure Management Portal, and your App in Xcode.

Apple Developer Center Configuration

  1. Setup Push Notifications for your iOS app: in order to enable push notifications, you will need to go to the Apple Developer center and create an App ID and Provisioning profile with Push Notifications turned on. To do so, you’ll need to create/upload a certificate – save this certificate because in the next step you upload it to Azure.
    Push+Notifications+on+iOS-300x149 How to Setup iOS Push Notifications on Windows Azure

Azure Management Portal Configuration

  1. Login and go to your app
  2. Upload your Push Notification Certificate
    Azure+Mobile+Services-300x127 How to Setup iOS Push Notifications on Windows Azure
  3. Update the Insert script for the app
    Azure+Table+Push+Insert-300x149 How to Setup iOS Push Notifications on Windows Azure

    function insert(item, user, request) {
    request.execute();
    // Set timeout to delay the notification, to provide time for the
    // app to be closed on the device to demonstrate toast notifications
    setTimeout(function() {
    push.apns.send(item.deviceToken, {
    alert: "Toast: " + item.text,
    payload: {
    inAppMessage: "Hey, a new item arrived: '" + item.text + "'"
    }
    });
    }, 2500);
    }

App Configuration

  1. Open the app that we built in the previous post.
  2. Update the Bundle ID to match the new provisioning profile you created above
  3. Open QSAppDelegate.h and add the following property:
    <a href="http://twitter.com/#!/@property">@property</a>  (strong, nonatomic) NSString *deviceToken;
    
  4. Open QSAppDelegate.m and replace the following method
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
    (NSDictionary *)launchOptions
    {
        // Register for remote notifications
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
        UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
        return YES;
    }
    
  5. Then add the following methods to QAAppDelegate.m
    // We are registered, so now store the device token (as a string) on the AppDelegate instance
    // taking care to remove the angle brackets first.
    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:
    (NSData *)deviceToken {
        NSCharacterSet *angleBrackets = [NSCharacterSet characterSetWithCharactersInString:@"&lt;&gt;"];
        self.deviceToken = [[deviceToken description] stringByTrimmingCharactersInSet:angleBrackets];
    }
    
    // Handle any failure to register. In this case we set the deviceToken to an empty
    // string to prevent the insert from failing.
    - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:
    (NSError *)error {
        NSLog(@"Failed to register for remote notifications: %@", error);
        self.deviceToken = @"";
    }
    
    // Because toast alerts don't work when the app is running, the app handles them.
    // This uses the userInfo in the payload to display a UIAlertView.
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:
    (NSDictionary *)userInfo {
        NSLog(@"%@", userInfo);
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Notification" message:
        [userInfo objectForKey:@"inAppMessage"] delegate:nil cancelButtonTitle:
        @"OK" otherButtonTitles:nil, nil];
        [alert show];
    }
    
  6. Open “QSTodoListViewController.m” and import the QAAppsDelegate header.
    <a href="http://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started-with-push-ios/#">#import</a> "QSAppDelegate.h"
    
  7. Update the NSDictionary in the IBAction in “QSTodoListViewController.m” :
    // Get a reference to the AppDelegate to easily retrieve the deviceToken
    QSAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    
    NSDictionary *item = @{
        @"text" : itemText.text,
        @"complete" : @(NO),
        // add the device token property to our todo item payload
        @"deviceToken" : delegate.deviceToken
    };
    

How to Test iOS Push Notifications in Azure

  1. Create a new To Do item and you’ll receive a push notification almost immediately.
  2. To see the toast message, create a To Do item then immediately close the app and you’ll see the toast message.

The post How to Setup iOS Push Notifications on Windows Azure appeared first on OptimusMobility.

How to Setup Windows Azure for iOS in under 5 Minutes

Below is a super quick-start guide to getting up and running on Windows Azure for iOS.

Azure is a powerful backend that can be used for powerful multi-platform mobile, web, and desktop applications. Today we’ll focus on iOS development with the below tutorial illustrating how easy it is to get a demo app up and running.

  1. Go to the Windows Azure website and setup a trial account. It’s free for 90-days as long as you don’t go over the usage limits.
  2. Once your account is created, head to the Azure Management portal and create a Mobile Service.
    Screen-Shot-2013-03-18-at-9.32.57-PM-300x147 How to Setup Windows Azure for iOS in under 5 Minutes
  3. Once the new service is running (takes a couple minutes), click into it and create a new iOS app (or connect to an existing app).
    Screen-Shot-2013-03-18-at-9.34.52-PM-300x191 How to Setup Windows Azure for iOS in under 5 Minutes
  4. Create the data table and download the starter project.
    Screen-Shot-2013-03-18-at-9.36.25-PM-300x255 How to Setup Windows Azure for iOS in under 5 Minutes
  5. Run the starter project in the simulator and it’s ready to go!
    Screen-Shot-2013-03-18-at-9.37.25-PM-300x170 How to Setup Windows Azure for iOS in under 5 Minutes
  6. Simply type in a task and press “+” to add it to the list. Pro tip: to delete a task, swipe from either left-to-right or right-to-left.
    Screen-Shot-2013-03-18-at-9.42.09-PM-300x279 How to Setup Windows Azure for iOS in under 5 Minutes
  7. Add a todo item, then loop back to the Azure portal and see your entry:
    1. Click Mobile Services
    2. Click on the database you’ve started
    3. Click on ‘Data’ to see the data you’ve entered
      Screen-Shot-2013-03-18-at-9.43.50-PM-300x118 How to Setup Windows Azure for iOS in under 5 Minutes
    4. Click on the table and you can see your entry.
      Screen-Shot-2013-03-18-at-9.44.41-PM-300x106 How to Setup Windows Azure for iOS in under 5 Minutes
    5. Bonus – Go back to the Dashboard to see usage stats.
      Screen-Shot-2013-03-18-at-9.46.05-PM-300x98 How to Setup Windows Azure for iOS in under 5 Minutes

That’s how easy is to get a simple POC up and running on Azure. Stay tuned to this blog as we’ll dive deeper into Azure and how it can be used to setup Push Notification, Authentication, and more!

The post How to Setup Windows Azure for iOS in under 5 Minutes appeared first on OptimusMobility.