9 ms·
GitHub's Metal Cloud
- sargun 11y agoThis seems wrong to me. This was the state of the art ~3 years ago. Now, I feel like all of the machines should be provisioned already with an OS, and a basic image, and a orchestration system like CoreOS / Mesos / Docker should specialize them. IMHO, requiring hardware, or the entire machine should be exception, not the rule.
- packetized 11y agoWait, why? Are you advocating for the use of an abstraction layer where there isn't always a business case for using one?
- detaro 11y agoJust because you use Containers/VMs for most of your apps doesn't mean that the lower levels don't need attention: installing OSes in the first place, hardware testing (both initially and to identify defects later), ... And for important fileservers and databases you're going to run on specific hardware for a long time.
- kbar13 11y agoyou realize the cloud runs on hardware right. machines don't magically come with everything installed and configured.
- ownagefool 11y agoEven if you were going to run CoreOS or Mesos on the machine, you'd still manage it booting your specific image, which you can change, rather than trusting the pre-installed dell verion and managing that relationship. Now there's probably some room for debate on whether these guys job should just be outsourced to Amazon, but github has some pretty good uptime and they seem to know what they're doing, thus they've probably already won that debate.
- lwhalen 11y agoSometimes you have a workload that really isn't a fit for virtualization/containers/whatever the latest Rails hotness is, at all, and you just need to throw a couple of cargo trailers of insanely massively-spec'd servers at the problem. In those cases, your 'old school' server provisioning toolkit had better be on-point. It's easy to forget just how ridiculously powerful bare iron is these days. Go to Dell.com and see how much RAM you can cram into a U or three or four today in 2015. Or see how many IOPS a modern NetApp or Symmetrix (EMC) can push with 'flashcache' or million-dollar SSDs. It is ridiculous, and while a lot of those platforms are meant for 'building your own private cloud', etc, there's a non-trivial amount of workloads/projects where bare-iron is the best tool for the job.
- icebraining 11y agoContainers are just a namespacing tool, though; you're still running on bare metal (well, bare Linux). Docker in particular runs on AuFS, which is slow, but other containerization tools just use a chroot.
- vidarh 11y agoDocker can run on any number of things, include btrfs and overlayfs+ext4, as well as devicemapper. E.g. CoreOS defaults to overlayfs.
- mariusmg 11y ago>Sometimes you have a workload that really isn't a fit for virtualization Yeah, any serious I/O load is unsuited for virtualization.
- devonkim 11y agoA lot of other latency-sensitive applications tend to have so many adverse performance conditions (that can usually be remediated with a lot of blood sweat and tears) under virtualization that it becomes easier to just go bare metal and deal with physical infrastructure overhead.
- mverwijs 11y agoI'm surprised everyone is still installing to disk. In 2008/2009, we had a POC where we ran the OS from memory after booting over PXE. * boot a live image into memory * point LXD/RKT/Docker to /containers * ... * profit!
- iofj 11y agoThe big issue I'm having with that is that it involves trusting vendors to get network boot right. Especially when it comes to the looping part of "loop until DHCP gets a response" it becomes a problem. One of the cheap vendor tries 30 times and then goes to a boot failed screen after trying the disk. Also, 1 time out of a 4-5000 or so network boot fails. Not sure why.
- vidarh 11y agoIf you have IPMI on the server this doesn't become such a big problem - you can reasonably trigger resets/reboots if it's not up after a given amount of time.
- iofj 11y agoWe buy the cheapest server that meets our needs, and buy it in somewhat larger quantities (often double what was originally envisioned for less than was originally budgeted). Much more efficient. But it does mean no IPMI. However I built a small circuit that sits on a power cable that can interrupt said power cable with a relais that sits on a bus plugged into our server, so we can do the reboot thing. I've been meaning to redo that power cable circuit using wifi as the linking technology, now that we have esp8266 available.
- mverwijs 11y agoThat's where iLO comes in. iLO is horrible, but you can ssh to it and set all manner of stuff. When we didn't have PXE, we had a script that told iLO to boot from CD, and that the CD was located at http://something/bootme.iso http://something/bootme.iso. iLO would always have network, and would pass the .iso magically to the server as device to boot from.
- jon-wood 11y agoI built something similar for a managed hosting provider ~10 years ago. That doesn't make it any less useful now, and this does a ton more than our tool did, far more elegantly. At some point someone needs to manage the actual hardware, whether that's you, or a middleman, and when you're handling hundreds or even thousands of devices its just not practical without automation.
- jssjr 11y agoGitHub's physical infrastructure team doesn't dictate what technologies our engineers can run on our hardware. We are interested in providing reliable server resources in a easily consumable manner. If someone wants to provision hardware to run docker containers or similar, that's great! We may eventually offer higher order infrastructure or platform services internally, but it's not our current focus.
- alpb 11y ago> We've hacked together a Ruby script that retrieves a console screenshot via IPMI and checks the color in the image to determine if we've hit a failure or not. That's pretty funny yet sounds a lot familiar to many of us as every now and then we all do these sort of nasty hacks.
- markild 11y agoAlso probably a lot better than to make MemTest86 do all sorts of network stuff.
- versteegen 11y agoYikes, having attended a computer vision conference last week, that sort of apporach is actually starting to sound reasonable and intelligent!
- shanselman 11y agoYa, I came here to talk about that line as well. The whole article was interesting, but that line stood out as a pretty surprising hack for 2015.
- osxrand 11y agoHah! I wrote a script a few months back and had to solve an issue of figuring out the state of a program running under wine, and that was my solution (to not in ruby, just a quick bash script). I was pretty happy with the results but if felt like an incredibly crude way to solve the problem, now I read that this is being used at much higher levels than I'll get to, maybe it's not so bad :)
- SEJeff 11y agoVs just buying opengear console servers and something like conserver to get the actual text via serial like most large Unix environments (every job I've worked at) do. Then you can just scrape the text.
- FireBeyond 11y agoRight, this surprised me. They're doing IPMI, so why not SOL (Serial over LAN) to get the raw stream? Actually, on second thoughts, I'm not surprised so much. I've read many threads on Supermicro IPMI and people's frustration with it (reliant on outdated Java, and hacked together wrappers over VNC) that make it seem like a deliberate choice to obfuscate things -just- enough to make other tools difficult.
- mverwijs 11y agoWe did something similar at Optiver. * boot a custom live cd (a la Knoppix) over PXE * Live CD places node into database if it doesn't exist yet, using dmidecode to find serialnumbers and such * Live Cd keeps querying database for instructions * Engineer adds a profile to the node in the database * Live Cd slices up disk to match the profile * Live Cd fetches a tarball of the base OS from an URL and throws it on the metal. Runs grub setup. Reboots. Tumblr did something like this with http://tumblr.github.io/collins/ http://tumblr.github.io/collins/.
- defect 11y agoAlso checkout https://github.com/Tumblr/genesis https://github.com/Tumblr/genesis which does sort of the same thing as the PXE image GitHub writes about.
- voltagex_ 11y agoHey cool so what I'm fiddling around with in iPXE isn't completely obsolete in the age of Docker and disposable VMs.
- mverwijs 11y agoWell, no. But IMHO, iron is only do-able if you have enough of it. This I learned the hard way at my previous contract, where we only had a handful of servers and all of them production. When you want to automate your complete infra, including rolling out hardware, you need hardware to develop and test on. Entropy of life will ensure that exactly that moment you need to reinstall that PostgreSQL slave from scratch, the PXE server is unreachable, or the server has a different diskcontroller, or an iLO certificate expired. Or something stupid. Test your code. And for Ops this means: machines that are solely for the testing pleasure of Ops. No other function.
- voltagex_ 11y agoIn a perfect world you'd have a Dev, Staging and Prod PXE server, but reality says you're not going to be able to get signoff to run that many.
- seanhandley 11y agoSounds a lot like http://theforeman.org/ http://theforeman.org/
- chsc007 11y agohttp://www.5z8.info/foodporn_z8u4xv_56-DEPLOY-TROJAN-287.mw9---- http://www.5z8.info/foodporn_z8u4xv_56-DEPLOY-TROJAN-287.mw9...
- A_Beer_Clinked 11y agoCan anybody with experience of using Openstack Ironic[1] in this space comment on advantages of rolling your own liek GitHub? [1] https://wiki.openstack.org/wiki/Ironic https://wiki.openstack.org/wiki/Ironic
- detaro 11y agoIf you are not running OpenStack otherwise I'd say maintaining it is way to much effort to get relatively basic functionality. They also would still need custom work for asset databases, the memory checks, so they don't gain much.
- mariojv 11y agoThe OnMetal [1] team at Rackspace uses OpenStack Ironic. It's saved us a lot of engineering time and let us offer the same interface as our VMs for provisioning baremetal machines with OpenStack Nova. [1] http://www.rackspace.com/en-us/cloud/servers/onmetal http://www.rackspace.com/en-us/cloud/servers/onmetal
- dmourati 11y agoA consultant from Ubuntu called Ironic a "still birth" and said its name was indicative of its fit with the rest of OpenStack. His team used MaaS which I gather serves most of the same purpose: https://maas.ubuntu.com/ https://maas.ubuntu.com/
- stephenr 11y agoBreaking news: A consultant for a company trash talks an open source competitor.
- stephenr 11y agoThese lines seem odd to me, maybe it's just the wording: > [gPanel] Deploying DNS via Heaven... > hubot is deploying dns/master (deadbeef) to production. > hubot's production deployment of dns/master (deadbeef) is done! (6s) Is this just an IMO odd use of the word "deploying" or does a DNS change really mean building and deploying a new package/image?
- jcrawfordor 11y agoI've always thought of 'deploy' as a generic term for pushing any change to production. I think this is pretty typical - e.g. you deploy your application, even if that just means updating some files.
- _yy 11y agoThey probably manage DNS in a Git repository/using Puppet, so deploying may be quite literal. I see no issue with that.
- mrmondo 11y agoWe do this, it works well do us with 200-300 servers.
- vidarh 11y agoI deploy public DNS via new images. Image builds are fast, and our DNS changes rarely. When DNS changes frequently I wouldn't recommend it, though. Our internal DNS is using SkyDNS2 (backed by Etcd) instead, because that changes frequently (service registrations etc. as vms are started/stopped). But for the public DNS we like having the one DNS change => one git commit => one Docker image mapping to see who/why/when DNS changed.
- samlambert 11y agoWe can deploy DNS like an app. If we want to add hostnames manually we do it in git and deploy the DNS "app" via hubot.
- castell 11y agoThe Hubot workflow sounds interesting. It seems more and more DevOps prefer it. Has someone first hand experience with such Hubot usage? Do you prefer such commands or would you want to write more informal short sentences?
- Rockslide 11y agoThere was also a talk titled "Chatops" about this specific thing if you want to learn more: https://www.youtube.com/watch?v=NST3u-GjjFw https://www.youtube.com/watch?v=NST3u-GjjFw
- jon-wood 11y agoI'm somewhat split. There's definite value in having a shared history of what people have done, but I prefer that to take the form of command line tools pushing status updates to Hipchat or whatever. You lose so much convineance by pretending Hipchat's chat box is a terminal, everything from command history to being able to quickly iterate over the contents of a file or set environment variables.
- glenngillen 11y agoOne of the most compelling aspects of it for me isn't so much the shared history, but just visibility of what people have done. It's a really effective way of transferring knowledge of how things are done. You can easily drop into the room and watch play-by-play how a given task is done.
- greggyb 11y agoIf this is the goal, why not just have a script export the shell's history to a chat channel? To me, a wiki would be even better, because you could retroactively include expository comments along with the command history.
- ktt 11y agoUnfortunately most of the material on ChatOps currently covers only how to get Hubot to display cat pictures or other trivia [1]. Maybe it's because each company should create their own "chat API" but I'd also like to hear some real, inside "war stories". Does anyone knows what app does GitHub use for chats? Looks like a simple and elegant UI over Basecamp. [1]: http://hubot-script-catalog.herokuapp.com/ http://hubot-script-catalog.herokuapp.com/
- ymse 11y agoHardware provisioning is a dying art. I would love to see a modern-day xCAT[0] clone that's easy to install and configure and with proper multi-platform support. Foreman is half-way there, but AFAIK doesn't do BMC provisioning and discovery, which is a big deal. 0: https://github.com/xcat2/xcat-core/blob/master/docs/source/index.rst https://github.com/xcat2/xcat-core/blob/master/docs/source/i...
- eLobato 11y agoForeman does discovery [1] (PXE, PXE-less, segmented networks, through bootdisk) and handles BMC, I wrote the API in fact :) http://theforeman.org/plugins/foreman_discovery/4.1/index.html http://theforeman.org/plugins/foreman_discovery/4.1/index.ht... Maybe you were not aware because it's a plugin, we kind of have that problem in the Foreman community, plugins are not as visible as they should and they can contain key features.
- chsc007 11y agohttp://www.5z8.info/foodporn_z8u4xv_56-DEPLOY-TROJAN-287.mw9---- http://www.5z8.info/foodporn_z8u4xv_56-DEPLOY-TROJAN-287.mw9...
- ptype 11y agoWhy would a company like GitHub choose Ubuntu over Debian? The LTS policy?
- wtbob 11y agoI too would be interested in the answer. From my perspective, Debian is the server Linux distro par excellence, and in my experience the folks who choose Ubuntu have been devs who don't actually use Linux (e.g., the sorts who develop on a Mac or in a VM rather than on a personal Linux system). It's not really fair to Ubuntu, which is decent enough in its own way, but I tend to consider the choice of Ubuntu to be a bit of an architecture smell. I'm honestly interested in what the valid reasons to prefer Ubuntu over Debian (particularly on the server side) are.
- stephenr 11y agoI agree with the main point you're trying to make, but the suggested examples you provide don't always hold true. I'm pretty dedicated to Debian on the server, a good part of my business is providing infrastructure support and setup, and I work from a MacBook Pro.
- avar 11y agoSome choose it because Ubuntu, unlike Debian, has a guaranteed timely release cycle, and unlike Debian they have formalized LTS.
- Jgrubb 11y agoThis is why I choose Ubuntu.
- q3k 11y agoNewer packages, sane LTS policy, easier to get non-free firmware/drivers going (as in, the default CD comes with them), seemingly more support from third parties. They're both pretty awful due to their automagic(al tendency to break down in mysterious ways), but if I have to choose, I'll go with Ubuntu. Disclaimer: My main box runs Gentoo and I own no Mac machines, if that changes anything in your vision of Ubuntu users.
- dorfsmay 11y agoNot as detailled on the tooling, but it sows how much hardware they use, Stackoverflow did a blog post on their datacentres move: http://blog.serverfault.com/2015/03/ http://blog.serverfault.com/2015/03/
- danesparza 11y agoI've known about Hubot for a while. But did anybody else see Hubot with a Santa hat and think that was adorable? Because I did.
- grandalf 11y agoThis is pretty cool but is there really that much benefit to doing this? What size IT staff do the savings justify? Does that change if you use Amazon's market-driven options like spot pricing and capacity planning discounts?
- scott_karana 11y agoThe equivalent of a M4.x10large running 24/7, which would cost $1814/month, costs about $400-$500/month lease from Dell or HP. There are other costs, like cooling, power, peering, networking gear, colocation/building costs, having spare parts on hand, paying sysadmins, et cetera, that are going to vary based on your requirements and region.
- amalag 11y agoIs this also done remotely by gPanel? >Once we've gathered all the information we need about the machine, we enter configuring, where we assign a static IP address to the IPMI interface and tweak our BIOS settings. From there we move to firmware_upgrade where we update FCB, BMC, BIOS, RAID, and any other firmware we'd like to manage on the system.
- FireBeyond 11y agoIn theory it should be if you have a tightly controlled hardware process (and in this case, Dell, who is used to selling servers configured to initially PXE boot, etc), and you have some 'expect/send' scripting in place.
- amalag 11y agoI was not aware you can control BIOS settings, BIOS upgrades and configuring IPMI remotely like that. EDIT - looks like it is straightforward if you control the IPMI locally. So the software would send commands to do it locally.