 Hai, nama saya Michael. Saya akan berkongsi dengan kita sedikit tentang Klau Foundry. Klau Foundry, itu saya, Michael Cheng. Saya bekerja di Singapura. Bukan powers. Apa kongsi Klau Foundry? Sebenarnya, kongsi Klau Foundry telah menjadi IT tradisional. Seperti yang kita tahu, mempunyai penggunaan infrastruktur, storage, komputer dan runtime. Sebelum bercakap tentang data dan aplikasi, ia adalah IT tradisional. Kemudian, apabila Amazon datang dan meletakkan segalanya, keadaan virtual dan segalanya, sekarang kita mempunyai penggunaan infrastruktur. Sebenarnya, anda hanya perlu membawa runtime di tengah-tengah, dan keadaan Amazon di dunia hanya akan berkongsi dengan hardware. Sebenarnya, ia mempunyai penggunaan virtual yang anda boleh memasukkan. Sebenarnya, keadaan yang lebih recent adalah aplikasi dan penggunaan. Sebenarnya, anda hanya mempunyai penggunaan data dan aplikasi. Sebenarnya, ia mempunyai penggunaan penggunaan. Bagaimana anda menggunakan penggunaan penggunaan? Sebenarnya, ia mempunyai penggunaan penggunaan. Jadi, anda membawa penggunaan dan aplikasi dan itu saja. Jadi, kongsi Klau Foundry meletakkan segalanya. Sebenarnya, apakah aplikasi dan penggunaan? Kalaulah menggunakan penggunaan berkongsi. Mereka menghasilkan aplikasi yang memperbaiki aplikasi yang memperbaiki aplikasi untuk anda mengembang dan menggunakan aplikasi tanpa benda untuk mencyadar infrastruktur. Jadi, ia berkongsi menggunakan aplikasi. Jadi, ia ada desainan yang lain dan anda menggunakan aplikasi dan data. Jadi, aplikasi menggunakan aplikasi yang berkongsi dengan berkongsi dalam dua jenis. sebabnya anda perlu mempunyai semua dalam data centre anda. Ini adalah di mana jika anda mempunyai platform dan servis seperti Cloud Foundry yang akan membantu anda. Jadi ada Cloud Foundry, ada yang lain-lain solusi seperti OpenShift, BlueMix, ada yang lain seperti Days dan DoCoo, yang saya juga akan bercakap sedikit lagi. Apa itu Cloud Foundry? Biasanya adalah platform open source dan servis software. Jadi anda dapat menggunakan ini untuk memperkenalkan aplikasi Cloud dan ini seperti aplikasi 12-factor yang anda bina. Jadi banyak aplikasi Rails yang kita ada boleh dibuat menjadi aplikasi 12-factor. Cloud Foundry adalah banyak hero-cool. Jadi anda boleh bekerja di banyak langsung dan framework. Biasanya ia menolakkan anda memperkenalkan pemeriksaan anda. Jadi anda boleh menggunakan pemeriksaan dan mengatakan saya mempunyai server database, saya mempunyai Redis, saya mempunyai MQ, anda memperkenalkan pemeriksaan untuk anda dan anda memperkenalkan aplikasi anda dan anda tahu bagaimana untuk menghubungi semua pemeriksaan ini. Jadi ada banyak perkara seperti pemerikasi lanjut dan pemerikasi lanjut. Jadi ini adalah sebuah langsung yang digunakan. Jadi anda boleh membuat java di dalam ini. Anda boleh membuat Ruby. Anda boleh memperkenalkan java dengan Ruby. Anda boleh memperkenalkan aplikasi Rack, Rails dan juga aplikasi Sinatra. Anda boleh memperkenalkan java. Jadi perkara seperti Go. Anda boleh memperkenalkan juga ini. PHP, Python, dan juga static files. Anda boleh memperkenalkan di sana. Jadi kita akan bercakap tentang Cloud Foundry. Jadi currently, anda boleh memperkenalkan Cloud Foundry. Biasanya anda boleh memperkenalkan Cloud Foundry dari Cloud Foundry.org. Dan anda boleh memperkenalkan dan memperkenalkan dalam data centre anda. Tapi ia berkata kita lebih suka pemeriksaan open source dari Cloud Foundry. Jadi ini Cloud Foundry. Jadi anda dapat melihat semua ini adalah syarikat yang mendukung saya sekarang. Jadi IBM ada di sini. Jadi jika anda semua menggunakan IBM Bluemix, tidak. So IBM Bluemix adalah penggunaan Cloud Foundry. Ya, saya hanya cakap saja. Jadi anda boleh memperkenalkan banyak perkara ini. Anda boleh memperkenalkan ini dan memperkenalkan ini dalam data centre anda. Tapi ia berkata kita lebih suka memperkenalkan untuk memperkenalkan. Kerana ada perspektif form ops yang sebenarnya tidak memperkenalkan proses memperkenalkan ini. Anda memperkenalkan untuk memperkenalkan sesuatu yang dibuat untuk memperkenalkan. Jika anda memperkenalkan penggunaan untuk di perjalanan servis, saya akan memperkenalkan. Jika tidak, jika anda memperkenalkan pemeriksaan open source dari Cloud Foundry, anda dapat memperkenalkan. Tapi ia lebih susah untuk memperkenalkan. Anda dapat memperkenalkan, tetapi ia memperkenalkan untuk memperkenalkan. Tapi ia memperkenalkan dengan mudah. Jadi mudah memperkenalkan dengan salah satu pemeriksaan pemeriksaan seperti Pivotal Cloud Foundry atau IBM BlueMix. Jadi dengan pemeriksaan pemeriksaan ini, mereka sebenarnya membuat banyak aplikasi aplikasi aplikasi aplikasi aplikasi aplikasi aplikasi aplikasi di atas Cloud Foundry yang membuatnya lebih mudah untuk memperkenalkan Cloud Foundry di tengah jalanan anda. Jadi, Pivotal Cloud Foundry adalah pemeriksaan open source plus dan dibuat di atas aplikasi aplikasi dan pemeriksaan pemeriksaan. Pemeriksaan pemeriksaan dan pemeriksaan. Pertama, PCF adalah lebih mudah untuk memperkenalkan. Contohnya, jika anda memperkenalkan Cloud Foundry, anda mungkin perlu memperkenalkan dengan banyak pemeriksaan yang mempunyai YAMO. Pemeriksaan pemeriksaan ini dapat memperkenalkan ke jalanan. Dengan Pivotal Cloud Foundry, mereka memperkenalkan pemeriksaan yang membuat anda memperkenalkan semua pemeriksaan anda. Ia juga mempunyai pemeriksaan yang baik yang anda dapat memperkenalkan sebagai pemeriksaan, memperkenalkan pemeriksaan anda dan memperkenalkan aplikasi anda dan sebagainya. Ada lain pemeriksaan yang lain seperti support LDAP, pemeriksaan metrik yang anda dapat memperkenalkan, dan dari jalanan, ia juga memperkenalkan dengan perkara yang seperti Neo4j, Revit MQ, Radis dan sebagainya. Seperti di Singapore, kita dapat pemeriksaan PCF seperti Postgres, Radis, Revit MQ, dan beberapa pemeriksaan yang lain sudah dihubungi bersama-sama. Ini sebuah cerita cepat dari pemeriksaan mereka yang beritahu anda tentang perbedaan antara pemeriksaan open-source dan versi komersi. Ya, ada beberapa perkara di sana. Tapi jika anda ingin memperkenalkan Pivotal Cloud Foundry sekarang, ia adalah cara mudah, ia digunakan pemeriksaan yang dihubungi. PWS Jadi anda dapat menggunakan ini untuk memperkenalkan Pivotal Cloud Foundry dan jika anda rasa itu adalah sesuatu yang anda ingin mempunyai dalam pemeriksaan anda, anda dapat mencoba ini juga. Jadi anda dapat memperkenalkan untuk pemeriksaan FreeTrial untuk memperkenalkan Pivotal.io. Anda dapat melihat itu. Ini bagaimana pemeriksaan ini mempunyai. Anda dapat memperkenalkan untuk pemeriksaan dan anda dapat memperkenalkan pemeriksaan FreeTrial yang berada di sekitar $87 jika anda memperkenalkan pemeriksaan PcfWorks adalah ia memperkenalkan pemeriksaan anda menjadi pemeriksaan dan pemeriksaan. Pemeriksaan anda mungkin mempunyai peraturan IT atau peraturan dan sebagainya. Pemeriksaan anda mungkin mempunyai pemeriksaan, pemeriksaan produksi dan sebagainya. Jadi anda boleh mengenali ACL untuk semua orang di dalam pemeriksaan anda. Jadi, anda dapat memperkenalkan untuk membuat organisasi dan tempatan. Itu cara logikal untuk membuat penggunaan. Macam mana ia terlihat apabila digunakan. Jadi semua ini adalah apa yang anda dapat dengan PWS. Dengan PWS, ia juga mempunyai servis tambahan seperti ini. Jadi anda dapat cuba untuk membuat ini. Ia seperti hero-koo. Anda tahu bagaimana hero-koo berlaku. Ia sangat seperti itu. Ia sangat seperti hero-koo. Di mana anda menggunakan build packs. Anda menggunakan pilihan yang sama seperti build packs yang anda dapat pada hero-koo. Sebenarnya build packs yang anda gunakan untuk Cloud Foundry adalah sebenarnya yang menggunakan build packs hero-koo. Ia sangat sama seperti itu. Anda juga boleh mempunyai interface dengan PCF menggunakan interface dengan komand-line. Seperti bagaimana anda mempunyai hero-koo. Jadi anda dapat menggunakan PCF CLI di sini. Anda juga boleh membuat penggunaan bagi penggunaan. Anda boleh membuat penggunaan bagi penggunaan. Ia dapat menggunakan penggunaan dari web. Saya akan membuat penggunaan sekarang. Saya akan cuba membuat penggunaan dengan cepat. Apaan itu? Saya akan melihat saja. Bersyukur. Ia adalah penggunaan basketball. Saya tidak berminat dengan dia. Saya akan cuba melalui akal saya sekarang. Anda tahu apa yang saya katakan tentang penggunaan hidup, bukan? Ia selalu mengalami apa yang kita perlukan terlebih dahulu. Internet, apa yang anda tahu berlaku? Saya cuba menjadi keadaan di sini. Tidak mengapa. Ia mengambil saya. Ia adalah web servis Pivotal. Ia adalah versi yang menggunakan PCF. Ia hanya mengambil PCF. Kita mula keadaan di sini. Ia mendapatkan jawapan sogar ini sekarang. Saya interrupted masalah seid subscribers dengan pula mail nos. Saya akan mencari sebuah p Thor. Saya akan membuat peminat. So I am using a little app that I wrote. It's a Rails app. So I can go to the web page. So basically the commands can run to log in using a command line. And I can also create a service over here. But I'm going to try and create that right now with the web interface. So I create this postgresdb. I don't have many applications yet. I don't want to bind it to anything. Development space. Cool. So that's done. Next, I need to push my local app to this guy. Before that, I need to actually log in on my command line. So let's do that too. Let's see. I'll log into this guy. Right. Yeah, so this is my personal account. So you log into that environment. So next thing I can do is try and push this up there somewhere. So, yeah. I'll try to push this to a guestbook. And the hostname is basically a subdomain that I add in front. So because this demo.guestbook is probably quite a common name. So I just try to add something not so common. Probably my name. So if you point out to people that Cloud Foundry or PWS, you actually have a domain name that I gave you. Cfapps.io. So you can actually do that for your... You can attach any domain that you have for your own web, for your own installation as well. So you can see here it's picking up the build packs. The stuff that's needed there. Oops. No. Right. They upgraded their build pack recently and removed support for Ruby 2.3.1. This is rather embarrassing. Yeah, but you can adjust. You just push it up there. Okay. I think I have a backup. Let me see. Do I have a screen? I don't have a screen. Okay, fine. I used to have a screen here that shows you the food deployment. So once it's deployed, it works a lot like how you do stuff on Pivotal Cloud, on Heroku. Okay, I wrote this app some time back earlier this year, or later in the middle of last year. What happens if you just change the version and try to push? You could. I could go for a lower version of the build pack. So I will spend this opportunity to show you the manifest file. So I was... Deployment and manifest. So the main difference between PCF and Heroku is that with PCF or Cloud Foundry, you can create a manifest file which you can declaratively set up how much RAM you need, what this space you have, what services it's attached to. And even the build pack that you need, you can specify all that in the manifest file. I will try to show you the manifest file for mine. It's a very simple build pack like this. I can do CF build packs to show me... We should show me all the different build packs that are available. I hope... I wonder whether I can use a lower version build pack. I can do a quick search. If you don't even indulge me, I'll try to do a quick search of what is the last known build pack that supports 2.3.0. Right. Releases. So what we're using now is 2.1.6.30. Wow, okay. Ruby Ruby Ruby 2.3.0. Okay, I'll go for the back. Still have 1.6.0. Okay, let's try to get this one. Let's see. I don't know. Is that the correct one? Nope, not the right one. Shit, how do I change? Unfortunately, I'm not sure how to change to this one. Okay, I've not actually done try this before. Usually, if I haven't used a lower version of the build pack, I will tell my system in and they will basically upload the build pack version. So if you look at... You can actually control what kind of build packs are there. In this case, it's the one that's given to me by PWS. I could put in a URL for the build pack but I haven't actually tried it before. Technically, you could find the right version behind. I haven't tried it yet. I don't think I can upload my own custom build pack yet. So essentially, I think I did a bad demo. I'm sorry. I apologize profusely. Anyway, so the problem manifests. So as I said, there's a demo file that lets you configure what kind of things it goes in. There is an example of... Here's an example of what you can find on Bluemix. Bluemix give you a very nice manifest generator that lets you create and specify the build pack. You can basically set all this up, memory, instance, number of instances and all that. You can scale it. Of course, you can do the scaling as well in the command line and even on the website. Another thing Kooting you can do is actually lock into an app container. So basically, all apps are running in a Linux container. They're deployed as Linux containers. You can actually access it into any of the running instances in your application. And then you can do a check out the files that you have deployed. Are they actually there and so on and so forth. Another thing about Cloud Foundry is that it's not backed by Git. So you don't need to... You can... You don't rely on Git to do deployment. Basically, when you do CF push, you just HTTP and it uploads all your files or your local folder into the server. So you could actually do this deployment easily on the CI server like Jenkins or whatnot. So we actually have a Jenkins server. There's a Cloud Foundry plug-in where you key in all the credentials and all that. It's all set there and you will be able to basically upload the stuff for you. If you're deploying this in your enterprise and company, you probably have some legacy databases and sometimes some of these legacy databases you don't have proper support in Cloud Foundry. For you to work with those things, you can actually create user provided services. Basically, you need to expose a service which can input the things like locking credentials to your legacy databases which will then be exposed as environment variables to your applications. You can also create your own managed services for Cloud Foundry. So let's say for example, you have your own systems with your own data sources. You can actually expose them to your applications that are hosted in Cloud Foundry. So basically, you basically let developers do self-service. The developers can say I need this data information from this legacy database. I need information from another legacy database. You can actually use user provided services and service brokers that you write to basically support those additional things. So that's pretty much it. I'm sorry I did a very bad demo today. I should have been a bit more prepared. Do you have any questions, guys? So why do they remove support for certain versions and then screw their customers? To encourage you to use the latest version. But that need to be fair, PWS from Cloud Foundry's perspective, PWS is kind of like the reference deployment for PCF and they usually use the bleeding edge or the latest version of things. If in single power because we have PCF installed and we have full control over what goes in there, we could upload older versions of build packs which has better support for other things or like say better support for older stuff that we have written. In a way it will encourage you to try to get upgrade the latest version. So, yeah. They give you warning that it's being deprecated? If your app is already deployed, there's probably no danger of that happening. But then again all the build packs and all the information are actually open source. So you can actually follow those open source projects or you can just just keep to an older version of the build packs. In this case I don't actually have access to upload older build packs into PCF or other PWS which is what I'm using now. But if you have it hosted in your own data center you could potentially do that. Yes. Can you change the tag if you get it back on GitHub when you try to download the build pack? Tag. Yeah, I can do that. So what we want is 1628. Is that the one? Yup. Let me see whether I can just get this one. Oops. Sorry. I can download the zip. Anyway, let me show you a little bit about the CF command line. So there's a whole bunch of things you can do in the CF command line. So let's see cf- cf-help-all. So basically you can do you can do things like set and run variables, check out your install plugins locally. You can do other stuff like the security groups in the setup. You can manage services like service brokers will be things like your radius or your Postgres databases that you're connected to. You can manage your space, your organization. You can look at the build packs and so on and so forth. Can I create a build pack? Let's see what this command gives me. Sorry about that. I could. I could also do that. Was it 2? Yup. I think it should work. Untuk whoops should be okay. Let's try this again. See whether it works. It looks like it does. Yay! Sorry. Thank you. That's rather embarrassing. Sorry about that. What kind of configuration management or administration tools configuration management in terms of what? In terms of what? No, you don't need this because you don't need chef or puppet or anything because you're not managing servers, you're deploying applications. So how does it abstract this? You basically deploy an app to the you're deploying an application only. You need to deal with the application and the data and data sources that it connects to. The ops will be so that's a good question. If you're using from an ops perspective so by entire slides that was mainly about a developer perspective as a developer working with Cloud Foundry your user experience is very much like how you use with Heroku. From an ops perspective deploying this the only way to deploy this Cloud Foundry is using a configuration management software called BOSCH. BOSCH is basically it completes both configuration management and release management. So basically with BOSCH it actually manages the configuration of all the different virtual machines that Cloud Foundry needs to work with. It also versions the releases so that you can actually easily roll back to the older version if you need to. So basically you have configuration as code or managed in one giant YAMO file in a way. There are a lot of community releases of for different things like concourse which is CI server RabbitMQ MySQL and so on and so forth. So these are basically BOSCH is the preferred configuration management to use for deploying Cloud Foundry. So for deploying Cloud Foundry depending on how you size it you can take up to quite a lot of virtual machines because the way that it works is that it's scaled up in a way that you can easily deploy apps and in a way it helps developers who are working in enterprise environment where I don't basically you don't need to request of virtual machines anymore because as a developer I just need to worry about deploying applications. Virtual machines are already deployed for you or provisioned for you as part of Cloud Foundry's release in a way. Ya? Does that answer your question? Cool. Oh, cool. It looks like it's deployed. Okay, let's try and look at the page. Something went wrong mainly because I did not migrate the database. Surprise. Ya, so I can do this. Hopefully. So basically I can run arbitrary commands here like and basically run it in that particular instance. Hopefully it works. It should work. I hope. In any case I should show you right now if I do CF, wait. So if I do CF SSH into all the way it's deploying, okay. So there are couple of ways of running arbitrary code on the server so I've chosen one of the more destructive ways of doing it. Basically I override people are familiar with Docker. I've used Docker before. So Docker as a command that runs, right. So I'm actually overwriting the default run command that the build pack uses and I'm replacing that with rake db migrate. So after that I've changed back to just now which will revert back to the original build packs version of the run command. So there are other ways that are recommended for this if you do migration on a regular basis. One of the ways for doing that is to use an additional rake task. So you can run a rake task before you run Rails server and the rake task will basically do the migration first. You should look for the first instance of you basically look for the first instance of the Cloud Foundry app run migration from that instance and then revert back to running Rails. So I've done that and I'm reverting it back to the default command which is to run Rails server. And hopefully at the end of this I should have an application running. So I can do other things like CF apps to show me what are the applications I have running right now and services. It shows me the different services that are attached and so on and so forth. There's a whole bunch of other things you can do in the command line. Of course, one thing I want to show you is CF SSH. Okay, app is running again. Let's CF SSH into my box. And at the same time I can try and reload the page. Yes. Running. Who say life demo is hard? It's very hard. Yeah, this is a very basic stuff. Yeah. Hello. Back. So on the right-hand side you'll see I've actually logged into my application now. So I can look inside app. You can see my applications here. Right? Right, so yeah, that's all I have. Any questions? Any other questions? Yes. Right, so when you attach a service to your application, it exposes certain environment variables like database URL. And then you can make sure your application uses those environment variables. Of course, you need to also attach an app. So in this case if you look at my manifest file, my manifest file actually tells me I need to attach myself to a service and the service is called PoSquareSDB which you saw me create when I first logged into the web interface. Right? I think it will be okay. So when you do CFN guest book, you can see all the different environment variables that were exposed to this guy. There is another environment variable called VCAP. It's a JSON file. So it's a JSON string, so you can see this here. And inside here there is an SQL which is the SQL database that we connect to. And you can see it's actually an array. So if you attach more than one, you can actually look into this and iterate through the arrays and find the correct exact one. Of course, there are also specific environment variables that are only there for this instance. So if I try to log again, this is a good thing with Cloud Foundry that it can show into your running instance and actually inspect things inside there, such as your environment. So my environment with environment, and if I can see all the environments that are actually there. So it's basically it's a car running Linux box here in a way, except it's a container. Okay? Cool. Yeah. What else for you're comparing it to? Right. So I was also comparing it to these other things, days. So if you try to install something you really like containers. So days is one of those other solutions out there which lets you, basically it's backed by Kubernetes. So you use Kubernetes to deploy applications and you also uses build packs to do deployment. This is actually behind this right now. And if you also another option out there is called doku. Basically it's like Heroku, but everything is it's like Heroku but only for one machine. It's also backed by Docker. And it's I don't recommend this for production. It's probably good for toy toy projects that you're working on. It's yeah, it uses build packs as well. It uses exact same build packs that you can find on Heroku. But it's a good way to kind of like test out stuff. For example on Heroku your file system is unstable, for example. With this with doku you can actually deploy a real set that uses SQLite and basically it will not. It will not be a rather safe stable deployment. And it's also backed by Docker. So you can actually use doku containers that you you can just expose to these applications that you deploy here. So basically it's it's kind of like they think about how can I deploy a pass we've just come up with just bash scripts. So basically this is what they came up with. So you use build packs, deploy build packs and installation fairly straightforward. Yeah. It's good for testing. I wouldn't recommend it for production. You could try. We do have certain services playing with that's running on doku. In the early days before we had Cloud Foundry installed, we were using doku for some of the test applications that we were deploying. Yeah. So something you can look into. One of the thing that I don't like about doku right now is that for example you will have environment variable which is multi-line. Like say you have some private key that you need to include. Doku doesn't have a proper way of multi-line environment variables which which kind of sucks. So at least with Cloud Foundry that can actually include multi-line multi-line environment variables in the YAMO file which can which lets me push those data up. Okay. Perseveran I'm more experienced with doku than days. Days is as I said is backed by Kubernetes. So if you're interested in you already have some investments in Kubernetes that you want an easier way for your developers to deploy apps this could be an option for you guys to consider and basically if you have full control you still have all the scaling capabilities and management capabilities that Kubernetes gives you which can be an advantage if you're running services or they're already using Kubernetes. Ya. Is it okay? Okay. So once again we're hiring so Ya. That's all I have. Thank you.