Cognos on Cloud (AWS, Azure, or GCP?)
Running workloads in the cloud is on everyone’s radar these days. Whether a company is already deployed on the cloud, actively migrating to the cloud, or just thinking about it. For many companies, taking advantage of the scale and the services that public clouds provide is becoming a critical piece of their infrastructure. However, these platforms are large and often complicated for companies looking at them for the first time. For Cognos administrators specifically, looking to navigate this new terrain can be a challenging undertaking. Often, there are many more questions than answers.
How do you deploy Cognos in the cloud?
Will Cognos perform better or worse in the cloud?
How large of a lift is the migration?
Do we have to redesign our entire architecture?
Will running Cognos in the cloud save us money?
Will any of this make my team’s life easier?
There are a lot of questions when looking to move Cognos to the cloud. Fortunately, PMsquare has a lot of answers for you. Let’s try to answer some of the most common questions so you are on firmer footing when evaluating your own Cognos migration to the cloud.
The Big Three - AWS, Azure, GCP
The dominant cloud platforms today are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). All three offer their unique benefits and downsides.
Cognos on AWS
AWS is the most mature of the three and offers a wide array of services for nearly every business use case. They also support both open and proprietary platforms. If you need to run it, there is a way to run it on AWS. However, this breadth of functionality can leave newer customers confused as to where to start when architecting a solution.
Cognos on Azure
Azure, being a Microsoft platform, has tight integration with Microsoft technologies. It is a natural choice to select Azure if a business is already heavily invested in Microsoft’s technology stack. If a company isn’t as invested in Microsoft, however, this could be seen as a limiting constraint.
Cognos on GCP
GCP is the newest of the big three. By being newer, Google was able to learn from the mistakes of its predecessors. This means many of their services are well designed and considered easier to use than AWS or Azure. For businesses heavily invested in Kubernetes deployments, GCP’s Google Kubernetes Service (GKE) is the superior platform since Kubernetes was a home-grown Google technology. While GCP’s services may be easier to use, there are fewer of them (60+) compared to the number of services AWS (200+) and Azure (100+) offer.
How to Deploy Cognos in the Cloud
The cloud sounds great, and the major platforms all look appealing for different reasons, but where to start? There are three key concepts we try to follow at PMsquare when architecting Cognos deployments for the cloud:
Refresh Cognos servers frequently
Leverage managed services
Deploy using infrastructure as code (IaC)
In the rest of this post, we will look at a small number of services to focus on from AWS, Azure, and GCP when looking to deploy Cognos on those platforms.
Compute
The number one need of any Cognos deployment is servers. AWS EC2, Azure Virtual Machines, and GCP GCE all provide a simple way to provision virtual machines to host Cognos. Each service has its subtle differences, but the core experience will be the same between them all. Each allows for selecting a variety of configuration types across both Windows and Linux systems. The virtual machines can also be resized after launch. So, if you create servers that are too big or too small, they can be scaled-down or scaled-up to match the real-world demand of Cognos. This is a great way to save costs and only pay for what you need.
Databases
A major benefit of running workloads on the cloud is leveraging managed services. A managed service is when customers only use the service and don’t have to worry about provisioning infrastructure or patching and updating software. They’re great, and companies should use them whenever they can to offload that maintenance work to the service provider.
Managed databases are some of the most popular managed services provided by cloud vendors. Every team that runs an application needs a database. But those teams typically don’t have experienced DBAs to help manage and run those databases. This is why a managed database is so useful. Teams can use a database without having to do the heavy lifting of maintaining it.
Each cloud vendor has its own flavor of managed database service. For this post, we will just be focused on relational database services that we can use for the Cognos content store. Those services are:
AWS Relational Database Service (RDS)
Azure SQL Managed Instance (SQL MI)
GCP Cloud SQL
The core of each of these services is the same by providing a fully managed relational database. But there are some key differences regarding the type of database you can launch with each service.
AWS RDS is the most flexible when it comes to database providers. You can launch open source databases like PostgreSQL, MySQL, and MariaDB. Popular proprietary databases such as Microsoft SQL Server and Oracle Database can also be created. AWS also has its own custom-built database named Amazon Aurora that can be used with RDS. For Cognos, this means you can launch a fully managed instance of either Microsoft SQL Server or Oracle Database to host the content store.
On Azure, SQL MI will be your only choice for hosting the content store on a managed database as it is an instance of Microsoft SQL Server. Unsurprisingly, Microsoft doesn’t provide a managed service for Oracle Database. If you are agnostic to the database type used for the content store this won’t matter. But if your company is a heavy Oracle shop this would limit your options for leveraging managed services on Azure.
GCP’s Cloud SQL service provides open source options similar to RDS (PostgreSQL and MySQL). Unfortunately, like Azure, the only other database type it supports is Microsoft SQL Server. No Oracle Database.
A fully managed database is a fast and simple way to get started with a Cognos deployment. Whether you’re just looking to get started on your cloud journey or are already deployed on the cloud, we highly encourage incorporating one into your Cognos deployment.
Load Balancers
One of our standard recommendations to consider when deploying Cognos on the cloud is to do so with a load balancer. Why? It makes upgrades and maintenance easier.
Without a load balancer, a Cognos gateway is stood up for each environment. DNS entries then need to be created and pointed to those individual servers. If a new set of servers are needed, the DNS entries need to be updated as well. This sounds like a small step, but it most often is not. Another team typically manages DNS for the company. Pulling in members of other teams should be simple but typically adds more time and complexity. Not to mention the additional time if the new configuration doesn’t work immediately.
This is why we recommend deploying with a load balancer. Using a load balancer allows you to abstract the DNS entries away from Cognos so regardless if servers get replaced, you never have to reconfigure DNS. You just need to repoint the load balancer to the new targets. It also allows you to consolidate egress into your infrastructure. Placing the Cognos servers behind a load balancer means all application servers can remain on private subnets and sealed off from the Internet. This helps improve your overall security posture.
Just like relational databases, AWS, Azure, and GCP all provide load balancers as managed services. Which is great! This means you can quickly deploy a load balancer without having to provision any infrastructure or configure any software. These services dynamically scale as well. So as more users hit the load balancer, they will automatically increase their capacity to handle the additional load.
Infrastructure as Code
For those unfamiliar, infrastructure as code leverages code to programmatically create resources such as servers, disks, load balancers, security groups, and more. It is generally best practice to deploy resources in cloud environments using IaC tools instead of doing it manually in a console. Why? Using IaC means resource creation is repeatable, predictable, and auditable. You know what is getting created and can precisely recreate it again and again. This can be very useful when you need to deploy the same set of resources again. Like, for example, a new Cognos environment. The infrastructure and security rules for a Cognos environment will be the same between Cognos versions. This allows companies to quickly spin up a new environment in minutes instead of days.
Each cloud provider has its own, custom IaC platform that is offered as a managed service. AWS offers CloudFormation. Azure offers Resource Manager. And Google offers Deployment Manager.
There are also third-party IaC tools like Terraform, Ansible, Chef, and Pulumi that offer support for all three cloud platforms.
Adopting IaC early in your cloud journey will provide long-term dividends by greatly simplifying the lifecycle management of Cognos.
Wrap-up
Running Cognos workloads in the cloud has tremendous advantages to running them in a traditional data center. AWS, Azure, and GCP are all great platforms that have the tools and services needed to modernize and optimize your Cognos deployment. Cognos administrators can save time and costs by implementing some of the technologies and principles discussed above. If you need help in starting your Cloud journey with Cognos, or just want to talk shop, reach out to us! We would love to help your company navigate the transition to running Cognos in the cloud.
We hope you found this article informative. Be sure to subscribe to our newsletter for AWS technical articles, updates, and insights delivered directly to your inbox.