How to Start using Cloud Computing as a StartUp

Ewere Diagboya
MyCloudSeries
Published in
5 min readApr 6, 2019

--

Cloud Computing Image: www.kcsitglobal.com

A lot of tools and services have been released in the cloud space across the three major cloud providers. New services are churned out almost every week across all the providers. It can be quite hard sometimes to pick which set of tools and services to use in the multitude of services provided by cloud providers. These services are not really meant or released to confuse the customer, but they are actually meant to help business grow and scale and become better.

There is a default mindset for lots of startups going to the cloud, to use certain services. These services are the VMs (Virtual Machines) or in some providers EC2 instances (AWS). The perspective around this is to setup a fresh server, install the interpreter/compiler needed, Python, Ruby, Java whatever it is. In some cases you have to install other dependencies that go with the application that helps the application to run smoothly. You also need to ensure the network and security later of your setup is top notch. Certain principles of blocking access based on certain security rules on the firewall layer. If you are storing images or other types of files in your application most likely you will have to store them within the server you already setup. This server will always have limit based on the hard disk that is attached to it. This means that you need to plan for a more scalebale storage, that will not be exhausted easily.

With every server/VM, you have to perform periodic application patches and operating systems security patches to handle and clear out all system vulnerabilities.

There is also a specific band of network that is allocated to the virtual machine. In cases when traffic spikes, there might be a lot of packets dropped on the network layer based on the bandwidth that has been allocated for this virtual machine.

These operations and others not mentioned form two kinds of costs. CapEX (Capital Expense) and OpEX (Operational Expense). For clarity, Capital Expense are one time expenses that you incur during setup of infrastructure. This expense is both financial and time. The financial aspect has to do with cost of acquisition of resources. In this context, the cost of the VM is the part of the capital expense. The time it also takes to install whatever interpreter or compiler is needed, other applications and services that the application needs to run smoothly. All these form the capital expense involved in running the application.

From the word operational expense, it is the expense involved in operating and managing the VM. Operations include, managing application availability, operating system security, network security, security patches and more. These operations form the operational expense which have a great impact on the application. There are updates that can impair the smooth running of the application. Hence updating operating versions or performing patches could be a nightmare and a no-go area for alot of sysadmins. In other cases libraries that the application was built with can be affected due to poor backward compatibility. An update to the library to lead to new bugs being introduced to the applications.

This leads to setting up a huge migration plan and perform impact analysis before any type of update or upgrade is done to the system.

All these increase the complexity of setting up, scaling and managing VMs in the cloud. But is there an alternative to all these. The answer is yes.

Serverless is the kid in the block that helps to cut down both CapEX and OpEX. Serverless is a set of technologies and principles that guides the way applications are designed and built and deployed in the cloud. It gives you the advantage of not having to manage the servers that power your applications, but focus more on the applications.

For many developers, engineers and system operators serverless means different things. It usually feels like you do not have full control of the full system as a whole. But in the end having to manage the servers at scale introduces alot of complexities, which we have mentioned a few of them previously.

For some being able to use one or two serverless services makes it seem they have actually gone serverless. But the concept of serverless goes beyond using serverless services. It is more of a psychological and perspective shift. The world of serverless brings in new understand and new horizon to how systems, services, applications are built, managed and scaled.

For example a serverless application deployed to AWS API Gateway and AWS Lambda is usually an API (application program interface). This application is configured to process a request with a maximum timeout of 15mins. There is also the limitation to the size of file that can be stored or uploaded in a Lambda function. The actual solution solution to the upload is to upload the to an Object Storage. An object Storage is a serverless storage with unlimited space. It can be used to store any type of file of any size, from Gigabytes to Terrabytes to Petabytes of data.

This is just a basic example of an application for upload. Every other kind of application to be built using serverless technologies and architecture requires, not only knowledge update of the tools and services, but the guiding principles and the philosophies used in serverless computing.

Whatever cloud computing vendor you want to use, the concept of Serverless remains. Serverless is one of the cheapest and efficient way any startup can start small spending almost nothing on infrastructure and grow. The growth of revenue of the business will be proportional to the cost of the resources used. In most cases, if the architecture is properly done, the cost of infrastructure can be much less. This will help reduce the running cost of the application eventually giving the business more revenue as they serve more customers. Whether your customers are within a region or globally, serverless is designed for that and scales automatically with little or no intervention from an “Ops” guy.

How to Adopt Serverless

  1. Understand all serverless tools and services.
  2. Deep understanding of Serverless architecture.
  3. Understand how to develop applications and systems on serverless.
  4. Use DevOps principles and tools to help you improve release frequency and change fail rate.
  5. Chart a strategic course to use more serverless designs and principles.

MyCloudSeries is on serverless and helps startups to achieve that. We don’t just assist with serverless adoption and implementation, we also help in DevOps adoption to help make the Serverless journey a smooth sail.

--

--