A first class trip to the Cloud — while paying for coach
A first class trip to the Cloud — while paying for coach
In this article, I share my experience on what to think about before starting your journey to the Cloud — all the benefits, how to get started and what to think about during the process. I work mainly with solutions in AWS, but the concept also applies to other cloud suppliers.
Why a move to the Cloud?
The absolutely greatest reason I see is the scalability and flexibility that you get access to. Instead of going out and purchasing a computer and installing it, you create an account at AWS, choose what type of machine you need, configure it and within minutes it’s ready to use. When you no longer need it, you can just shut it down. The computer you bought, on the other hand, is as it is. If you need a more powerful computer, you can either go out and buy a new one or buy parts and upgrade it, while with AWS you can simply start a new more powerful machine.
Fixed costs become variable
The cost of AWS is based on how long you use resources in AWS.
The example above illustrates one of the fundamental differences between owning your own computing resources versus utilizing the cloud, namely that fixed costs become variable. This is a great advantage while at the same time, also a risk.
At Purple Scout (where I work), a couple of trainees started a project in AWS where they needed a database, when the invoice came, the manager became “a little” surprised, since it was almost $ 1000 more than usual. The trainee had chosen a rather large machine and it was also replicated into several zones. The lesson here is to keep track of what access and to whom you grant it to your cloud environment, and to have them start with small resources. A paradox is that many developers have rights that allow them to launch cloud resources for thousands of dollars, but need written permission to buy a box of pencils.
A major advantage is the redundancy and reliability
AWS consists of a number of regions, 24 at the moment. Each region consists of at least two, usually three or more Availability Zones (az) and the zones are geographically separated. If we take the AWS Stockholm region as an example, its three zones are in Mariestad, Västerås and Eskilstuna. Each az in turn consists of at least three data centers located in separate buildings. Which means that within an AWS region, you have the option of redundancy that at least six different data centers offer. A provider of traditional data center solutions rarely has more than two. But of course there is also a problem when it comes to cost. On the one hand, AWS charges for data you send between zones, not much, but if you send large quantities of data you should watch out, especially if you choose services such as the database that was replicated across two zones it becomes twice as expensive. Here, one should review the requirements set by the business. Does my database always have to be available or is it more cost effective for it to be down during the time it takes to restore it from a backup instead?
Another reason to use the cloud is AWS managed services
Among these are various database systems, but there is also a great deal of other technologies. Everything from different queuing and caching systems to Artificial Intelligence (AI) and blockchain. The benefit of using the managed services is that AWS takes care of large parts of the daily operations and updates. It is also very easy to scale up or down the service as needed. Which services should you use? Well, that depends on the balance between how much of your staff’s resources you are prepared to put into operation, versus the development of your core business.
One last advantage with AWS
It would have to be the opportunity to have your own infrastructure in code. You can also use code for the environment in which the software is, to be run in the same way that you manage code for the software. Everything from rights to networks and machines. This feature has no back side, it allows you to have full control over what resources you use. Having your own infrastructure as code also allows you to easily create a new copy of your environment, either in order to test new, expand existing or completely recreate it after an incident.
What steps should you, as a company, take if you want to start using the cloud?
The first thing I think you should do is to test, to get an idea of what it is like to work in the cloud. There are loads of tutorials where you learn about the various services. But don’t use what you test from the beginning in production! Test and then throw it away.
The next step is to decide which strategy you want to use for accounts and user rights. Most companies start by creating an account, where everyone who needs access gets administrative rights. This means that they can do everything except see the costs. After that, services usually are set up in a random way, and eventually no one really knows what is needed or what just remained from a trial run. This is rarely easy to sort out and always requires resources, so you don’t want to end up here.
AWS has a concept with organizations where you collect accounts for different functions under a root account, where all bills are collected. Typically, the organization has one or more development accounts, production accounts and test accounts. In the different accounts you can define rules for who has access to them and what different users are allowed to do. For example, in a development account, you can limit what types of machines a user is allowed to start and what services it is entitled to use. A production account can be completely locked for manual changes, all changes then take place via the infrastructure code.
AWS partner program
If you ask AWS for help, you will be referred to their partners. If you don’t happen to be a large multinational company, then you might get help from their Professional Services department. A good idea is to connect with an AWS partner early in your cloud journey. A partner can help you with strategies for users and accounts, but also advice and help you in setting up the architecture for your business at AWS.
Another good idea is to have staff that is trained in AWS services. There are a number of certifications within AWS at different levels and with different orientations. These certifications really provide a good insight into how to best utilize AWS services. To become an AWS partner, you need to have a certain number of employees who are certified, so using a partner can be seen as a shortcut to accessing the knowledge that the certifications actually means.