Technical development is something we encourage at SilverStripe, particularly in technologies that are reshaping the web industry. Amazon and their rapidly growing suite of Amazon Web Services (AWS) is ticking all the "we must learn this" boxes. As AWS is the cloud services partner for our SilverStripe Platform, the AWS Summit was a great opportunity to meet other users, find out about the latest features and how others are benefitting from the value AWS has to offer.
We learned so much throughout the day that we thought we would provide you SilverStripers out there with a top five most interesting points from the summit.
AWS Innovation at scale
AWS Solutions Architect, Rodney Haywood gave us a peek into the incredible scale of the innovation that goes into making Amazon Web Services happen.
AWS consists of:
- 11 Regions: linked with private optical fibre.
- 28 Availability Zones (AZ): under 2ms latency to other AZs within the same Region. AZs can consist of multiple data centres with less than 0.25ms latency between them.
- A data centre consists of around 50,000 - 80,000 servers, each using 25 to 30 MW of power. This is a lot of power and the great thing is that 3 of AWS’s Regions are now 100% carbon neutral. AWS built their own wind farms and is now trialing the new Tesla batteries to store the generated power.
An interesting insight was that while all of AWS's technology is getting better, the cost of networking this infrastructure is increasingly taking a larger portion of the total costs of running AWS. To help improve this, AWS decided to build their own networking gear that has most common networking functions built into the hardware. Networking in software has millisecond latency, in Network Interface Controllers sees microsecond latency, and in fibre, nanoseconds. So it makes sense for AWS to embed their networking software (metering, DDoS production, capacity limits, etc.) into the hardware for better performance.
AWS Lambda - Compute in the cloud
In addition to support for events from a range of AWS services, user applications can also generate events using the AWS SDKs. Meaning that a web application could publish an event and invoke a Lambda function which may in turn use the event data to write a log to AWS DynamoDB for example.
With many possible applications for this technology it's lucky that the service is charged in 100ms blocks and can be experimented with reasonably cheaply.
AWS CloudFormation - Versioned infrastructure as code
In the past, sysadmins would spend days setting up pieces of hardware. More recently cloud services have reduced this to hours, spinning up all the right services and connecting the dots.
Now we can just write JSON documents describing the stack and let AWS CloudFormation provision the whole stack for us in an orderly fashion. Because the stack is all described in a standardised, plain text format, it can be versioned and source controlled!
“Real cloud ninjas never touch the consoles. They ninja chop everything into shape with automation!” ~ Dean Samuels, Solutions Architect, Amazon Web Services
For SilverStripe Platform, we take advantage of CloudFormation to streamline the creation of new stacks. On top of CloudFormation we layer our own processes to optimise for the stack sizes offered. This further reduces the time for our Operations Team to onboard new clients.
Technical 101 - Your first hour on AWS
A few years ago it was a bit chaotic to try new cloud products. The process tended to be complicated, unclear and lacking documentation. Now, taking your first step onto AWS is easy with a straight forward sign up and getting started process.
There are some best practises in order to get the most out of your AWS account and have a clean and stable environment in which to work. It is still important to have an understanding of the security settings in particular depending on your goals for using AWS.
Thankfully AWS provides comprehensive documentation including instructional videos and labs to help with these first steps, making it easy for everyone.
AWS Cognito - Simplified security
Providing user logins and managing session states are important components of many web applications. AWS Cognito aims to simplify these common tasks with tools to securely authenticate users and save state from your application. For example, your users preferences. The service goes a step further with the ability to share app data across all of an end user's devices seamlessly, including support for when apps are offline.
Multiple login providers are supported such as Facebook and Google or you can roll your own. After a user is logged in they are assigned a unique identifier and from there you can securely store and sync app data in the cloud using the SDK. With the heavy lifting done by Cognito there is more time to focus on features (and bugs) which is definitely a good thing.
Judging by the rapid pace at which AWS is evolving it's an exciting time to be a web developer and I'm looking forward to further exploring the AWS platform and discovering all the new ways in which Amazon is shaping the web. See you at the AWS summit next year!
We choose AWS as the cloud hosting base for SilverStripe Platform due to their market leading reliability and flexibility. We have partnered with AWS to help companies from Skinny Mobile to Meridian embrace cloud computing. Check out the benefits of SilverStripe platform and our case studies.