Brian Klaas talks about “Level Up Your ColdFusion Web Apps With Amazon Web Services” in this episode of ColdFusion Alive podcast with host Michael Smith.
Amazon Web Services (AWS) is well known to developers for providing a vast army of on-demand servers on which you can run anything, including CFML or Node.js. AWS offers a whole lot more than servers in the cloud, though. AWS is comprised of over 40 services which enable powerful Web/mobile application functionality, and you can tap into nearly all of them using your favorite programming language. With only a few lines of code, you get powerful, hugely scalable functionality that would otherwise be near-impossible to build yourself. This talk will show you how to tap in to the power of multiple AWS services from your CFML code, and mix in some Node.js goodness along the way.
In this session, you'll learn to:
- Get super fast, infinitely scalable file storage with Amazon Simple Storage Service (S3)
- Invoke on-demand Node.js microservices through AWS Lambda
- Tap into AI to manage and search images with Reflektor
- Utilize a high-throughput NoSQL datastore with DynamoDB
- Plan for common problems when dealing with cloud service providers
- What are Amazon Web Services and why should CFers care?
- It is far more than just EC2
- AWS is comprised of over 40 services which enable powerful Web/mobile application functionality
- What exactly is S3 storage?
- Get super fast, cheap, infinitely scalable file storage
- Replicated over multiple data centers around the world
- ACF and Lucee both support S3 storage
- Storing log files, images, videos, user docs
- Athena for text file search
- Life cycle policies – if files not used in over N months move to slow storage (Amazon Glacier).
- How to tap into AI to manage and search images with Reflektor
- Amazon Rekognition – image recognition for faces, auto tagging, matching confidence score
- Poly text to speech
- Lex natural language process
- The great S3 outage of 2017
- loss/downtime risk vs cost of home building or duplication at other cloud services
- Amazon eats their own dog food (AWS including S3) ⇒ they are highly motivated to have super high up time.
- How you can Invoke on-demand Node.js micro services from ColdFusion through AWS Lambda
- Lambda Run in Docker containers but without you have to provision them or the servers underneath them
- AWS Lambda automatically scales your application by running code in response to each trigger. Your code runs in parallel and processes each trigger individually, scaling precisely with the size of the workload.
- With AWS Lambda, you are charged for every 100ms your code executes and the number of times your code is triggered. You don't pay anything when your code isn't running.
- Utilize a high-throughput NoSQL datastore with DynamoDB
- Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a fully managed cloud database and supports both document and key-value store models.
- Geo distributed data for speed and increased reliability
- Avoiding common problems when dealing with cloud service providers
- Vendor lock in
- Fall back code when your provider fails
- Friendly service degrading – only certain functionality stops works
- Cached data
- Getting started
- It is easier than you might think
- SDK are easy (even though originally written for Java)
- CFDUMP is your friend
- AWS blog and stack over examples
- Why are you proud to use CF?
- Productive fast
- Easy to combine with other languages and SDKs
- Be a polyglot programmer!
- WWIT for you to make CF more alive this year?
- More people highlighting the cool projects they have created in CFML
- What is possible with modern CF
- Better official tooling support
- Fast CF server spin up
- What are you looking forward to at CFObjective?
- Learn a bunch from smarter developer
- CFML + a bunch of other exciting stuff
Mentioned in this episode
- Amazon Web Services
- Re:invent conference with 1000+ sessions on AWS and 40,000 attendees
- S3 storage
- Amazon Glacier
- Amazon Rekognition
- Amazon Photos
- AWS Java SDK
- Boto library for Python
- The great S3 outage of 2017
- AWS Lambda – lets you run code without provisioning or managing servers. You pay only for the compute time you consume – there is no charge when your code is not running
- Elastic video/audio transcoder
- Amazon DynamoDB document datastore
- Amazon Athena
- Pay per query
- AWS availability zones (free) and regions (costs more)
- IBM openwisk
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.
Brian Klaas is the Senior Technology Officer at the Johns Hopkins Bloomberg School of Public Health’s Center for Teaching and Learning. As the architect for eLearning technology at the School, he leads a team that designs and delivers custom online courseware to students and members of the public health workforce around the globe. In addition to designing software and delivering courses, Brian is the manager of the Johns Hopkins Web Technology Forum, teaches “Introduction to Online Learning,” and leads faculty training and development courses. Brian has presented on software development and eLearning at conferences throughout the country, including jQuery US, cf.Objective(), CF Summit, Into the Box, NCDevCon, Adobe MAX, UBTech, and CUE.
Michael: Welcome back to the show. I'm here with Brian Klass, and he is speaking at C.F objective in a few days' time about how you can level up your web apps with Amazon Web Services. And before you yawn, there’s so many things in Amazon Web Services you probably didn't even know are there. And we will talk a bit about that and all the amazing things you can do with S-3 storage. And he is going to be demoing at C.F. objective how you can use ColdFusion and 00:28 [Node J S micro-services to invoke on demand way so, you can use a WS lambda, and we'll talk about what that is.
And also, we've got some artificial intelligence stuff you can call from your app as well which is processing images using a thing called ‘reflector’. And we'll also look at some notes sequel data store using dynamo D.B. And he's going to be talking about common problems you can avoid when you're dealing with cloud service providers. So, I hope on interesting stuff the modern web app development. Welcome Brian.
Brian: Thank you, thank you Michael very much.
Michael: So, let's just start off. People think they probably know what Amazon Web Services is, there's actually more to it than you might think, right. Tell us what it is and why we should be paying attention to it.
Brian: Absolutely, so I think for most developers their introduction to Amazon Web Services was or is a service known as EC-2 which is elastic Compute Cloud. That's their vast array of virtualize servers that come in all sorts of shapes, sizes and memory and speed, and all that stuff. And a lot of people say oh we're going to move stuff out of our data center on the AWS, right. And by that, I mean they're going to run their on demand applications, their custom apps, their licensed apps, inside of the AWS’s computing center, server centers so that they don't have to run their own datacenter because nobody wants to run servers; it's incredibly boring. Well, that is actually the most boring part of AWS.