 So, today, I'd like to start off by talking about the standard DevOps story, which you all are familiar with being here at ContainerCon as well, but I also want to particularly talk about a lesser-known cousin of the DevOps story that would be the data scientist, i.e., how the data scientist likes to leverage the same type of containerized environment and things of that nature. From there, I also want to talk about a major U.S. bank. We're now up to three major U.S. banks, where I had this exact same experience and they came to us wanting to know if they can include SAS in this DevOps containerized environment. So, for those of you who aren't familiar with SAS, we're an analytical company. We have a high-level statistics. We've actually been doing statistics for 40 years, and a lot of the prox and algorithms and machine learning and things of all those natures that are particularly machine learning has been the big buzz we've actually been doing for a long time now. So that's what SAS is. And lastly, I want to finish up talking about how we were able, by once we as in SAS, we're actually in this container, how we were able to further leverage the power of the container itself when it's parked up next to Hadoop, which we're now seeing a lot of data scientists. Hadoops is their preferred median or preferred go-to data store, if you will, because Hadoop includes both compute as well as storage. So, starting off with, as we're all familiar with the story of the DevOps and open source. So, you know, it works, the DevOps story works great for the data scientists, because the data scientist is akin much to the developer in the sense of, hey, I've got this new project, so I need some compute resource in order to do this new project. You know, and in order to do this new project, I need certain tools that I'm used to doing my analytics with. Right now, currently, the big ones are up there, the Jupyter, Python, Notebook, things of that nature in Norse so they can do their work. Then it came into, well, what if I want to use something not so much standard as, once I have all these tools, you know, I now can point a web browser to this container that I've just created and now have my interface, so it doesn't matter where this container is running, it's running on cluster machines, it's running in the cloud, etc., etc., I now have my interface in order to interact with all these tools. So a couple of big banks came to us and they said, hey, they were actually leveraging this containerized strategy, so to speak, and they were like, hey, SAS, you know, we love your analytics primarily because our analytics are regulated, right? So when the regulators roll into the banks and they say, hey, we need to see how your CCAR scores or how you're going to make sure that the bank doesn't collapse tomorrow, etc., we want to understand that this logistic that you wrote in Python is correct or not. So a lot of times, a lot of these big banks will come to SAS as well as a lot of drug trial types organizations will come to us and say, because our analytics has already been proven out, the regulators, the auditors, they all know that the math is correct and they don't have to spend so much time proving out the math, so to speak. So they came to us and they were like, so they actually were leveraging this environment of we have this container environment, we have these web browsers, so SAS, can you run inside this container? So actually just last year, it came to one of our main account execs and they asked the question, so SAS, again, we've been around for 40 years, right? So we kind of said no, so then the account execs, of course, their head went spinning around backwards and the big banks were like, hey, if you guys can't operate in this environment, then, you know, that's really sucks. So they came and actually they came to me and they said, hey, do you think this will work? Because I've been playing around with some of the containerized technology and things that nature, I was like, well, in theory, yeah, it should work. There shouldn't be a problem. So we went down this path of hopefully proving out that if we could actually add SAS into this container. We had, we already had one of the major components, in my opinion, was this ability to, we have a web-based interface tool. Traditional SAS coders like to have, they have their code window, a log window, and a results window, and that's where they see all their outputs, things that nature, so we already had that via our SAS studio, so I was like, yeah, there's no reason why we shouldn't be able to do that. So basically, I went out, got my Linux install. You guys are, maybe some of you are familiar. This is a Docker build file, right? So I went out, got a Linux, Linux x86 install. I put it down, I tarred it up. Real simple, real simple Docker build file, got it up and got it running. So went back to this major bank and at their institution, they actually have a cluster machine spun up as their Docker, or their container cluster, so to speak. So their data scientist would open up a web page. They go to this web page and they say, hey, I need some compute resource. They click, click, click, boom, they have a container. They don't care where the container's at, where it's running, but they have a container with all the tools they need in it. So I was able to put SAS inside that container and at first I kind of went to them with my head hung a little low. I was like, yeah, I got a container and it's nine gig big. So I'm not sure how microservice-y this container is because in order to get, because SAS is a monolithic big stack of stuff. I was like, so I got, I was able to get it in there, but it's a fact container. Can I say that as an FAT, not PHAT? And they were like, and it surprised me because their main Docker guy was like, oh yeah, yeah, yeah, actually the ones they have with Python and R and they have a bunch of other tools and stuff like that. He's like, it's seven gig big. And actually it didn't, adding SAS in, actually a lot of that footprint, that nine gig was actually a lot of the same stuff. So actually only bump thurs up to about nine gig as well. So they are extremely happy with that. And then from the data science perspective versus most SAS people are used to running on their laptops and things of that nature. So the traditional analytic process would be, okay, I got this problem I'm working on. I go up, pull down statistically smart steps to the data on my laptop. I have SAS on my laptop or having on a work server and I'm working away at it. So from a development ad hoc data scientist person, he's used the laptop. Now, he's opened up to, wow, this container is looking through to this really big underlying host VM in their container cluster. So it was a huge boon for the actual data scientists themselves because they were able to access more memory and have more processing power, so to speak. So immediately, here I've got this data scientist, right? He's got his normal tools he's used to seeing. So now what we've augmented it by is we've just added one more sort of tool in their toolbox. So data scientists these days, right? They're really cool, they're really hip, and they're pretty much in the Jupyter iPod on development group and things of that nature. So then the question kind of came up, so well, wouldn't it be cool if we could do some SAS stuff through Jupyter notebook? And out on GitHub, which is open source, which is, so I've been at SAS for 20 some years, and this is kind of a, for us it's a little big deal, it's not a big deal for you guys because you're used to this. But we put out on GitHub, we open source effectively. Initially, our first pass was what we call a SAS Jupyter kernel for the notebook, right? So what that gives you the ability to do is, I'm not trying to make you guys have an eye test, was at the top is inside the Jupyter kernel notebook, that's just plain SAS code. So for the first time, I don't have to be in a SAS proprietary blessed IDE in order to do some SAS work, right? I can have a Jupyter server, Jupyter notebook server running. I can just do regular good old school SAS coding there, and then we output the SAS output back to just like the SAS always has done. So for the kids these days, right, I am starting my age, but the kids these days, they're all coming out of school, they're used to using Jupyter notebook, they're used to using all these open source tools. We don't have to tell them to put that down and pick up something called Enterprise Miner. They're like, I know nothing of this Enterprise Miner that you speak of, right? So we can keep the same type of tool they have, they can still use their Jupyter, their Python, I'm sorry, or their R. But then we also are enabling the SAS math. So for example too, like we got a PROC GLM, right? And PROC GLM outputs all these graphs for you. I'm not throwing down the gauntlet and sending out a challenge and say, hey, you can't do this in Python, I know you can do this in Python. There's a lot of routines out there to do this in Python. But literally those were the three lines of code and I got all this output from a data scientist or from an analytical standpoint. This is huge because this is the stuff they want to see. Yeah, we can do all that in Python. We can go out and get all the math lives you want and we can produce that type of output. Inside the Jupyter notebook, running your SAS container, we can get this type of output. And by the way, I think I might have glazed past a little bit inside that same container also at both of the large US banks that I'm working with. They are US banks, by the way. Keep forgetting I'm in Canada. But yes, at those two large US banks, we also run the Jupyter server inside that container as well as the SAS server. So now I have all the components I need because what we do here is no magic. We take the SAS code that we saw here. We point it to the SAS server, which happens to be your container. And it sends back the output to the Jupyter server. Boom, we have the output that way. So if you're like, well, that's all cool and great. But yeah, my guy is just no Python. We don't know the SAS stuff that you speak of. So sure enough, also, rather for us, it's a little bit changing for an old school company like SAS. It's been around since 1976 was out on GitHub, we put out SAS Pi. So now you have the ability just keep programming in Python, like you always have, we'll pass those results back from Python back from the SAS server back into your Python code. And then you can do your output just like you're used to seeing. So much the same idea, so just straight Python coding. I can take that and do output and get the exact same type of stuff. So now in Python, not ever leaving Python, I can make Python-type like programming, get make SAS calls. So now I have access to the SAS math, which I said earlier. Now I have access to the regulated math, the things that the auditors will come in and say inside my Python code. So what a lot of our customers are looking at using this for is they use Python as the driver, they use Python as the engine. When they want that regulated certified math, they can call out to the SAS logistic or some things of that nature and get the answer back and keep using the Python as the engine that they have. So two separate things, right? So first was the SAS Jupyter kernel. I don't straight coding inside of Jupyter. Second is SAS Py, I'm going to make SAS type calls from inside of Python. And then lastly, if you're still like give me SAS and don't pry that SAS out of my dead hands, this is basically we have the web browser. So at the first place we went to when they went out and did provisioned up their container, they would go to the web page and it would say, here's your container and here's a link to Jupyter notebook, here's a link to our studio, and then we were able to add in a third link to say, here's a link to SAS Studio. If you're used to traditionally looking at those three tabs up at the top left hand corner of code log and then you get some output and some results. The other nice thing with SAS Studio is that we have all the assistive type of stuff, so if you want the drag and drop stuff, if you're not the hard core coder, then you can still do some drag and drop and it's kind of our gooey, so to speak. So again, in the single container we have now enabled the data scientist to use the standard open source type tools that they're used to using, as well as adding in the SAS regulated tools as well. So with Hadoop, so now most of the data scientists and interesting enough at the first bank that we went to, not necessarily at the second one, but the first one we went to, they had this big Hadoop cluster and they were like, yeah, we never got SAS to connect to it. I'm like, really? I'm like, yeah, that guy blamed the other guy and then that the guy blamed us and we blamed the other guy, whatever. So anyway, so when we went in and we actually set up the container, the beauty of most of these container clusters is they just so happen to be parked right next to or co-located to the Hadoop cluster. So which is great, so now as the data scientists I have all these tools, now I have my data rich data lake data source, right? So and when we typically look at a Hadoop cluster, it's like the single straw pool thing, right? I'm going to pull some data. That's my statistically smart subset down here to my laptop. I'll do some work on it, right? So now with the SAS tools in there, there are six products that we can actually push and run inside the Hadoop cluster. If you're looking at like a means, a freak, a list, a sort, a rank, things of that nature, we actually will automatically convert to Hive SQL. There's no smoke and rears kind of thing. We send it to Hive SQL, we send Hive SQL over to the Hadoop cluster, and it runs inside the Hadoop cluster. We also can say, hey, if you don't trust the SAS querying with the language, then you can send, we can do two parentheses and say, hey, SAS here's some Hive SQL, I want to do this big join over in Hadoop. I don't want to suck this data back to my container in this case. So you can send the Hive over to there, it'll do the big join over there, it'll leverage the temp space in your Hadoop cluster and things of that nature, run it over there. And of course, you can always still inside your container, you still have access to all the other Hadoop queries, I can do some B line and things of that nature as well as your open source tools to connect to it as well. So that's kind of the run of the mill, if you will, interacting with your standard data scientist in your Hadoop environment. Since we put SAS inside the container, we actually have another, we can put some Java libraries, we call it our embedded process, but we put some Java libraries out in the Hadoop cluster. By doing this, we then enable this container to send work to run inside the Hadoop cluster. So this is big in the sense like, hey, I've developed this score, right? I'm going to score the likelihood that Tom is going to leave my bank tomorrow because he's subscribed to Gough Magazine and he bought a new car, right? He's going to hit a big score. So if I'm looking for Tom to find out if he's going to leave the bank tomorrow and have someone call him and say, hey, Tom, don't leave because we will get you a cash back on your next eight purchases or something and he'll stay at the bank kind of idea. If on a traditional statistical model, I'm taking a statistically smart subset of that data, I pull it back to my container. I do that work in my container. Tom's not in that statistically smart subset of the data. Poor Tom's going to leave the bank, right? By us embedding this embedded process by running the, taking the work and running inside Hadoop, not only are we running across all the data. So I will publish my model, will Tom leave the bank inside the Hadoop cluster? Not only am I running that model over there against all the data, but I'm also leveraging the compute power of the Hadoop cluster. Granted, now my container is way better than my laptop, right? We've already established that. But now I'm running with the, I have a 40 node Hadoop cluster, 24 cores on each one, each one has 512 memory, and I'm running against all of my data. So basically when you go through, when you go through their code, they come down to you and you go, well, Tom, leave the bank. That model is over there in Hadoop, run it over there, do not move the data. So now I've went from, okay, I've increased my compute power. I've increased my statistical lift by running against all the data. And now I'm not moving any data. For data scientists, this was a bit of a, not a bit. This was the value at the differentiator, right? I was able to publish my model, run inside the Hadoop cluster. And the best part of all this is the fact that when we create that model in Hadoop, we hand it off to Yarn, and Yarn is doing all that workload. So now the Hadoop DBA is not coming back to SAS with this head spinning around saying, you guys are in my cluster running crazy. No, no, no, we create a simple Yarn job. Yarn stands for yet another resource negotiator. So in most Hadoop clusters, Yarn is the standard, hey, this is what's going to manage all those resources over in Hadoop to make sure someone in the sandbox isn't taking too many turns down the slide or something along that lines. We can also are able to publish and run inside the Hadoop cluster via what we call our code accelerator. Which is basically simple data, in SASP, we call data step code. The data step is, hey, look, I'm looking at the data. For every time I see a column with the state of Ohio, I want to set a flag in the Buckeye state column to yes. So I'm going through all my who lives in what state in the United States. Again, I'm in Canada, and I'm going through all my states and I'm saying, so you're Ohio, so set Buckeye state equal to yes. That work will also all be done inside the Hadoop cluster with no data movement. So when we went to these two banks, we gave in the ability between having access to all their Python, all their Jupyter Notebooks. We gave them the ability to also run SAS inside that container down here. Then we extended that with the SAS kernel for Jupyter Notebooks, which lets you do SAS coding in Jupyter Notebooks, as well as SAS Pi, which lets you do make calls to the SAS math inside of Python. So I went through that really fast, sorry, I should have slowed down. But, so yeah. That was it. Any questions? All right, well, thanks guys.